셰이더
라이트맵 베이크하면 URP 셰이더가 까맣게 나오는 이유가 뭘까요?
셰
shadyshaders
1일 전 작성
커스텀 Lit 셰이더 그래프를 소품 여러 개에 쓰고 있어요. 실시간 렌더링에서는 다 잘 나오는데, Generate Lighting을 돌리는 순간 소품이 전부 새까맣게 변해요. 경고도 에러도 콘솔에 안 뜹니다.
제가 커스텀 함수 노드에서 호출하는 라이팅 함수 일부는 아래와 같습니다.
추측으로는 SampleSH가 베이크된 GI를 쓰려면 라이트맵 UV를 직접 넘겨줘야 할 것 같은데, Shader Graph 커스텀 함수 노드에서 깔끔하게 처리하는 방법을 못 찾겠어요. 혹시 겪어보신 분 있나요?
URPLitShader.hlsl
void CustomLighting_float(float3 Normal, float3 Position, out float3 Color)
{
Light mainLight = GetMainLight();
float3 lightDir = normalize(mainLight.direction);
float NdotL = saturate(dot(Normal, lightDir));
// 베이크 후에는 bakedGI가 0으로 나옵니다 — 이게 버그예요
float3 bakedGI = SampleSH(Normal);
Color = mainLight.color * NdotL + bakedGI;
}유니티URP셰이더라이팅
댓글 4개
케
kdev_unity1일 전
Meta Pass 설정 확인해보셨어요? 베이크할 때 그것 때문에 새까맣게 나온 적 있어요.
애
animate_this1일 전
저도 똑같은 문제 겪었는데 결국 Lightmapping 전용 pass를 따로 만들어서 해결했어요.
제
jvfx21시간 전
Shader Graph 프리뷰 창에서는 Baked GI 값이 항상 0으로 나와서 헷갈리기 쉬워요. 실제 빌드에서 한번 찍어보세요.
미
mira_renders17시간 전
혹시 라이트맵 UV 채널(UV2)을 별도로 안 만들어두신 건 아니죠? 그것 때문에도 새까맣게 나온 적 있어요.
댓글을 작성하려면 로그인이 필요해요.