X射线也就是轮郭线
实现原理:物体表面的法线与入射光线的夹角为90度时,刚好能看到物体的轮郭线
实现效果,不同的计算方式会得到不同的效果
顶点shader
attribute vec3 pos;
attribute vec2 texcoord;
attribute vec3 normal;
uniform mat4 M;
uniform mat4 P;
uniform mat4 V;
uniform mat4 NM;
varying vec3 V_Normal;
varying vec3 V_WorldPos;
void main()
{
V_Normal=mat3(NM)*normal;//将法线转换到模型空间
vec4 worldPos=M*vec4(pos,1.0);
V_WorldPos=worldPos.xyz;
gl_Position=P*V*worldPos;
}
片元shader
uniform vec3 U_EyePos;//眼睛的位置坐标
varying vec3 V_Normal;//转换到世界