Editing User:Vasco.costa/GSoC15/logs
From BRL-CAD
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 28: | Line 28: | ||
|M4||GPU side database storage of OCL implemented primitives.||#392||'''TRUNK''' | |M4||GPU side database storage of OCL implemented primitives.||#392||'''TRUNK''' | ||
|- | |- | ||
− | |M5||port compute intensive or critical parts of the dispatcher, <s>boolean evaluation</s>, optical renderer to OCL.|| ||'''TRUNK''' | + | |M5||port compute intensive or critical parts of the dispatcher, <s>boolean evaluation</s>, <s>optical renderer</s> to OCL.|| ||'''TRUNK''' |
|- | |- | ||
|M5.1||OCL dispatcher that performs the shot routines for a whole frame.||||'''TRUNK''' | |M5.1||OCL dispatcher that performs the shot routines for a whole frame.||||'''TRUNK''' | ||
|- | |- | ||
|M5.2||OCL rasterizer that does the pixel pushing for a whole frame.||||'''TRUNK''' | |M5.2||OCL rasterizer that does the pixel pushing for a whole frame.||||'''TRUNK''' | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|M6||TOR and TGC shot routines in OCL.||#393||'''TRUNK''' | |M6||TOR and TGC shot routines in OCL.||#393||'''TRUNK''' | ||
Line 46: | Line 42: | ||
|M7||BOT shot routine in OCL.||||- | |M7||BOT shot routine in OCL.||||- | ||
|- | |- | ||
− | |M7.1||Simple BOT shot routine in OCL that computes triangle hits and | + | |M7.1||Simple BOT shot routine in OCL that only computes triangle hits and normal.||||- |
− | |- | ||
− | |||
|} | |} | ||
<!-- | <!-- | ||
Line 59: | Line 53: | ||
--> | --> | ||
− | The ARB8 | + | The ARB8, EHY, ELL, SPH, REC, TOR, TGC, shot routines are in SVN trunk. |
− | SVN trunk also contains solid database device storage and a render function which given a view2model matrix, width, height, can generate an RGB8 bitmap. Diffuse and Surface Normal light models are supported. The renderer does | + | SVN trunk also contains solid database device storage and a render function which given a view2model matrix, width, height, can generate an RGB8 bitmap. Diffuse and Surface Normal light models are supported. The renderer does brute force first-hit ray tracing and ignores the CSG operators. It is integrated as a render option in '''mged'''. |
=Development Phase= | =Development Phase= | ||
Line 216: | Line 210: | ||
* ''M2 commited to opencl branch: kludge up a simple rendering pipeline with grid spatial partitioning traversal acceleration.'' | * ''M2 commited to opencl branch: kludge up a simple rendering pipeline with grid spatial partitioning traversal acceleration.'' | ||
− | : The simple ANSI C rendering pipeline only supports Lambertian reflection with a stock grey material to make things simpler. | + | : The simple ANSI C rendering pipeline only supports Lambertian reflection with a stock grey material to make things simpler. Example output for ''goliath.g'': |
+ | |||
+ | :[[File:Cl_goliath.png|256px]] | ||
+ | |||
<blockquote> | <blockquote> | ||
{| | {| | ||
Line 303: | Line 300: | ||
|[[File:Rt_ehyn.png|256px]]||[[File:Cl_ehyn.png|256px]]||[[File:Diff_ehyn.png|256px]] | |[[File:Rt_ehyn.png|256px]]||[[File:Cl_ehyn.png|256px]]||[[File:Diff_ehyn.png|256px]] | ||
|- | |- | ||
− | |align="center"|elapsed time @ 972x956: 0.35 sec||align="center"|elapsed time @ 972x956: 0. | + | |align="center"|elapsed time @ 972x956: 0.35 sec||align="center"|elapsed time @ 972x956: 0.08 sec|| |
|} | |} | ||
</blockquote> | </blockquote> | ||
Line 309: | Line 306: | ||
:This was the one primitive which had the most differences last time so I ran the test again. <code>ehy: pixdiff bytes: 760757 matching, 25663 off by 1, 12 off by many</code>. I got similar results. So the pixel engine shouldn't be more innacurate than the regular one. What I did find out in surface normals mode was that the CPU code actually is showing hits with the side of the hyperboloid (see the blue dots in the figure at the left). Despite this view being top down. So maybe the GPU version is actually ''more'' accurate? The differences show a nice noisy pattern without obvious banding or moire so there don't seem to be any major issues with the hits, normals, and raster. | :This was the one primitive which had the most differences last time so I ran the test again. <code>ehy: pixdiff bytes: 760757 matching, 25663 off by 1, 12 off by many</code>. I got similar results. So the pixel engine shouldn't be more innacurate than the regular one. What I did find out in surface normals mode was that the CPU code actually is showing hits with the side of the hyperboloid (see the blue dots in the figure at the left). Despite this view being top down. So maybe the GPU version is actually ''more'' accurate? The differences show a nice noisy pattern without obvious banding or moire so there don't seem to be any major issues with the hits, normals, and raster. | ||
− | * Show < | + | * Show <cod>-z</code> OpenCL command line option when running <code>rt -h</code>. |
* Rename table.cl to rt.cl. | * Rename table.cl to rt.cl. | ||
Line 321: | Line 318: | ||
* Require OpenCL 1.2 or greater. | * Require OpenCL 1.2 or greater. | ||
* Change OCL primitive packing routines to use memory pools. | * Change OCL primitive packing routines to use memory pools. | ||
− | |||
* Initial bot, ars implementation. It just intersects all the triangles. No acceleration. | * Initial bot, ars implementation. It just intersects all the triangles. No acceleration. | ||
* Removed the, now unused, one kernel call per ray-primitive intersection routines. | * Removed the, now unused, one kernel call per ray-primitive intersection routines. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |