2011-04-19 6 views
2

장면에서 렌더링 된 텍스처에 흐림 효과를 적용하는 셰이더를 작성하고 있습니다. 2 패스로 할 필요가 있으므로 패스 P0에서 가로로 흐리게 만들고 패스 P1에서는 세로 패스를 만듭니다.HLSL : 다중 패스 셰이더?

문제이다

  • 내가 어떻게 통과 P0에서 PS의 출력을 얻고 통과 P1의 PS를 입력으로 보낼 수있는

만약 내가 그것을 하나의 패스에 쓰면 나는 예상 된 결과를 얻었지만 실제로는 2 패스로해야합니다.

아무도 도와 줄 수 있습니까?

내 첫 번째 접근법은 HLSL입니다.

모두에게 감사드립니다!

FOX_ITA

답변

5

당신은 일반적으로 응용 프로그램 논리의 쉐이더 코드의 외부을한다.

  • 첫 번째 패스
  • 에게, P0 수 있도록 대상을 사용 P0
  • 의 결과를 저장 실행하기에 충분히 큰 렌더 타겟/렌더링 가능한 텍스처를 가져옵니다 또 다른 P1의 결과를 저장하는 렌더 타겟을 가져옵니다. 더 이상 후 처리가 필요하지 않은 경우 전체 화면 흐림을 수행하는 경우 일반적으로 후행 버퍼가 사용됩니다.
  • 첫 번째 패스 물론

(당신이 렌더링을 다시 작성하지 마십시오 P1

  • 에 액세스 할 수있는 텍스처 색인/슬롯으로 렌더링 타겟 렌더링 새 대상
  • 바인딩을 사용 프레임 당 한 번 목표. 모든 후 처리 요구를 처리하기 위해 렌더링 대상의 중앙 풀을 사용하고 싶습니다.)

  • +0

    THanks Alexander! 나는 그렇게 할 것입니다! 팁 주셔서 감사! :) – user714921

    +0

    @AlexanderGessler 텍스처를 바꾸는 것은 추가 텍스처를 바인딩해야하기 때문에 일반적으로 느립니다. 내가 틀렸다면 나를 정정하시오. – bluejamesbond