Difference between revisions of "User:Vasco.costa"

From BRL-CAD
Line 6: Line 6:
 
=OCL librt TODO=
 
=OCL librt TODO=
 
* Split <code>struct hit</code> in common.cl into two structs. One for <code>shot()</code> results and another for <code>norm()</code> results. This will reduce the amount of memory used to store temporary results between stages.
 
* Split <code>struct hit</code> in common.cl into two structs. One for <code>shot()</code> results and another for <code>norm()</code> results. This will reduce the amount of memory used to store temporary results between stages.
* Spatial partitioning (perhaps a hybrid Kd-tree) in order to have early exit on scenes with high depth complexity.
 
 
* Quadric Primitives: HYP, SUPERELL.
 
* Quadric Primitives: HYP, SUPERELL.
 
* Grid Primitives: DSP, EBM, VOL.
 
* Grid Primitives: DSP, EBM, VOL.
Line 12: Line 11:
 
* Instancing Primitive: SUBMODEL.
 
* Instancing Primitive: SUBMODEL.
 
* Make Phong shader results look 100% similar to ANSI C librt.
 
* Make Phong shader results look 100% similar to ANSI C librt.
 +
* Spatial partitioning (perhaps a hybrid Kd-tree) in order to have early exit on scenes with high depth complexity.
 +
* BREP support.
 
* BOT plate mode.
 
* BOT plate mode.
 
* FASTGEN support (both CLINE primitive and bool.cl code).
 
* FASTGEN support (both CLINE primitive and bool.cl code).

Revision as of 16:37, 23 October 2017

Hello. I am interested in ray-tracing, and GPGPU. I work on the OpenCL acceleration of the BRL-CAD librt rendering pipeline:

OCL librt TODO

  • Split struct hit in common.cl into two structs. One for shot() results and another for norm() results. This will reduce the amount of memory used to store temporary results between stages.
  • Quadric Primitives: HYP, SUPERELL.
  • Grid Primitives: DSP, EBM, VOL.
  • Composite Primitives: EXTRUDE, REVOLVE, PIPE, METABALL.
  • Instancing Primitive: SUBMODEL.
  • Make Phong shader results look 100% similar to ANSI C librt.
  • Spatial partitioning (perhaps a hybrid Kd-tree) in order to have early exit on scenes with high depth complexity.
  • BREP support.
  • BOT plate mode.
  • FASTGEN support (both CLINE primitive and bool.cl code).

OCL librt Development Status

  • Refactored dispatcher, shoot, optical renderer to process many rays in parallel when rendering an image or block.
  • HLBVH object partitioning builder in C. traversal in OCL.
  • GPU side database storage of OCL implemented primitives.
  • Ported compute intensive or critical parts of the dispatcher, boolean evaluation, optical renderer to OCL.
  • OCL dispatcher that performs the shot routines for a whole frame.
  • OCL rasterizer that does the pixel pushing for a whole frame.
  • OCL lighting modes: Phong, Diffuse, Surface Normals.
  • OCL lighting modes: Multi-hit transparent (Single Stage Render Pipeline only).
  • ARB8, EHY, ELL, EPA, ETO, PART, REC, RHC, RPC, SPH, TGC, TOR shot routines in OCL.
  • Surface normal routines for all OCL implemented primitives.
  • CPU HLBVH BOT shot construction with OCL traversal and interpolated per pixel normals.