Difference between revisions of "User:Vasco.costa/GSoC15/logs"

From BRL-CAD
(Development Phase)
(Development Phase)
Line 16: Line 16:
 
* Made patch for ell (Generalized Ellipsoid) and arb8 (Arbitrary Polyhedron) OpenCL shots:
 
* Made patch for ell (Generalized Ellipsoid) and arb8 (Arbitrary Polyhedron) OpenCL shots:
 
** https://sourceforge.net/p/brlcad/patches/370/
 
** https://sourceforge.net/p/brlcad/patches/370/
* ''M1 complete.''
+
* ''M1 complete: ellipsoid (ell), arb8 (arbitrary polyhedron) shot routines in OCL''.
  
 
* Tried out a bunch of code browsing tools (cscope, LXR, doxygen, etc). The NetBeans IDE seems the most promising.
 
* Tried out a bunch of code browsing tools (cscope, LXR, doxygen, etc). The NetBeans IDE seems the most promising.
Line 48: Line 48:
 
* ''Alpha M2 patch.'' in [https://sourceforge.net/p/brlcad/mailman/message/34191546/ mailing-list].
 
* ''Alpha M2 patch.'' in [https://sourceforge.net/p/brlcad/mailman/message/34191546/ mailing-list].
  
* Started work on ''M3''.
+
* Started work on ''M3: grid spatial partitioning in OCL''.
 
** https://sourceforge.net/p/brlcad/patches/379/
 
** https://sourceforge.net/p/brlcad/patches/379/
 
* ANSI C Lagae & Dutré grid construction code.
 
* ANSI C Lagae & Dutré grid construction code.

Revision as of 18:28, 17 June 2015

Community Bonding Period

I have made two patches for OpenCL (OCL) shot code. One patch refactors the existing sph (Sphere) shot code, and the another patch implements ehy (Elliptical Hyperboloid) shot code.

Background Research

Development Phase

Week 1 : 25-31 May

  • Created some example .g files in mged for the primitives to be implemented this week. The Quick Reference Card proved to be quite useful.
  • Do the matrix ops for ehy (Elliptical Hyperboloid) in the OpenCL side.
  • Tried out a bunch of code browsing tools (cscope, LXR, doxygen, etc). The NetBeans IDE seems the most promising.

Week 2 : 1-7 Jun

  • Read code to better understand the main rendering loop. It seems to be something like this:
do_frame() → do_run() → worker()* → do_pixel()* → rt_shootray()* → rt_*_shot()
The code is recursive (which is problematic for OpenCL). I'll work on a simplified version of the rendering loop which only does the primary rays in C as a first approach. After I get the non-recursive parallel friendly C code I'll work on the OpenCL port.
  • Updated project proposal on Google Melange.
  • Upgraded Ubuntu and GCC.
  • Made simple ray generation code in C.
  • Made simple frame buffer write code in C.
  • Made simple diffuse shading code in C.

Week 3 : 8-14 Jun

  • Added the main boolean weaving code to our minimal renderer.
  • Eliminated some gotos and made the code more thread safe.
  • The simple renderer patches are in the mailing-list.

Week 4 : 15-21 Jun

  • Added OpenMP compile support. Use OpenMP constructs to launch the rendering threads. This work still has some bugs in it.
  • Alpha M2 patch. in mailing-list.