我是靠谱客的博主 伶俐睫毛,最近开发中收集的这篇文章主要介绍opengl实现X射线渲染,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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;//转换到世界

最后

以上就是伶俐睫毛为你收集整理的opengl实现X射线渲染的全部内容,希望文章能够帮你解决opengl实现X射线渲染所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部