이것은 어리석은 질문이지만, 쉐이더 프로그래밍에 익숙하지 않으므로 나와 양육하십시오.
각 기술은 여러 패스를 가질 수 있으며 각 패스는 특정 장치 상태와 해당 정점 및 픽셀 셰이더 기능을 연관 시킨다는 점을 이해합니다 (xna 프로젝트의 .fx에서 적어도 hlsl 사용). 이제 내 질문은 : 기술의 패스가 하나씩 차례대로 실행되면 각 패스가 렌더링 파이프 라인을 완전히 통과한다는 의미인가? 두 가지 패스를 사용하는 기술이있는 경우 첫 번째 패스는 응용 프로그램 (VertexBuffer)에 대한 데이터를 가져와 파이프 라인을 통과합니다. 두 번째 패스는 첫 번째 패스가 스패트 한 것과 파이프 라인을 통해 또 한 번갑니다.HLSL Multi-pass
2
A
답변
1
일반적으로 패스는 서로 독립적입니다. 모든 패스는 동일한 입력 지오메트리 (일반적으로 정점 버퍼에 의해 정의 됨)를 사용합니다. 이 기하학으로 수행하는 작업은 다를 수 있습니다.
예. 당신은 두 가지 패스를 가진 기술을 가질 수 있습니다. 첫 번째 패스는 일반적인 방식으로 객체를 그립니다. 두 번째 패스는 객체를 그리지 않지만 법선은 작은 선으로 그립니다. 결과는 법선이 선으로 표시되는 객체입니다.
마찬가지로 여러 패스가 모피, 광선, 후광과 같은 다양한 효과에 사용될 수 있습니다 ... 파이프 라인의 결과는 대개 색상입니다. 이 결과를 다른 셰이더의 입력으로 사용하려면 파이프 라인을 다시 연결해야합니다 (즉, 새 입력 개체, 셰이더 ... 설정).
관련 문제
- 1. 는 HLSL
- 2. HLSL SamplerStates
- 3. HLSL 컴파일러를 찾으려고 시도합니다.
- 4. HLSL 쉐이더로서의 겉감
- 5. HLSL 효과 파일을 사용합니다.
- 6. HLSL 및 DirectX
- 7. 일반 매핑 HLSL 구현하기
- 8. HLSL : 다중 패스 셰이더?
- 9. HLSL : TexCoords가 부족합니까?
- 10. 직접 컴퓨터 hlsl numthreads?
- 11. HLSL Swizzle - in C#
- 12. HLSL 컴파일 속도
- 13. HLSL : 가운데 원 그리기
- 14. HLSL 및 ID3DXFont/ID3DXSprite
- 15. hlsl 행렬 곱셈
- 16. HLSL 색조 변경 알고리즘
- 17. HLSL 예상치 못한 ACOS는
- 18. HLSL 투영 쉐이더
- 19. 곡면에서의 반사 - HLSL
- 20. HLSL 컴파일러 오류?
- 21. 실제 HLSL IDE/디버거
- 22. HLSL 재 텍스처링
- 23. 색상 HLSL DirectX11는
- 24. "이미지 기반 라이트"HLSL
- 25. HLSL/CG의 gl_MultiTexCoord?
- 26. hlsl 도트 기능
- 27. HLSL - 텍스처 합치기
- 28. HLSL 코드가 등록되지 않았습니까?
- 29. XNA 2D Rotation HLSL
- 30. HLSL ID3D11DeviceContext :: UpdateSubresource 오류
명확한 답변을 주셔서 감사합니다.하지만 이제는 의심 스럽습니다. 두 개의 쉐이더로 하나의 쉐이더를 만드는 대신 쉐이더를 만드는 것의 차이점은 무엇입니까? 그것은 단지 물건을 깔끔하게 유지하고 효과에 대한 연결성을주는 것입니까? – Geoffrey91
예, 기본적으로 요점입니다. 객체 렌더링을위한 대부분의 코드는'기술 적용 (패스 적용, 객체 렌더링) '에서 각 패스에 대한 것과 같은 것을 포함합니다. 매번 다른 쉐이더를 적용하는 대신 이렇게하는 것이 더 읽기 쉽습니다. 또한이 기능은 메소드에 캡슐화 될 수 있습니다. –