glUseProgram()은 얼마나 빠릅니까? 더 좋은 일이 있나요 (빠른)? 여기glUseProgram() 및 속도 이후의 유니폼 동작
내 생각은 다음과 같습니다
- 사용 1 개 보편적 인 쉐이더 프로그램 만 이상의
- 사용 이상 (각 그래픽 클래스에 대한 설정) 많은 입력 설정 및 속성 각 그래픽 클래스마다 1 개의 셰이더
셰이더 프로그램을 변경 한 후 유니폼은 어떤 상태입니까? 값 (예 : 행렬 값)을 저장합니까?
- 사용하지 않습니다 glUseProgram()
과 # 2의 장점 :
- 없음 여기 내가 할 # 1의 장점을 고려 무엇인가 행렬 변경 (예 : 클래스
Menu
및 클래스Scene3D
에 다른 투영 행렬이있는 경우)
"두 옵션 중 무엇이 더 큰지는 주로 셰이더의 기능에 달려 있습니다."- 작업은 간단합니다 - 효과없이 텍스쳐로 렌더링합니다 (일부는 셰이더 효과가 있어야 함). –
일부는 매우 간단하고 일부는 효과가있는 경우 텍스처 만있는 간단한 쉐이더 (openg gl 2.x 이상을 가정)와 효과 클래스 당 하나를 사용합니다. 그러나 실제로 더 많이 알지 못하면 판단하기가 어렵습니다. 아마도 큰 그림에서는별로 중요하지 않을 것입니다. 성능에 문제가없고 그것이 상태 변경으로 인한 것이 아니라면 더 편리하게 작업하십시오. – haffax
유니폼 버퍼 개체를 사용하여 프로그램간에 유니폼을 공유 할 수 있습니다 (예 : [Shared Uniforms] (http://arcsynthesis.org/gltut/Positioning/Tut07%20Shared%20Uniforms.html) 참조). – stativ