ThreeJS 中的“海洋”示例非常好,因為太陽反射在水面上,看起來很逼真。我正在嘗試復制這個,但我仍然需要理解代碼的一部分。海洋示例構造了一個 Water 對象和一個 Sky 對象。然后,它構造一個 CubeCamera 并使用這個相機的渲染目標作為場景的背景。至此,一目了然。代碼看起來像這樣,其中隱藏了很多細節(由我):scene = new Scene();water = new Water();sky = new Sky();scene.add( water );cubeCamera = new CubeCamera();scene.background = cubeCamera.renderTarget;cubeCamera.update( renderer, sky );除了最后一行,我可以理解所有內容: cubeCamera.update( renderer, sky );在 ThreeJS docs 中,它說 CubeCamera.update() 的最后一個參數必須是場景,而不是天空。我完全不明白為什么這個示例有效,因為 Sky 的方法與 Scene 的方法不同。然而,這行代碼似乎真的很重要,因為當我刪除它時,就沒有太陽了。有人可以啟發我并告訴我它為什么有效嗎?
ThreeJS中帶反射的水
九州編程
2021-06-16 15:10:08