基于Qt的OpenGL可编程管线学习(9)- X射线
X射线也就是轮廓线,效果如下图所示
原理:物体表面的法线与人眼睛缩成的角度为90度时,刚好能看到物体的轮廓
Fragment shader代码如下:
uniformsampler2DU_MainTexture;varyingvec2M_coord;varyingvec3M_normal;varyingvec3M_WordPos;voidmain(void){vec3nLightDirection=vec3(0)-M_WordPos;vec3nLightNormal=normalize(nLightDirection);//指向眼睛的单位向量vec3nNorNormal=normalize(M_normal);//法线的单位向量floatcosThta=dot(nLightNormal,nNorNormal);floatcosThta2=cos(83.0*3.14/180.0);vec4color=texture2D(U_MainTexture,M_coord);if(cosThta>=0.0&&cosThta<=cosThta2){color=vec4(0.0,1.0,1.0,0.5);}gl_FragColor=color;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。