簡體   English   中英

在Three.js中更正透視裁剪

[英]Correcting for perspective clipping in Three.js

我在Three.js的球體內部有一個平面,我正在將着色器渲染到該平面上,以便可以在球體上獲得效果。 我還使用lookAt將平面與相機對齊。 我遇到的問題是,如果相機離球體太近,則平面似乎會收縮到球體中。 我已確定問題出在相機的角度上,因為當相機離球體太近時,其光線不再與平面邊緣對齊。

這是可視化的圖片: 透視圖裁剪

另外,這里還有一個JSFiddle演示了這一點: https ://jsfiddle.net/k8tc8ex6/1/

我知道為什么會發生此問題,我想知道是一些可能的解決方案,我要實現的目標是,渲染 ,平面的邊緣將始終看起來像接觸球體的邊緣。

非常感謝!

如果我是對的,那么您正在嘗試將球體的中間部分“完美地”安裝到透視相機的視錐中。 透視圖無法實現您想要實現的目標。 如您所說(已演示),該平面將超出屏幕的邊界,或者該平面和屏幕的邊緣之間會有間隙。

如果您非常想“完美”地將球體的中間部分放入屏幕中,則有兩種選擇:

1-)切換到正交攝影機2-)堅持使用透視攝影機,使您的FOV非常接近0,與遠平面保持較大距離,這樣您的透視攝影機實際上就可以充當正交攝影機。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM