TypeScript Texture Cloud Asset Example

TypeScript Texture Cloud Asset Example script details
Author
matas
Type
Typescript logo image
typescript
App Version
0.14.1
Visibility
public
Date Created
Jan 31, 2024, 11:03:33 AM
Last Edit Date
Feb 1, 2024, 10:58:14 AM

Script Details

The Code
const start = async () => { setupEnvironment(); const mat = await setupTextureAndMaterial("dogs-small.jpeg"); createGeometryAndAssignMaterial(mat); } async function setupTextureAndMaterial(cloudAssetFileName: string) { const file = await bitbybit.asset.getFile({ fileName: cloudAssetFileName }); const objectUrl = bitbybit.asset.createObjectURL({ file }); const textureOptions = new Bit.Inputs.BabylonTexture.TextureSimpleDto(); textureOptions.url = objectUrl; const texture = bitbybit.babylon.texture.createSimple(textureOptions); const materialOptions = new Bit.Inputs.BabylonMaterial.PBRMetallicRoughnessDto(); materialOptions.roughness = 0.9; materialOptions.metallic = 0.1; materialOptions.baseColor = "#ffffff"; const mat = bitbybit.babylon.material.pbrMetallicRoughness.create(materialOptions); mat.baseTexture = texture; return mat; } function createGeometryAndAssignMaterial(mat: BABYLON.PBRMetallicRoughnessMaterial) { const cubeOptions = new Bit.Inputs.BabylonMeshBuilder.CreateCubeDto(); cubeOptions.size = 10; const cubeMesh = bitbybit.babylon.meshBuilder.createCube(cubeOptions); cubeMesh.material = mat; bitbybit.babylon.mesh.moveUp({ babylonMesh: cubeMesh, distance: 7, }) const squarePlaneOptions = new Bit.Inputs.BabylonMeshBuilder.CreateSquarePlaneDto(); squarePlaneOptions.size = 40; const planeSquareMesh = bitbybit.babylon.meshBuilder.createSquarePlane(squarePlaneOptions); bitbybit.babylon.mesh.pitch({ babylonMesh: planeSquareMesh, rotate: 90 }) planeSquareMesh.material = mat; } function setupEnvironment() { const skyboxOptions = new Bit.Inputs.BabylonScene.SkyboxDto(); bitbybit.babylon.scene.enableSkybox(skyboxOptions); const dirLightOptions = new Bit.Inputs.BabylonScene.DirectionalLightDto(); dirLightOptions.intensity = 5; bitbybit.babylon.scene.drawDirectionalLight(dirLightOptions); } start();