1. 程式人生 > >glsl 進階學習4

glsl 進階學習4

怎麼旋轉視角呢。螢幕就是你視線方向,那移動eyeposition就可以了 但是你光是人動了 眼睛一直看一個地方 很奇怪的 所以要調整面朝方向 。我感覺相當於你站的方向調整為要正對著dir 就是光射出去的方向。 

就像mvp那種做法 這裡也構造一個viewMatrix  face up right 然後 三個vec3加起來normalize 就作為此時的dir了。

栗子 一個target 0 0 0 ori-target就是face,up取0 1 0, right=normalize(cross(face,up)); up更新為normalize(cross(face,right))

初始的時候vec3 ori = vec3( 2.5*cos(an), 1.0, 2.5*sin(an) );

vec2 uv =(fragCoord.xy - iResolution.xy * .5) / iResolution.y;  dir=vec3(uv,2.0);

dir就是normalize(uv.x*right+uv.y*up+2.0*face); 看起來就是dir乘了viewMatrix吧,又回到了正常的相機空間。

之後就正常用ori和dir了。

當然是看的IQ大佬的demo了