最近有个需求就是实现模型剖切,模型是个整体具体显示隐藏感觉通过unityapi实现太难了,寻思许久还是觉得通过shader来实现,原理很简单就是模型的三角面剔除,能gpu干的活就不麻烦cpu了,性能方面亲测没啥大的开销。
看效果:
直接看shader吧,也很简单,最好有点OpenGL基础,要不看起来很难受
----"surprise Mark Fuck图形学开发者"
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
Shader "HZ/DisModel"
{
Properties
{
_Color ("Main Color", Color) = (1,1,1,1)
_ClipYPos("ClipYPosition",Float) = 0.5
_MainTex ("Main Texture", 2D) = "white"{}
[KeywordEnum(None, Z, Y, X)]_Mode("Mode", Float) = 0
}
SubShader
{
Pass
{
Cull off
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#inc