Right now, no function exists inside Kaolin for ray generation, which is an essential part to support raytracing. Ray generation is a function which takes in camera parameters (where camera means both physically realizeable ones as well as non-physical ones like cubemaps) as input and generates a tensor of ray origins and ray directions. Simple projections like perspective projection are easy to implement (example: https://github.com/nv-tlabs/nglod/blob/6cb8d10cc4b44f709f855dc98fa8e6e58ba7c1fd/sdf-net/lib/geoutils.py#L180), but we want something that also supports things like fisheye lenses as well as jittering for MSAA.
Our current plan is to implement the shaders provided in Ray Tracing Gems II: https://www.realtimerendering.com/raytracinggems/rtg2/index.html but in CUDA, which supports most features we need. The license for the code snippet within the book is public domain (confirmed with the authors), however we should leave acknowledgements in the comments and documentation regardless.
Right now, no function exists inside Kaolin for ray generation, which is an essential part to support raytracing. Ray generation is a function which takes in camera parameters (where camera means both physically realizeable ones as well as non-physical ones like cubemaps) as input and generates a tensor of ray origins and ray directions. Simple projections like perspective projection are easy to implement (example: https://github.com/nv-tlabs/nglod/blob/6cb8d10cc4b44f709f855dc98fa8e6e58ba7c1fd/sdf-net/lib/geoutils.py#L180), but we want something that also supports things like fisheye lenses as well as jittering for MSAA.
Our current plan is to implement the shaders provided in Ray Tracing Gems II: https://www.realtimerendering.com/raytracinggems/rtg2/index.html but in CUDA, which supports most features we need. The license for the code snippet within the book is public domain (confirmed with the authors), however we should leave acknowledgements in the comments and documentation regardless.