Jump to content

Using dynamic texture on imported mesh


henyana
 Share

Recommended Posts

Dear All,

 

Below is the code listing to try out the dynamic texture on imported mesh, but kind of fail on the "targetMesh".

It only works when I'm using Plane mesh "newPlane" produced from the code using BABYLON.Mesh.CreatePlane.

Am I missing something here?

BABYLON.SceneLoader.Load("", "plane.babylon", engine, function (newScene) {        newScene.executeWhenReady(function () {            var canvas = engine.getRenderingCanvas();            //newScene.activeCamera.attachControl(canvas);            // This creates and positions a free camera (non-mesh)            var camera = new BABYLON.FreeCamera("camera1", new BABYLON.Vector3(0, 5, -125), newScene);            camera.setTarget(BABYLON.Vector3.Zero());            camera.attachControl(canvas, true);            newScene.activeCamera = camera;            //now here I want to select some meshes from the active scene            var targetMesh = newScene.getMeshByName('plane');            if(targetMesh) {                // debugger;                // Create new standard material                var stdMat = new BABYLON.StandardMaterial('Material', newScene);                stdMat.alpha = 1;                stdMat.backFaceCulling = true;                stdMat.specularPower = 64;                stdMat.useSpecularOverAlpha = true;                stdMat.useAlphaFromDiffuseTexture = false;                // emissive definitions;                stdMat.emissiveColor = new BABYLON.Color3(0.00, 0.00, 0.00);                // ambient definitions;                stdMat.ambientColor = new BABYLON.Color3(0.00, 0.00, 0.00);                // specular definitions;                stdMat.specularColor = new BABYLON.Color3(1.00, 1.00, 1.00);                var dynTexture = new BABYLON.DynamicTexture("Dynamic texture", 1024, newScene, true);                dynTexture.uScale = 1;                dynTexture.vScale = 1;                dynTexture.coordinatesMode = 0;                dynTexture.uOffset = 0;                dynTexture.vOffset = 0;                dynTexture.uAng = 0;                dynTexture.vAng = 0;                dynTexture.level = 1;                dynTexture.coordinatesIndex = 0;                dynTexture.hasAlpha = false;                dynTexture.getAlphaFromRGB = false;                // set stdMat diffuse texture                stdMat.diffuseTexture = dynTexture;                // draw text                dynTexture.drawText("Eternalcoding", null, 100, "70px Segoe UI", "red", "#555555");                // set sub mesh material                targetMesh.material = stdMat;                // calculate mesh size                var vectorsWorld = targetMesh.getBoundingInfo().boundingBox.vectorsWorld;                var size = vectorsWorld[1].subtract(vectorsWorld[0]).length(); // distance between summit 0 and summit 1                // New Plane                var newPlane = BABYLON.Mesh.CreatePlane("New Plane", size, newScene, false);                newPlane.scale = 0.5;                newPlane.position.z = targetMesh.position.z;                newPlane.position.y = targetMesh.position.y;                newPlane.position.x = targetMesh.position.x+(size/2);                // newPlane.parent = targetMesh;                // set sub mesh material                newPlane.material = stdMat;                stdMat.diffuseTexture.update();            }            engine.runRenderLoop(function() {                newScene.render();            });        });});

Here is the "plane.babylon"

{"autoClear":true,"clearColor":[0.0,0.0,0.0],"ambientColor":[0.0,0.0,0.0],"fogMode":0,"fogColor":null,"fogStart":0.0,"fogEnd":0.0,"fogDensity":0.0,"gravity":[0.0,0.0,0.0],"cameras":[{"name":"Camera001","id":"a713edbb-dbb0-4077-a018-06a07e8fb30c","parentId":null,"lockedTargetId":"5523fadc-396d-4b51-b859-4b9df68f56dd","type":"FreeCamera","position":[-202.8126,116.4834,-271.5265],"rotation":[0.0,0.0,0.0],"target":null,"fov":0.6024,"minZ":0.1,"maxZ":10000.0,"speed":1.0,"inertia":0.9,"checkCollisions":false,"applyGravity":false,"ellipsoid":[0.0,0.0,0.0],"autoAnimate":false,"autoAnimateFrom":0,"autoAnimateTo":0,"autoAnimateLoop":false,"animations":[]}],"activeCameraID":"a713edbb-dbb0-4077-a018-06a07e8fb30c","lights":[{"name":"Default light","id":"2baddbc0-0c64-46ee-89ac-aa01cd23c503","parentId":null,"position":null,"direction":[0.0,1.0,0.0],"type":3,"diffuse":[1.0,1.0,1.0],"specular":[1.0,1.0,1.0],"intensity":1.0,"range":3.40282347E+38,"exponent":0.0,"angle":0.0,"groundColor":[0.0,0.0,0.0],"excludedMeshesIds":null,"includedOnlyMeshesIds":null,"autoAnimate":false,"autoAnimateFrom":0,"autoAnimateTo":0,"autoAnimateLoop":false,"animations":null}],"meshes":[{"id":"a2652875-3a25-4d9c-97ab-1d7d038c5f8e","parentId":null,"materialId":null,"isEnabled":true,"isVisible":true,"pickable":false,"pivotMatrix":null,"positions":[-56.0677,0.0,-45.6579,56.0677,0.0,-45.6579,56.0677,0.0,45.6579,56.0677,0.0,45.6579,-56.0677,0.0,45.6579,-56.0677,0.0,-45.6579],"normals":[0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0],"uvs":[0.0,1.0,1.0,1.0,1.0,2.0,1.0,2.0,0.0,2.0,0.0,1.0],"uvs2":null,"colors":null,"hasVertexAlpha":false,"matricesIndices":null,"matricesWeights":null,"indices":[0,1,2,3,4,5],"checkCollisions":false,"receiveShadows":true,"infiniteDistance":false,"billboardMode":0,"visibility":1.0,"subMeshes":[{"materialIndex":0,"verticesStart":0,"verticesCount":6,"indexStart":0,"indexCount":6}],"instances":[],"skeletonId":-1,"showBoundingBox":false,"showSubMeshesBoundingBox":false,"applyFog":true,"alphaIndex":1000,"physicsImpostor":0,"physicsMass":0.0,"physicsFriction":0.0,"physicsRestitution":0.0,"name":"plane","position":[0.0,0.0,0.0],"rotation":[-1.5708,0.0,0.0],"scaling":[1.0,1.0,1.0],"rotationQuaternion":null,"actions":null,"animations":[],"autoAnimate":true,"autoAnimateFrom":0,"autoAnimateTo":100,"autoAnimateLoop":true},{"id":"5523fadc-396d-4b51-b859-4b9df68f56dd","parentId":null,"materialId":null,"isEnabled":true,"isVisible":true,"pickable":false,"pivotMatrix":null,"positions":null,"normals":null,"uvs":null,"uvs2":null,"colors":null,"hasVertexAlpha":false,"matricesIndices":null,"matricesWeights":null,"indices":null,"checkCollisions":false,"receiveShadows":true,"infiniteDistance":false,"billboardMode":0,"visibility":1.0,"subMeshes":null,"instances":[],"skeletonId":-1,"showBoundingBox":false,"showSubMeshesBoundingBox":false,"applyFog":true,"alphaIndex":1000,"physicsImpostor":0,"physicsMass":0.0,"physicsFriction":0.0,"physicsRestitution":0.0,"name":"Camera001.Target","position":[-3.9516,-2.5059,23.297],"rotation":[-1.2479,0.5934,0.0],"scaling":[1.0,1.0,1.0],"rotationQuaternion":null,"actions":null,"animations":[],"autoAnimate":true,"autoAnimateFrom":0,"autoAnimateTo":100,"autoAnimateLoop":true}],"sounds":[],"materials":[],"multiMaterials":[],"particleSystems":null,"lensFlareSystems":null,"shadowGenerators":[],"skeletons":[],"actions":null}
Link to comment
Share on other sites

DK is always right, as this makes things much simpler to troubleshoot.  However, based upon you're description:

 

Below is the code listing to try out the dynamic texture on imported mesh, but kind of fail on the "targetMesh".

It only works when I'm using Plane mesh "newPlane" produced from the code using BABYLON.Mesh.CreatePlane.

 

It would suffice to say that it is a mapping issue, or an irregular attribute of your exported mesh - such as inverted normals.  If it were me, I would export a plane and cube from the 3D software you are using without manipulating either at all.  I would also strip or remark out all of the attibutes for your DynamicTexture and StandardMaterial - especially back face culling.  That should provide you with the path to correcting the problem quickly.  Oh, I would also remove the condition for creating your materials and textures - although I know this appears to work on a native mesh plane, if this is part of a larger script, there could certainly be other conflicts unknown - although this is probably irrellevant, as it reads correctly.

Link to comment
Share on other sites

Hello as always I suggest sharing your example on the playground :)

 

Sorry, but I've no idea to upload the mesh "plane.babylon" file to the playground server and when I try loading outside the playground server, it failing with dealing cors header.

 

Btw, the problem now is fixed after adding 2 line code start from 38 after defining the "dynTexture":

dynTexture.wrapU = 1;dynTexture.wrapV = 1; 
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...