栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Unity3D

Unity URP---Unlit模板

Unity3D 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity URP---Unlit模板

Shader "Custom URP/Unlit"
{
	Properties
	{
		[MainTexture] _BaseMap("Base Map", 2D) = "white" {}
		[MainColor] _BaseColor("Base Color",Color) = (1.0,1.0,1.0,1.0)
	}

	SubShader
	{
		Tags { "Queue" = "Geometry" "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" }
		LOD 100
		
		Pass
		{
			HLSLPROGRAM
			#pragma vertex UnlitVertexPass
			#pragma fragment UnlitFragmentPass	
			
			//核心库
			#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"			

			struct Attributes
			{
				float4 positionOS : POSITION;
				float2 baseUV : TEXCOORD0;
			};

			struct Varyings
			{
				float4 positionCS : SV_POSITION;
				//没有具体意义的语义可以自定义
				float2 baseUV : VAR_BASE_UV;
			};
						
			TEXTURE2D(_BaseMap);
			//贴图对应的采样器:samper+贴图变量名
			SAMPLER(sampler_BaseMap);
			//还可以声明如下
			//SAMPLER(sampler_linear_clamp);
			
			//SRP批处理需要把数据实例数据放到一个Buffer里
			CBUFFER_START(UnityPerMaterial)
				float4 _BaseMap_ST;
				float4 _BaseColor;
			CBUFFER_END

			Varyings UnlitVertexPass(Attributes input)
			{
				Varyings output = (Varyings)0;
				output.positionCS = TransformObjectToHClip(input.positionOS.xyz);
				output.baseUV = TRANSFORM_TEX(input.baseUV, _BaseMap);
				return output;
			}

			float4 UnlitFragmentPass(Varyings input) : SV_Target
			{
				float4 baseMap = SAMPLE_TEXTURE2D(_BaseMap, sampler_BaseMap,input.baseUV);
				float4 baseColor = _BaseColor;
				return baseMap * baseColor;
			}
			ENDHLSL
		}
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/900636.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号