2011-07-30 4 views
3

나는 OpenGL에서 뭔가를 보았는데 막연하게 기억하고있다. (ES가 아니고, 아이폰에서는 v1.0이었고, 내가 이것을 보았을 때, 나는 그것을 사용하지 않았다.) 폴리곤의 어느 모서리가 윤곽선으로 간주되는지 지정하도록했다. 얼굴의 내부를 구성하는 것들. 이와 같이 이것은 전체 모델 (내가하는 법을 알고 있음)의 윤곽선과 같지 않고 평면적 인면의 윤곽을 모든 트리스가 기본적으로 하나의 폴리로 혼합 된 윤곽선과 같습니다. 예를 들어, tri로 구성된 큐브에서 각면은 실제로 두 개의 트리스입니다. 사각형의 윤곽을 렌더링하고 싶지만 얼굴 전체의 대각선은 렌더링하지 않습니다. 육각형과 같은 것. 그것은 4 개의 트리스를 필요로하지만 얼굴에 대한 개요는 하나뿐입니다.OpenGL ES 2.0에서 어떻게 인접한 동일 평면상의면에있는 선을 제외하고 삼각형의 와이어 프레임을 그릴 수 있습니까?

예, 모든면을 동일면으로 공유하는지 확인하기 만하면됩니다. 그러나 내가 '이 줄 윤곽선'이라고 말할 수있는 트라이 메쉬 데이터를 정의 할 때 어딘가에서 보았던 것을 기억할 것입니다. 이 얼굴은 얼굴 안에있는 반면 얼굴. ' 그렇게하면 렌더링 할 때 기본적으로 '내게 와이어 프레임을 주겠다'라는 플래그를 설정할 수 있습니다. 단, 완전한 얼굴의 가장자리를 감싸는 와이어 만 사용해야합니다.

목표는 OpenGL ES 2.0을 지원하지만 내 dev 플랫폼은 iOS 인 모든 플랫폼입니다. 다시 말하지만,이 임은 원래 OpenGL에 있었으며 쉐이더가 장면에 나타나면 감가 상각되었을 수 있습니다. 그러나이 경우에이 기능에 대한 참조를 찾을 수조차 없습니다.

지금 내가 아는 유일한 방법은 하나의 정점 세트를 갖는 것입니다. 두 개의 별도 인덱스 세트 ... 하나는 트리스 렌더링 용이고 다른 하나는면의 와이어 프레임 렌더링 용입니다. 필자가 많은 코딩을 끝내면 정말 고통 스럽습니다. 다시 말하지만 99 %는 라인을 렌더링 할 때 정의 할 수 있습니다.

답변

2

GL_QUADS, glEdgeFlag 및 glPolygonMode는 OpenGL ES에서 지원되지 않습니다.

와이어 프레임을 그리려면 LINES를 사용할 수 있습니다. 숨겨진 선을 얻으려면 먼저 검은 색 채워진 삼각형을 (DEPTH를 켠 상태에서) 그린 다음 GL_LINES를 사용하여 원하는 모서리를 그립니다.

+0

아니요! ES 2.0은 쿼드를 지원하지 않습니다. 게다가 그것은 광장에서만 작동합니다. 나는 코 플레너 트리스 (coplanar tris)가있는 어떤 정의 된 얼굴에서도 작동 할 필요가있다. 다시 말하지만, 실제로 ES 1.0에 없었기 때문에 OpenGL을 보았던 것을 기억합니다. ES 2.0에서 뭔가 추가했다고 기대하고 있습니다. (그러면 다시, 어쩌면 셰이더와 주변이 돌아 오면 감가 상각 된 OpenGL의 일부 일 수도 있습니다. 문제는 내가 확인할 수있는 원래의 것을 찾을 수 없다는 것입니다!) – MarqueIV

+0

죄송합니다. QUADS가 아님을 몰랐습니다. 그곳에. 4 페이지의 http://www.khronos.org/registry/gles/specs/2.0/es_cm_spec_2.0.24.pdf에 "QUADS, QUAD STRIP 및 POLYGON 프리미티브는 지원되지 않습니다." 그러나 LINES는 여전히 지원됩니다. 당신은 그것들을 사용할 수 있습니다. – whoplisp

+0

줄을 사용할 수 있다는 것을 알고 있습니다 ... 그건 문제가 아닙니다. 문제는 트라이가 세 줄로 구성된다는 것입니다. 그러나 정사각형의 경우 두 개의 삼각형 각각은 얼굴의 가장자리에있는 두 개의 선만 있습니다. 셋째, 대각선 빗변이 얼굴 자체에 있습니다. 외곽선 만 지정하는 두 번째 인덱스 집합을 정의 할 필요없이 렌더링 할 수있는 내부면 선이라고 할 수있는 선을 렌더링하는 방법이 있습니다. 그게 내가 다시 찾고, 아무데도 빨리 가려고하는거야. – MarqueIV

관련 문제