自製3d顯示引擎(八)矩形視窗裁剪:只講原理,**需要自己構思、設計,這種演算法只有自己寫出來才能真正的記在腦子裡。
①:正方形區域為顯示區域,該三角形為經典的多次裁剪三角形。
三角形與顯示區域的相交情況有好幾種:三角形全部在顯示區域內、外,部分在顯示區域內;三角形的邊框並沒有和顯示框相交,卻有顯示部分。
網上也有一些相關的演算法,但是總結的不是很正確,很清楚。
正確的方法是用每條邊界去裁剪三角形,留下的繼續裁剪。直到每條邊都去裁剪過。
順序無所謂。
在這裡需要判斷點在邊界的內外,很好處理。
裁剪的時候是一條邊一條邊的裁,兩端點一內一外時裁剪,外點由新點(此邊與邊界的交點)替換。此處需注意,裁剪後的形狀比之前的形狀多一條邊,就是多乙個頂點,寫**的時候需仔細的設計**。
乙個三角形被矩形裁剪完後,出現的形狀裡,邊數最多的為七邊形,7=3+4,預計生成的多邊形頂點數為源形狀的頂點數+4。
自製3D顯示引擎八 矩形視窗裁剪
只講原理,需要自己構思 設計,這種演算法只有自己寫出來才能真正的記在腦子裡。正方形區域為顯示區域,該三角形為經典的多次裁剪三角形。三角形與顯示區域的相交情況有好幾種 三角形全部在顯示區域內 外,部分在顯示區域內 三角形的邊框並沒有和顯示框相交,卻有顯示部分。網上也有一些相關的演算法,但是總結的不是很...
自製3D顯示引擎九 三維空間的顯示區域
在三維空間裡觀察物體,需要乙個攝像機,和乙個處於顯示區域裡的物體。攝像機的問題,以後會講。現在先講一下顯示區域。空間座標系有兩種,左手座標系和右手座標系,在這裡,我習慣使用左手座標系。顯示區域是乙個六面體,有著前後上下左右六個面,在這裡需要判斷點與面的關係,所以需要知道最後顯示的螢幕大小,根據這個資...
3D顯示技術
3d顯示技術說白了都是為了一點 分別讓左眼和右眼在同一時間看到不同的影象。為此發明了幾種不同的技術 紅藍3d。紅藍3d採用普通的顯示器。者只需佩戴乙個紅藍眼鏡便可以看到3d影像。紅藍3d中紅色鏡片只允許紅光通過,藍色鏡片只允許藍光通過。因此左右眼可以分別看到不同的影象。典型的紅藍影象如圖所示 偏振光...