뭔 셰이더를 짜려면
기본형부터 시작해야 하는데 자꾸 찾기 힘들어서 여기 백업.
Shader "Example/URPUnlitShaderBasic"
{
Properties
{ }
SubShader
{
Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" }
Pass
{
HLSLPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
struct Attributes
{
float4 positionOS : POSITION;
};
struct Varyings
{
float4 positionHCS : SV_POSITION;
};
Varyings vert(Attributes IN)
{
Varyings OUT;
OUT.positionHCS = TransformObjectToHClip(IN.positionOS.xyz);
return OUT;
}
half4 frag() : SV_Target
{
half4 customColor = half4(0.5, 0, 0, 1);
return customColor;
}
ENDHLSL
}
}
}
여기서부터 시작하면 됩니다. 빨강셰이더 . 기본형.
하지만 흔히 쓰는건 또 다르죠.
텍스쳐 한 장은 가지고 시작하는게 기본이지 않습니까?
그래서 텍스쳐 한 장 가지고 시작하는걸 만들어 놓았슴다. 여기서 시작하시죠
Shader "TextureBasic"
{
Properties
{
[MainTexture] _BaseMap("Base Map", 2D) = "white" {} //[MainTexture]는 없어도 되는데 옛날 _MainTex와의 자동호환을 위해 둔 것 같음
}
SubShader
{
Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" }
Pass
{
HLSLPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
CBUFFER_START(UnityPerMaterial)//C버퍼 시작
float4 _BaseMap_ST;
CBUFFER_END//C버퍼 끝
TEXTURE2D(_BaseMap);//텍스쳐 오브젝트
SAMPLER(sampler_BaseMap);//샘플러
struct Attributes
{
float4 positionOS : POSITION;
float2 uv : TEXCOORD0;
};
struct Varyings
{
float4 positionHCS : SV_POSITION;
float2 uv : TEXCOORD0;
};
Varyings vert(Attributes IN)
{
Varyings OUT;
OUT.positionHCS = TransformObjectToHClip(IN.positionOS.xyz);
OUT.uv = TRANSFORM_TEX(IN.uv,_BaseMap);
return OUT;
}
float4 frag(Varyings IN) : SV_Target
{
float4 final = SAMPLE_TEXTURE2D(_BaseMap,sampler_BaseMap,IN.uv);
return final;
}
ENDHLSL
}
}
}
반응형
'Shader ' 카테고리의 다른 글
ShaderGraph 에서 Additional Light 받아오기 (2) | 2024.08.31 |
---|---|
픽셀셰이더에서 앞뒷면 가리기 (0) | 2024.08.13 |
빌보드(Billboard)를 만들어 봅시다 3부. 마무리해 봅시다 / HLSL버전 (0) | 2024.07.28 |
빌보드(Billboard)를 만들어 봅시다 2부. 이제 진짜 만들어 봅시다 (0) | 2024.07.28 |
빌보드(Billboard)를 만들어 봅시다 1부. 변환 행렬의 비밀 (0) | 2024.07.27 |
댓글