TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
SA09 Realtime education
1.
2. Try Real-time Shader for artist.
Claim back Shader to Softimage artist.
CSR&D Support Dept.
Artist
Fumoto Kazuhiro
3. 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)
4. 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.
5. 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
6. Face Shader Demo…
• About Fake image based lighting, Fake sub surface
scattering…
7. Simple IBL
• There are three hurdles to express this Shader.
9. 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
10. Hurdle1
• For example…
The angle of the Normal Vector and the Light Vector is
60 degrees.
→Brightness is 0.5.
11. 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).
14. Hurdle1
• Necessary matter
The dot() from two vector data is used to make
Shading.
15. 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.
18. 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.
19. 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.
20. Hurdle2
• The kinds of Environment maps.
1. Simple Environment mapping (sphere)
2. Dual-Paraboloid mapping
3. Cube mapping
21. Hurdle2
• Dual-Paraboloid Environment mapping
Uses two environment textures, each with a parabolic
basis (requires two texture images).
24. 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
26. 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)
27. 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);
}