2009-12-07 52 views
0

我有添加到場景中的papervision3d球體基元。該球體的半徑爲285。但是,由於我的相機屬性(變焦,焦點和z),該球體正在渲染206px而不是570px,這正是我想要的(2 * radius)。將2D對象映射到3D空間,保持2D尺寸

後來我發現了一篇關於這個問題的博客文章,並解釋說您可以設置場景中任何對象的z值,使其出現在3D空間中,其尺寸與2D空間中出現的尺寸相同:

mySphere.z = (this.camera.zoom * this.camera.focus) - Math.abs(this.camera.z) + radius; 

上面的工作,當我使用幾個塊,其中半徑被替換爲寬度/ 2。出於某種原因,這不適用於球體。

任何想法,如何獲得一個570像素直徑的球體顯示在屏幕上的指針?

謝謝。

回答

0

這是無法實現的,至少不是很準確。透視投影不會將球體映射到圓圈。看看這個圖像邊緣的球體是如何變形的? grid of spheres http://www.vis.uni-stuttgart.de/depthcue/spheres_saturation_big.jpg

+0

我明白你在說什麼。但在我的情況下,我有一個單一的球體,就像你的格子中間的球體(紅色的)。這似乎映射到像我想要做的一個圓圈 - 我只需要它是一個固定的大小。 – sberry 2010-05-26 14:20:27