Posted on 2013-02-26 21:15
eryar 閱讀(3991)
評論(0) 編輯 收藏 引用 所屬分類:
2.OpenCASCADE
曲線和曲面的表示
Curves and Surfaces Representation
eryar@163.com
一、概述 Overview
在學習曲線和曲面時,總是希望將計算結果顯示出來,這樣便于對數學公式形成更直觀的認識,可以借助工具OpenGL來將實現。對于曲線或以使用GL_LINE_STRIP來將曲線上的離散點連接起來形成曲線;對于曲面可以使用三角形或多邊形來將曲面上的離散點連接起來形成曲面。
二、多邊形表示 Polygonal Representation
OpenGL支持一些基本的圖元對象:點、線、三角形、四邊形和凸多邊形。此外,還支持使用求值器(evaluator)來表示高階的曲面片。簡單對象,如長方體可以使用四邊形來表示每個面。建模的部分工作就是確定組成模型的每個多邊形的頂點坐標。為了增加真實性,通常還需要確定頂點或面的顏色、法線、紋理坐標等。
由曲面組成的復雜對象也可使用多邊形(polygons)表示。曲面使用由曲面上的坐標點組成的網格(gridwork或mesh)來表示。當使用大量的多邊形時,就可以逼近真實的曲面了。當用多邊形來表示對象時,相鄰多邊形就可以共享邊。為了確保共享邊渲染時不出現間隙,兩個多邊形的共享邊的端點坐標必須相同。
三、三角形帶Triangle Stripping
OpenGL程序最簡單的提速和節省存儲空間的做法是將三角形和多邊形轉換成三角帶(triangle strips)。若模型對象是由NURBS數據直接產生的或來自其它一些普通幾何體,將三角形連接成三角帶是很直觀的。還需要確定所有的三角形都有正確的方向。如下圖所示:
對于常規的網格(regular meshes),三角形帶應該一條緊接一條,如下圖所示: