2011-10-24 4 views
0

2 차원 좌표 평면, 특히 첫 번째 및 네 번째 사분면 (양수 x 값)에 한정된 점 집합이 있습니다. 나는이 점들을 통해 선을 그릴 수있다.OpenGL - 스윕 표현

또한 이러한 점을 다른 공간의 3D 공간에 선으로 그릴 수 있습니다. 3D 메쉬를 얻을 수 있도록 축 주위, 예를 들어 Y에서 스위핑하는 방법은 무엇입니까? 나는 이것을 사용하는 일반적인 예가 점을 사용하여 Maya에서 라인을 만들고 잔이나 등을 만드는 것이라고 생각합니다.

"Sweep Representation"이라는 용어를 사용하여 검색하는 것으로는별로 보이지 않습니다. 내 교과서에서이 프로세스를 말하는 것입니다. 나는 어떤 종류의 사고 과정이나 가이드 라인을 찾고 있습니다, 저를 인도하십시오!

+2

찾고있는 개념은 일반적으로 "스위핑 곡면"또는 "돌출면"또는 "회전 표면"(특히 축을 중심으로 회전 할 때)이라고합니다. –

+1

가능한 속담 : http : // stackoverflow.com/questions/4117084/opengl-how-to-lathe-a-2d-shape-into-3d/4117489 # 4117489 –

+0

예 드류는 포인트를 생성하는 방법을 설명합니다. 그러나 삼각형 또는 선분을 생성하여 서로 연결해야합니다. – Robinson

답변

2

많은 방법이 있지만 우선적 인 원리가 있습니다 어떤 축을 중심으로 원래의 선을 회전시킨 다음 현재 선에서 다음 선으로 정점을 방출하여 삼각형을 생성하고, 마지막 줄을 첫 번째 줄과 결합하여 모양을 "닫습니다".

개인적으로 나는 꼭지점 버퍼와 인덱스 버퍼를 생성 할 것입니다. 나는 회전 된 선의 점을 정점 버퍼에 저장하면서 Y 축을 중심으로 N 번 선을 회전시킵니다. 그런 다음

, 하나 이상의 라인 스트립에 대한 인덱스 (다중 라인 스트립 그렇지 않으면 다음 한 스트립에서 이동 퇴화 삼각형을 만드는 데 필요한 것 때문에 쉽게)

을 생성 할 알고리즘의 다음 부분 그래서, 여러분이 원래의 선 P와 몇 줄의 선 N에 몇 개의 점을 갖는 정점 버퍼 V를 가지고 있다면, 인덱스 I와 인덱스 I + P, P * N 번을 방출하여 삼각형 스트립을 생성 할 수 있습니다 . 그런 다음 정점 버퍼와 인덱스 버퍼가있는 N 개의 삼각형 스트립을 렌더링합니다.

영리하길 원한다면 하나의 스트립 인덱스를 가진 인덱스 버퍼를 저장하고 렌더링 할 때마다 기본 정점 인덱스에 P를 추가하면됩니다. 많은 인덱스가있는 높은 모자이크 모양의 메쉬에주의하십시오. 일부 카드는 최대 정점 인덱스가 65535이고 다른 카드는 약간 더 큰 카드가 있습니다.

나는 의미가 있기를 바랍니다!

0

당신이 달성하기를 원하는 최종 이미지가 아니라 확실히 이해할 수있는 "선"(직선입니까? 구부러진 "선"입니까? - 이것에 대해서는 명확하지 않습니다) - 그리고 원하는 것이 있습니다. 디스크 나 원뿔과 같은 2 차원의 "메쉬"를 생성 할 수 있도록 축을 중심으로 회전 시키려고합니까?

단순히 glRotatef (A, X, Y, Z)을 시도 할 수 :

"는"당신이 회전하고 싶은 당신이 회전하는 주위의 벡터이다 각도입니다. 당신이 10 배 y 축 주위에 그림을 그릴하려는 경우

따라서, 다음은 다음과 같습니다

for(int i = 0; i<10; i++) 
{ 
    float da = 2.0*3.14/10.0 
    plotLine(); // function for plotting the line once in 3 space 
    glRotatef(da, 0, 1, 0); 
} 

이 선을 그릴 것, 작은 양만큼 전체 그림을 회전 한 다음 줄거리 다시 (이것은 10 회 반복되어 원래의 선이 축 주위로 10 배로 플롯됩니다 - 당신이 달성하려고 시도하는 "메쉬"를 만듭니다.

+0

실제로 그것은 Y 축에 대해 "선"을 반복 할 것이지만 점을 수평으로 연결하지 않을 것입니까? 우주의 "수직"선분 일 뿐이 아닌가? 나는 또한 포인트를 "수평 적으로"함께 가져와야합니다. – Josh

+0

또한 "라인"은 GL_LINE_STRIP을 통해 함께 연결된 사용자 정의 된 포인트의 무리입니다. – Josh

+1

무슨 뜻인지 알 겠어. 그래서 위의 작품, 당신은 단순히 그들 모두가 수평으로뿐만 아니라 연결해야합니까? – drjrm3