2012-09-19 3 views
6

나는 3 가지 방법IBO가 GL_TRIANGLE_STRIP보다 나빠요? 학습 목적을 위해

  1. 표시 목록을 사용하여 영역을 그릴하기로 결정
  2. 미국의 소리 VBO (GL_TRIANGLE_STRIPE)
  3. 바오 VBO와 이보 (GL_TRIANGLES)는

내가 사용하는 것이 읽기 ibo는 프로그램 실행 속도를 향상 시키지만 이것은 사실입니까? 100 개의 슬라이스 및 100 스택의 구형에 대해 두 번째 방법은 40400 버텍스를 생성하고 세 번째는 "19802"를 사용하여 각 32bytes = 659136 바이트를 20598vertices로 저장합니다.

  1. verticesSize = (슬라이스 * 4) * (스택 + 1);

  2. IBO verticesSize = (슬라이스 * 2) * (스택 -1) +2;

그러나 이런 경우 * 4 (부호 INT의 크기) = 475,200 바이트 118,800 (전체면을 만드는 데 필요한 인덱스 수)의 크기 인덱스의 배열을해야! 동안 두번째 방법은 거의

  1. 가 GL_TRIANGLE_STRIP에 GL_TRIANGLES에서 변환 색인 배열 방법 다음 2 방법보다 효율적으로 제공 하는가 6pfs와 3 (1000)을 렌더링하는, 15fps의 1000 개 분야 렌더링?
  2. ibo를 사용한 렌더링 영역이 좋지 않습니까?
  3. 왜 느린가? 인덱스 배열의 순서가 중요합니까?

아니면 내가 완전히 잘못하고 너무 많은 :(누군가가 관심 , 여기 내 코드는 glDrawElements 전화 http://pastebin.com/raw.php?i=74jLKV5M

+0

색인의 순서는 중요 할 수 있으며 꼭지점 가져 오기 캐시와 관련이 있습니다. 하지만 그렇지 않을 수도 있습니다. 코드를 확인하고 다시 생각해 봅시다. – Hannesh

답변

1

잘못이다를 투쟁하는 이유. 카운트 매개 변수를해야 내 코드를 작성 숫자의 숫자가 아닌 인덱스의 수 4. 변경해보기

삼각형 스트립 대신 색인을 사용하는 것이 거의 항상 빨라야합니다. 사실 드라이버가 장면 뒤의 인덱스를 사용하여 삼각형을 렌더링하는 경우 사실 놀랍지 않습니다 스트립도 가능합니다.

의견에서 언급했듯이 색인이있는 순서는 실적에 영향을 줄 수 있습니다. 그러나 귀하의 영역에서 사용하는 색인 ​​패턴이 아마도 가장 최적 일 수 있습니다. 그렇더라도 그 차이는 작습니다.

관련 문제