University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 3
- Zhiyi Zhou
- Tested on: Windows 11, i9-13900H @ 2.6GHz 64GB, RTX4060 Laptop
- OBJ & glTF Loading
- BVH(MTBVH) Acceleration
- Stochastic Sampled Anti-Aliasing
- Physically-Based Materials
- Texture Mapping & Normal Mapping
- Environment Mapping
- Multiple Importance Sampling of different kind of light(sphere, cube, mesh and environment light)
The glTF (GL Transmission Format) file is a streamlined, efficient format for transmitting 3D models and scenes, designed specifically for real-time rendering applications such as 3D games, web platforms, and virtual reality. Developed by the Khronos Group, the same organization behind OpenGL and Vulkan, it is lightweight and optimized for performance. A glTF file can encompass an entire scene, including meshes, materials, animations, cameras, and lights. However, I focus on utilizing only its meshes and materials in my projects.
Avocado
glTF file: Avocado
Computing intersections is the most time consuming part in our path tracer. A BVH organizes a set of geometric objects, like triangles or meshes, into a hierarchy of nested bounding volumes, which allows for efficient spatial queries and reduces the computational cost of determining which objects are relevant in a given operation.
with BVH | without BVH |
---|---|
My computer struggles to traverse millions of triangles, but thanks to BVH, the speedup is significant.
with Anti-Aliasing | without Anti-Aliasing |
---|---|
I implemented Microfacet material and metallic workflow in my path tracer. Here, the ball with high metallic and high roughness looks weird, this is because in microfacet model high roughness will cause energy loss.
To improve the visual quality of the scene, texture mapping is crucial. Normal mapping can further enhance surface detail, adding greater realism.
Direct Light sample(20spp) | BSDF Sample (20spp) | MIS(20spp) |
---|---|---|
Direct Light sample(2000spp) | BSDF Sample (2000spp) | MIS(2000spp) |
---|---|---|