Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 468 Cg Texture Mapping Jon Moon Spring 2004 Computer Science Cornell University.

Similar presentations


Presentation on theme: "CS 468 Cg Texture Mapping Jon Moon Spring 2004 Computer Science Cornell University."— Presentation transcript:

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)


Download ppt "CS 468 Cg Texture Mapping Jon Moon Spring 2004 Computer Science Cornell University."

Similar presentations


Ads by Google