현재 두 개의 프로그램이 있습니다. 실선과 버텍스 쉐이더 - 솔리드 및 쉐이더 - 솔리드 - 솔리드로 채우는 프로그램과 텍스처 용 버텍스 쉐이더 및 텍스처 용 프래그먼트 쉐이더가 있습니다. 나는 드로잉 할 것인지에 따라 glUseProgram을 사용하여 두 프로그램을 교환했다. 이것은 좋은 해결책입니까? 또는 단일 프로그램에서 glAttachShader/glDetachShader를 사용해야합니까?OpenGL ES 2.0 - 다중 프로그램 또는 셰이더
1
A
답변
2
확실히 올바른 솔루션을 사용하고 있습니다. 다른 프로그램을 바인드하는 것은 오버 헤드가 낮아야합니다. 당신은 분명히 어떤 상태 변화처럼 필요 이상으로 그것을하고 싶지 않습니다. 예를 들어, 하나의 프로그램을 사용하는 모든 것을 먼저 렌더링 한 다음 다른 프로그램을 바인드하고이를 사용하는 모든 프리미티브를 렌더링하면 다른 셰이더를 더 자주 바인딩하는 것보다 바람직합니다.
다른 셰이더를 프로그램에 첨부한다는 것은 다시 연결해야한다는 것을 의미합니다. 다른 프로그램을 바인딩하는 것보다 훨씬 비쌉니다.
관련 문제
- 1. OpenGL ES 2.0 셰이더 회전 당 정점
- 2. OpenGL 또는 OpenGL ES
- 3. opengl 2.0 es 거리보기
- 4. OpenGl es 2.0 GLSL fragmentColor 다중 텍스처
- 5. OpenGL ES 2.0 - Drawing Parallels
- 6. OpenGL ES 2.0 : glGetAttribLocation은 -1을 반환합니다. 셰이더 최적화?
- 7. 는 OpenGL ES 2.0
- 8. openGL ES 2.0 육각형
- 9. OpenGL ES 2.0 텍스처링
- 10. OpenGL ES 2.0 멀티 스레드
- 11. iPhone에서 OpenGL ES 1.1 또는 2.0
- 12. 는 OpenGL ES 2.0 GPU는
- 13. OpenGL ES/2.0 : glEnableVertexAttribArray의 범위는 무엇입니까?
- 14. Android 2.0 및 OpenGL ES 2.0 지원
- 15. OpenGL ES 2.0 Texture2D 인덱싱
- 16. 모델이 보이지 않습니다. OpenGL ES 2.0
- 17. iOS에서 OpenGL ES 2.0 초기화
- 18. OpenGL ES 2.0 텍스처 설정
- 19. 다중 뷰포트 OpenGL ES
- 20. 셰이더 프로그램 (ES 2) 전환에 대한 질문
- 21. OpenGL ES 2.0 SkyBox를 만드시겠습니까?
- 22. 투명도 점선 OpenGL ES 2.0
- 23. OpenGL ES 2.0 iPad의 안면색
- 24. OpenGL ES 2.0 여러 장면
- 25. 움직이는 객체 OpenGL Es 2.0
- 26. OpenGL ES 2.0 glMultMatrixf 구현
- 27. OpenGL ES 2.0 정크 텍스처로드
- 28. opengl es 2.0 텍스처 로딩
- 29. android opengl es 2.0 번개?
- 30. OpenGL Es 2.0 Shader Manager