2011-09-27 6 views
0

Apple 문서 ("특성 배열에 상수 저장 금지"제목 아래)에서 모델의 정점이 모두 동일한 색일 경우 색상이 정점 특성이 아니어야한다고 나와 있습니다. "OpenGL ES 2.0 응용 프로그램은 상수 정점 속성을 설정할 수 있습니다 ..."라는 의미는 무엇입니까?OpenGL 상수 색

내 질문에 색상에 균일 한 값을 사용하는 것이 더 좋으며 호출마다 모든 개체에 대해 동일한 호출과 그리기 호출이 필요합니까? 어쨌든 꼭지점 특성을 갖지만 모든 것을한데 모으는 것이 급습에 빠졌습니다. (또는 더 나은 경우 상수 꼭지점 특성).

기본적으로 여러 함수 호출의 오버 헤드 부족으로 모든 것을 한 번에 그릴 수 있다는 이점이 있습니까?

감각을 얻기 위해서, 나는 매 프레임마다 1000 개의 원을 그리며, 각기 다른 색과 40 개의 정점을 가지고 있다고 말합니다. 이 경우 어느 쪽이 더 낫겠습니까?

+0

@genpfault : 사실 OpenGL ES가 아닌 OpenGL을 사용하고 있습니다.하지만 여전히 적용될 것이라고 생각했습니다. – mk12

답변

3

대답은 한 번의 드로 콜에서 얼마나 많은 재료를 그리는가에 달려 있습니다. 30,000 개의 꼭지점을 가진 객체가있는 경우 모두 동일한 색상을 사용하면 색상 데이터로 인해 버텍스 단위의 데이터가 더 커지게된다고 가정 할 때마다 버텍스 당 많은 읽기 작업을 낭비하게됩니다. 그러나 각 쿼드의 색상이 다른 쿼드 렌더링에 대해 말하면 유니폼 업데이트 오버 헤드와 여러 번의 그리기 호출로 인해 성능이 저하 될 수 있습니다.

인스턴스 당 데이터와 버텍스 데이터를 가질 수있는 OpenGL에서 인스턴스화하는 방법이 있습니다. 그러나 이것은 일반적으로 모델에 수천 개의 인스턴스와 100 개 이상의 정점이있을 때까지 많이 사지 않습니다.

구체적인 예를 들어 어떤 것이 더 빠를 지 알 수있는 방법이 없습니다. 벤치마킹해야합니다.

+0

감사합니다. – mk12