2013-10-21 12 views
1

SharpDX를 사용 중이고 깊이 버퍼에서 앤티 엘리 어싱을 수행하려고합니다. 나중에 사용하기 위해 깊이 버퍼를 텍스처로 저장해야합니다. 이 텍스처가 Texture2DMS라면 좋은 생각입니까? 아니면 다른 접근 방법을 취해야합니까?DirectX11에서 Texture2D와 Texture2DMS의 차이점

내가 정말 달성하고자하는 것은 : 수퍼

2) 깊이 테스트를 확장

1) 깊이 버퍼

(나는이 논문의 3.2 절에있는 조건 : http://gfx.cs.princeton.edu/pubs/Cole_2010_TFM/cole_tfm_preprint.pdf

+0

포인트 1과 포인트 2의 의미를 명확히 할 수 있습니까? "스케일링"이란 무엇을 의미합니까? 수퍼 샘플링과 관련하여 MSAA는 그 성질 상 항상 수퍼 샘플을 수퍼 샘플링합니다. – MooseBoys

+0

내가 종이에서 그것을 보았 기 때문에 나는 그것이 무엇을 의미하는지 정확히 알지 못하기 때문에 그것을 분명히하는 것이 어렵다. 아마도 그것이 공통된 용어라고 생각했다. 섹션 3.2 (가시성 테스트)의 끝 부분에서이 파일을 찾았습니다. http://gfx.cs.princeton.edu/pubs/Cole_2010_TFM/cole_tfm_preprint.pdf – c4sh

+0

이 백서에 설명 된 회선 렌더링 기술을 구현하려고합니까? 그렇다면 질문 텍스트에이 점을 분명히하십시오. 그렇지 않은 경우, 정상 해상도보다 높은 깊이 버퍼가 필요한 구현 기술인 구현 기법은 무엇입니까? – MooseBoys

답변

1

이 문서에서는 깊이 프리 패스가 필요합니다.이 패스에는 색상이 필요하지 않으므로 렌더 타겟을 언 바운드 상태로두고 "빈"픽셀 쉐이더를 사용해야합니다 깊이의 경우 2x 또는 4x로 Texture2D (MS가 아님)를 만들어야합니다 (또는 몇몇 다른 2N x) 사용하려는 최종 렌더 타겟의 너비와 높이. 이것은 실제로 "슈퍼 샘플링"이 아닙니다 (프리 패스는 실제 픽셀 출력이없는 독립적 인 단계이기 때문에). 그러나 비슷합니다.

두 번째 단계에서이 논문은 프리 패스에서 고해상도 깊이 버퍼의 여러 샘플을 수행해야한다고 요구합니다. 위의 크기 조정을 수행 한 경우 모든 픽셀은 일부 (2N)^2 깊이 값에 해당합니다. 이 값을 읽고 평균해야합니다. 다행히도 SampleCmpCOMPARISON 샘플러 유형을 사용하여 하드웨어 가속화 방법 (PCF라고 함)이 있습니다. 이것은 2x2 스탬프를 샘플링하고, 각 값을 지정된 값과 비교하며 (여기에서 2 단계 계산 된 깊이를 전달하고 엡실론 값 (예 : 1e-5)을 추가하는 것을 잊지 말라) 평균 결과를 반환합니다. 이 픽셀과 관련된 1 단계 깊이 버퍼의 전체 영역을 커버하기 위해 2x2 스탬프를 수행하고 결과를 평균화합니다. 최종 결과는 현재 라인의 척추가 프리 패스의 맨 앞 깊이와 얼마나 일치하는지 나타냅니다. PCF의 부드러운 필터링 동작 때문에 선이 보일 때마다 종이에 설명 된 별칭 "점선"선 효과와 달리 점차적으로 희미 해집니다.

+0

텍스처에 렌더링하고 깊이 정보를 입력하는 방법에 대해 약간 분실했습니다. 어쩌면 나를 도울 수있는 리소스 튜토리얼을 가르쳐 주시겠습니까? 나는 이것을 보았습니다 : http://www.rastertek.com/dx11tut22.html ... 꽤 좋지만 심도가 아닌 정상적인 장면을 렌더링합니다. – c4sh

+0

@ c4sh 텍스처에 깊이를 표현하는 것은 그리 많지 않습니다. 오히려 깊이보기만으로 표준 렌더링 패스를 수행하고 있습니다. 이렇게하면 색상을 렌더링하는 데 오버 헤드가없는 깊이가 정상적으로 작성됩니다. 일반 장면을 한 번 렌더링하고 결과 렌더링 대상 데이터를 사용하지 않고 성능은 향상시키는 것과 같습니다. – MooseBoys