Download presentation
Presentation is loading. Please wait.
1
CS 468 Cg Texture Mapping Jon Moon Spring 2004 Computer Science Cornell University
2
Agenda NVIDIA’s Cg Browser effects Bump Mapping Reflection Mapping Thin Film Bump Horizon Mapping Car Paint Bumpy Shiny Patch Watch demo, understand the shaders
3
Cg Commands saturate(x): same as clamp(x,0,1) lerp(a,b,f): (1-f)*a + b*f lit(ndotl, ndoth, m): returns Blinn model {ambient, diffuse, specular,1} length(x), distance(x1,x2), pow(x,y), etc.
4
Simple fp20 Bump Mapping Goal: Bumpy Earth What should the FP do? Vertex inputs? Uniform Parameters? Outputs? Code?
5
Simple fp20 Bump Mapping Goal: Bumpy Earth What should the VP do? Inputs? Uniform Parameters? Textures? Code?
6
Texture reads in Cg Need uniform parameter for the texture itself: sampler2d, sampler3d, etc. Need to call appropriate texture read function, with appr. Params: tex2d(my2dTexture, myCoords)
7
Simple fp20 Bump Mapping Texture read code (out of context): float2 decalCoords : TEXCOORD0; uniform sampler2D decal, etc. float3 decalColor = tex2D(decal, IN.decalCoords).rgb; OpenGL side will be covered next week!
8
Bump Reflection Mapping Goal: Achieve reflection using normal map, environment map What kind of textures will we use?
9
Bump Reflection Mapping float4 normal = tex2D(NormalMap); Color = texCUBE_reflect_dp3x3(Environmen tMap, TangentToCubeSpace0, TangentToCubeSpace1, normal); transforms the normal, computes the reflected vector, and uses that to lookup into cubemap.
10
Thin Film Interference Goal: produce thin film color patterns (think oil or soap bubbles) Plan: calculate the depth of film on the surface of object, based on view/normal angle Use depth as lookup and get color, use that to modify specular component
11
Bump Horizon Mapping Goal: bump mapping with self- shadowing Theory: create horizon maps that store the elevation angle needed in a particular direction at each point Use the horizon maps nearest the light direction to find elevation, compare to light vector
12
Bump Horizon Mapping Can encode 4 horizon maps in one texture, with 1 elevation in each RGBA value. Thus horizon maps for 8 cardinal directions (N, NE, etc.) can be encoded nicely in 2 textures
13
Car Paint Goal: Make realistic car paint Fresnel effect Flecks in paint Wavy normals Reflection Fancy paint BRDF Plan: Use a ton of textures
14
Bumpy Shiny Patch Goal: (go watch it!) What mapping effects are being used?
15
Other possibilities? Iridescence: color is view dependent Gloss mapping: reflectivity differs over object Height field, offset bump maps Be creative! Be clever!
16
Resources Cg User Manual: http://developer.nvidia.com/object/cg_ users_manual.html Also in Cg Toolkit folder Cg Browser download: http://developer.nvidia.com/object/cg_ toolkit.html Part of the Cg Toolkit (~100 MB)
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.