1. 程式人生 > >Unity 之 Shader 面的剔除 Cull

Unity 之 Shader 面的剔除 Cull

面的剔除 Cull

在渲染的時候,預設情況下是隻有朝向攝像機的面才會被渲染,可以告訴Unity,我想渲染哪一個朝向的面,使用Cull命令在計算體積陰影的時候會用到對Cull的操作來計算和物體相交的投影

Cull 有三種
Cull Off 不剔除
Cull Back 剔除背面(背向攝像機的面)
Cull Front 剔除前面 (朝向攝像機的面)

Shader "Custom/PassFive" {
    Properties {
        //定義一個貼圖
        _MainTex ("Base (RGB)", 2D) = "white" {} 
    }
    SubShader 
    {       
        Tags {"RenderType"
= "Opaque" "IGNOREPROJECTOR" = "TRUE" "QUEUE" = "Transparent"} LOD 200 Pass { //AlphaTest Greater 0.6 //AlphaTest Less 0.5 //AlphaTest Greater 0.4 //AlphaTest Less 0.9 Blend SrcAlpha One //Blend SrcColor OneMinusSrcColor
//BlendOp RevSub //ColorMask RG //ColorMask RB //ZTest Greater //Offset -10000, 0 Cull Back // 通過繫結固定通道來使用定點色 BindChannels { Bind "Vertex", vertex // 繫結定點 Bind "Normal"
, normal Bind "Color", color Bind "Texcoord", texcoord0 Bind "Texcoord", texcoord1 } //給材質設定 貼圖 SetTexture [_MainTex] { Combine texture * primary double } } } FallBack "Diffuse" }

這裡寫圖片描述

使用剔除背面 Cull Back 視覺上不會有影響,因為剔除的面是本來就看不見的

下面使用 Cull Front

這裡寫圖片描述