저는 GLKit에 추가 된 새로운 기능을 개선하기 위해 오래된 테스트 코드를 업데이트하려고합니다. 지금까지 GLKViewController를 설정하고 기본적인 모양을 렌더링하기 시작했지만 GLKBaseEffect와 관련된 정보를 찾기 위해 고심했습니다.
GLKBaseEffect 문서 상태 : 초기화시
이 응용 프로그램은 첫 번째는 OpenGL ES 2.0 컨텍스트를 생성하고 현재 수 있습니다. 그런 다음 새 효과 객체를 할당 및 초기화하고 속성을 구성한 다음 prepareToDraw 메서드를 호출합니다. 효과를 바인딩하면 셰이더가 컴파일되어 현재 OpenGL ES 컨텍스트에 바인딩됩니다. 기본 효과를 사용하려면 응용 프로그램에서 정점 데이터를 제공해야합니다. 정점 데이터를 제공하려면 하나 이상의 정점 배열 객체를 만듭니다. 셰이더가 필요로하는 각 속성에 대해 정점 배열 객체는 속성을 활성화하고 정점 버퍼 객체에 저장된 데이터를 가리켜 야합니다.
나는 분별력이 부족합니다.
렌더링 할 각 "모델"에 대해 GLKBaseEffect 객체가 필요합니까? 또는 각 "장면"에 대해 단일 GLKBaseEffect를 사용하고 prepareToDraw를 호출하기 전에 즉석에서 속성을 변경합니까?
게임 엔진 및 렌더러에 대한 튜토리얼을 각 모델에 대해 하나의 GLKBaseEffect를 사용하는 것으로 보았습니다. 그러나 단일 인스턴스로 대신 수행 할 수 있다면 전체적으로 비효율적 인 것으로 보입니다.
설명서를 읽는 것이 가장 좋은 방법 인 것처럼 보이지만 많은 사람들이 여러 인스턴스를 사용하는 것을 보았을 때 나는 이것이 사실이 아니라고 생각하기 시작했습니다.
누구든지이 문제에 관해 밝힐 수 있습니까? GLKit은 여전히 iOS (그리고 나에게)에 대해 상당히 새롭기 때문에 어떤 정보라도 크게 감사 할 것입니다.
통찰력을 제공 할 정도로 GLKBaseEffect를 광범위하게 사용하는 사람이 있습니까? 단일 인스턴스를 사용하거나 여러 인스턴스가 필요한 경우 성능 향상에 대해 궁금합니다. 테스트 앱을 작성하고 관심이있을만한 사람들을 위해 내 결과를 게시하겠습니다. – CaptainRedmuff