Editing User:Vasco.costa/GSoC15/logs


Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 369: Line 369:
=Post Development Phase=
=Post Development Phase=
=== Week: 24-30 Aug ===
===24-30 Aug===
* Use less memory to store solid ids and materials.  Eliminate some more branches and simplify logic in solver.
* Compute transparency using attenuation.
* bool.c cleanups. If we ever are to port the standard BRL-CAD CSG evaluator algorithm to OpenCL C, given that there seem to be no other major viable options which give sufficiently correct results for our project's purposes, this code must be brought to heel. Such a task would be immense. I hope I helped this with a series of patches to: remove <code>goto</code> (not available in OpenCL C), to re-compile the bool trees (binary tree of pointers) to a linear postfix array form. This form is easier to parse and eval during the rendering stage. I did those tasks in these stages:
**eliminated all gotos in <code>rt_default_multioverlap()</code>.
**eliminated all gotos in <code>rt_boolweave()</code>.
**produced a patch to use the postfix linear tree. I uses a lot less memory (64-bits per node) and the traversal is more cache coherent. The CSG inference engine supports these operators: UNION, INTERSECT, DIFFERENCE, XOR, NOT, SOLID, NOP.
::It might require re-interfacing with db code in particular for the way XOR operations used to be treated. I reimplemented these functions to use the postfix bool tree:
::<code>rt_tree_max_raynum()</code>, <code>rt_tree_test_ready()</code>, <code>rt_booleval()</code>, <code>rt_solid_bitfinder()</code>.
* Process segments instead of hit points.  Use registers to store segments.  Make all available rendering modes (full, diffuse, normals, multi-hit transparent) work in a single pass. This speeds up the full and transparent modes like 2-3x.
* Also updated the multiple-kernel launch renderer code to work with the segment list approach. It might be slower than the single-kernel launch renderer but we might eventually need the whole segment list in memory at the same time to perform more advanced rendering.
* Fixed the ocl material colors. It seems a solid's basic material color is in the end rather than the beginning of the regions list it has...
* Well folks GSoC 2015 is finally over! Mission complete! I thank everyone who made this possible:
**Google: Carol Smith
**BRL-CAD: brlcad (Sean), Stragus, ``Erik, starseeker.
These were the most notable task supporters to list. The deepest thanks go to my parents for tirelessly supporting me during this code marathon.

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)