前言
在3d游戏中有两种效果非常常见,那就是内发光和外发光。那么他们是怎样实现的呢,看了下边文章你就知道内发光是咋回事了。
效果展示
正文
上边的效果是上一节的
下边的效果是本次的内发光
两者进行对比显示,实现原理都是一样的
实现原理
实现原理和上一篇中的原理是一样的,利用视角方向和模型顶点法线来进行判断,
Creator3D:shader8(https://blog.csdn.net/carlos13207/article/details/108430211)
1.实现
vec4 frag () {
vec3 color = mainColor.xyz;
vec4 col=texture(mainTexture, v_uv);
//1.获取视角方向,归一化 (终点-起点)
vec3 camerDir=normalize(cc_cameraPos.xyz-v_position.xyz);
float dotN=dot(v_normal,camerDir);
color*=(1.0-dotN)*2.0;
return CCFragOutput(col +vec4(color,1.0));
}
}%
2.地址
- 微信公众号:搬砖小菜鸟
扫码关注公众号,发送"gitee"可获取源码