나는 항상 생각해 봤던 간단한 질문. 내가 처음에 opengl에 들어서 자, 퍼포먼스를 크게 향상시키기 위해 opengl draw call을 사용하여 "타일"또는 삼각형을 그리는 방법을 찾아야했습니다. 모든 꼭지점을 배열에 넣고 배열을 그려서 그렇게했습니다. 내가 타일을 스크롤 할 때마다 발생하는 한 가지 문제는지도를 얼마나 스크롤했는지에 따라 임의로 배치 된 픽셀이 켜지거나 꺼지는 것을 볼 수있었습니다. 10x10지도에서 약 5-8. 이제 다시 opengl로 돌아 왔고 이번에는 GL_TRiANGLES 대신에 GL_LINE_LOOP를 사용하여 그렸습니다. 이것은 나에게 결코 발생하지 않았지만 그때 GL_LINE_LOOP를 사용할 때 나는 모든 삼각형을 보았습니다. 그러나 그것이 끝났을 때 (왼쪽 아래에서 오른쪽으로, 그래서 오른쪽 상단으로) 거기에서 제가 끝난 곳과 시작한 곳을 연결하는 선이 있습니다. 그 무작위 픽셀의 원인은 이것 때문일까? 아니면 이것과 관련이 없습니다. GL_LINE_LOOP 모드로 인해 끝과 처음을 연결하는 선이 나타나지 않습니까? 아니면지도를 만든 방법과 관련이 없습니다.안드로이드 OpenGL 정점 배열
0
A
답변
1
GL_LINE_LOOP은 전혀 다른 드로잉 모드입니다. 픽셀을 타일에 떨어 뜨리는 이유는 아닙니다. 타일이 촘촘한 메쉬를 그릴 때 픽셀을 놓을 가능성이 가장 큰 이유는 일관되게 정점을 계산하지 않는다는 것입니다. 원칙적으로 정점이 두 개의 인접한 삼각형 (또는 쿼드, 선 등)에 의해 공유되는 경우 그 정점의 부동 소수점 좌표는 모든 그리기 호출에 대해 100 % 동일해야합니다. 그렇게하면 타일들 사이에 틈이없이 긴밀한 메쉬를 렌더링 할 수 있습니다. 당신의 문제는 다른 것일지도 모르지만 ... 아마도 Z 싸움 ..하지만 내 추측은 여기서 언급 한 첫 번째 문제입니다.
관련 문제
- 1. OpenGL은 정점 배열
- 2. 안드로이드 OpenGL 텍스처 매핑은 어떻게 정점 순서의 영향을 받습니까?
- 3. OpenGL ES : 텍스처의 정점 수
- 4. VBO를 사용하여 정점 렌더링 문제 - OpenGL
- 5. OpenGL은 정점 배열 포인터, 구성 요소
- 6. 기본 openGL, 정점 버퍼 및 pyglet
- 7. OpenGL ES : 정점 복제없이 플랫 쉐이딩?
- 8. OpenGL 인스턴스 배열 그리기
- 9. 안드로이드 OpenGL "glMaterialfv"함수
- 10. 안드로이드 OpenGL 스크린 샷
- 11. OpenGL의 정점 제한
- 12. 큐브의 정점 법선
- 13. VBO 정점 버퍼 디버깅
- 14. OpenGL ES - 텍스처가 8 정점 큐브의 모든면을 맵핑합니까?
- 15. iPhone OS에서 OpenGL ES에 선호되는 정점 데이터 형식은 무엇입니까?
- 16. 변환 후 정점 좌표를 얻습니다. OpenGL ES 1.0
- 17. Cocoa와 OpenGL, 배열을 사용하여 GLSL 정점 속성을 설정하려면 어떻게해야합니까?
- 18. 안드로이드 2D OpenGL 라인 동그라미
- 19. 안드로이드 객체 배열
- 20. 안드로이드 Parcelable 문제 배열
- 21. 안드로이드 배열 문자열
- 22. 정점 레이블
- 23. GeneralPath의 정렬 된 정점 얻기
- 24. OpenGL 그리기 목록을 버텍스 배열 또는 VBO로 변환
- 25. 안드로이드 액션 바 버튼 배열
- 26. OpenGL ES - 버텍스 배열 업데이트, 버텍스 추가/제거
- 27. 단일 스레드 OpenGL ES 안드로이드 응용 프로그램
- 28. 안드로이드 및 OpenGL ES에서 문자열을 텍스처로 렌더링
- 29. 안드로이드 opengl-es 빠른 텍스트 렌더링 방법
- 30. 인터리브 버퍼가있는 openGL glDrawElements