Shader山下(一)第一个Shader

本文是Shader学习系列的开篇,旨在帮助初学者掌握Unity3D中的Shader基础知识。作者通过创建并解析第一个Shader,介绍了Properties、SubShader、Tags等关键概念,并提供了简单Shader的代码示例,帮助读者理解Shader的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习Unity3D就得学Shader,然而新手学习Shader往往不知道从何处下手,没有找对门,谈何入门。

本系列主要介绍Shader的一些基础知识,希望可以带你找对门,然后入得了门。



本文作者也尚在山脚下,如果走错了路,欢迎指正。


本系列专栏地址:Shader山下

附赠Unity内建Shader下载地址




那么我们就从编写第一个Shader开始。

首先,我们在Unity里创建一个Shader。


双击打开这个shader,shader里的内容我们先不管,直接清空,贴入下面这段代码:

Shader "Custom/BasicDiffuse" {
	Properties {
		_MainTex ("Albedo (RGB)", 2D) = "white" {}
	}
	SubShader {
		Tags { "RenderType"="Opaque" }
		LOD 200
		
		CGPROGRAM
		#pragma surface surf Lambert

		sampler2D _MainTex;

		struct Input {
			float2 uv_MainTex;
		};

		void surf (Input IN, inout SurfaceOutput o) {
			fixed4 c = tex2D (_MainTex, IN.uv_MainTex);
			o.Albedo = c.rgb;
			o.Alpha = c.a;
		}
		ENDCG
	}
	FallBack "Diffuse"
}

这是一个最简单的shader。

Properties里面包含的是shader的属性。以_MainTex为例, _MainTex表示变量名,Albedo(RGB)是在编辑器里显示的名称,2D是它的类型,表示它是一个纹理,white是默认值。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值