문제는 다음과 같습니다. 텍스처에 스프라이트를 렌더링하고 화면에 텍스처를 렌더링합니다. 간단 하죠? 그러나 그렇게하면 스프라이트가 렌더링 될 때마다 픽셀의 알파 값과 관계없이 모든 픽셀을 덮어 씁니다. 예 :DirectX에서 텍스처 알파 블렌딩
여기당신은 텍스트 "ABC"두 개의 스프라이트를 볼 수 있습니다. 첫 번째는 오른쪽 상단 모서리에 렌더링되고 두 번째는 Y 오프셋과 함께 렌더링됩니다. 보시다시피, 두 번째 것은 배경 색상으로 덮어 쓰면 안되는 첫 번째 스프라이트의 픽셀조차 무시합니다. 동일한 작업을 수행 할 때 텍스처를 렌더링 한 다음 해당 텍스처를 화면에 렌더링하는 대신 화면에 직접 스프라이트를 렌더링하고 결과는 예상대로이며 두 번째 스프라이트는 덮어 쓸 픽셀 만 덮어 씁니다.
알파 블렌딩이 모든 렌더링 대상에 사용 가능하고 화면 및 텍스처 렌더링에 대한 깊이 테스트가 해제되어 있기 때문에 어떤 일이 일어나고 있는지 잘 모르겠습니다. DirectX interop을 사용하는 Windows Phone 8 - XAML에서 DirectX11을 사용하고 있습니다.
EDIT : 문제를 다시 말하기 비트 : 빨강으로 텍스처를 지우는 경우 화면에 렌더링 할 때 빨간색 화면이 나타납니다. 이제 완전히 빨간 텍스처에 투명 (색상 0,0,0,0) 텍스처를 렌더링합니다. 나는 아무 변화도 기대하지 않을 것이고 스크린에 렌더링 한 후에, 나는 빨간 스크린을 얻을 것이다. 이것은 투명한 스프라이트를 렌더링 할 때와 같지 않습니다. 실제로 텍스처에 색을 (0,0,0,0) 씁니다. 투명 창이있는 빨간색 텍스처를 얻습니다. 그래서 그것을 화면에 렌더링 한 후에, 나는 컬러 스크린이 지워진 것을 볼 수 있습니다. 무슨 일이야?
당신의 접근 방식은 잘 작동합니다. 다른 모든 파이프 라인 상태가 백 버퍼 -RTV와 임시 -Texture-RTV의 경우에서 동일하다고 확신합니까? – MooseBoys
나는 꽤 확신한다. 내가 보는 문제는 각 픽셀이 0 알파 색상으로 덮어 쓰는 배경색 (렌더링 대상을 지우는 데 사용되는 색상)을 확장하는 방식으로 이전 픽셀을 완전히 버리는 것이 가능한지 여부입니다. 빨간색 배경을 가지고 있다고 가정 해 봅시다. 최종 텍스처는 빨간색입니다. 투명도가 높은 스프라이트를 렌더링하면 완전히 빨간색으로 유지되어야하지만 대신 투명 스프라이트가 렌더링되므로 투명감이있는 빨간색 텍스처가 나타납니다. – user1760770