学习100个Unity Shader (15) ---透明+双面渲染

文章目录

效果

shader

c 复制代码
Shader "Example/AlphaBlendBothSided"
{
  Properties
  {
    _Color ("Main Tint", Color) = (1, 1, 1, 1)
    _MainTex ("Texture", 2D) = "white" {}
    _AlphaScale ("Alpha Scale", Range(0, 1)) = 1
  }
  SubShader
  {
    Tags {"Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent"}
    // Pass的先后顺序有影响
    //渲染后面
    Pass
    {
      Tags{"LightMode" = "ForwardBase"}
      Cull Front
	  同透明图混合
    }
    //渲染前面
    Pass
    {
      Tags{"LightMode" = "ForwardBase"}
      Cull Back
      同透明图混合
    }
  }
  Fallback "Transparent/VertexLit"
}

理解

使用透明度混合关闭了深度写入,所以需要两个Pass,一个只渲染背面先执行,另一个后渲染之渲染前面。
Cull <state> 设置 GPU 应该基于多边形相对于摄像机的方向剔除哪些多边形。

参数 功能
state Back 剔除背对摄像机的多边形。这称为背面剔除。这是默认值。
Front 剔除面向摄像机的多边形。这称为正面剔除。使用它可翻转几何体。
Off 不根据面朝的方向剔除多边形。可用于实现特殊效果,如透明对象或双面墙。

Cull 可以写在SubShader下,也可以写在Pass下,作用域不同

参考

《Unity Shader 入门精要》冯乐乐
ShaderLab 命令:Cull

相关推荐
不知名的老吴2 小时前
Unity3D 2022安装教程及全流程下载步骤指南
unity·游戏引擎
Thomas_YXQ2 小时前
Unity3D Addressable 深度优化热更性能消耗
开发语言·3d·unity·微信
程序员也有头发2 小时前
如何使用AI工具开发Unity
unity·游戏引擎·ai编程
隔窗听雨眠2 小时前
从零开始的游戏开发入门指南
unity
sinat_384503113 小时前
【无标题】
unity·webgl
caimouse3 小时前
Godot 引擎官方常见问题(FAQ)整理
游戏引擎·godot
一锅炖出任易仙3 小时前
创梦汤锅学习日记day29
学习·ai·ue5·游戏引擎
隔窗听雨眠3 小时前
Unity与Simulink联合仿真:实现无人机目标追踪系统
unity·无人机·cocos2d·simulink
故渊at3 小时前
第三板块:Android 图形渲染与窗口体系 | 第十四篇:View 绘制体系与 RenderThread 异步渲染
android·图形渲染·ui线程·renderthread·view体系
winlife_4 小时前
全程用 AI 做一款商业级手游 · EP10 道具系统:让三个按钮真正改变棋盘
windows·算法·unity·ai编程·游戏开发·mcp·玩法系统