Aprender WebGL y Babylon.js a su propio ritmo

no dude en visitar nuestra línea de golf en 3D con WebGL Programación y Babylon.js para principiantes en Zenva Academia. El curso cubre el marco Babylon.js y explica todo lo que necesita para empezar con el uso de esta fantástica biblioteca en proyectos nuevos o existentes.

Tutorial

A multi-material se utiliza para aplicar diferentes materiales a diferentes partes de un mismo objeto como se puede ver en esta captura de pantalla (de www.babylonjs.com):

imagen

Para poder definir un multi-materiales primero hay que definir algunos materiales estándar:
material0 var = new BABYLON.StandardMaterial ( «mat0», escena); material0.diffuseColor = nuevo BABYLON.Color3 (1, 0, 0); material0.bumpTexture = new BABYLON.Texture ( «normalMap.jpg», escena); material1 var = new BABYLON.StandardMaterial ( «mat1», escena); material1.diffuseColor = nuevo BABYLON.Color3 (0, 0, 1); Material2 var = new BABYLON.StandardMaterial ( «mat2», escena); material2.emissiveColor = new BABYLON.Color3 (0,4, 0, 0,4); 123456789varmaterial0 = newBABYLON.StandardMaterial ( «mat0», escena); material0.diffuseColor = newBABYLON.Color3 (1,0,0); material0.bumpTexture = newBABYLON. Textura ( «normalMap.jpg», escena); varmaterial1 = newBABYLON.StandardMaterial ( «mat1», escena); material1.diffuseColor = newBABYLON.Color3 (0,0,1); varmaterial2 = newBABYLON.StandardMaterial ( «mat2», escena ); material2.emissiveColor = newBABYLON.Color3 (0.4,0,0.4);

a continuación, puede crear un multi-material con el fin de reunir a todos ellos:
MULTIMAT var = new BABYLON.MultiMaterial ( «multi», escena); multimat.subMaterials.push (material0); multimat.subMaterials.push (material1); multimat.subMaterials.push (Material2); 1234varmultimat = newBABYLON.MultiMaterial ( «multi «, escena); multimat.subMaterials.push (material0); multimat.subMaterials.push (material1); multimat.subMaterials.push (Material2);

ahora son capaces de afectar a la multi-material a la malla: < / p>
esfera var = BABYLON.Mesh.CreateSphere ( «Sphere0», 16, 3, escena); sphere.material = MULTIMAT; 12varsphere = BABYLON.Mesh.CreateSphere ( «Sphere0», 16,3, escena); sphere.material = MULTIMAT ;

Pero si lo hace, verá que la esfera sólo utilizará la primera submaterial (el rojo chocó uno). Esto es porque por defecto una malla se está diseñado para utilizar solamente un material.

Puede especificar qué parte de la malla utiliza un material específico mediante el uso de la etiqueta submallas propiedad. Por defecto, cada malla viene con un solo submalla que cubre toda la malla.

Para definir múltiples submallas, sólo tiene que utilizar este código:
sphere.subMeshes = []; var verticesCount = sphere.getTotalVertices (); sphere.subMeshes.push (nuevo BABYLON.SubMesh (0, 0, verticesCount, 0, 900, esfera)); sphere.subMeshes.push (Nueva Babilonia. submalla (1, 0, verticesCount, 900, 900, esfera)); sphere.subMeshes.push (nuevo BABYLON.SubMesh (2, 0, verticesCount, 1800, 2088, esfera)); 123456sphere.subMeshes = []; varverticesCount = sphere.getTotalVertices (); sphere.subMeshes.push (newBABYLON.SubMesh (0,0, verticesCount, 0900, esfera)); sphere.subMeshes.push (newBABYLON.SubMesh (1,0, verticesCount, 900900, esfera)); sphere.subMeshes.push (newBABYLON.SubMesh (2,0, verticesCount, 1800,2088, esfera));

En este caso, tendremos 3 partes:


  • Uno a partir de índice de 0 al índice 900
  • Una partir de índice 900 al índice 1800
  • Una partir de índice 1800 con el índice 3880

    Así que con el código de abajo, podemos utilizar el primer material en la parte superior de la esfera, el segundo material en la parte media y el último material sobre la parte inferior de la esfera.

    Mensajes relacionados
    > <img src =

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *