本文主要是介绍untiy 利用法线做高效3D模型 边缘泛光,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在unity3D项目中,当选中一个3d模型,需要对其做一个外观的变化,来表现一个交互。
经常是以描边或边缘泛光的形式来处理。
描边的效果经常都是通过两个PASS来实现的,1个输出 沿着法线发现 放大的模型,再统一着色,这个颜色就是描边的颜色。另一个则直接输出。由于第一个沿着法线有做放大,所以就能实现描边的效果。
而边缘泛光则只需要一个PASS解决。当然效果有点区别,这个看需求而定。
思路:核心就是边缘检测,通过视向量和顶点的法向量的点积来实现。当两个向量的夹角越大,越靠近边缘。依赖这个做颜色强度,和纹理颜色做差值运算 就可以了。
没有边缘泛光效果
加上内边缘泛光效果
shader代码:
Shader "JackyShader/OutLineShader"
{Properties{_MainTex ("Text
这篇关于untiy 利用法线做高效3D模型 边缘泛光的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!