博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Unity实现三维物体裁剪功能
阅读量:4560 次
发布时间:2019-06-08

本文共 1258 字,大约阅读时间需要 4 分钟。

将下面的Shader代码粘到工程中

1 Shader "Mocha/Clip" 2 { 3     Properties{ 4         _Color("Color",Color)=(1,1,1,1) 5         _P("p",Range(-0.5,0.51))=0 6     } 7     SubShader{ 8         Pass{ 9             Cull OFF10             CGPROGRAM11             #pragma vertex vert12             #pragma fragment frag13             #include "UnityCG.cginc"14 15             float4 _Color;16             float _P;17 18             struct a2v{19                 float4 vertex:POSITION;20                 float4 texcoord:TEXCOORD0;21             };22             struct v2f{23                 float4 pos:POSITION;24                 float4 uv:TEXCOORD0;25             };26 27             v2f vert(a2v v){28                 v2f o;29                 o.uv = v.vertex;30                // o.pos=UnityObjectToClipPos(v.vertex);    //Unity5.6之前版本用31                 o.pos=mul(UNITY_MATRIX_MVP, v.vertex);    //Unity5.6之后版本用32                 return o;33             }34 35             fixed4 frag(v2f i):COLOR{36                 if(i.uv.y<_P){37                     discard;38                 }39                 return _Color;40             }41 42             ENDCG43         }44     }45 }

新建材质并选择如下参数:

通过控制下图中的“P”值进行剪裁控制,可根据需要调整“P”值大小

 

转载于:https://www.cnblogs.com/mrmocha/p/9854894.html

你可能感兴趣的文章
ACM 已结束
查看>>
jQuery事件大全(真的很全)
查看>>
[BZOJ]4644: 经典傻逼题
查看>>
jpa batch批量操作save和persist比较
查看>>
Vue中watch的简单应用
查看>>
js随机生成验证码(数字+字母)
查看>>
Android 自定义 View 浅析
查看>>
Pair Project: Elevator Scheduler [电梯调度算法的实现和测试]
查看>>
链表和数组的区别在哪里?
查看>>
打log
查看>>
Spring AOP 在XML中声明切面
查看>>
关于log4j的配置文件
查看>>
我是一个线程
查看>>
【转】escape,encodeURI,encodeURIComponent有什么区别?
查看>>
查找数字
查看>>
http常见的状态码
查看>>
vsCode 需安装的扩展
查看>>
Arraw function
查看>>
switch和if else的区别和应用
查看>>
浏览器BOM模型
查看>>