[UE4] 반투명 머티리얼로 맨 앞의 표면만 그리기

이미지 A를 이미지 B와 같이 만듭니다.
A:

B:

반투명 문제



위의 이미지는 A 쪽이 거동으로서는 옳습니다만, 복잡한 메쉬의 경우 Opacity를 1에 가깝게 하면 묘화 에러가 발생합니다.

정지화면이라고 이해하기 어려울지도 모릅니다만, 안쪽에 있을 것의 면이 앞쪽에 그려져 버리고 있습니다.
이를 피하기 위해 가장 앞쪽에있는 표면 만 그립니다.

방법



먼저 이미 놓은 객체를 Ctrl+C&Ctrl+V로 정확히 같은 위치에 복사합니다.
알기 쉽게 한쪽의 이름을 바꿔 둡시다.

한쪽



객체 세부정보 패널 > Rendering에서,
1.Render in Main Pass의 체크를 해제한다
2.Render Custom Depth Pass 체크하기

이제 Custom Depth에만 그립니다.
이쪽은 Default Material등 불투명의 머티리얼로 해 주세요.

다른 한쪽



Translucent 머티리얼을 할당하고 다음과 같이 노드를 짜서 Opacity 핀에 찔러 넣습니다.
이미 무언가의 처리가 박혀있는 경우는 Multiply로 혼합하면 OK입니다.

h tps://b ぅ에 p 린츠에. 이 m/bぅ에 p린 t/ㅇ v4r5lg1/
이쪽에도 업하고 있습니다.

구체적으로 무엇을 하고 있는지 하면 Custom Depth에 그려진 불투명 객체의 깊이와 미량으로 스케일한 반투명 객체의 깊이를 비교하고 Custom Depth 쪽이 안쪽에 있으면 반투명을 표시, 앞에 있으면 숨기고 있습니다.
스케일하는 이유는 그대로 비교하면 Z Fighting과 같은 오류가 발생하기 때문입니다.

주의점



Custom Depth에 그리는 것은 한 번 더 많은 그리기 부하가 걸린다는 것입니다.
처리 부하를 신경쓰는 경우는 과도한 사용은 추천하지 않습니다.
Depth 그리는 분은 정점수를 억제하는 등 해도 좋을지도 모릅니다.

참고 링크



여기 포럼에서 검증된 내용을 참고했습니다.
https://forums.unrealengine.com/development-discussion/rendering/18285-translucent-water-material-displacement-banding-issue?45945-Translucent-Water-Material-Displacement-Banding-Issue=

좋은 웹페이지 즐겨찾기