이것은 Switch shader program in WebGL과 관련이 있지만 질문을 다시하고 싶습니다. 이제는 문제에 대해 명확하게 알고 싶습니다.glUseProgram 후에 손실/재설정되는 상태는 무엇입니까?
다른 쉐이더 프로그램들 사이를 전환하려고하는데 같은 렌더링에서 쉐이더 프로그램을 바꿀 때 제대로 렌더링되지 않는 것처럼 보입니다. glUseProgram()
을 호출 한 후 상태가 손실되거나 재설정 된 것 같습니다.
통화 후 어떤 상태가 손실되었거나 재설정 되었습니까? 즉, glUseProgram()
이후에 다시 바인딩해야하는 것은 무엇입니까?
조언을 주셔서 감사합니다.하지만 더 일반적인 조언을 원했지만 다시 유니폼을 착용해야합니까, 아니면 자신의 가치를 유지해야합니까? 속성 또는 균일 한 위치가 주어진 프로그램에 대한 가치를 지속합니까? 텍스처링을 다시 활성화해야합니까? 등등. – AshleysBrain
프로그램이 링크 된 후 Attrib 위치와 실제 균일 한 위치 및 값이 유지됩니다. 유니폼 버퍼는 더 많은 프로그램에 바인딩 될 수 있습니다. 고정 기능 파이프 라인을 사용하고 있지 않으므로 텍스처를 다시 활성화 할 필요가 없습니다. – Sam
텍스처 유닛에는 여러 개의 부착 점이 있습니다. 예를 들어 2D 및 3D 텍스처를 바인딩하고 적절한 샘플러 유니폼을 사용하여이 중 하나에 액세스 할 수 있습니다. – Sam