2012-07-06 15 views

Odpowiedz

22

Stworzyłem przykład odbijającej kostki (a także odblaskową kulę) ze szczegółowymi komentarzami. Wersja na żywo jest

http://stemkoski.github.com/Three.js/Reflection.html

z kodem ładnie sformatowany w

https://github.com/stemkoski/stemkoski.github.com/blob/master/Three.js/Reflection.html

(jest to część kolekcji przykładów wychowawczy na http://stemkoski.github.com/Three.js/)

Główne punkty to:

  • dodaj do sceny drugi aparat (CubeCamera) umieszczony na obiekcie, którego powierzchnia powinna być odblaskowa.
  • utwórz materiał i ustaw mapę środowiska jako wyniki renderowania z tej drugiej kamery, np.

na przykład:

var mirrorCubeMaterial = new THREE.MeshBasicMaterial( 
    { envMap: mirrorCubeCamera.renderTarget }); 
  • w funkcji renderowania, trzeba uczynić ze wszystkich kamer. Tymczasowo ukryj obiekt, który odbija (aby nie przeszkadzał ci aparat, którego chcesz użyć), wyrenderuj go z tej kamery, a następnie odkryj obiekt odbijający.

na przykład:

mirrorCube.visible = false; 
mirrorCubeCamera.updateCubeMap(renderer, scene); 
mirrorCube.visible = true; 

te fragmenty kodu są z ogniw napisałem powyżej; Sprawdź je!

Powiązane problemy