研究目的
To develop a general-purpose differentiable ray tracer that computes derivatives of scalar functions over rendered images with respect to arbitrary scene parameters, addressing challenges in handling geometric discontinuities and secondary effects like shadows and global illumination.
研究成果
The paper presents a differentiable Monte Carlo ray tracing algorithm that generates unbiased gradients for arbitrary scene parameters by incorporating edge sampling to handle geometric discontinuities. It demonstrates effectiveness in inverse rendering and adversarial example generation, with applications in computer graphics and machine learning. Future work includes improving performance, handling additional light transport phenomena, and addressing shader discontinuities.
研究不足
Performance: The CPU implementation takes seconds to minutes for small resolutions and low sample counts, with bottlenecks in edge sampling and automatic differentiation. Other light transport phenomena: Static scenes are assumed; motion blur and participating media are not handled. Interpenetrating geometries and parallel edges: Not handled, requiring mesh splitting for derivatives. Shader discontinuities: Assumes BRDFs and shaders are differentiable; does not handle discontinuities like total internal reflection or discrete operations.
1:Experimental Design and Method Selection:
The methodology involves a differentiable Monte Carlo ray tracing algorithm that splits the gradient integral into smooth and discontinuous regions. For smooth parts, traditional area sampling with automatic differentiation is used. For discontinuous parts, a novel edge sampling method is employed to capture changes at boundaries, specifically sampling silhouette edges in screen space and 3D edges for secondary effects.
2:Sample Selection and Data Sources:
Synthetic scenes with various light transport configurations (e.g., occlusion, shadows, non-Lambertian materials, global illumination) are used for testing. Scenes include triangle meshes with predefined parameters.
3:List of Experimental Equipment and Materials:
A C++ renderer is implemented, interfaced with PyTorch for automatic differentiation. The Embree library is used for ray casting. Scenes are constructed using PyTorch tensors for vertices, indices, and other parameters.
4:Experimental Procedures and Operational Workflow:
The renderer performs forward passes to output images, computes scalar losses (e.g., L1 or L2 differences), and backpropagates gradients to scene parameters using the Adam optimizer. Edge sampling involves projecting edges, selecting silhouette edges based on screen-space lengths, and uniformly sampling points on edges. For secondary visibility, hierarchies are built for efficient edge sampling.
5:Data Analysis Methods:
Gradients are estimated using Monte Carlo integration. Comparisons are made with finite differences and previous differentiable renderers (OpenDR and Neural 3D Mesh renderer) to validate accuracy and efficiency. Convergence is visualized over different sample counts.
独家科研数据包,助您复现前沿成果,加速创新突破
获取完整内容