2013-03-29 87 views
1

我有一個相當簡單的使用three.js渲染的場景。我試圖渲染場景的一部分,就像MRI會做的那樣。three.js中的方法以正射顯示場景切片

我爲測試目的製作了兩個版本的場景。

  1. 透視版本,這是偉大的工作
  2. 一個正投影版本,這應該只是現場的片上給定平面

渲染字形現場是沒有問題的。我試圖用裁剪平面捕捉切片,但無法使其工作。要麼我得到一個完全白色的屏幕或整個模型。

這裏是什麼,我希望達到的自上而下的觀點:

100 *----------------------------------* 
    |         | 
    |         | 
    |         | 
    |         | 
    #################################### <-- Capture this slice of 100 units width 
    |         | 
    |         | 
    |         | 
    |         | 
0 *----------------------------------* 
    0         100 





        \/
        \/ 
        CAMERA roughly @ (50, -100) 

這是完全有可能的,我失去了一些東西明顯。我的3D背景很不錯,但我不是專家。

在Three.js/WebGL中去解決這個問題的最好方法是什麼?相機要走的最好的地方是什麼?

PS:是的,我知道對某些原語進行切片效果不好。我正在使用根據線條和點構建的模型,我預計這些模型會相當安全。將物體切成兩半對我來說不是太大問題。

回答

2

答案竟然是相機的擺放位置。事後看來很明顯,相機不應該根據透視投影的需要從場景中退出。將相機放置在模型的邊緣,使訣竅和裁剪平面(近,遠)都能正常工作。

如:

Z 
100 *----------------------------------* 
    |         | 
    |         | 
75 |         | 
    |         | 
    |         | 
50 |         | 
    |         | 
    |         | 
25 #################################### <-- Capture this slice of 5 units 
    |         |  width @ z = 25 
    |         | 
0 *-----------------X----------------* Y 
    0     .    100 
         . 
         . 
        CAMERA is here at (50,0) 
        near = 25 
        far = 30 (for width 5, ie: 25 + 5) 
+0

你有一個行動的這個例子嗎?我對結果真的很感興趣!乾杯 – Jammer