<!doctype html> <html> <head> <meta charset = "utf-8"> <title>BabylonJs-Basic Element-Creating Scene</title> <script src = "babylon.js"></script> <style> canvas {width: 100%; height: 100%;} </style> </head> <body> <canvas id = "renderCanvas"></canvas> <script type = "text/javascript"> var canvas = document.getElementById("renderCanvas"); var engine = new BABYLON.Engine(canvas, true); var createScene = function() { var scene = new BABYLON.Scene(engine); scene.clearColor = new BABYLON.Color3(0, 0, 1); var camera = new BABYLON.ArcRotateCamera("Camera", 1, 0.8, 10, new BABYLON.Vector3(0, 0, 0), scene); camera.attachControl(canvas, true); var light = new BABYLON.HemisphericLight("light1", new BABYLON.Vector3(0, 1, 0), scene); light.intensity = 0.7; var pl = new BABYLON.PointLight("pl", BABYLON.Vector3.Zero(), scene); pl.diffuse = new BABYLON.Color3(1, 1, 1); pl.specular = new BABYLON.Color3(1, 1, 1); pl.intensity = 0.8; var mat = new BABYLON.StandardMaterial("mat1", scene); mat.alpha = 1.0; mat.diffuseColor = new BABYLON.Color3(0, 1, 0); var texture = new BABYLON.Texture("images/cube.png", scene); mat.diffuseTexture = texture; var hSpriteNb = 3; // 3 sprites per raw var vSpriteNb = 2; // 2 sprite raws var faceUV = new Array(6); for (var i = 0; i < 6; i++) { faceUV[i] = new BABYLON.Vector4(i/hSpriteNb, i/vSpriteNb, (i+1)/hSpriteNb, (i+1)/vSpriteNb); } var options = { width: 1.5, height: 1.5, depth: 1.5, faceUV: faceUV }; var box = BABYLON.MeshBuilder.CreateBox("box", options, scene); box.material = mat; scene.registerBeforeRender(function() { pl.position = camera.position; }); return scene; }; var scene = createScene(); engine.runRenderLoop(function() { scene.render(); }); </script> </body> </html>
var box = BABYLON.MeshBuilder.CreateBox("box", options, scene);
var hSpriteNb = 3; // 3 sprites per raw ie colums horizontally as shown in the image var vSpriteNb = 2; // 2 sprite raws as shown in the image above. var faceUV = new Array(6); // the cube has 6 sides so creating array for same. for (var i = 0; i < 6; i++) { faceUV[i] = new BABYLON.Vector4(i/hSpriteNb, i/vSpriteNb, (i+1)/hSpriteNb, (i+1)/vSpriteNb); } var options = { width: 1.5, height: 1.5, depth: 1.5, faceUV: faceUV };
var box = BABYLON.MeshBuilder.CreateBox ('box', options, scene);
var hSpriteNb = 3; // 3 sprites per raw var vSpriteNb = 2; // 2 sprite raws var faceUV = new Array(6); for (var i = 0; i < 6; i++) { faceUV[i] = new BABYLON.Vector4(i/hSpriteNb, i/vSpriteNb, (i+1)/hSpriteNb, (i+1)/vSpriteNb); }
var hSpriteNb = 3; // 3 sprites per raw var vSpriteNb = 2; // 2 sprite raws var faceUV = new Array(6); faceUV[4] = new BABYLON.Vector4(0, 0, 1/hSpriteNb, 1/vSpriteNb);
<!doctype html> <html> <head> <meta charset = "utf-8"> <title>BabylonJs-Basic Element-Creating Scene</title> <script src = "babylon.js"></script> <style> canvas {width: 100%; height: 100%;} </style> </head> <body> <canvas id = "renderCanvas"></canvas> <script type = "text/javascript"> var canvas = document.getElementById("renderCanvas"); var engine = new BABYLON.Engine(canvas, true); var createScene = function() { var scene = new BABYLON.Scene(engine); scene.clearColor = new BABYLON.Color3(0, 0, 1); var camera = new BABYLON.ArcRotateCamera("Camera", 1, 0.8, 10, new BABYLON.Vector3(0, 0, 0), scene); camera.attachControl(canvas, true); var light = new BABYLON.HemisphericLight("light1", new BABYLON.Vector3(0, 1, 0), scene); light.intensity = 0.7; var pl = new BABYLON.PointLight("pl", BABYLON.Vector3.Zero(), scene); pl.diffuse = new BABYLON.Color3(1, 1, 1); pl.specular = new BABYLON.Color3(1, 1, 1); pl.intensity = 0.8; var mat = new BABYLON.StandardMaterial("mat1", scene); mat.alpha = 1.0; mat.diffuseColor = new BABYLON.Color3(0.8, 0.8, 0.8); var texture = new BABYLON.Texture("images/3d.png", scene); mat.diffuseTexture = texture; var hSpriteNb = 3; // 3 sprites per raw var vSpriteNb = 2; // 2 sprite raws var faceUV = new Array(6); faceUV[4] = new BABYLON.Vector4(0, 0, 1/hSpriteNb, 1/vSpriteNb); var options = { width:3, height:3, depth: 3, faceUV:faceUV }; var box = BABYLON.MeshBuilder.CreateBox("box", options, scene); box.material = mat; scene.registerBeforeRender(function() { pl.position = camera.position; }); return scene; }; var scene = createScene(); engine.runRenderLoop(function() { scene.render(); }); </script> </body> </html>
var meshcylinder = BABYLON.MeshBuilder.CreateCylinder("meshcylinder", { height: 3, diameter: 35, tessellation: 52 }, scene);
<!doctype html> <html> <head> <meta charset = "utf-8"> <title>Babylon.js demo-Mesh Builder</title> <script src = "babylon.js"></script> <style> html,body,canvas { margin: 0; padding: 0; width: 100%; height: 100%; font-size: 0; } </style> </head> <body> <canvas id = "renderCanvas"></canvas> <script type = "text/javascript"> var canvas = document.getElementById("renderCanvas"); var engine = new BABYLON.Engine(canvas, true); var createScene = function() { var scene = new BABYLON.Scene(engine); scene.clearColor = new BABYLON.Color3(0.8, 0.8, 0.8); var camera = new BABYLON.ArcRotateCamera("Camera",-Math.PI / 6, 1.3, 40, new BABYLON.Vector3(0,-3, 0), scene); var light = new BABYLON.HemisphericLight("hemi", new BABYLON.Vector3(0, 1, 0), scene); var mat = new BABYLON.StandardMaterial("mat", scene); mat.diffuseColor = new BABYLON.Color3(0.1, .5, 0); mat.specularColor = new BABYLON.Color3(0, 0, 0); mat.wireframe = true; var meshcylinder = BABYLON.MeshBuilder.CreateCylinder("meshcylinder", { height: 3, diameter: 35, tessellation: 52 }, scene); meshcylinder.material = mat; meshcylinder.position = new BABYLON.Vector3(0, 0, 0); scene.activeCamera.attachControl(canvas); return scene; }; var scene = createScene(); engine.runRenderLoop(function() { scene.render(); }); </script> </body> </html>
<!doctype html> <html> <head> <meta charset = "utf-8"> <title>BabylonJs-Basic Element-Creating Scene</title> <script src = "babylon.js"></script> <style> canvas {width: 100%; height: 100%;} </style> </head> <body> <canvas id = "renderCanvas"></canvas> <script type = "text/javascript"> var canvas = document.getElementById("renderCanvas"); var engine = new BABYLON.Engine(canvas, true); var createScene = function() { var scene = new BABYLON.Scene(engine); scene.clearColor = new BABYLON.Color3(1, 1, 1); var camera = new BABYLON.ArcRotateCamera("ArcRotateCamera", 1, 0.8, 20, new BABYLON.Vector3(0, 0, 0), scene); camera.attachControl(canvas, true); var matcone = new BABYLON.StandardMaterial("mat1", scene); matcone.alpha = 1.0; matcone.diffuseColor = new BABYLON.Color3(0, 0, 0); matcone.wireframe = true; var cone = BABYLON.MeshBuilder.CreateCylinder("cone", {height : 10, diameterTop: 10,diameterBottom:10, tessellation: 5}, scene); cone.position= new BABYLON.Vector3(12,1,0); cone.material = matcone; var balloon1 = BABYLON.Mesh.CreateSphere("balloon1",5, 1.0, scene); var balloon2 = BABYLON.Mesh.CreateSphere("balloon2", 5, 1.0, scene); var balloon3 = BABYLON.Mesh.CreateSphere("balloon3", 5, 1.0, scene); balloon1.material = new BABYLON.StandardMaterial("matBallon", scene); balloon2.material = new BABYLON.StandardMaterial("matBallon", scene); balloon3.material = new BABYLON.StandardMaterial("matBallon", scene); balloon1.position = new BABYLON.Vector3(4, 2, 0); balloon2.position = new BABYLON.Vector3(5, 1, 0); balloon3.position = new BABYLON.Vector3(7, 0, 0); var pointToIntersect = new BABYLON.Vector3(10, 0, 0); var a = 0.01; scene.registerBeforeRender(function () { if (balloon1.intersectsMesh(cone, false)) { balloon1.material.emissiveColor = new BABYLON.Color3(1, 0, 0); } else { balloon1.material.emissiveColor = new BABYLON.Color3(0, 1, 0); } if (balloon2.intersectsMesh(cone, false)) { balloon2.material.emissiveColor = new BABYLON.Color3(1, 0, 0); } else { balloon2.material.emissiveColor = new BABYLON.Color3(0, 1, 0); } if (balloon3.intersectsMesh(cone, false)) { balloon3.material.emissiveColor = new BABYLON.Color3(1, 0, 0); } else { balloon3.material.emissiveColor = new BABYLON.Color3(0, 1, 0); } if (balloon3.intersectsPoint(pointToIntersect)) { balloon3.material.emissiveColor = new BABYLON.Color3(0, 0, 0); } a += 0.01; balloon1.position.x += Math.cos(a) / 10; balloon2.position.x += Math.cos(a) / 10; balloon3.position.x += Math.cos(a) / 10; }); return scene; }; var scene = createScene(); engine.runRenderLoop(function() { scene.render(); }); </script> </body> </html>
if (balloon1.intersectsMesh(cone, false)) { balloon1.material.emissiveColor = new BABYLON.Color3(1, 0, 0); } else { balloon1.material.emissiveColor = new BABYLON.Color3(0, 1, 0); }
balloon1.intersectsMesh(cone, false); //cone refers to the cylinder mesh here.
var pointToIntersect = new BABYLON.Vector3(10, 0, 0); if (balloon3.intersectsPoint(pointToIntersect)) { balloon3.material.emissiveColor = new BABYLON.Color3(0, 0, 0); }
<!doctype html> <html> <head> <meta charset = "utf-8"> <title>BabylonJs-Basic Element-Creating Scene</title> <script src = "babylon.js"></script> <style> canvas {width: 100%; height: 100%;} </style> </head> <body> <canvas id = "renderCanvas"></canvas> <script type = "text/javascript"> var canvas = document.getElementById("renderCanvas"); var engine = new BABYLON.Engine(canvas, true); var createScene = function() { var scene = new BABYLON.Scene(engine); scene.clearColor = new BABYLON.Color3(1, 1, 1); // setup environment var light0 = new BABYLON.PointLight("Omni", new BABYLON.Vector3(0, 10, 20), scene); var freeCamera = new BABYLON.FreeCamera("FreeCamera", new BABYLON.Vector3(0, 0,-30), scene); var balloon1 = BABYLON.Mesh.CreateSphere("balloon1",5, 1.0, scene); var balloon2 = BABYLON.Mesh.CreateSphere("balloon2", 5, 1.0, scene); balloon1.material = new BABYLON.StandardMaterial("matBallon", scene); balloon2.material = new BABYLON.StandardMaterial("matBallon", scene); balloon1.position = new BABYLON.Vector3(0, 0,-0.1); balloon2.position = new BABYLON.Vector3(0, 0,-0.1); balloon1.material.emissiveColor = new BABYLON.Color3(1, 0, 0); balloon2.material.emissiveColor = new BABYLON.Color3(0, 0, 1); //Wall var wall = BABYLON.Mesh.CreatePlane("wall", 30.0, scene); wall.material = new BABYLON.StandardMaterial("wallMat", scene); wall.material.emissiveColor = new BABYLON.Color3(0.5, 1, 0.5); //When pointer down event is raised scene.onPointerDown = function (evt, pickResult) { // if the click hits the ground object, we change the impact position if (pickResult.hit) { var dateValue = new Date(); var secondNumber = dateValue.getSeconds(); if (secondNumber % 2 == 0) { balloon1.position.x = pickResult.pickedPoint.x; balloon1.position.y = pickResult.pickedPoint.y; } else { balloon2.position.x = pickResult.pickedPoint.x; balloon2.position.y = pickResult.pickedPoint.y; } } }; return scene; }; var scene = createScene(); engine.runRenderLoop(function() { scene.render(); }); </script> </body> </html>
scene.onPointerDown = function (evt, pickResult) { // if the click hits the ground object, we change the impact position if (pickResult.hit) { var dateValue = new Date(); var secondNumber = dateValue.getSeconds(); if (secondNumber % 2 == 0) { balloon1.position.x = pickResult.pickedPoint.x; balloon1.position.y = pickResult.pickedPoint.y; } else { balloon2.position.x = pickResult.pickedPoint.x; balloon2.position.y = pickResult.pickedPoint.y; } } };
var ray = new BABYLON.Ray(origin, direction, length);
var forward = new BABYLON.Vector3(0,0,1); forward = vecToLocal(forward, box); var direction = forward.subtract(origin);
<!doctype html> <html> <head> <meta charset = "utf-8"> <title>BabylonJs-Basic Element-Creating Scene</title> <script src = "babylon.js"></script> <style> canvas {width: 100%; height: 100%;} </style> </head> <body> <canvas id = "renderCanvas"></canvas> <script type = "text/javascript"> var canvas = document.getElementById("renderCanvas"); var engine = new BABYLON.Engine(canvas, true); var createScene = function() { var scene = new BABYLON.Scene(engine); var light = new BABYLON.PointLight("Omni", new BABYLON.Vector3(0, 100, 100), scene); var camera = new BABYLON.ArcRotateCamera("Camera", 0, 0.8, 100, new BABYLON.Vector3.Zero(), scene); camera.attachControl(canvas, true); var ground = BABYLON.Mesh.CreateGround("ground", 500, 500, 10, scene); var box = BABYLON.Mesh.CreateBox("box", 4.0, scene); box.position.y = 2; box.scaling.z = 2; var matBox = new BABYLON.StandardMaterial("matBox", scene); matBox.diffuseColor = new BABYLON.Color3(0.8, 0.1, 0.5); box.material = matBox; box.isPickable = false; var box2 = BABYLON.Mesh.CreateBox("box2", 8.0, scene); box2.position = new BABYLON.Vector3(-20, 4, 0); var matBox2 = new BABYLON.StandardMaterial("matBox2", scene); matBox2.diffuseColor = new BABYLON.Color3(1, 0, 0); box2.material = matBox2; var box3 = BABYLON.Mesh.CreateBox("box3", 8.0, scene); box3.position = new BABYLON.Vector3(20, 4, 0); var matBox3 = new BABYLON.StandardMaterial("matBox3", scene); matBox3.diffuseColor = new BABYLON.Color3(1, 0, 0); box3.material = matBox3; var box4 = BABYLON.Mesh.CreateBox("box4", 8.0, scene); box4.position = new BABYLON.Vector3(0, 0, 20); var matBox4 = new BABYLON.StandardMaterial("matBox4", scene); matBox4.diffuseColor = new BABYLON.Color3(0, 1, 0); box4.material = matBox4; var box5 = BABYLON.Mesh.CreateBox("box5", 8.0, scene); box5.position = new BABYLON.Vector3(0, 0,-20); var matBox5 = new BABYLON.StandardMaterial("matBox5", scene); matBox5.diffuseColor = new BABYLON.Color3(0, 1, 0); box5.material = matBox5; function mousemovef() { var pickResult = scene.pick(scene.pointerX, scene.pointerY); if (pickResult.hit) { var diffX = pickResult.pickedPoint.x-box.position.x; var diffY = pickResult.pickedPoint.z-box.position.z; box.rotation.y = Math.atan2(diffX,diffY); } } scene.onPointerMove = function () { mousemovef(); }; function vecToLocal(vector, mesh) { var m = mesh.getWorldMatrix(); var v = BABYLON.Vector3.TransformCoordinates(vector, m); return v; } scene.registerBeforeRender(function () { var origin = box.position; var forward = new BABYLON.Vector3(0,0,1); forward = vecToLocal(forward, box); var direction = forward.subtract(origin); direction = BABYLON.Vector3.Normalize(direction); var length = 100; var ray = new BABYLON.Ray(origin, direction, length); // ray.show(scene, new BABYLON.Color3(1, 1, 0.1)); var hit = scene.pickWithRay(ray); if (hit.pickedMesh) { hit.pickedMesh.scaling.y += 0.01; } }); return scene; }; var scene = createScene(); engine.runRenderLoop(function() { scene.render(); }); </script> </body> </html>
scene.registerBeforeRender(function () { var origin = box.position; var forward = new BABYLON.Vector3(0,0,1); forward = vecToLocal(forward, box); var direction = forward.subtract(origin); direction = BABYLON.Vector3.Normalize(direction); var length = 100; var ray = new BABYLON.Ray(origin, direction, length); var hit = scene.pickWithRay(ray); if (hit.pickedMesh) { hit.pickedMesh.scaling.y += 0.01; } });
var forward = new BABYLON.Vector3(0,0,1); forward = vecToLocal(forward, box); var direction = forward.subtract(origin);
if (hit.pickedMesh) {
hit.pickedMesh.scaling.y += 0.01;
}
<!doctype html> <html> <head> <meta charset = "utf-8"> <title>BabylonJs-Basic Element-Creating Scene</title> <script src = "babylon.js"></script> <style> canvas {width: 100%; height: 100%;} </style> </head> <body> <canvas id = "renderCanvas"></canvas> <script type = "text/javascript"> var canvas = document.getElementById("renderCanvas"); var engine = new BABYLON.Engine(canvas, true); var createScene = function() { var scene = new BABYLON.Scene(engine); var light = new BABYLON.PointLight("Omni", new BABYLON.Vector3(0, 100, 100), scene); var camera = new BABYLON.ArcRotateCamera("Camera", 0, 0.8, 100, new BABYLON.Vector3.Zero(), scene); camera.attachControl(canvas, true); var ground = BABYLON.Mesh.CreateGround("ground", 500, 500, 10, scene); var box = BABYLON.Mesh.CreateBox("box", 4.0, scene); box.position.y = 2; box.scaling.z = 2; var matBox = new BABYLON.StandardMaterial("matBox", scene); matBox.diffuseColor = new BABYLON.Color3(0.8, 0.1, 0.5); box.material = matBox; box.isPickable = false; var box2 = BABYLON.Mesh.CreateBox("box2", 8.0, scene); box2.position = new BABYLON.Vector3(-20, 4, 0); var matBox2 = new BABYLON.StandardMaterial("matBox2", scene); matBox2.diffuseColor = new BABYLON.Color3(1, 0, 0); box2.material = matBox2; var box3 = BABYLON.Mesh.CreateBox("box3", 8.0, scene); box3.position = new BABYLON.Vector3(20, 4, 0); var matBox3 = new BABYLON.StandardMaterial("matBox3", scene); matBox3.diffuseColor = new BABYLON.Color3(1, 0, 0); box3.material = matBox3; var box4 = BABYLON.Mesh.CreateBox("box4", 8.0, scene); box4.position = new BABYLON.Vector3(0, 0, 20); var matBox4 = new BABYLON.StandardMaterial("matBox4", scene); matBox4.diffuseColor = new BABYLON.Color3(0, 1, 0); box4.material = matBox4; var box5 = BABYLON.Mesh.CreateBox("box5", 8.0, scene); box5.position = new BABYLON.Vector3(0, 0,-20); var matBox5 = new BABYLON.StandardMaterial("matBox5", scene); matBox5.diffuseColor = new BABYLON.Color3(0, 1, 0); box5.material = matBox5; //ray showing the direction var ray = new BABYLON.Ray(); var rayHelper = new BABYLON.RayHelper(ray); var localMeshDirection = new BABYLON.Vector3(0, 0,-1); var localMeshOrigin = new BABYLON.Vector3(0, 0,-.4); var length = 10; rayHelper.attachToMesh(box, localMeshDirection, localMeshOrigin, length); rayHelper.show(scene); function mousemovef() { var pickResult = scene.pick(scene.pointerX, scene.pointerY); if (pickResult.hit) { var diffX = pickResult.pickedPoint.x-box.position.x; var diffY = pickResult.pickedPoint.z-box.position.z; box.rotation.y = Math.atan2(diffX,diffY); } } scene.onPointerMove = function () { mousemovef(); }; function vecToLocal(vector, mesh) { var m = mesh.getWorldMatrix(); var v = BABYLON.Vector3.TransformCoordinates(vector, m); return v; } scene.registerBeforeRender(function () { var origin = box.position; function predicate(mesh) { if (mesh == box2 || mesh == box || mesh == box5) { return false; } return true; } var forward = new BABYLON.Vector3(0,0,1); forward = vecToLocal(forward, box); var direction = forward.subtract(origin); direction = BABYLON.Vector3.Normalize(direction); var length = 100; var ray = new BABYLON.Ray(origin, direction, length); // ray.show(scene, new BABYLON.Color3(1, 1, 0.1)); var hit = scene.pickWithRay(ray, predicate); if (hit.pickedMesh) { hit.pickedMesh.scaling.y += 0.01; } }); return scene; }; var scene = createScene(); engine.runRenderLoop(function() { scene.render(); }); </script> </body> </html>
function predicate(mesh) { if (mesh == box2 || mesh == box || mesh == box5) { return false; } return true; }
var shadowGenerator00 = new BABYLON.ShadowGenerator(shadowsize, light);
<!doctype html> <html> <head> <meta charset = "utf-8"> <title>BabylonJs-Basic Element-Creating Scene</title> <script src = "babylon.js"></script> <style> canvas {width: 100%; height: 100%;} </style> </head> <body> <canvas id = "renderCanvas"></canvas> <script type = "text/javascript"> var canvas = document.getElementById("renderCanvas"); var engine = new BABYLON.Engine(canvas, true); var createScene = function() { var scene = new BABYLON.Scene(engine); scene.clearColor = new BABYLON.Color3(1, 1, 1); var camera = new BABYLON.ArcRotateCamera("ArcRotateCamera", 1, 0.8, 20, new BABYLON.Vector3(0, 0, 0), scene); camera.attachControl(canvas, true); // light1 var light = new BABYLON.DirectionalLight("dir01", new BABYLON.Vector3(-1,-2,-1), scene); light.position = new BABYLON.Vector3(20, 40, 20); var ground01 = BABYLON.Mesh.CreateGround("Spotlight Hard Shadows", 24, 60, 1, scene, false); var groundMaterial = new BABYLON.StandardMaterial("ground", scene); groundMaterial.diffuseTexture = new BABYLON.Texture("images/gr1.jpg", scene); groundMaterial.specularColor = new BABYLON.Color3(0, 0, 0); groundMaterial.emissiveColor = new BABYLON.Color3(0.2, 0.2, 0.2); ground01.material = groundMaterial; ground01.receiveShadows = true; ground01.position.x =-5; var box = BABYLON.Mesh.CreateBox("box", 3.0, scene); box.position.x =-5; box.position.y = 5; var shadowGenerator00 = new BABYLON.ShadowGenerator(512, light); shadowGenerator00.getShadowMap().renderList.push(box); //shadowGenerator00.usePoissonSampling = true; //shadowGenerator00.useExponentialShadowMap = true; shadowGenerator00.useBlurExponentialShadowMap = true; shadowGenerator00.bias = 0.01; scene.registerBeforeRender(function() { box.rotation.x += 0.01; box.rotation.x += 0.01; }); return scene; }; var scene = createScene(); engine.runRenderLoop(function() { scene.render(); }); </script> </body> </html>
var shadowGenerator00 = new BABYLON.ShadowGenerator(512, light);
shadowGenerator00.getShadowMap().renderList.push(box);
ground01.receiveShadows = true;
shadowGenerator.usePoissonSampling = true;-Called Poisson sampling shadowGenerator.useExponentialShadowMap = true;-Exponential Shadow Map shadowGenerator.useBlurExponentialShadowMap= true; -Blur Exponential Shadow Map
网格和描述 |
MeshHightlight Layer
Highlight 层用于突出场景中的网格。您可以为其赋予颜色,并将颜色应用于网格的边界。如果在游戏中要突出显示,可以使用网格突出显示层。
|
Morph a Mesh
变形通过某种过渡方式将对象的形状更改为另一个。我们已经看到了形状的可更新参数;否则,该参数设置为 false。对于变形,它设置为 true 并更新网格以更改形状。
|
Actions to Mesh
操作用于向网格添加交互。当您单击网格时,或者当网格相交或碰撞时会激活事件。
|
Mesh AssetsManager
使用assestsmanager 类,您可以在场景中加载网格、图像和二进制文件。
|
Import Mesh
我们将学习使用导入网格。
|
Mesh Morph Targets
我们已经看到了线条、带状、多边形等的变形。现在,我们将看到球体和框的变形在这个演示中。使用变形目标,球体的形状发生了变化,如下面的演示所示。
|
Mesh Instances
如果您想在场景中绘制相同的网格,请使用实例。
|
Mesh LOD & Instances
LOD 代表距离线。此功能允许您根据观察者的距离指定网格。随着从观察者到对象的距离增加,使用 LOD 可以清楚地显示网格的细节级别。
|
Mesh VolumemetricLightScatteringPost-process
这个过程散射光,如下面给出的输出所示。在浏览器中进行测试,您将看到光线如何通过网格散射。
|
Mesh EdgesRenderer
EdgesRendering 用于在网格周围绘制 egdes,如上面的输出所示。
|
Mesh BlendModes
您可以通过修改材质的 alphamode 来创建混合模式。
|
Mesh SolidParticles
实体粒子系统在网格上更新。我们在网格上看到的所有属性都可以用在固体粒子上。
|
Mesh FacetData
Facet 数据占用大量内存,默认不启用此功能。要启用它,我们需要根据需要创建一个网格并更新它的分面数据。
|