On Fri, Mar 6, 2015 at 5:03 PM, benson chepkwony <bchepk...@att.net> wrote:
> 3. Can we Modify/Edit these libraries such as: OpenCL, Opennurbs and
> Rhino3D folks or should we write a ray tracer from scratch, let say if we
> need to optimize it?
> 4. Is NURBS used to find ray intersection on objects? and what about
> OpenCL Code does it also do the same thing as NURBS? which one is better?
>
NURBS are just another primitive. The BRL-CAD rendering architecture uses
the ray tracing algorithm. So it has an implementation of a ray/NURB
intersection algorithm in order to render NURBS.
OpenCL is just a C like programming language with vector processing
extensions.
> I am interested in working on the "NURBS Optimization and Cleanup" and I
> would like to optimize its algorithm as this often plays a pivotal role in
> improving performance. This is just one classic place to optimize.
> To optimize ray tracer, I am planning on conducting a couple of these
> steps:
> 1. Implementing Kd-tree structure.
> 2. Implementing Bezier clipping method for NURBS Surface
> 3. Implementing BVH Ray traversal
> 4. Implementing Bounding Volume Hierarchy
> 5. Fine-tuning a NURBS-curve by specifying different weight
> with knot-vector
>
> Bounding Volume Hierarchy:
> In order to reduce intersection cost, a bounding volume should be drawn
> around each polygon.
>
You seem to be assuming BRL-CAD triangulates the NURBS surfaces before the
ray-tracing step but I am not sure that is what they are doing.
> You also mentioned that:
> "The way ray tracing currently occurs, there’s even room to speed up
> primitives on the host (CPU) by an order of magnitude or better ensuring
> better data coherency and eliminating branch logic."
> Because you mentioned it, I would like to look further in this area.
>
> If you want to work on that check out these papers:
"Design for Parallel Interactive Ray Tracing Systems"
"An Application of Scalable Massive Model Interaction using Shared-Memory
Systems"
which describe the implementation of the Manta ray-tracer. Manta is a an
open-source parallel ray tracer which has ray bundle optimizations.
------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
BRL-CAD Developer mailing list
brlcad-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-devel