(11/26)
看了兩個tutorial在實作GLSL shading 的方法
1.glslcookbook
2.opengl-tutorial
結果兩個在vs fs的地方有出入:
opengl官方直接在 vs 裡面算完 shading,再把lightcolor 丟給 fs,
而glslcookbook 則是在vs裡面做一次導向後,實際在fs裡面實作。
這兩個方法的差異,在cookbook p61有寫:
這是Per-vertex & Per-fragment的問題,Per-vertex 缺點是只有在vertex上lighting,
有可能會在faces rendering時,少掉整個faces 上面每個點 specular light 的細節
變成所謂的Gourand shading
所以在最後fs再算才會是Phong Shading!!
-------------------------------------------------------------------------------------------------------------
GLSL Shading Methods
1.Flat Shading
in main:
//set color of the polygon which uses flat shading to be the color of the first vertex.
glProvokingVertex(GL_FIRST_VERTEX_CONVENTION);
in Shader.vs :
//adding the 'flat' qualifier indicates that no interpolation of values is to be done before reaching fragment shader!
//也就是vs裡面甚麼也不做!
flat out vec3 LightingIntensity;
in Shader.fs :
flat in vec3 LightingIntensity;
tbc....
沒有留言:
張貼留言