渲染求交演算法
㈠ 求高手解釋GPU渲染和軟體渲染的區別
渲染
有兩種
時時渲染,和最終渲染
顯卡的工作,換句話說
顯卡的職責,顯卡最初的設計理論,當初為什麼要設計,發明顯卡
是為了解決3D時時加速的。
在當時的應用就是游戲,和3D應用。顯卡的工作就是多邊形生成和紋理貼圖。
在3DMAX中間
4個透視窗口中我們建立模型是依靠顯卡gpu進行運算的,時時計算3D加速
支持opengl或者D3D
這些都是時時渲染加速,不支持復雜的光照運算。
之所以顯卡不支持復雜光照運算是由於顯卡的構造而決定了。
我舉個例子
畫筆和圖案印章
。同樣畫圖
很顯然圖案印章的效率明顯比畫筆快,壓以下一個圖案,但是印章的局限就是圖案簡單,也就是說它只能畫出gpu本身所支持的演算法,也就是幾個簡單的加減乘除,和函數計算(gpu只繼承了這些演算法)
gpu就是圖案印章。
畫筆
我不說你也應該知道它就是cpu了
雖然畫畫速度慢
但是他想畫什麼就能畫什麼,只要軟體支持。因為cpu的指令集非常豐富,能進行軟體所支持的任何計算,無論是加減乘除還是復雜的函數運算,根號運算都支持。
而這個就是渲染最終效果圖所需要的。
即使現在的游戲,光影都是由cpu負責的,
顯卡的工作就是多邊形生成
和文理貼圖,
不具備光影處理能力。
現在的游戲中
光影都是假光影,物體的反射都是材質貼圖,也就是說鏡子所反射的不是周圍的物體
而是製作了一個周圍物體的貼圖給了鏡子。
從D3D9以後
顯卡能夠多一點的分擔cpu的負擔
集成的更多的指令集和函數流水線,但是他畢竟是用來加速時時3D的
所以流處理器的個數才是最重要的。1個流處理器就是一個cpu
只不過指令集和功能比cpu少的可憐。
無論是專業顯卡還是中等的圖形工作站
顯卡都不參與效果圖渲染。
即使以後顯卡能夠渲染效果圖了,我們也不會使用顯卡渲染
因為CPU體積比顯卡小多了,大型伺服器
超級計算機
圖形渲染集群都是成千上萬的CPU組成的
一般一部伺服器
安裝了500
600個CPU,如果換成顯卡,那體積不得了。而且用途也不廣泛,CPU是萬能的。
㈡ 求一篇畢業論文,關與計算機應用的,最好不少與2000字,如果有,麻煩粘貼過來,謝謝……
GPU光線跟蹤演算法加速結構研究
摘要:基於GPU的光線跟蹤演算法是當前圖形學研究的一個熱點,也是將來用於廣告、電影、游戲等娛樂產業的關鍵技術。本文論述了如何對基於GPU的光線跟蹤演算法進行實現,以及利用各種加速結構,加速演算法實現,提高演算法執行效率,並對各種加速結構的效果進行了比較研究。
關鍵詞:GPGPU 光線跟蹤 BVH KD-Tree
1.引言
近年來,CPU無論在運算能力,還是在可編程性上都得到了大幅的提高,GPU已經在需要大量運算的密集運算領域發揮了舉足輕重的作用。各種基於CPU的密集運算被移植到GPU上,以利用GPU巨大的運算能力,加速整個演算法的運算過程。光線跟蹤演算法是生成真實感圖形的一種非常重要的方法,在電影、游戲、廣告等產業,獲得廣泛的應用,而光線跟蹤演算法也是典型的密集運算演算法,利用原始的基於CPU的光線跟蹤渲染一幅圖片是非常耗時的操作。因此,如果能夠將CPU上的光線跟蹤演算法,映射到CPU上,加速光線跟蹤演算法的執行時間,將會帶來巨大的經濟效益。因此,基於CPU的光線跟蹤演算法已成為國內外科研人員的研究熱點。
2.基於GPU的光線跟蹤
2.1 相關工作
當前,主要由兩種方法利用CPU來加速光線跟蹤演算法。第一種是Carr等人提出來的,將CPU轉換為一個蠻力的執行光線一三角形求交的計算器,而將任何的光線生成以及著色過程在CPU上完成。這就需要CPU依然執行絕大部分的渲染工作。C arr等人指出,在ATI Radeon 8500上,每秒最快能夠執行1億2千萬次的光線一三角形求交。同時,作者也指出,由於GPU的單精度浮點的限制,圖片上依然存在一些不太真實的地方。
第二種方法由Purcell等人提出的,改種方法將整個光線跟蹤器都移植到CPU上進行實現。從光線的產生,加速結構的遍歷,到最後的著色過程都在GPU上執行。此後,有很多相同的項目都是基於Purcell的模型上進行的。
2.2 GPU上的光線跟蹤演算法的映射方式
將傳統的CPU上執行的光線跟蹤演算法,映射成為一個GPU協助的,或者基於GPU的光線跟蹤器有眾多方法。下面重點介紹Purcell提出的映射模型,以及在本文的實現中提出的一個基於CPU的Whitted模型的光線跟蹤器。該光線跟蹤器的布局如圖2.1所示:
在Purcell的論文中,它將光線一三角形求交,以及遍歷過程分離成兩個獨立的遍歷內核和求交內核。本文的實現中,也按照上述模型圖,將光線跟蹤演算法分解成光線生成,光線一三角形求交,著色這三個步驟。
在對光線進行跟蹤之前,需要生成從視點指向屏幕的原始光線( primary ray)。在一個GPU上,能夠使用光柵器的插值的能力,在一個單一的內核調用中,產生所有的原始光線。
給定觀察矩形(被采樣用於產生圖片的投影平面的一部分)的四個角,以及視點,首先計算出這個視錐體的四條邊線。如果讓光柵器在這4條光線之間,按照512×512規格,在這四條光線之間按照方向進行插值,最終就可以獲得能夠產生一幅512×512圖片(一個像素一個采樣點)的所有原始光線的方向。同時能夠將這些方向存儲在一個紋理里,並把它作為求交內核的輸入。所有的原始光線具有相同的起始點,但是仍然把它存儲在一個同方向紋理具有相同維度的紋理內。因為當生成陰影光線或者反射光線的時候,光線的原點會發生改變。
求交內核把光線的原點,方向,以及場景的描述作為輸入數據。在內核被調用數次之後,我們對於每一個像素輸出一個擊中記錄。如果一條光線擊中了場景中的某個三角形,返回擊中點的3個重心坐標,以及相關的被擊中的三角形。此外,還將輸出被發現的交點沿光線的距離,以及被擊中三角形的材質。這就需要使用5個浮點數值組成一個擊中記錄。紋理只能夠支持4個顏色通道( RCBA),所以,如果能把擊中記錄裁減到4個值,那麼將是非常有益的。
觀察發現,只需要3個重心坐標的兩個,因為在三角形內部,它們相加的和總是1。這就使得在一個單獨的RGBA紋理中存儲交點記錄是可行的,並且它的維度同其它兩個光線紋理的維度相同。
Moller和Trumbore提出了一個高效的光線一三角形求交演算法,使用這個演算法,並利用CPU在向量計算上的優勢來進行求交計算。下面列出了求交的代碼,這個代碼也展示了如何利用向量指令來提高效率。
當所有的原始光線都已經計算出了相交的狀態的時候,就能夠查詢著色過程所需要的表面法線和材質的信息。每一個擊中記錄都存儲了一個指向材質紋理的索引,這個材質紋理包含了三角形的法線,材質顏色以及類型。三個頂點的法線根據擊中記錄的中心坐標進行了插值。最終的顏色能夠按(N-L)C進行計算,此處Ⅳ是法線,L是光源的方向,G是三角形的顏色。
現在根據擊中的三角形所具有的材質的類型(漫反射材質,或者鏡面反射材質),需要產生二次光線,以此來計算陰影和反射。
1)如果一條光線射出場景之外,像素就被賦予全局的背景顏色。
2)如果一條光線擊中了一個漫反射材質表面,就發射一條陰影射線( shdow ray)。這些光線的起始點在擊中點,方向為從擊中點指向光源。
3)如果一條光線擊中了一個鏡面反射材質表面。就發射一條鏡面反射光線。鏡面發射光線的起始點也在擊中點,但是它的方向是在擊中點處關於入射光線和插值後的法線對稱的方向。一個真正的Whitted類型的光線跟蹤器也支持透明材質,從而能夠產生折射光線。但由於主要是研究加速結構,所以在本文的實現中,沒有考慮折射光線。
4)如果陰影光線擊中了某個幾何體,這就說明在光源和擊中點之間,存在某個幾何體,所以這個像素就應該是黑色(處於陰影中)。當跟蹤陰影光線的時候,不關心最近的那個擊中點,更加關心的是是否存在這樣的擊中點。因此,當有一個交點被發現,就可以停止整個求交過程,從而加速演算法的處理過程。在本文的實現中,以相同的方式跟蹤陰影光線和反射光線,因此,就沒有使用到這個優化策略。
已經對每一個像素產生了正確二次光線,如果需要,就能夠執行另外一趟遍歷/求交過程,對上述的二次光線進行跟蹤。每一次調用著色程序就能夠對每一個像素返回一個顏色值和一條新的光線。著色內核也可以將前一次著色程序的輸出當作本次著色程序的輸入。這就使得能夠在跟蹤連續的光線的時候合並這些連續的鏡面反射的顏色。
同Carr等人的程序不同,本文所採用的程序不存在浮點精度太低的問題,因為Ceforce 7300在整個管線中支持真正的32位浮點操作。
3.加速結構的實現和比較
3.1均勻柵格
均勻柵格是第一個在GPU上實現的加速結構。Purcell給出了很多選擇均勻柵格作為加速結構的理由,但是Purcell沒有詳細的說明為什麼均勻網格對於硬體實現而言比其它的加速結構要更加的簡單。當在探討了均勻柵格的一些主要特性的時候,更加清晰的知道了均勻柵格為什麼會成為一個好的GPU機速結構。
首先,只用使用簡單的算術運算,就能夠對於每個體素的遍歷在常量時間能被定位和存取。這就消除了對樹的遍歷的需要,以及重復的紋理查找工作,而紋理查找是相當耗時的。
其次,體素的遍歷是通過遞增算術運算來完成的。這就消除了對堆棧的需要,使得我們能夠從光線的起始點開始,以距離遞增的順序訪問體素成為可能。
再其次,由於對於體素的訪問是沿著光線,以距離遞增的方式遍歷的,所以,一旦在一個被訪問的體素中報道發現有一個交點,就可以停止這條光線對體素的遍歷過程,從而提高整個遍歷過程的速度。
最後,用於遍歷的代碼非常適合用向量編寫,而向量形式的編碼風格又非常適合GPU的指令集。
然而,均勻柵格的缺點就是由於它是空間細分結構的一種特殊情況,多個體素可能包含相同三角形的多個引用。由於無法使用mailbox技術,這就意味著需要對於相同的光線和三角形之間進行不止一次的相交測試。
3.2 KD-tree
最近,Havran等人對基於CPU的光線跟蹤演算法的加速結構進行了比較,得出的結論是對於眾多不同類型的測試場景,平均而言,KD-tree是最快的。所以,有必要考察一下對於基於KD-tree的GPU光線跟蹤演算法,是否也會有相似的結論。
就像均勻柵格一樣,KD-tree也是一種空間細分結構。同均勻網格不同的是,KD-tree利用一個二叉樹將場景表示成一個層次結構。
在二叉樹中,我們將內部節點和葉子節點區分開。葉子節點用來表示體素和與之相關的保存在該體素內的三角形的引用。一個內部節點用來表示空間區域的某個部分。所以,內部節點包含一個分裂面的兩個子樹的引用,而葉子節點只包含一個三角形列表。
KD-tree的創建過程從上而下,根據一個評價函數,通過放置一個分離平面,遞歸的將場景分離成兩個體素。我們能夠以遞歸的方式遍歷KD-tree,但是由於GPU沒有堆棧結構,所以無法應用遞歸的策略。取而代之的是,我們能夠通過記住我們沿著光線前進了多遠來向上或者向下遍歷樹。這種策略消除了需要堆棧的限制,使得用CPU來完成對KD-tree結構的遍歷成為可能。
當使用GPU對KD-tree進行遍歷的時候,KD-tree像均勻柵格那樣被表示成一個紋理的集合。這就意味著有一個保存樹數據的紋理,一個保存三角形列表的紋理,和一個保存實際的三角形數據的紋理。GPU的遍歷首先調用一個初始化內核,然後按照需要,多次調用合並後的遍歷和求交內核。
3.3 包圍體層次(BVH)
給定一些隨機的光線,通過計算遍歷包圍體層次的平均花費,就可以測量出該包圍體層次的質量。迄今為止,還沒有構建最優的包圍體層次的演算法,也就是說,如何准確的測量一個包圍體層次的平均遍歷時間還不是很明顯。
Goldsmith和Salmon提出了一個評價函數,通常被稱為表面積啟發式函數。他們通過父節點和孩子節點的表面積之比來形式化的表述這個關系,此評價函數如下所示:
此處,hit(n)是光線擊中節點n的情況,Sn是節點n的表面積,c和p分別表示父節點和孩子節點。
這個評價函數給出了,當用一條隨機的光線同層次結構求交的時候,成本上的估計。由於沒有最優的方法去有效的構造一個最優的BVH,提出了不同的構造技巧。下面,將列出比較通用的方法。
在實踐中,對於包圍體應用的最廣泛的就是軸對齊包圍盒(AABB)。AABB易於實現,並且同光線的求交測試非常快。大多數有關BVH的論文在描述BVH的創建的時候,通常分別以Kay和Kajiya,或者Goldsmith和Salmon這兩種基本的想法為基礎。Kay和Kajiaya建議以自上而下遞歸的方式進行BVH的創建。
Goldsmith和Salmon提出了一個更加復雜的自底向上的構造方式。Goldsmith和Salmon指出,BVH的質量同作為輸入傳人的三角形的順序有關。因此,他們建議在構造BVH之前,隨機打亂三角形的順序。下述演算法就是利用Kay/Kajiya的思想創建某個場景的包圍體層次的方法:
4.結束語
本文成功的在GPU上實現了用於光線跟蹤演算法中的各種加速結構,並對這些加速結構在GPU上的加速效果進行了比較。均勻柵格作為第一個在CPU上實現的光線跟蹤器的加速結構,也被證明是最慢的,除非是只包含一個單獨的物體的場景的情況。均勻柵格不適合幾何體的密度非常高的場景。另外,對於均勻柵格的CPU上的遍歷表示,也需要大量的數據。Foley和Sugerman認為,對於大多數場景,KD-tree的效率要比均勻柵格高。但是,在KD-tree的遍歷過程中,無論是重置階段還是回退階段,片元程序都非常的復雜,但這種復雜性也使得其能夠在場景的幾何體的密度改變的時候做出適當的調整。本文實現的BVH被證明在加速效果上要超過均勻柵格和KD-tree,在現階段,BVH是在GPU上實現的最快的加速結構。並且在GPU上實現BVH加速結構要比實現其他加速結構更加的簡單。
參考文獻:
[1]Randima Femado編,姚勇,王小琴譯.GPU精粹一實時圖形編程的技術,技巧和技藝[M].北京:人民郵電出版社,2006.
[2] Matt Pharr編著,龔敏敏譯.GPU精粹2-高性能圖形晶元和通用計算編程技巧[M].北京:清華大學出版社.
[3]昊恩華,柳有權.基於圖形處理器(GPU)的通用計算叨.計算機輔助設計與圖形學學報,2004,16(5): 601-[4] Philip J.Schneider,David H.Eberly著,周長發譯,計算機圖形學幾何工具演算法詳解[M].北京:電子工業出版社,2005.
[5] Martin Christen. Implementing ray tracing on GPU. Master´sthesis, University of Applied Sciences Basel,
㈢ 如何用Vray渲染求Vray渲染技巧
1、創建或者打開一個場景
2、指定VRay渲染器
3、設置材質
4、把渲染器選項卡設置成測試階段的參數:
①把圖像采樣器改為「固定模式「,把抗鋸齒系數調低,並關閉材質反射、折射和默認燈。
②勾選GI,將「首次反射」調整為lrradiance map模式(發光貼圖模式)
調整min rate(最小采樣)和max rate(最大采樣)為-6,-5,
同時「二次反射」調整為QMC[准蒙特卡洛演算法]或light cache[燈光緩沖模式],降低細分。
5、根據場景布置相應的燈光
①開始布光時,從天光開始,然後逐步增加燈光,大體順序為:天光----陽光----人工裝飾光----補光。
②如環境明暗燈光不理想,可適當調整天光強度或提高暴光方式中的dark multiplier (變暗倍增值),至直合適為止。
③打開反射、折射調整主要材質
6、根據實際的情況再次調整場景的燈光和材質
7、渲染並保存光子文件
①設置保存光子文件
②調整lrradiance map(光貼圖模式),min rate(最小采樣)和max rate(最大采樣)為-5,-1或-5,-2或更高,同時把 [准蒙特卡洛演算法] 或 [燈光緩沖模式] 的細分值調高,正式跑小圖,保存光子文件。
8 、正式渲染
1)調高抗鉅尺級別,
2)設置出圖的尺寸,
3)調用光子文件渲染出大圖
建築表現、建築動畫初學者我建議報班
智點道教育建築表現、建築動畫還不錯呢,同學在學,進步比較大,作品牛著呢
㈣ 界線的求交演算法
當需要進行求交運算的界線較少,且每條界線上的線段也不多時,逐一對分別來自兩條界線上的線段進行求交運算是可行的。但是,當界線很多時,這種求交方法將花費大量計算時間,效率十分低下。為此,本書將介紹一種演算法:先利用網格定位,盡可能排除不可能相交的線段對,然後逐一對可能相交的線段對進行求交運算。該方法的具體步驟如下:
(1)確定界線矩形包圍盒。將所有界線上的所有結點按坐標進行排序,找到最小與最大的三維坐標(xmin,ymin,zmin)與(xmax,ymax,zmax),作為矩形包圍盒的角點坐標。
(2)矩形包圍盒的網格劃分。以一定的間距,將包圍盒劃分成規則六面體格網,3個方向的間距可以不同,也可以相同。
(3)界線的網格定位,即確定每條界線上的每條線段與哪些網格單元相交,並將與某個網格單元相交的線段記錄在該單元的相交線段集上。線段與網格單元的相交判斷可以根據線段的端點坐標直接定位。
(4)組建可能相交的線段對。在每個格網單元中,將來自不同界線的線段進行組對,並刪除重復出現的線段對。
(5)線段對求交運算。
(6)結點的統一編排。將原有界線上的結點、界線的交點按坐標進行統一排序,按一定的閾值合並距離很近的結點,然後重新設置界線與新結點集中結點的關系。
(7)簡單弧的劃分。將每條界線劃分成若干簡單弧,保證每條簡單弧是唯一的,並且確保簡單弧上除端點以外的內部點不被其他簡單弧共享。簡單弧劃分方法見第7章線框架生成方法。
㈤ 視點相關的層次細節渲染技術
在三維可視化應用中,用戶可以用一種自然方式以任意的角度、任意的高度、任意的路徑瀏覽三維地形。由於人的視點位置和角度的不同,需要根據人的視覺敏感區域的生理特徵來進行處理:視覺敏感區域中的空間數據解析度高,區域之外的空間數據解析度逐漸降低;與視點距離近的地形空間數據解析度高,反之則解析度低,當用戶在虛擬地理環境中比較靠近地面,能夠觀察到的細節更豐富,這樣顯示裝置所能夠表達的空間范圍就相對縮小了,同時,用戶的注意力也集中在觀察較小空間范圍內的地形細節上。同樣,當用戶在虛擬地形中比較遠離地面,視場的空間范圍擴大了,但是顯示裝置所能夠表達的地形細節也相應減少,同時,用戶的注意力也轉移到觀察較大空間范圍上的地形概貌。
上述特點在實際應用中也就是要根據與視點距離的遠近來載入不同精度級別的數據進行顯示,使之在減少了繪制數據量的同時看起來比較平滑,不影響視覺精度。
在圖8-3中,較小的塊表示較高精度的柵格數據,較大的塊表示較低精度的柵格數據,每個塊的數據量是相同的。可以看出,距離視點較近的地方,使用較精細的層次進行顯示,較遠處使用較粗的層次進行顯示,視野中看不到的地方則不需要顯示。目前採用的演算法(圖8-4)如下:
圖8-3 根據視點位置計算所需的細節層次
圖8-4 根據視覺范圍計算分塊數據精度示意圖
1)使用最低精度級別的分塊數據與視覺范圍求交,獲取最粗精度的數據;
2)若該分塊數據不能滿足其所在視覺敏感區的顯示精度要求,則用更高一級精度級別與視覺范圍求交;
3)重復上一步驟直至所有分塊數據滿足其所在視覺敏感區的顯示精度要求。
㈥ 幾種渲染演算法簡介
通俗的說,一個物 體反射的光可以著亮其他物體,該效 果就是光 能傳遞效果。 直接光計算: 有 間接光計算: 有 運算導致的場景結果:全局照明結果,即場景中無論直接光照到還是 沒照到的地方都是 亮的,並且明暗符合一定物理規律。 場景渲染效果評判: 非常真實 適合的對象: 單幀圖像,如建築、環藝專業的效果圖,不適 合動畫 代表軟體: Lightscape, RAD, Radiance, Luminaire Scanline Render掃描線渲染法 ============== 西方計算機界的定義:構成一張光柵圖像的像素的水平行 直接光計算: 有 間接光計算: 無 運算導致的場景結果:只有被直接光照到的地方才是亮的,場景中不 存在光傳遞運算概 念上的非直接光。想使直接 光照射以外的地方亮起來,只能靠認 為的方法 在場景中設置光源模擬非直接光效果。 場景渲染效果評判: 不易真實 適合對象: 低品質要求場景,小場景 代表軟體: 3D Stutio Max Indirect Illuminate間接照明法 =============== 西方計算機界的定義:是光能傳遞演算法的簡化,與光能傳遞遵循的運 演算法則相同,但運 算量要比光能傳遞少得多 直接光計算: 有 間接光計算: 有,不充分 運算導致的場景結果:全局照明結果。場景中無論直接光照到的地方 還是沒照到的地方 都是亮的,別且明暗符合一 定物理規律。 場景渲染效果評判: 較真實 適合對象: 較快(不同軟體的情況不甚相同)單幀與動畫 均可,是質量與速 度均可兼顧的最佳選擇 代表軟體: Enlight, Luma, Mantal ray Raytracen光線跟蹤法 ========== 西方計算機界的定義:是一種渲染技術,用於定義可見表面和產生真 實陰影,反射和折 射。 直接光計算: 有 間接光計算: 有,不完全 運算導致的場景結果:部分全局照明結果,因為只計算高光反射,所 以照明結果有限。 場景渲染評判: 真實(定向使用) 適合對象: 最適合陰影以及金屬,玻璃等反射、折射材質 的渲染。基本不會 被單獨使用。 代表軟體: Raygun 該方法一般被作為使用其他渲染方法的 軟體的輔助內嵌功能使用。
㈦ 圖形布爾運算,即求兩個圖形的交、並、差的面積。演算法應該怎樣實現
我提供兩個思路吧
思路一:
將兩個圖形轉化成region,採用region的相應方法進行計算,比如intersect,union,xor等。
然後,調用region的getRegionScans,得到與區域近似的矩形集合
將集合賦給一個新的GraphicsPath對象
調用GraphicsPath的winden (能否湊效需要你去驗證一下)
思路二:
第一步,自定義演算法,對兩個圖形求交,獲取交點
第二步,根據bool運算類型和圖形相對位置關系,
求出「殘余」的圖形,賦值給新的GraphicsPath對象答案補充 第一個方法是我查了一些資料後得出的,貌似沒有什麼好辦法。
第二個方法工作量大一些,必須自己寫演算法進行討論,相對復雜。
㈧ 哪些三維渲染演算法是永遠無法用GPU運算的如題 謝謝了
沒有,甚至使用適當的技術,GPU可以模擬CPU進行運算,顯卡和處理器本質是一樣的
㈨ 空間線段對求交演算法
下面先介紹一種空間線段對求交演算法:
圖6.5 界線相交特性
三維地質建模方法及程序實現
空間兩條線段的求交運算是三維地質建模中使用頻率最高、演算法最簡單,同時也是最容易出現計算誤差,並導致後續建模失敗的數值運算之一。導致計算失敗的主要原因是計算精度與浮點數問題。例如,有3條線段,兩兩之間的交點距離非常近但不重合,如果保持3個交點不變就會降低後續建模中曲面網格的質量;如果降低精度要求,將3個交點合並成一點,就會影響與其他線段的相交關系。另外,浮點數問題在線段平行判斷、三點共線判斷、四點共面判斷都會遇到。在處理這類問題時,可以採用一個原則,即先精後粗,也就是說在線段對求交時盡量精確,等所有線段對求交結束後可以對距離很近的點進行合並處理。