2012-10-17 83 views
0

我想在3D空間中實現具有動態剪裁體積的Cohen-Sutherland算法。 (即有27個區域)。假設我的財產以後這樣的:在OpenGL中使用GL_LINES進行剪裁

glBegin(GL_LINES); 
glVertex3f(x1, y1, z1); 
glVertex3f(x2, y2, z2); 
glEnd(); 
  1. 是作爲默認的剪切自動完成?如果是的話,我如何禁用它?
  2. 我無法在三維空間中找到Sutherland的實現。你知道我在哪裏可以找到它嗎?

原則上任何算法都可以,只要它做3D裁剪。

+1

剪輯在剪輯空間中完成(即將頂點與ModelViewProjection矩陣相乘併除以w)後由硬件完成。你想要做什麼? – Calvin1602

回答

0

好吧,我完全不明白你想達到什麼目的。但這裏是基本的概要,openGL會自動剪切線,這是不可見的。你如何看待它會在屏幕外渲染線條?

如果要實現任意3D空間的裁剪,則必須自己進行數學計算並計算開始點和結束點。你可以輸入到openGL中,這在術語中不會渲染不在屏幕上的位。

+0

大家好,這是一個大學項目,所以我必須這樣做。我想要做的是,在將每個頂點提供給glVertex3f()之前查看每個頂點,並檢查它是否在視口中,即指定的長方體。所以基本上這個想法是在三維空間中檢查線與長方體線之間的交點。但是,我仍然不知道如何實現這樣的算法 – user1684645

+1

[有問題嗎?](http://en.wikipedia.org/wiki/Cohen%E2%80%93Sutherland_algorithm) – rioki