Editing User:Todor nikolov/proposal
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 16: | Line 16: | ||
:*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. | :*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 | + | :*A small project in android as part of a teamwork class, its still work in progress. |
== Project Proposal == | == Project Proposal == | ||
---- | ---- | ||
=== Project Title === | === Project Title === | ||
− | : | + | :Raytracing pipeline optimization |
=== Brief project summary === | === Brief project summary === | ||
− | + | ||
− | |||
− | |||
=== Detailed project summary === | === Detailed project summary === | ||
− | :The raytracer in brlcad | + | :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. | :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: | :There are endless possibilities for the scope of the optimization, but the most promising are: | ||
− | :*Bundling rays in groups to reuse static data | + | :*Bundling rays in groups to reuse static data |
− | :*Split raytracing routine to enable pipelining | + | :*Split raytracing routine to enable pipelining and parallelization |
− | :*Locating pipeline hotspots and tighten their execution | + | :*Locating pipeline hotspots and tighten their execution |
− | :*Research algorithms used in said hotspots and try to find | + | :*Research algorithms used in said hotspots and try to find unnecessary computations |
− | |||
− | |||
+ | :Basic principles that I will follow during this project: | ||
+ | :*Steer based on intuition, Do based on numbers. | ||
+ | :*10% increased code complexity defeats 10 times speedup | ||
+ | :*Document before doing, report after doing | ||
=== Deliverables === | === Deliverables === | ||
Line 49: | Line 49: | ||
=== Timeline === | === Timeline === | ||
+ | :It is too early for me to give a definitive plan, but: | ||
:*May 15 - June - 10 - Analysis of code, getting familiar with interacting with the program and creating test scripts and benchmarks. | :*May 15 - June - 10 - Analysis of code, getting familiar with interacting with the program and creating test scripts and benchmarks. | ||
:*Rest of June - Finishing the Report on the current state of the program, and building a prototype/ first optimizations being finished. | :*Rest of June - Finishing the Report on the current state of the program, and building a prototype/ first optimizations being finished. | ||
:*July 1 - July 15 - Testing of code and removing bugs introduced in the pipeline | :*July 1 - July 15 - Testing of code and removing bugs introduced in the pipeline | ||
:*July 15 - August 15 - Iterating on what has been done so far, or working on other parts of problem. | :*July 15 - August 15 - Iterating on what has been done so far, or working on other parts of problem. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Plans after finishing this program === | === Plans after finishing this program === | ||
Line 71: | Line 66: | ||
=== Why you === | === Why you === | ||
− | You have a complex and promising software that gives me a chance to learn more about graphics, and programming than anything I have encountered before. Also you have a good documentation and structure I feel will help me fit | + | You have a complex and promising software that gives me a chance to learn more about graphics, and programming than anything I have encountered before. Also you have a good documentation and structure I feel will help me fit it fast. |