픽셀 쉐이더에서 UAV와 같은 텍스처를 사용하여 약간의 실험을하고 있었지만, 같은 텍스처를 다시 바인딩 할 때 다음 드로잉 호출에서 그 효과를 볼 수는 없습니다. SRV.UAV에서 픽셀 쉐이더로 작성하기
예 쉐이더 : 필요한 경우
RWTexture2D<unsigned int> uav;
Texture2D tex : register(t0);
// Vertex Shader
float4 VS(float4 Pos : POSITION) : SV_POSITION
{
return Pos;
}
// Pixel Shader, draw1 warm up
float4 PS(float4 Pos : SV_POSITION) : SV_Target
{
return float4(1.0f, 1.0f, 0.0f, 1.0f); // Yellow, with Alpha = 1
}
// Pixel Shader, we are writing onto the texture by binding it as an UAV, draw2
float4 PS1(float4 Pos : SV_POSITION) : SV_Target
{
if((Pos.x %2) && (Pos.y %2))
{
uav[Pos.xy]=0xFF000000; //some color
}
else
{
uav[Pos.xy]=0x00FF0000; //some color
}
return float4(1.0f, 0.0f, 0.0f, 1.0f);
}
// Pixel Shader, here we are accessing texture as an SRV, draw3
float4 PS2(float4 Pos : SV_POSITION) : SV_Target
{
float4 x = tex[Pos.xy];
return x;
}
나는 응용 프로그램의 소스 코드를 제공 할 수 있습니다.
관련 리소스의 생성 및 바인딩 코드도 제공하십시오. 그래픽 디버거 (Visual Studio one, Nvidia Nsight, AMD PerfStudio 등)를 사용하여 리소스를 검사하고 스크린 샷을 업로드하십시오. 'RWTexture2D'의 정수 형식 일 수 있습니까? 텍스처 형식이 호환 가능합니까? 디버그 레이어가 활성화되어 있고 출력에 경고가 없습니까? UAV/렌더링 대상을 올바르게 바인딩 해제 하시겠습니까? –
Drop
UAV가 PS1에 의해 올바르게 설정되어 있는지 확인 했습니까? (그래픽 디버거를 사용하거나 여분의 코드가있는 경우 0으로 설정, PS1로 그리기, 스테이징으로 복사, 읽기 맵핑, pData 검사) – MooseBoys