Rasterization
光栅化AdvancedA rendering method that projects 3D triangles onto the screen and shades them pixel by pixel; fast, and standard for real time.
Rendering (turning a 3D scene into a 2D image) has two fundamental approaches, the other being ray tracing. 3D objects are usually built from large numbers of triangles; rasterization projects each triangle's vertices onto the screen, figures out which pixels it covers, then shades those pixels based on texture and lighting, using a depth buffer (z-buffer, which records each pixel's closest distance from the camera) to decide what occludes what. GPUs have dedicated hardware pipelines for this process, making it extremely fast, which is why games and most real-time 3D engines rely on it. The trade-off is that shadows, reflections, refraction, and indirect lighting all need approximation tricks, so it looks less realistic than ray tracing. In embodied simulation, MuJoCo's built-in OpenGL renderer and ManiSkill's non-ray-traced shaders are both rasterization, well suited to quickly rendering images for large numbers of parallel environments when training visual policies; ray tracing is used instead when photorealism is needed to narrow the visual sim-to-real gap.
ExampleWhen training a vision-based policy to grasp a block, rasterization can render wrist-camera images for hundreds of parallel simulated environments at once fast enough for training, though a glass cup's refraction and metal's reflections will look noticeably unrealistic.
- Also called
- Rasterized Rendering, Rasterisation
- Related
- Rendering · Ray Tracing · Batched Rendering · Photorealistic Rendering · Sim-to-Real Gap (Reality Gap) · Sensor Simulation
- Sources
- NVIDIA Blog: What's the Difference Between Ray Tracing and Rasterization?
Wikipedia: Rasterisation
ManiSkill 文档:Sensors / Cameras(shader packs) (Chinese)