Try Real-time Shader for artist.  Claim back Shader to Softimage artist.                            CSR&D Support Dept.   ...
Summary•   Self-introduction•   The Advantage to the artist•   The Realtime-Shader to perform on Softimage•   Hurdles on l...
Self-introduction•   About CS R&D Support Dept.    – Graphic library development, Developmental      environment, Investig...
An advantage to the artist.•   The adjustment of the Shader parameter is easy.•   WYSIWYG - You can see Game Graphics thro...
Face Shader Demo…•   About Fake image based lighting, Fake sub surface    scattering…
Simple IBL•   There are three hurdles to express this Shader.
Hurdle1• Dot (Inner) product
Hurdle1•   Shading works out with the dot product of the normal    vector and the light vector.    • The expression…      ...
Hurdle1•   For example…    The angle of the Normal Vector and the Light Vector is    60 degrees.    →Brightness is 0.5.
Hurdle1•   In Cg Shader…    float dif1 = dot(normal, light);•   The dot() calculates the dot-product which is based on    ...
Hurdle1                  struct v2f                         {                                float4     hpos : HPOS;      ...
Hurdle1                         {•   Softimage samples.       v2f OUT;                             OUT.hpos = mul(simodelv...
Hurdle1•   Necessary matter    The dot() from two vector data is used to make    Shading.
Hurdle1 Other examples…•   Relations of Vertex Shader and Fragment Shader•   Specular    – Blinn-Phong which uses the half...
Hurdle2• Normal Map  1. Object space  2. Tangent space• Environment map
Hurdle2•   Normal map.
Hurdle2•   Object space normal map.    The Object Space Normal Map directly uses RGB    brightness of texture as XYZ of No...
Hurdle2•   Tangent space normal map.    • Need to obtain the Normal vector, Tangent vector,       Binormal vector.    • Th...
Hurdle2•   The kinds of Environment maps.    1. Simple Environment mapping (sphere)    2. Dual-Paraboloid mapping    3. Cu...
Hurdle2•   Dual-Paraboloid Environment mapping    Uses two environment textures, each with a parabolic    basis (requires ...
Hurdle1•   In Cg Shaders…    if (R.z < 0)                                            ←Front     {                         ...
Hurdle3• Shader blending  – Calculation technique to the result  – Blurring
Hurdle3•   Calculation technique to the result    Add (+), Subtract (-), Mutiply (*), Divide (/)    Color data such as tex...
Hurdle3•   Image Based Lighting (Fake)…
Hurdle3•   Blurring of Texture.    • Program used for blurring a shadow map.    • Environmental map calculated as Specular...
Hurdle3                    float4 get_softtex(sampler2D map, float2 loc, int siz)                          {•             ...
The First Goal
An appendix•   Link of parameter and animation (DEMO1)
An appendix•   Link of parameter and animation (DEMO2)
Next step•   Shader effect file    CgFX, Dxfx…
Document
Q & A… Thank you… Fumoto_Kazuhiro@sega.co.jp
SA09 Realtime education
Upcoming SlideShare
Loading in...5
×

SA09 Realtime education

719

Published on

Published in: Technology, Art & Photos
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
719
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

SA09 Realtime education

  1. 1. Try Real-time Shader for artist. Claim back Shader to Softimage artist. CSR&D Support Dept. Artist Fumoto Kazuhiro
  2. 2. Summary• Self-introduction• The Advantage to the artist• The Realtime-Shader to perform on Softimage• Hurdles on learning Shader – Shading – NormalMap, EnvironmentMap – Calculation for expression• Goal>Result (to Cgfx)
  3. 3. Self-introduction• About CS R&D Support Dept. – Graphic library development, Developmental environment, Investigation and experiment of the next generation graphic• About me Real-time graphic development. In-house tool (such as plug-in) development and support (mainly Softimage) for the artist. → Technical artist.
  4. 4. An advantage to the artist.• The adjustment of the Shader parameter is easy.• WYSIWYG - You can see Game Graphics through data making.• You can get clear knowledge about shader. Express higher graphic by learning about the shader It doesn’t matter if you can’t write shader code
  5. 5. Face Shader Demo…• About Fake image based lighting, Fake sub surface scattering…
  6. 6. Simple IBL• There are three hurdles to express this Shader.
  7. 7. Hurdle1• Dot (Inner) product
  8. 8. Hurdle1• Shading works out with the dot product of the normal vector and the light vector. • The expression… N・L = cosθ Shading : cosθ Normar Vector : N Light Vector : L
  9. 9. Hurdle1• For example… The angle of the Normal Vector and the Light Vector is 60 degrees. →Brightness is 0.5.
  10. 10. Hurdle1• In Cg Shader… float dif1 = dot(normal, light);• The dot() calculates the dot-product which is based on the data in the parentheses.• The data in the parenthesis are Normal Vectors and Light Vectors.• This expression says that the result which is calculated by dot() is put in the variable is called dif1, and declares float (few floating mark).
  11. 11. Hurdle1 struct v2f { float4 hpos : HPOS; float4 color : COL0; }; v2f main (• Softimage samples. float4 float4 pos : POSITION, nrml : NORMAL, uniform float4x4 simodelviewproj, uniform float4x4 simodelviewIT, uniform float4x4 simodelview, uniform float3 silightdirection_0 ) { v2f OUT; OUT.hpos = mul(simodelviewproj, pos); float3 normal = normalize(mul(simodelviewIT, nrml).xyz); float3 lDir1 = normalize(silightdirection_0); float dif1 = dot(normal, lDir1); if(dif1 < 0) dif1 = 0; float4 lColor1 = dif1; OUT.color = lColor1; return OUT; }
  12. 12. Hurdle1 {• Softimage samples. v2f OUT; OUT.hpos = mul(simodelviewproj, pos); float3 normal = normalize(mul(simodelviewIT, nrml).xyz); float3 lDir1 = normalize(silightdirection_0); float dif1 = dot(normal, lDir1); if(dif1 < 0) dif1 = 0; float4 lColor1 = dif1; OUT.color = lColor1; return OUT; }
  13. 13. Hurdle1• Necessary matter The dot() from two vector data is used to make Shading.
  14. 14. Hurdle1 Other examples…• Relations of Vertex Shader and Fragment Shader• Specular – Blinn-Phong which uses the half vector. – Phong which uses the reflection vector.• Dot product applied use – Using Eyes Vector in substitution for a light vector.
  15. 15. Hurdle2• Normal Map 1. Object space 2. Tangent space• Environment map
  16. 16. Hurdle2• Normal map.
  17. 17. Hurdle2• Object space normal map. The Object Space Normal Map directly uses RGB brightness of texture as XYZ of Normal data.• Actually, ( NormalTex – 0.5 ) × 2.
  18. 18. Hurdle2• Tangent space normal map. • Need to obtain the Normal vector, Tangent vector, Binormal vector. • The value of the texture used as a normal data based on that data.
  19. 19. Hurdle2• The kinds of Environment maps. 1. Simple Environment mapping (sphere) 2. Dual-Paraboloid mapping 3. Cube mapping
  20. 20. Hurdle2• Dual-Paraboloid Environment mapping Uses two environment textures, each with a parabolic basis (requires two texture images).
  21. 21. Hurdle1• In Cg Shaders… if (R.z < 0) ←Front { ┃ tc0.x = ( -(R.x / (2 * (1 - R.z))) + 0.5) * 0.5; ┃ tc0.y = R.y / (2 * (1 - R.z)) + 0.5; ┛ } else if (R.z >= 0) ←Back { ┃ tc0.x = (R.x / (2 * (1 + R.z)) + 0.5) * 0.5 + 0.5; ┃ tc0.y = R.y / (2 * (1 + R.z)) + 0.5; ┃ } ┛ • R:RefrectVector • Tc0.x:U to UV • Tc0.y:V to UV
  22. 22. Hurdle3• Shader blending – Calculation technique to the result – Blurring
  23. 23. Hurdle3• Calculation technique to the result Add (+), Subtract (-), Mutiply (*), Divide (/) Color data such as texture or shading which is for the final graphic. Shading × Texture + Flesnel (fake) ×Environmentmap
  24. 24. Hurdle3• Image Based Lighting (Fake)…
  25. 25. Hurdle3• Blurring of Texture. • Program used for blurring a shadow map. • Environmental map calculated as Specular + Environmental map calculated as Diffuse = Image Based Lighting (Fake)
  26. 26. Hurdle3 float4 get_softtex(sampler2D map, float2 loc, int siz) {• float x,y; Blur product. float4 sum = 0; int scl; float n, v; Expert from float2 uv, texmapscale; scl = 4; GPU Gems v = 1.5f*scl; n = 4.0f*scl; texmapscale.x = 1.0f/512.0 * siz; set a parameter texmapscale.y = 1.0f/512.0 * siz; for( y=-v ; y<=v ; y+=1.0f ){ here for( x=-v; x<= v; x+=1.0f ){ uv.x = loc.x + x * texmapscale; uv.y = loc.y + y * texmapscale; sum += tex2D(map, uv); } } sum = sum / (n*n); sum.a = 1.0f; return(sum); }
  27. 27. The First Goal
  28. 28. An appendix• Link of parameter and animation (DEMO1)
  29. 29. An appendix• Link of parameter and animation (DEMO2)
  30. 30. Next step• Shader effect file CgFX, Dxfx…
  31. 31. Document
  32. 32. Q & A… Thank you… Fumoto_Kazuhiro@sega.co.jp
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×