Quiero tener una superficie de cubo reflectante en una página WebGL con Three.js. Debería parecerse a la pantalla de un teléfono móvil, que refleja algo de luz, pero todavía tiene que ser negra.¿Cómo puedo usar la reflexión en three.js?
7
A
Respuesta
22
He creado un ejemplo de un cubo reflector (y también una esfera reflectante) con comentarios detallados. La versión en vivo es en
http://stemkoski.github.com/Three.js/Reflection.html
con código de formato agradable en
https://github.com/stemkoski/stemkoski.github.com/blob/master/Three.js/Reflection.html
(Esto es parte de una colección de ejemplos del manual en http://stemkoski.github.com/Three.js/)
Los puntos principales son:
- agregue a su escena una segunda cámara (una CubeCamera) colocada en el objeto cuya superficie debe ser reflectante
- cree un material y configure el mapa de entorno como los resultados del renderizado de esta segunda cámara, p.
por ejemplo:
var mirrorCubeMaterial = new THREE.MeshBasicMaterial(
{ envMap: mirrorCubeCamera.renderTarget });
- en su función de render, que tiene que hacer de todas sus cámaras. Oculte temporalmente el objeto que está reflejando (para que no se interponga en el camino de la cámara que va a utilizar), renderice desde esa cámara y luego muestre el objeto reflector.
por ejemplo:
mirrorCube.visible = false;
mirrorCubeCamera.updateCubeMap(renderer, scene);
mirrorCube.visible = true;
Estos son fragmentos de código a partir de los enlaces que he publicado anteriormente; échales un vistazo!
Cuestiones relacionadas
- 1. Cómo usar la reflexión para crear una "máquina de reflexión"
- 2. Three.js Cómo usar quaternion para girar la cámara
- 3. three.js - ¿Cómo puedo cambiar dinámicamente la opacidad del objeto?
- 4. Cómo uso la textura en una esfera en three.js
- 5. ¿Cómo detectar colisión en three.js?
- 6. Cómo usar la rotación del cuaternión en la escena Three.js json
- 7. No puedo eliminar objetos usando Three.JS
- 8. ¿Cómo usar la reflexión para simplificar constructores y comparaciones?
- 9. Problema al usar dat.GUI en un ejemplo three.js
- 10. THREE.js renderers
- 11. ¿Cómo puedo usar la reflexión para convertir de int a decimal?
- 12. Three.js JSONLoader
- 13. ¿Puedo crear una nueva función utilizando la reflexión en Go?
- 14. Cómo utilizar la cámara como imagen de textura en Three.js
- 15. ¿Cómo cambiar la apariencia del sombreado en cubos en Three.js?
- 16. ¿Cómo implementaría la reflexión básica en C++?
- 17. argumentos de la cámara en Three.js
- 18. ¿Cómo puedo conseguir toda referencia con la reflexión + C#
- 19. Cómo esquilar un cubo en Three.js
- 20. cómo conseguir elemento hecho clic en Three.js
- 21. Partículas vs ParticleSystem en three.js
- 22. ¿Puedo usar la reflexión para buscar la carpeta bin/[Configuración] en ASP.NET en lugar de la carpeta temporal asp
- 23. Three.js Ellipse
- 24. Cómo cambiar el color de la cara en Three.js
- 25. ¿Puedo ocultar las caras de una malla en three.js?
- 26. Three.js - ¿Formas personalizadas?
- 27. ¿Cómo puedo representar una "atmósfera" sobre una representación de la Tierra en Three.js?
- 28. ¿Cómo obtener la posición absoluta de un vértice en three.js?
- 29. ¿Cómo puedo comparar tipos en Java con reflexión?
- 30. ¿Cómo puedo usar ViewBag en la Vista