unity shader 固定管线实例(五) 简单的玻璃效果
2016-02-18 09:48
465 查看
Shader "基础/简单的玻璃效果" { //-------------------------------【属性】--------------------------------------- Properties { _Color ("主颜色", Color) = (1,1,1,0) _SpecColor ("高光颜色", Color) = (1,1,1,1) _Emission ("光泽颜色", Color) = (0,0,0,0) _Shininess ("光泽度", Range (0.01, 1)) = 0.7 _MainTex ("基础纹理 (RGB)-透明度(A)", 2D) = "white" {} } //--------------------------------【子着色器】-------------------------------- SubShader { //【1】定义材质 Material { Diffuse [_Color] Ambient [_Color] Shininess [_Shininess] Specular [_SpecColor] Emission [_Emission] } //【2】开启光照 Lighting On //【3】开启独立镜面反射 SeparateSpecular On //【4】开启透明度混合(alpha blending) Blend SrcAlpha OneMinusSrcAlpha //--------------------------【通道一】------------------------------- // 说明:渲染对象的背面部分 //---------------------------------------------------------------------- Pass { // 如果对象是凸型, 那么总是离镜头离得比前面更远 Cull Front //不绘制面向观察者的几何面 SetTexture [_MainTex] { Combine Primary * Texture } } //----------------------------【通道二】----------------------------- // 说明:渲染对象背对我们的部分 //---------------------------------------------------------------------- Pass { // 如果对象是凸型,那么总是离镜头离得比背面更远 Cull Back //不绘制背离观察者的几何面 SetTexture [_MainTex] { Combine Primary * Texture } } } }
第一个pass,先渲染背面,第二个pass,再渲染前面。防止背面显示在前面上面。
参考 摘录
http://blog.csdn.net/poem_qianmo/article/details/41923661
相关文章推荐
- Unity Invoke("方法名",延迟时间)
- unity shader 固定管线实例(四) 渲染不一样的背面
- unity shader 固定管线实例(三) 光照 自发光混合 纹理混合
- [Unity3D]C# 调用C++ DLL
- unity, standard shader消耗两个draw call
- Unity知识二:显示和隐藏游戏对象
- 使用MonoBehaviour创建xml文件
- Unity知识一:简单的点击事件
- unity3D中使用Socket进行数据通信
- unity3D中使用Socket进行数据通信(二)
- 初识Unity
- Unity全景项目经验Q&A
- Unity中预览lua脚本
- Unity3d 纠正上一篇协程讲解的错误
- Unity_UGUI判断鼠标或者手指是否点击在UI上(三)
- Unity_UGUI研究院之UI的深度学习(二)
- Unity3d中语音识别遇到的哪些事
- Unity 相关经典博客资源总结(持续更新)
- Unity是怎样实现Bloom Image Effect的
- Unity_UGUI学习图集与使用(一)