热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

unityshader固定管线实例(四)渲染不一样的背面

shader中可以通过Cull,决定渲染前面,后面。例如演示如下:Shader基础渲染不一样的背面{------------------------

shader中可以通过Cull ,决定渲染前面,后面。例如


演示如下:

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 
	{
      
		//---------------------------【通道一】------------------------------
		//		说明:绘制对象的前面部分,使用简单的白色材质,并应用主纹理
		//----------------------------------------------------------------------
        Pass 
		{
			//【1】设置顶点光照
			Material
			{
				Diffuse [_Color]
				Ambient [_Color]
				Shininess [_Shininess]
				Specular [_SpecColor]
				Emission [_Emission]
			}

			//【2】开启光照
			Lighting On

			// 【3】将顶点颜色混合上纹理
			SetTexture [_MainTex] 
			{
				Combine Primary * Texture
			}

        }

		//--------------------------【通道二】-------------------------------
		//		说明:采用亮蓝色来渲染背面
		//----------------------------------------------------------------------
        Pass 
		{
            Color (0,0,1,1)
            Cull Front
        }
    }
}


第一个pass,正常渲染,第二个pass,在基于前面的pass基础之上继续渲染,(注意这里没有剔除front的数据,并且添加了back的蓝色数据,和之前的pass数据相加)

参考 摘录

http://blog.csdn.net/poem_qianmo/article/details/41923661


推荐阅读
author-avatar
liu100897
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有