Editing Shader Enhancements

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 1: Line 1:
BRL-CAD's shader system is custom developed for the librt raytracer.  Shaders are currently coded in C and explicitly added to the active shader list. A question of interest is whether we can utilize work being done for other open source raytracing shader systems to improve the flexibility of BRL-CAD's shader system and take advantage of shaders developed for other systems.
+
Shaders for the ray-tracer are currently coded in C and explicitly added to the active shader list. A shader to bridge the RT shader system to the BSD licensed implementation of OSL ( [http://code.google.com/p/openshadinglanguage/] ) would allow a richer visual capability.
  
A proposal should outline what changes are proposed to BRL-CAD's current shaders.  Initial stages would involve either writing the shader bridge in liboptical or designing a new approach (remember though, all existing shader functionality in the current system must be preserved, even if it is re-implemented in some fashion. Be careful about biting off more than you can achieve in a summer.)
+
This task would involve writing the shader bridge in liboptical as well as a shader editor in mged (with a 'preview' button to raytrace a thumbnail of a sphere using the shader).
  
=References=
+
*Familiarity with C/++
 
+
*Familiarity with Tcl/Tk
This task will require a fair bit of background research in order to put together a compelling proposal - interested students should study BRL-CAD's shader system to determine how it works, and then look at other open source, license compatible systems to see what they may offer.  Candidates include:
 
 
 
* http://en.wikipedia.org/wiki/Shading
 
* http://en.wikipedia.org/wiki/Shader
 
* http://en.wikipedia.org/wiki/Shading_language
 
* Sony's Open Shader Language (OSL):  http://opensource.imageworks.com/?p=osl
 
* Pixie:  http://www.renderpixie.com/
 
* Yafaray: http://www.yafaray.org/
 
 
 
OSL is of particular interest because it is developed specifically for raytracing systems.
 
 
 
Code of relevance:
 
 
 
* src/liboptical
 
* include/optical.h
 
 
 
Documentation of relevance:
 
 
 
* {{pdf|Introduction to MGED|Introduction to MGED}}
 
** Do lessons 1-7 minimum
 
* {{pdf|Principles of Effective Modeling|Principles of Effective Modeling}}
 
** Read Appendix B
 
* {{pdf|Optical Shaders|BRL-CAD's optical shaders}}
 
** Provides a broad survey from a developer's perspective
 
 
 
=Requirements=
 
 
 
*Familiarity with C/C++
 
 
 
=Past Efforts=
 
[http://brlcad.org/wiki/User:Kunigami/GSoc2011/Proposal GSoC11]
 

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)

Template used on this page: