Difference between revisions of "User:Todor nikolov/proposal"
From BRL-CAD
(Started work, organize later) |
m (...) |
||
Line 24: | Line 24: | ||
=== Brief project summary === | === Brief project summary === | ||
− | Analyze, profile, benchmark, speedup, report results. Do this a couple of times and a slow program becomes less slow. So that is my plan. | + | :Analyze, profile, benchmark, speedup, report results. Do this a couple of times and a slow program becomes less slow. So that is my plan. |
=== Detailed project summary === | === Detailed project summary === | ||
− | :The raytracer in brlcad hits around 1M rays/sec meaning a render on a current screen (1920x1080) takes 1 - | + | :The raytracer in brlcad hits around 1M rays/sec meaning a render on a current screen (1920x1080) takes 1 - 15 seconds. The new archer editor supports much quicker edits, meaning having a quicker response by the renderer will improve the feel and workflow of the application. |
− | :The other use of the raytracer is queuing multiple traces in a script file for the purpose of either animation or | + | :The other use of the raytracer is queuing multiple traces in a script file for the purpose of either animation or multi-view rendering can take minutes to hours depending on the complexity of the scene and the amount of frames taken. |
+ | :There are endless possibilities for the scope of the optimization, but the most promising are: | ||
+ | *Bundling rays in groups to reuse static data | ||
+ | *Split raytracing routine to enable pipeilining and paralelisation | ||
+ | *Locating pipeline hotspots and tighten their execution | ||
+ | *Research algorithms used in said hotspots and try to find unnecessary computations | ||
− | :Current raytracing flow in BRLCAD is: Convert to internal representation > partition space >> shoot rays >> check for intersections > execute hit/miss function | + | :Main |
+ | |||
+ | :Current raytracing flow in BRLCAD is: Get scene> Get objects> Convert to internal representation > partition space >> shoot rays >> check for intersections > execute hit/miss function |
Revision as of 19:30, 16 March 2014
Contents
Personal Information
- Name: Todor Nikolov
- Email: tosemkd@gmail.com
- IRC name:todor_nikolov
About Me
- I am a student in my 3-rd year in computer science and engineering, at the faculty of Computer Science and Engineering in Skopje, Macedonia.
- The focus of my studies is parallel programming and high performance computing, also I have a fondness for embedded systems and low power computing.
- Along side this I also take classes in computer graphics and animation, partly because it is connected to the previous fields, but mostly because it is fun and quite challenging.
- My hobbies include gaming and learning new ways to torture all the processors in my PC. :D
Previous Experience
- 2 months working on a social network as part of an internship, february-march 2013 , in this project I used php with the codeigniter framework, my tasks were implementing the messaging system and configuring sphinxsearch to match the requirements of the design.
- A small project in android as part of a teamwork class, its still work in progress.
Project Proposal
Project Title
- Raytracing pipeline optimization
Brief project summary
- Analyze, profile, benchmark, speedup, report results. Do this a couple of times and a slow program becomes less slow. So that is my plan.
Detailed project summary
- The raytracer in brlcad hits around 1M rays/sec meaning a render on a current screen (1920x1080) takes 1 - 15 seconds. The new archer editor supports much quicker edits, meaning having a quicker response by the renderer will improve the feel and workflow of the application.
- The other use of the raytracer is queuing multiple traces in a script file for the purpose of either animation or multi-view rendering can take minutes to hours depending on the complexity of the scene and the amount of frames taken.
- There are endless possibilities for the scope of the optimization, but the most promising are:
- Bundling rays in groups to reuse static data
- Split raytracing routine to enable pipeilining and paralelisation
- Locating pipeline hotspots and tighten their execution
- Research algorithms used in said hotspots and try to find unnecessary computations
- Main
- Current raytracing flow in BRLCAD is: Get scene> Get objects> Convert to internal representation > partition space >> shoot rays >> check for intersections > execute hit/miss function