10 个版本
0.4.1 | 2019 年 1 月 27 日 |
---|---|
0.4.0 | 2018 年 8 月 22 日 |
0.3.1 | 2018 年 3 月 16 日 |
0.3.0 | 2018 年 2 月 23 日 |
0.0.3 | 2017 年 7 月 28 日 |
#112 在 渲染
37 个月下载量
120KB
2.5K SLoC
gltf-viewer
Rust glTF 2.0 查看器,使用 gltf crate 和纯 OpenGL 编写。
当前状态:所有 官方示例模型 都可以加载,并使用 参考 PBR 着色器 进行渲染。示例
所有示例模型的画廊: https://bwasty.github.io/gltf-viewer/0.3.0/
一些 glTF 功能尚未实现,最重要的是 动画。有关详细信息,请参阅 #3。
安装
二进制文件(Win/Linux/macOS)
请参阅 最新版本
从 crate(需要 Rust)
cargo install gltf-viewer
最新版本(不稳定)
cargo install --git https://github.com/bwasty/gltf-viewer.git
用法
USAGE:
gltf-viewer [OPTIONS] <FILE>
OPTIONS:
-v, --verbose Enable verbose logging (log level INFO). Can be repeated up to 3 times to increase
log level to DEBUG/TRACE)
-s, --screenshot <FILE> Create screenshot (PNG)
-w, --width <WIDTH> Width in pixels [default: 800]
-h, --height <HEIGHT> Height in pixels [default: 600]
-c, --count <COUNT> Saves N screenshots of size WxH, rotating evenly spaced around the object [default:
1]
--headless Use real headless rendering for screenshots (default is a hidden window)
[EXPERIMENTAL - see README for details]
--straight Position camera in front of model if using default camera (i.e. glTF doesn't
contain a camera or `--cam-index -1` is passed).
--scene <scene> Index of the scene to load [default: 0]
--cam-index <CAM-INDEX> Use the glTF camera with the given index (starting at 0).
Fallback if there is none: determine 'nice' camera position based on the scene's
bounding box. Can be forced by passing -1.
Note: All other camera options are ignored if this one is given. [default: 0]
--cam-pos <CAM-POS> Camera (aka eye) position override as comma-separated Vector3. Example: 1.2,3.4,5.6
--cam-target <CAM-TARGET> Camera target (aka center) override as comma-separated Vector3. Example:
1.2,3.4,5.6
--cam-fovy <CAM-FOVY> Vertical field of view ('zoom') in degrees. [default: 75]
--help Prints help information
-V, --version Prints version information
ARGS:
<FILE> glTF file name
支持 .gltf 和 .glb 文件。使用鼠标导航场景:用左键点击并拖动旋转,用右键点击并拖动平移,用鼠标滚轮缩放。
示例
$ curl -O https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/Box/glTF-Binary/Box.glb
$ gltf-viewer Box.glb
无头截图生成
使用 --headless
标志进行适当的无头截图生成目前仅在 macOS 上工作。为了解决这个问题,提供了一个使用 xvfb
的 Docker 设置。用法示例
# Build docker image and run it with the gltf mounted in a volume.
# The image will be saved next to the gltf file.
./screenshot_docker.sh Box.glb
./screenshot_docker.sh ../models/Box.gltf -w 1920 -h 1080 --count 3 -vv
# Use pre-built docker image from Docker Hub
DOCKER_IMAGE=bwasty/gltf-viewer ./screenshot_docker.sh Box.glb
或者,您也可以安装 xvfb
并直接使用 ./run_xvfb.sh
(仅限 Linux)。
依赖关系
~21MB
~231K SLoC