Unity의 RenderTexture의 알파 혼합 고통 이야기

1410 단어 Unity
개시하다
알파가 포함된 렌더텍처를 대상으로 대상을 그리면서 알파가 기대대로 섞이지 않았을 때의 이야기
문제가 되는 행위
다음 장면을 준비합니다.
위쪽 카메라의 객체를 렌더링하고 아래쪽을 흰색 텍스처로 그리는 간단한 장면テクスチャ1,テクスチャ2α0.5,テクスチャ3(黒)α1.0.
위쪽 카메라 안의 무늬 순서는 맨 뒷면 3, 맨 앞 1이다.

구상적 행위
뒷면에 テクスチャ3가 배치되어 있기 때문에 자연 무늬 3이 그려진 범위는 α1이다
유닛 로고가 안 보여요.

실제 행동
그러나 실제 행위가 다르다テクスチャ1テクスチャ2의 α값이 왜 テクスチャ3에 반영되었는가

해결책
해결 방법을 먼저 그렸다면 블렌드Blend SrcAlpha OneMinusSrcAlpha, Zero OneMinusSrcAlpha의 마스크는 렌더텍스터에 낙인된 모든 텍스쳐로, 촬영된 카메라의 비침색(solidColor)은 #000000FF으로 설정했다.
RenderTexture 내용을 그리는 대상(이번에는 아래쪽이 흰 무늬)을 섞어Blend One SrcAlpha주시면 됩니다.
까닭
여기서부터 상상, 알파 혼합은 보통 뒷면에서 앞까지 순서대로 진행된다
RenderTexture에서 묘사한 경우 먼저 RenderTexture 내의 α 혼합을 한 다음에 실제 프레임 버퍼로 묘사할 때 계산한다.
따라서 이번 해법은 렌더텍처 측의 투명색 α값을 1로 삼아 상기 α혼합 설정이 구상한 α혼합식과 결합하는 것이다.

좋은 웹페이지 즐겨찾기