안녕하세요.Render Texture를 사용하던 중에 문제가 있어 문의 드립니다.Unlit를 에서는 렌더링이 안되서 KeppAlpha Unlit 재질로 사용 햇습니다.아래 보이는것 처럼 눈이 정상적으로 안나옵니다. ( Unlit/Texture )또 다른 사항으로 눈주위에 표현이 안되고 있습니다. ( Unlit/Transparent) 해결 할수 있는 방법을 문의 드립니다. 감사합니다.~
해결되었습니다.~ 감사합니다.
안녕하세요.
렌더 텍스쳐(Render Texture)와 KeepAlpha 재질에 대하여 드립니다.
먼저, 눈부분이 렌더링 되지 않는 문제를 해결하는 방법입니다.
첨부해주신 이미지를 보니, 두개 이상의 카메라가 캐릭터를 렌더링하고 있는 것으로 보입니다.
하나의 카메라는 실제로 렌더링하는 용도이고, 다른 하나는 렌더 텍스쳐에 출력하는 용도로 사용되었을 것으로 생각됩니다.
이렇게 두개 이상의 카메라가 캐릭터를 렌더링을 하게 되면 "클리핑 마스크" 기능이 오작동을 하게 됩니다.
클리핑 마스크는 기본적으로 자신을 렌더링하는 1개의 카메라에 "커맨드 버퍼"라는 렌더 명령을 등록하여 마스킹 처리를 합니다.
그러나 카메라가 2개 이상이 되면 이 커맨드 버퍼를 2개 이상의 카메라에 등록시킬 필요가 생깁니다.
기본적으로는 1개의 카메라만 대상으로 하므로, Bake 과정에서 여러개의 카메라가 있음을 설정해주어야 이 문제를 해결할 수 있습니다.
위와 같이 Bake의 Setting 탭에서 VR Option을 "Multiple Cameras"로 변경하고 Bake를 하면 문제가 해결될 것입니다.
자세한 설명은 다음의 링크의 "렌더 텍스쳐를 포함하여 동시에 렌더링하기" 부분을 확인하시면 되겠습니다.
https://rainyrizzle.github.io/kr/AdvancedManual/AD_RenderTexture.html
(기본적으로 1개의 카메라에만 커맨드 버퍼를 등록하는 것은 성능상의 이유입니다.)
두번째 문제는 KeepAlpha 설정의 단점에 의한 것입니다.
KeepAlpha 속성은 투명한 배경의 렌더 텍스쳐에서의 문제를 해결하기 위한 쉐이더(Shader)의 속성입니다.
하지만 이 쉐이더 속성의 단점은 반투명한 이미지에서 색상 표현이 왜곡될 수 있다는 점입니다.
다만, 제보해주신 색상 왜곡은 이 문제를 처음 알려주신 사용자분께 저희가 알려드렸던 색상 왜곡의 정도보다 심한 정도입니다.
저희가 이 부분을 심각하게 인지하지 못하여 메뉴얼에 설명을 드리지 못하였습니다.
미흡한 설명으로 인하여 불편을 끼쳐 드린 점에 대해 죄송하다는 말씀을 드립니다.
KeepAlpha를 사용하는 쉐이더를 이용하는 경우엔 색상 왜곡을 피할 수 없으므로, 해당 메시의 재질을 변경하는 것으로서 이 문제를 해결할 수 있습니다.
문의 주신 것과 유사한 씬을 구성했습니다.
렌더 텍스쳐에서 눈꺼풀, 코 부분에서 색상이 이상하게 렌더링됩니다.
해당 메시들의 재질을 "KeepAlpha Unlit"에서 기본적인 "Unlit" 재질로 바꿔서 이 문제를 해결할 수 있습니다.
(1) 메시 그룹의 Setting 탭을 선택한 상태에서 문제가 되는 메시를 선택합니다.
(2) Use Default Material Set을 눌러서 OFF로 만듭니다.
(3) Change 버튼을 누르고,
(4) Unlit 재질을 선택하여 적용합니다.
코 메시도 동일하게 변경하면 위와 같이 Unlit 재질이 적용된 것을 볼 수 있습니다.
이제 Bake를 하고 렌더링을 하면 해당 메시들의 색상 문제가 해결된 것을 볼 수 있습니다.
소개드린 이 해결 방법을 이용하는 것은 뒤에 불투명한 메시가 있을 때 가능합니다.
그렇지 않은 경우 투명도가 렌더 텍스쳐의 영향을 받기 때문에 다른 문제가 야기될 수 있습니다.
또한 재질이 다르기 때문에 드로우콜이 증가하므로 최적화에는 좋지 않습니다.
렌더 텍스쳐를 사용하는 경우에는 이미지 리소스를 제작하실 때 이 점을 염두에 두시거나,
KeepAlpha를 사용하지 않는 불투명한 배경의 렌더 텍스쳐를 고려하여,
이 문제가 발생하는 상황 자체를 피하는 것이 가장 좋은 방법으로 생각됩니다.
유니티가 업데이트 될 수록 렌더링 파이프라인이 상당히 많이 바뀌고 있는데,
최신 버전의 유니티에서 이 문제가 해결되면 홈페이지를 통해 그 방법을 소개하도록 하겠습니다.
위 답변으로 문제가 해결되지 않았거나 다른 궁금한 점이 있다면 글을 남겨주세요.
감사합니다.
Eng)
Q. When using a render texture, some meshes are not rendered or the color is weird.
A. If multiple cameras are placed in the scene, you need to turn on the "Multiple Cameras" option in order to properly render the "Clipping Mask".
Color issues cannot be avoided with materials that use KeepAlpha, so set it as the default material.