2011-04-29 5 views
1

OpenGL에서 선을 그릴 때 glLineWidth는 선의 길이에 관계없이 고정 크기 선을 만듭니다.OpenGL에서 3D 모양의 선 그리기

나는 그것이 가까울 때 더 커 보이게 될 선을 그려야했다. 자, 사각형을 사용하여이 효과를 얻으면 폴리곤이 충분히 멀리 떨어져 있으면 조금 픽셀 화 된 것처럼 보일 것입니다.

내가 전에 한 것은 라인이 픽셀 크기보다 커질 지점까지 일반 GL_LINE을 그리고 그 지점에서 직사각형으로 계속 진행하는 것입니다. 그러나 매 프레임마다 다시 계산해야했기 때문에 모든 것을 버텍스 배열이나 VBO로 버리는 것만 큼 빠르지는 않습니다.

다른 방법들이 있습니까? 아니면 내가 이걸로 붙어 있니?

+0

고정 기능 또는 프로그래밍 가능 파이프 라인? – genpfault

+0

크기 차이는 얼마나됩니까? –

+0

http://www.falloutsoftware.com/tutorials/gl/gl0.htm에서 3D 효과는 우리 뇌가 단지 3D로 보이게하는 단순한 선으로 나타날 수 있습니다. 왜 실제로 작게 줄을 필요로합니까? –

답변

0

나는 선을 그리는이 같은 계조 텍스처를 사용하려면 :

enter image description here

이 정말 내 텍스처의 알파입니다. 따라서 완전히 불투명 한 중앙 페이딩이 가장자리에서 완전히 투명하게 변합니다. 그런 다음 점이있는 직사각형을 사용하여 선을 그릴 수 있습니다.

(x1, y1,0,0), (x2, y1,1,0), (x1, y2,0,1), (x2, y2 , 1,1)

여기서 각 튜플의 마지막 두 항목은 텍스처의 u 및 v입니다. 그것은 매우 부드럽게 보입니다. 커브 선을 만들기 위해 매우 작은 직사각형을 많이 묶을 수도 있습니다.

+0

어 ... 이것은 2d 드로잉을위한 것입니다. 어쩌면 당신이 원하는 것이 아니었을 것입니다! –

0

라인을 많이 그리는 경우 빠르고 쉬운 깊이 효과를 원하면 안개를 추가하십시오. 그들이 줄면서 줄이 감쇠되면 우리의 두뇌가 3d라고 생각하게됩니다. 니어 엔드가 이면 실제로 뷰어에 가까운 인 경우에는 작동하지 않습니다.

0

선을 원단에 두껍게하고 원근감을 줄이려면 다각형으로 모델링해야한다고 생각합니다.