University of Pennsylvania, CIS 565: GPU Programming and Architecture, Final Project
by Jiyu Huang
This is a physically-based rendering engine for loading and displaying glTF 2.0 files, using the emerging WebGPU API.
Live Demo Link. Requires browsers with WebGPU support (for example, Google Chrome Canary or Chrome Dev with enable-unsafe-webgpu
flag on).
- glTF
- glTF-Embedded
- glTF-Binary
- Accessors
- Sparse Accessors
- Buffers and Buffer Views
- Cameras
- Perspective
- Orthographic
- Images
- Materials
- Metallic-Roughness Material
- Additional Textures
- Alpha Coverage
- Meshes (topology type: triangles only)
- Nodes
- Samplers
- Scenes
- Textures
- Animations
- Weights
- Skins
- EXT_mesh_gpu_instancing
- camera rotation: drag and move
- zoom in/out: scroll in/out
For local usage, follow these instructions:
- Download the repository and make sure npm package manager is installed
- Run
npm install
- Run
npm start
- Go to
http://localhost:8080/
using a browser that has WebGPU enabled
- Skinning and morph target animation
- Complete core glTF 2.0
- Image-based lighting
- Material extensions
- WebGPU Samples
- Alain's Raw WebGPU tutorial
- Khronos glTF 2.0 Sample Viewer and minimal-gltf-loader for metallic-roughness shading implementation details