如何增加半透支持
我们在实际项目中,很多情况下渲染都是需要支持半透材质的。
我们之前的shader大家如果尝试过,可能会发现是不支持半透材质的。
我们继续修改之前的示例shader
首先将Tags 中的RenderType 和Queue的值都改为transparent,也就是默认支持半透渲染。
加入Blend指令,用来指明半透物体之间如何混合。
Shader "Mark/Unlit" { //名字
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {} //定义贴图属性
_Color("Main Color", Color) = (1,1,1,1) //定义一个主颜色
}
SubShader {
Tags {"RenderPipeline"="UniversalRenderPipeline" "RenderType"="transparent" "Queue" = "transparent"}
//指明Shader为URP shader
Blend SrcAlpha OneMinusSrcAlpha //半透混合模式
Pass {
HLSLPROGRAM //指明这是一个HLSL代码片段
#pragma vertex vert //定义顶点着色器的函数名
#pragma fragment frag //定义片段着色器的函数名
#pragma target 3.0 //定义支持的opengl的版本
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl&#