내 응용 프로그램에는 나중에 쉐도 잉을 위해 뎁쓰 버퍼 만 쓰는 쉐이더가 있습니다. 또한 깊이가 값을 던져 버릴 수 있으므로 깊이가 모든 후속 드로 콜에 영향을 미치지 않는 전체 화면 쿼드를 렌더링하는 다른 셰이더가 있습니다. 응용 프로그램을 가정현대 하드웨어의 glColorMask()/glDepthMask() 성능 향상?
는나는 그림자 맵 쉐이더에 대한 쓰기 컬러 버퍼 (glColorMask(all to GL_FALSE)
)를 사용하지 않으면 내가 어떤 추가 성능을 얻을 수 및 깊이 버퍼가 전체 화면에 대한 (glDepthMask()
에) 작성됩니다, (지금까지 오년 전에 생산) 현대 하드웨어에서 실행 쿼드 쉐이더?
즉, 이러한 함수는 실제로 일부 메모리 연산을 비활성화하거나 렌더링 파이프 라인의이 부분에서 고정 비트 연산 논리에 사용되는 일부 마스크 비트를 변경합니까?
테스트에 관한 동일한 질문입니다. 모든 조각이 깊이 테스트를 통과 할 것이라는 것을 미리 아는 경우 깊이 테스트를 비활성화하면 성능이 향상됩니까?
내 FPS 측정 값은 큰 차이가 없지만 다른 컴퓨터에서 다를 수 있습니다.
마지막으로 깊이/색상 테스트/쓰기가 비활성화되어 렌더링 속도가 빨라지면 얼마나 빨리 실행됩니까? gl 함수 호출 오버 헤드로 인해이 성능 향상이 무효화되지 않습니까?
FBO 상태 변경이 "OpenGL에서 가장 많은 작업 중 무엇입니까"에 대해 자세히 설명해 줄 수 있습니까? – lisyarus
@lisyarus : "왜"는 본질적으로 부적합합니다. [OpenGL 성능 개발에 대해 잘 알고있는 사실] (https://www.youtube.com/watch?v=-bCeNzgiJ8I)입니다. 성능 특성을 변경하기 위해 할 수있는 일은 없습니다. 알고리즘이 허용하는 최선의 방법으로 FBO 변경을 피할 수 있습니다. –