我正在嘗試創建一個在三維空間中採用一個平面的函數,並返回一個完全適合屏幕上一個網格部分的平面。將一個平面縮放以適應一個網格或網格單元格
屏幕上的網格是固定的,由X和Y中的任意一個部分或屏幕上的一組線條定義。
原始平面可以是任何大小或方向在屏幕上,但它永遠不會佔用整個屏幕。
我在Unity3.5.2f2中使用C#工作。我已經在SO上發佈了這個數據,因爲它的數學基礎相當龐大,而不僅僅是Unity的一般知識。理想情況下,解決方案不會使用外部庫,儘管這是一種可能性。
我有幾種方法,並會感激任何輸入;
項目的平面到屏幕空間,得到目,(邊界框)的最小/最大x和y值,用此來計算一個比例的XForm(使用在高度/長度網格的差異在於的屏幕部門)。在將網格的兩個邊緣捕捉到選定的分割之後,重新投影到世界空間中。
由於分隔線本質上是矩形的,因此需要創建幾個視錐體,並提出一些縮放/平移三維空間中的平面以適應平截體的方法。
函數原型是;
Plane adjustPlaneToFitScreens(Plane _plane)
有什麼想法?
我沒有使用它,但[GeometryUtility.CalculateFrustumPlanes](http://docs.unity3d.com/Documentation/ScriptReference/GeometryUtility.CalculateFrustumPlanes.html)可能會有用。也許這個來自Unity Answers的[回答](http://answers.unity3d.com/questions/143025/more-questions-on-generating-camera-frustrum.html)。 – Kay 2013-03-19 16:47:12