Unity Shader 三 卡通特效
来源:互联网 发布:windows生物识别系统 编辑:程序博客网 时间:2024/04/26 06:41
哈哈,今天给大家带来的是卡通shader,其实可能会有很多朋友奇怪,明明是3D的模型,不追求仿真的效果,为什么要弄什么卡通的特效。其实我想说,不为什么玩家喜欢那么我们就要弄。
(别喷我,我实话实说。。。。。。。)好了,实话实说,要知道世界上面是有很多的像博主这样的二次元爱好者(其实就是宅男。。。。。。),在博主眼里萌萌的二次元是超级可爱的,哈哈哈哈哈哈。
好了扯到正题上面了,其实用shader来做卡通特效是有非常多的写法,这里博主就介绍一种使用简单的卡通shader。
Shader "Custom/Toon" { Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _Bump ("Bump", 2D) = "bump" {} _Tooniness ("Tooniness", Range(0.1,20)) = 4 } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM #pragma surface surf Lambert finalcolor:final sampler2D _MainTex; sampler2D _Bump; float _Tooniness; struct Input { float2 uv_MainTex; float2 uv_Bump; }; void surf (Input IN, inout SurfaceOutput o) { half4 c = tex2D (_MainTex, IN.uv_MainTex); o.Normal = UnpackNormal( tex2D(_Bump, IN.uv_Bump)); o.Albedo = c.rgb; o.Alpha = c.a; } void final(Input IN, SurfaceOutput o, inout fixed4 color) { color = floor(color * _Tooniness)/_Tooniness; } ENDCG } FallBack "Diffuse" }
_MainTex ("Base (RGB)", 2D) = "white" {} //这句话的意思是拿到shader面板里面的2D贴图
_Bump ("Bump", 2D) = "bump" {} //这句话的意思是拿到2D的法线贴图
_Tooniness ("Tooniness", Range(0.1,20)) = 4 //这句话的意思是规定一个卡通值
CGPROGRAM //这句话的意思是声明使用CG的函数
#pragma surface surf Lambert finalcolor:final //这句话的意思是使用unity里面自带的Lambert光照模型,并且声明final函数。
half4 c = tex2D (_MainTex, IN.uv_MainTex); // 这句话里面关键的一点就是tex2D()这个函数
这句话的意思是根据这张图片和相应的uv点或者该点的tex2d数值。
o.Normal = UnpackNormal( tex2D(_Bump, IN.uv_Bump)); //这句话的意思是获得法线贴图该点的法向量
color = floor(color * _Tooniness)/_Tooniness; //这句话的意思是先把颜色值和_Tooniness的值相乘向下取整接着除以_Tooniness,使得值被归入到一个已知的集合之中,达到了简化颜色的目的。
好了,最后来给大家展示一下效果,因为图片和模型之类的东西暂时手里面没有现成的,所以暂借一下大神的资源,哈哈哈哈哈(别打我。。。。)
其实卡通特效是有很多实现方式的,还有一种轮廓描边可以更好地体现出效果,这里就留待各位朋友自己去探索了,欢迎大家来和我交流,我的邮箱是609555184@qq.com , 大家也可以来群里面找我344682050,哈哈哈哈哈哈
- Unity Shader 三 卡通特效
- 【Unity Shader】Unity Chan的卡通材质
- 【Unity】卡通风格的Shader(二)
- Unity Shader 闪光特效
- 【Unity Shader实战】卡通风格的Shader(一)
- 【Unity Shader实战】卡通风格的Shader(二)
- 【Unity Shader实战】卡通风格的Shader(二)(2)
- 【Unity Shader实战】卡通风格的Shader(二)
- Unity 扫描特效 HoloTriangles.shader
- Unity Shader 一 激光特效Shader
- 【Unity&特效&Shader】模糊特效资料集合
- Unity自带Shader(一)(卡通着色)
- 【Unity】Unity自带卡通shader(toon shader)分析(一)
- 通过卡通渲染描边shader来学习Unity的Shader写法
- 通过卡通渲染描边shader来学习Unity的Shader写法
- Unity Shader之Logo流光特效
- 进击的Unity特效------Shader目录
- Unity shader实现屏幕模糊特效
- tcp文件复制上传
- 实习面经--网易游戏 游戏测试 v1
- 添加LCD背光驱动
- ubuntu下php调用执行shell脚本
- spring mvc CommonsMultipartResolver文件上传maxUploadSize限制大小
- Unity Shader 三 卡通特效
- Java数据结构与算法之插入排序
- Cisco产品线一览
- LeetCode 189. Rotate Array
- Android 进阶之media
- python re 模块 findall 函数用法简述
- iOS Xcode 常用快捷键
- 所谓 Spinner 组件
- 学习笔记:Java Protocol Buffer的使用和编码原理学习