C++ directx 11 SDK를 사용하여 한 번에 두 텍스처로 렌더링하려고합니다. 하나의 텍스처에 결과 이미지의 각 픽셀의 색상 (일반적으로 3D 장면을 렌더링 할 때 화면에 표시되는 색상)과 각 픽셀 및 깊이의 법선을 포함하는 또 다른 텍스처 (보통 3 float 및 1 float 깊이를 위해). 지금 생각해 볼 수있는 것은 두 개의 렌더링 타겟을 만들고 첫 번째 패스를 색상으로 렌더링하고 두 번째 패스는 법선과 깊이를 각각의 렌더링 타겟에 각각 전달하는 것입니다. 그러나 이것은 첫 번째 패스에서 각 픽셀의 색, 일반 및 깊이의 정보를 얻을 수 있으므로 시간 낭비로 보입니다. 어떻게 든 픽셀 쉐이더로 두 텍스처를 출력하는 방법이 있습니까?directx에서 한 패스로 여러 텍스처에 렌더링하기
도움을 주시면 감사하겠습니다.
P. 나는 픽셀 쉐이더에서 RWTexture2D 또는 RWStructuredBuffer 라인을 따라 뭔가를 생각하고있다. 약간의 배경 : 계산 쉐이더에서 추가 처리를 위해 두 이미지가 필요합니다. 어떤 측면에서 동기화의 문제가 생깁니 까? : 픽셀 쉐이더 (계산 쉐이더와 달리)가 한 번에 하나씩 각 픽셀을 씁니다. 픽셀 쉐이더가 완료되면 어떻게 알 수 있고 계산 쉐이더에게 이미지 후 처리를 시작하도록 알릴 수 있습니까?
감사합니다. 특히 링크를 위해. 그것들이 얼마나 도움이되는지 상상할 수 없습니다. 다시 한번 감사드립니다. 그건 그렇고, "깊이 버퍼"는 픽셀 셰이더의 SV_Depth 값을 의미합니까? (나는이 책을 어딘가에 읽었을 것이라고 생각하지만, 너무 확신하지는 않는다.) +1 그리고 대답을 받아 들였다. – l3utterfly
probs 없음. SV_Depth는 자신의 깊이 값을 쓰고 싶다면 PixelShader raytracers의 깊이 또는 일부 Texture Array 바이올린과 같은 경우에 유용합니다. 내가 의미했던 것은 DepthStencil 리소스가 Shader Resource View로 바인딩 될 수 있기 때문에 씬에 깊이 버퍼를 바인드 할 것이므로 재사용 할 수도 있기 때문에 무료입니다. – catflier