Sei sulla pagina 1di 5

CIS 496 / EAS 499 Senior Project

Project Proposal Specification


Instructors: Steven Zdancewic and Joseph T. Kider. Jr.

Complex Procedural Shaders


Marissa Krupen

Advisor: Steven Zdancewic, Joseph T. Kider. Jr., and Scott White

University of Pennsylvania

ABSTRACT

The RenderMan API is a widely accepted industry standard in the graphics and entertainment industries.
PRMan, which employs these rendering standards, can be used to create complex photorealistic shaders. Using
this software, shaders are written in the RenderMan Shading Language (RSL) and can provide much cleaner,
higher resolution results than traditional texture mapping as all surfaces are created procedurally.

The purpose of this project is to study a variety of ways to construct shaders and to create complex photorealistic
shaders using advanced shading techniques. In addition to studying and understanding the RenderMan API, I will
need to learn the PRMan interface and RenderMan Shading Language to write procedurally generated complex
shaders. I will first study and implement currently available simple and complex shaders, and then identify a useful
procedural shader that is not currently publicly available. The shader will be constructed from various techniques
learned throughout the studying phase of the project and will present a photorealistic, procedural alternative to a
previously artistically created texture or effect.

Project Blog: http://Kru-Penn.blogspot.com

For this project, I will study a variety of shaders and


1. INTRODUCTION complex effects created with procedural shaders. I will
then design and create my own shader that can successfully
Procedural shaders are employed throughout the research represent a photorealistic texture or effect.
and entertainment communities as they have various bene-
fits when compared to traditional texture mapping. Both
executions deal with applying a surface “look” to a given
1.1 Design Goals
3D model. Texture mapping involves a variety of time-
consuming steps that include unwrapping the 3D models, This complex shader would be beneficial in several dif-
painting 2D textures, and then mapping these 2D textures ferent arenas. In CG films, complex shaders are necessary
into 3D space. However, procedural shaders are much more for everything from environmental models to model wrap-
flexible and can be easily manipulated to create a variety of pers in crowd simulations. Depending on the exact shader,
new shaders, and applied to any 3D surface without dealing there are various applications in the film industry for such a
with the UV unwrapping process. Procedural shaders also procedural shader that could potentially be applied to many
work at all resolutions and can be utilized for much surfaces. Certain displacement shaders could be used to
cleaner, more complicated results. For instance, procedural cut down modeling and rendering time, while certain com-
shaders can be used to generate certain time-based simula- plex textures might be beneficial for photorealistic effects
tions that could not be accomplished without many, many or achieving convincing surfaces for large-scale assets. In
frames of a flat texture. the video game industry, complex shaders such as this are
Shaders are incredibly useful in research and entertain- extremely useful to give greater, more convincing detail to
ment applications, as they can often lend a great deal of low-poly models. Lastly, complex shaders might be useful
detail to seemingly simple models. In the gaming industry, in research applications that incorporate crowd simulations
for instance, models are kept extremely low-poly to prevent or other effects to establish detail without adding geometry
overloading the game’s memory capabilities. However, and taxing the renderer.
game creators often still want the capability to create be-
lievable, photo-realistic characters and environments. To 1.2 Projects Features and Functionality
achieve this goal, they execute much of the detail in these
situations with complex textures. Another example is in I will be providing a comprehensive study in a variety of
crowd scenes of animated movies. Often, geometry of the shaders, RenderMan and RSL. After determining the ca-
characters in these scenes must be kept as minimal as pos- pabilities of PRMan and RSL, I will create a complex pro-
sible so as not to overload the renderer. To do so, crowd cedural shader that users could apply to their own models.
simulators often create complex procedural shaders that It will be functional in any RenderMan compliant renderer.
will “wrap” the simple geometry in the scene and displace
the points on the model, thus making it seem as if the
model is much more geometrically complex than it actually
it is.

CIS 496/EAS499 Senior Design Project


S. Zdancewic & J.T. Kider Jr. - CIS 496/EAS499

2. RELATED WORK

For examples of related work I have focused primarily on


complex shaders and effects. Please see below for exam-
ples.

2.1 Crowds Wrapper in Pixar’s Cars

In the crowds scenes in Cars, Pixar utilized a complex


shading “wrapper” that transformed the points of a cube
into the look of a car at render time. This allowed for only
eight points per character to be used, but the crowds held
up in wide shots. It also allowed for record number of
crowds to be simulated at that time, without crashing the
renderer.

2.2 Blast Code in DreamWorks’ MegaMind

When blowing up various buildings and streets,


DreamWorks employed a Blast-Code plug-in that de-
formed NURBS surfaces based on fracture patterns, proce-
dural noise, and hand-painted textures. The tool allowed a Figure 2: Ramp bumps
complex explosion effect to be created from a variety of
texture-based inputs and animating the NURBS surface,
which would animate the fractured pieces. It allowed for
low-level control of the behavior of the fractures, but the
final demolition simulation was done at the end, and
greatly saved on animation time.

2.3 Smoke Displacement

In a smoke effect shader, the writer used an accumula-


tion of various shading techniques to transform a simple
cylinder into a complex smoke column. [Links b.]

Figure 3: Trumpet shape applied to column

Figure 1: Bumps

© SIG Center for Computer Graphics 2010.


S. Zdancewic & J.T. Kider Jr. - CIS 496/EAS499

Figure 4: Wave Figure 6: Final smoke shader

Thus, a complex effect was achieved with very primitive


geometry.

3. PROJECT PROPOSAL

The main crux of this project is to implement a complex


shader after having studied the current programs and lan-
guages used to create shaders. The goal of this project is to
create a shader that currently fills the void in available
shaders. It will be a shader that is not currently readily
available, but would prove useful in a variety of different
environments if it were to be.

3.1 Anticipated Approach

For this project, I will first study the RenderMan API


and the capabilities of the PRMan program. I will also
look at a variety of published shaders and implement mul-
tiple examples. After determining the capabilities of the
software and the programming language, I will then design
Figure 5: Combined and surface my own complex shader.
The shader will be generated using RSL, and perhaps
other scripting languages. It will provide the user with a
complex shader that can be applied to a variety of models
and situations. Once more details of the design are deter-
mined, I can further explain the benefits and execution to
the user.

3.2 Target Platforms

These shaders will be constructed in PRMan with a full


understanding of the RenderMan standards. I will also be
using a basic text editor and Autodesk Maya 2011.

3.3 Evaluation Criteria

I will provide a variety of rendered examples to explain


the steps I went through in studying shaders and determin-

© SIG Center for Computer Graphics 2010.


S. Zdancewic & J.T. Kider Jr. - CIS 496/EAS499

ing what type of shader to design. For the designed shader, e. RenderMan Shading Language Documentation
I will provide various rendered images and possibly anima- 0.3
tions to illustrate the successful execution of the design. I http://www.vga.hr/resources/tutorials/3d/rsl/
will also supply real-world examples of the material or
effect the shader is emulating to help determine the suc- f. RenderMania
cessful execution of the end product. http://rendermania.com
g. Time-Varying Surfaces

4. RESEARCH TIMELINE http://www.cs.berkeley.edu/~ravir/papers/tsvbrdf


/index.html
Project Milestone Report (Alpha Version)
• Completed all background reading
• Good understanding of the PRMan interface
• Simple base case examples work
References
• Completed several tutorials and/or published examples
for complex shaders [AG00] APODACA A., GRITZ L.: Advanced
• Explored a variety of shading techniques and complex RenderMan, Creating CGI for Motion
effects (such as using shaders as displacement wrappers Pictures. Academic Press, 2000.
to avoid complex modeling in crowd scenes) [CJR07] CABAN J. J., JOSHI A., RHEINGANS
• Basic idea of complex shader design established P.: Texture-based feature tracking for
effective time-varying data visualization,
Proceedings of IEEE Visualization, 2007.
Project Final Deliverables
[Dig07] DIGITAL TUTORS: Pixar’s RenderMan.
• Designed and created a minimum of one complex shader SIGGRAPH 2007 Special Edition DVD,
• Implemented shader on appropriate models
2007.
[Klo07] KLOC B.: Sub Surface Scattering in Ren-
• Rendered images, and possibly video, of complex shader derMan for Maya. 2007.
under a variety of different lighting scenarios [Rag05] RAGHAVACHARY S.: Rendering for
Beginners, Image Synthesis Using Ren-
derMan. Focal Press, 2005.
Project Future Tasks
[Ste07] STEPHENSEON I.: Essential Renderman,
• Explore integration of shading with Houdini Second Edition. Springer, 2007.
• Create a more dynamic shader [Ups89] UPSTIL S.: The RenderMan Companion,
A Programmer’s Guide to Realistic Com-
puter Graphics. Addison-Wesley, 1989.
See Gantt Chart below for proposed project timeline.
(Fig. 1)

5. Method

6. RESULTS

7. CONCLUSIONS and FUTURE WORK

APPENDIX
A. Links
a. Pixar Repository
http://www.renderman.org/
b. CG References and Tutorials
http://www.fundza.com/index.html
c. Shading Language Extensions
http://graphics.stanford.edu/lab/soft/purgatory/pr
man/Toolkit/slextensions.html
d. RMan Notes
http://accad.osu.edu/~smay/RManNotes/

© SIG Center for Computer Graphics 2010.


S. Zdancewic & J.T. Kider Jr. - CIS 496/EAS499

Figure 7: Gantt Chart of proposed task timeline

© SIG Center for Computer Graphics 2010.

Potrebbero piacerti anche