안드로이드 – OpenGL ES에서 숨겨진 선을 제거한 와이어 프레임 메시를 그리려면 어떻게해야합니까? :: OPEN GL ES[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

OPEN GL ES
[1]
등록일:2019-12-10 10:49:21 (0%)
작성자:
제목:안드로이드 – OpenGL ES에서 숨겨진 선을 제거한 와이어 프레임 메시를 그리려면 어떻게해야합니까?
그려야하는 입방체 :

위의 큐브는 glPolygonMode (GL_FRONT_AND_BACK, GL_LINE) 함수를 사용하여 OpenGL에서 쉽게 생성 할 수 있지만 OpenGL ES에는 사용하려는 함수가 포함되어 있지 않습니다.
한마디로 다음과 같이 큐브를 그리지 않습니다.

나는 도움을 줄 수있는 사람들에게 감사하고 싶다.

============== 최소한 그림 업데이트 ========================================================================================= =====

뒤쪽 가장자리는 앞쪽 가장자리보다 약간 더 얇습니다. 이 문제를 해결할 수있는 해결책이 있습니까?

현재 코드 :

    GLES20.glEnable(GLES20.GL_DEPTH_TEST);
    GLES20.glDisable(GLES20.GL_POLYGON_OFFSET_FILL);
    // Draw edge
    GLES20.glDrawElements(GLES20.GL_LINES, lineIndices.length,
            GLES20.GL_UNSIGNED_SHORT, lineIndexBuffer);

    GLES20.glEnable(GLES20.GL_POLYGON_OFFSET_FILL);
    GLES20.glPolygonOffset(1.0f, 1.0f);
    // Apply background color and draw faces
    GLES20.glUniform4fv(mColorHandle, 1, faceColor, 0);
    GLES20.glDrawElements(GLES20.GL_TRIANGLES, triangleIndices.length,
            GLES20.GL_UNSIGNED_SHORT, triangleIndexBuffer);
우수 답변
다음은 표준 트릭입니다 (깊이 버퍼를 사용한다고 가정).

> 메쉬 가장자리 (선) 그리기
> 메쉬 다각형을 배경색으로 채 웁니다 (숨겨진 선을 감추기 위해).

메쉬 가장자리와 메쉬면이 같은 z 값을 가지기 때문에 z- 파이팅 문제를 해결해야합니다. 가장 간단한 방법은 폴리곤 오프셋을 사용하여 가장자리가 폴리곤면의 “위”에서 약간 “위로 이동”합니다.

gl.disable(gl.POLYGON_OFFSET_FILL)
/* draw polygon edges */
gl.enable(gl.POLYGON_OFFSET_FILL);
gl.polygonOffset(1.0, 1.0);
/* fill polygons in background color */

다음은 z-fighting 문제를 보여주는 와이어 프레임 와인 잔입니다.

여기에서 폴리곤 오프셋을 사용하여 z-fighting 문제를 해결했습니다.

[본문링크] 안드로이드 – OpenGL ES에서 숨겨진 선을 제거한 와이어 프레임 메시를 그리려면 어떻게해야합니까?
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=34901
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.