2013-05-26 29 views
0

假設我有一個完美的平面鏡。我如何找到它反映的是什麼?很簡單,將相機移動到回視角度的位置。曲面反射 - HLSL

現在如果這個平面鏡是彎曲的或球形的呢?如果對象B是一個非平坦,完美的鏡子,我將如何找到對象A的反射。

想必這需要某種光線追蹤(不知道HLSL該怎麼做......但是),但我猜這將是一個性能殺手。那麼有沒有人做過這件事,現在知道該怎麼做?如果是這樣,有沒有更簡單的方法?你是怎麼做到的?

編輯:這在DX9

+1

大聲思考 - 你能渲染一個平面反射到紋理,然後映射那個紋理到你鏡子的任何形狀上嗎? –

+0

有一種稱爲「屏幕空間反射」的技術,可以進行一些光線追蹤,但是可以簡化爲實時使用。也許這對你很有趣:) – Gnietschow

+0

@Gnietschow這必須在DX9中工作,並從快速谷歌搜索你的技術似乎是特定於DX11(請糾正我,如果我錯了)。儘管有趣的回答,我會記住屏幕空間的思考。 – MetaReference

回答

0

工作,你可以在第一渲染環境貼圖,然後使用環境貼圖着色器投射到你的曲面。這稱爲動態環境映射或本教程的情況:Dynamic Cube Mapping。這將導致如下所示:Dynamic Cube Mapping UDK

+0

聽起來很貴,但我想這應該是用DX9來完成的。不管怎麼說,還是要謝謝你。 – MetaReference

+0

是的,這是相當昂貴,因爲你必須多次渲染你的場景。但是如果你想要真正的反思(不是假的,比如環境地圖或天空盒),這是最好的方式。 – theCNG27