Shaders - PowerPoint PPT Presentation

1 / 16
About This Presentation
Title:

Shaders

Description:

These polygons don't necessarily have to belong together in any logical way. We call a collection of render ... (Shade tree for cooper) Texture v. Bump Mapping ... – PowerPoint PPT presentation

Number of Views:61
Avg rating:3.0/5.0
Slides: 17
Provided by: csAri
Category:
Tags: cooper | shaders

less

Transcript and Presenter's Notes

Title: Shaders


1
Shaders
  • CS 319
  • Advanced Topics in Computer Graphics
  • John C. Hart

2
  • Our scene is built from several objects, or
    meshes.
  • A mesh is just a collection of polygons. These
    polygons don't necessarily have to belong
    together in any logical way.
  • We call a collection of render settings a shader
  • A shader might contain the following information
  • textures, (one or more) plus information on
    how to blend them together. Material
    parameters. This includes ambient, diffuse,
    specular and emissive colors, and a shininess
    value. A blending function.

3
Shaders
  • Local illumination quite complex
  • Reflectance models
  • Procedural texture
  • Solid texture
  • Bump maps
  • Displacement maps
  • Environment maps
  • Need ability to collect into a single shading
    description called a shader
  • Shaders also describe
  • lights, e.g. spotlights
  • atmosphere, e.g. fog

4
Shading v. Modeling
  • Shaders generate more than color
  • Displacement maps can move geometry
  • Opacity maps can create holes in geometry
  • Frequency of features
  • Low frequency ? modeling operations
  • High frequency ? shading operations

5
Shade Trees
  • Cook, SIGGRAPH 84
  • Hierarchical organization of shading
  • Breaks a shading expression into simple
    components
  • Visual programming
  • Modular
  • Drag-n-drop shading components


coppercolor



K-amb (const)
C-amb
K-specular (const)
specular
normal
viewer
roughness
(Shade tree for cooper)
6
Texture v.Bump Mapping
  • Texture mapping simulates detail with a color
    that varies across a surface
  • Bump mapping simulates detail with a surface
    normal that varies across a surface




ks
kd
tex(s,t)
?
?
N
L
H



tex(s,t)
ks
kd
?
?
bump()
L
H
N
B
7
Displacement v.Bump Mapping
B
P
  • Displacement mapping
  • Changes locations of vertices
  • Requires mesh to be subdivided to shader
    resolution
  • P P B N
  • Bump mapping
  • Changes only direction of surface normal
  • Give illusion of displacement map
  • N N Bs(N ? Pt) Bt(N ? Ps)
  • Silhouettes are a dead giveaway
  • Displacements alter silhouettes
  • Bump maps leave silhouette smooth

P
N
Bs
1
Bs
1
8
Problems with Shade Trees
  • Shaders can get very complex
  • Sometimes need higher-level constructs than
    simple expression trees
  • Variables
  • Iteration
  • Need to compile a program instead of evaluate an
    expression

9
Renderman Shading Language
  • Hanrahan Lawson, SIGGRAPH 90
  • High level little language
  • Special purpose variables useful for shading
  • P surface position
  • N surface normal
  • Special purpose functions useful for shading
  • smoothstep(x0,x1,a) smoothly interpolates from
    x0 to x1 as a varies from 0 to 1
  • specular(N,V,m) computes specular reflection
    given normal N, view direction V and roughness m.

10
Types
  • Colors
  • Multiplication is componentwise
  • e.g. Cd(La Ld) CsLs CtLt
  • Points
  • Built in dot (L.N) and cross (NL) products
  • Transform to other coordinate systems raster,
    screen, camera, world, and object
  • Variables
  • Uniform independent of position
  • Varying changes across surface

11
Lighting
  • Constructs
  • illuminate() point source with cone spread
  • solar() directional source
  • Variables
  • L direction of light (independent)
  • Cl color of light (dependent)
  • Types
  • ambient non-directional (but can vary with
    position)
  • point equal in all directions
  • spot focused around a given direction
  • shadowed modulated by texture/shadow map
  • distant directional source
  • environment map distant source modulated by
    texture

12
Local Illumination
  • Construct
  • illuminance()
  • Variables
  • L incoming light direction
  • Cl incoming light color
  • C output color
  • Example (hair diffuse)
  • color C 0
  • illuminance(P,N,Pi/2)
  • L normalize(L)
  • C Kd Cd Cl length(LT)

13
Texture Functions
  • texture() returns float/color based on texture
    coordinates
  • bump() returns normal perturbation based on
    texture coordinates
  • environment() returns float/color based on a
    direction passed to it
  • shadow() returns a float indicating the
    percentage a points position is shadowed

14
RSL Example
  • Surface dent(float Ks.4, Kd.5, Ka.1,
    roughness.25, dent.4)
  • float turbulence
  • point Nf, V
  • float I, freq
  • / Transform to solid texture coordinate system
    /
  • V transform(shader,P)
  • / Sum 6 octaves of noise to form turbulence /
  • turbulence 0 freq 1.0
  • for (i 0 i lt 6 i 1)
  • turbulence 1/freq abs(0.5noise(4freqV))
  • freq 2
  • / sharpen turbulence /
  • turbulence turbulence turbulence
  • turbulence dent
  • / Displace surface and compute normal /
  • P - turbulence normalize(N)
  • Nf faceforward(normalize(calculatenormal(P)),I)
  • V normalize(-I)

15
Try ItYourself
  • Photorealistic Renderman
  • Based on REYES polygon renderer
  • Uses shadow maps
  • Blue Moon Rendering Tools
  • Free
  • Uses ray tracer
  • No displacement maps
  • www.bmrt.org

16
Deferred Shading
  • Makes procedural shading more efficient
  • Why apply shader to entire surface if only small
    portion is actually visible
  • Separate rendering into two passes
  • Pass 1 Render geometry using Z-buffer
  • But rather than storing color in frame buffer
  • Store shading parameters instead
  • Pass 2 Shade frame buffer
  • Apply shading procedure to frame buffer
  • Replaces shading parameters with color
  • Problem Fat framebuffer
Write a Comment
User Comments (0)
About PowerShow.com