Unity Shader基础

在Unity中任何Shader都可以通过下方的这个模板进行扩展。


Shader "Custom/BasicShader"{ Properties{ //_Color: 内部需要注册的参数 //Base Color: 给外部提供的接口名称 //Color: 类型 //等号右边表示该类型下的改参数默认值 _Color("Base Color", Color) = (1,0,1,1) _MainTex("Base(RGB)", 2D) = "white"{} } //一个Shader至少要有一个SubShader SubShader{ //全局标签,可选 Tags{ "Queue" = "Transparent" "RenderType" = "Transparent" "IgnoreProjector" = "True" } //全局渲染设置,可选 Blend SrcAlpha OneMinusSrcAlpha //一个SubShader至少有一个Pass Pass{ //名称 Name "Simple" //本Pass中使用的渲染设置 Cull off //撰写CG/HLSL开始标头;如果是GLSL时改成 GLSLPROGRAM CGPROGRAM //需要使用的参数及其简写 #pragma vertex vert #pragma fragment frag //使用到的库 #include "UnityCG.cginc" //使用内部参数名及对应变量类型注册对外提供的接口参数 float4 _Color; sampler2D _MainTex; //自定义结构体 struct v2f{ float4 pos : POSITION; float4 uv : TEXCOORD0; }; //对需要使用的CG/HLSL参数vertex进行实现 v2f vert(appdata_base v){ v2f o; o.pos = UnityObjectToClipPos(v.vertex); // Change the axis from itself to the world space o.uv = v.texcoord; return o; } //对需要使用的CG/HLSL参数fragment进行实现 half4 frag(v2f i) : COLOR{ half4 color = tex2D(_MainTex, i.uv.xy) * _Color; return color; } //撰写CG/HLSL完毕标头;如果是GLSL时改成 ENDGLSL ENDCG } } //默认在任何一个SubShader都不起作用的时候执行 FallBack "DIFFUSE" }

__EOF__

本文作者艾孜尔江
本文链接https://www.cnblogs.com/ezhar/p/13755442.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   艾孜尔江  阅读(140)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示