과학적 3D 모델을 시각화 할 때 문제가 발생했습니다. 작업은 색상과 와이어 프레임 오버레이로 채워진 모델을 렌더링하는 것입니다. 닫힌 서페이스가있는 솔리드 인 모델의 경우에는이 방법이 적합합니다.OpenGL : 와이어 프레임 오버레이 은선 제거
문제 # 1 :
나는 렌더링하기 전에 가시성/방향에 대해 아무것도 모른 채 여러 다각형이있다. 모든 폴리곤이 올바르게 표시되도록하려면 모든 폴리곤을 시계 방향으로 그 다음 반 시계 방향으로 그립니다. 와이어 프레임 오버레이와 동일합니다. 이것은 일부 모델에서는 작동하지만 모든 모델에서는 작동하지 않는 것으로 보입니다.
일부 모델은 this처럼 보입니다.
문제 # 2 :
이이 문제 # 1 관련이 있는지 잘 모르겠지만, PolygonOffset 일부 가장자리가 아마 때문에 모델 다각형의 혼합 지향의 나쁜 보이게 : Wireframe edges
** 코드 : **
제한 사항으로 인해 Fortran 77에서 코드를 작성해야합니다. 그럼에도 불구하고 OpenGL 호출은 동일하게 유지됩니다. 다음은 모델 그리기 코드입니다.
c Draw object
do 10 i=1,2
c Select correct orientation
if(ccw) then
call glFrontFace(GL_CCW)
else
call glFrontFace(GL_CW)
endif
c Set object color
call glColor3f(1.0,1.0,1.0)
c Set polygon mode to fill
call glPolygonMode(GL_FRONT_AND_BACK,GL_FILL)
c Set polygon offset and enable offset (float for glPolygonOffset,
c otherwise it won't work)
call glPolygonOffset(1.0,2.0)
call glEnable(GL_POLYGON_OFFSET_FILL)
c Draw object
call glCallList(lindex)
c Disable polygon offset
call glDisable(GL_POLYGON_OFFSET_FILL)
c Reverse orientation
ccw = .not. ccw
10 continue
c Draw Wireframe onto Object
do 20 i=1,2
c Select correct orientation
if(ccw) then
call glFrontFace(GL_CCW)
else
call glFrontFace(GL_CW)
endif
c Set object color
call glColor3f(0.0,0.0,0.0)
c Set polygon mode to wireframe
call glPolygonMode(GL_FRONT_AND_BACK,GL_LINE)
c Draw object
call glCallList(lindex)
c Set polygon mode to fill
call glPolygonMode(GL_FRONT_AND_BACK,GL_FILL)
c Reverse orientation
ccw = .not. ccw
20 continue
기타 정보 : 도려내 기가 설정되었으며 깊이 기능은 GL_LESS입니다.
질문의 형식으로 약간 수정 해 주시면보다 정확하게 답변 해 드리겠습니다. – demongolem
GL_POLYGON_OFFSET_FILL을 사용하여 견고한 객체를 그리고 그 위에 와이어 프레임을 그리는 것처럼 보입니다. 더 간단한 방법으로, 와이어 프레임을 그리기 전에 glDisable (GL_DEPTH_TEST)을 수행 한 다음 그 후에 glEnable (GL_DEPTH_TEST)을 수행하면 GL_POLYGON_OFFSET_FILL이 전혀 필요하지 않습니다. 그리기 전에 glDisable (GL_CULL_FACE)을 수행하면이 못 생기는 glFrontFace (GL_CCW)/glFrontFace (GL_CW) 저글링을 제거 할 수 있습니다. – pelya
답장을 보내 주셔서 감사합니다. 와이어 프레임 드로잉에 대한 심도 테스트를 비활성화해도 문제가 해결되지는 않습니다. 모든 와이어 프레임 선이 모든 모델에 표시되지만 이제는 와이어 프레임 선만 보려고합니다. – user3413372