오류수정
This commit is contained in:
61
Assets/03_Shaders/PlatformOccluder.shader
Normal file
61
Assets/03_Shaders/PlatformOccluder.shader
Normal file
@@ -0,0 +1,61 @@
|
||||
// 색을 하나도 쓰지 않고 깊이만 기록하는 사각형.
|
||||
//
|
||||
// 캐릭터보다 "먼저"(Queue 를 앞당겨) 그리고 캐릭터보다 카메라에 "가깝게" 두면,
|
||||
// 이 사각형이 덮은 픽셀에서 캐릭터가 깊이 테스트에 탈락해 아예 그려지지 않는다.
|
||||
// 그리면서 색을 안 쓰므로(ColorMask 0) 창의 알파도 건드리지 않는다 —
|
||||
// 그 자리는 투명한 채로 남고, 실제 데스크톱 창이 그대로 비친다.
|
||||
// 결과적으로 캐릭터가 창 "뒤"에 있는 것처럼 보인다.
|
||||
//
|
||||
// 알파를 0 으로 덮어쓰는 방법도 있지만, 그건 그 자리에 그려진 다른 것까지 같이
|
||||
// 지운다. 깊이 마스크는 캐릭터만 가리므로 부작용이 없다.
|
||||
Shader "MyCharacterAgent/PlatformOccluder"
|
||||
{
|
||||
SubShader
|
||||
{
|
||||
// Geometry(2000) 보다 앞이라 캐릭터보다 먼저 그려진다.
|
||||
Tags
|
||||
{
|
||||
"RenderType" = "Opaque"
|
||||
"Queue" = "Geometry-100"
|
||||
"RenderPipeline" = "UniversalPipeline"
|
||||
}
|
||||
|
||||
Pass
|
||||
{
|
||||
ColorMask 0 // 색 버퍼에 아무것도 쓰지 않는다
|
||||
ZWrite On // 깊이만 남긴다
|
||||
ZTest LEqual
|
||||
Cull Off // 사각형이 뒤집혀도 동작하게
|
||||
|
||||
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 positionCS : SV_POSITION;
|
||||
};
|
||||
|
||||
Varyings vert(Attributes input)
|
||||
{
|
||||
Varyings output;
|
||||
output.positionCS = TransformObjectToHClip(input.positionOS.xyz);
|
||||
return output;
|
||||
}
|
||||
|
||||
half4 frag(Varyings input) : SV_Target
|
||||
{
|
||||
return 0; // ColorMask 0 이라 어차피 버려진다
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
|
||||
Fallback Off
|
||||
}
|
||||
9
Assets/03_Shaders/PlatformOccluder.shader.meta
Normal file
9
Assets/03_Shaders/PlatformOccluder.shader.meta
Normal file
@@ -0,0 +1,9 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bec1d474e5384404eab44f2400f6d7b8
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
nonModifiableTextures: []
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user