opengl实现X射线渲染

这篇博客探讨了如何使用OpenGL来实现X射线渲染,即显示物体的轮廓线。核心原理是当物体表面法线与入射光线形成90度角时,能观察到清晰的轮廓。文章还提到了不同计算方法对最终效果的影响,并着重讲解了顶点着色器在该过程中的应用。
摘要由CSDN通过智能技术生成

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;//转换到世界
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值