Skip to content

Materials & Textures

getMaterials

getMaterials(callback: Function)

Returns the list of materials in the scene.

js
api.getMaterials(function(materials){
  console.log(materials);
});

setMaterial

setMaterial(material: object, callback: Function)

Updates a material by its material id. Get the materials from the getMaterials list.

js
api.getMaterials(function(materials) {
  var mat = materials[0];
  // Disable materials diffuse texture
  mat.channels.diffuseColor.enabled = false;
  mat.speed = 1;
  console.log(mat);
  api.setMaterial(mat, function() {
    console.log('Material updated');
  });
});

setMaterialAnimationSpeed

setMaterialAnimationSpeed(materialId: string, speed: number, [callback: Function])

Updates a material animation speed by its material id. Get the materials from the getMaterials list.

js
api.setMaterialAnimationSpeed('materialId', 2, function() {
    console.log('Animation speed updated');
})

removeMaterial

removeMaterial(materialId: string, [callback: Function])

Removes material by id. Get the materials from the getMaterials list.

js
api.getMaterials(function(materials) {
  var mat = materials[0];

  api.removeMaterial(mat.id, function() {
    console.log('Material removed');
  });
});

removeMaterialChannel

removeMaterialChannel(materialId: string, channel: string, [callback: Function])

Remove material channel (only for textures). Get the materials from the getMaterials list.

js
api.removeMaterialChannel('material_id', 'albedoTexture', function() {
  console.log('Channel removed');
});

updateMaterialChannel

updateMaterialChannel(materialId: string, channel: string, textureId: string, [callback: Function])

Update material channel texture. Get the materials from the getMaterials list. Get the textures from the getTextures list.

js
api.updateMaterialChannel('material_id', 'albedoTexture', 'texture_id', function() {
  console.log('Channel updated');
});

getTextures

getTextures(callback: Function)

Returns the list of textures in the scene (includes textureId's).

js
api.getTextures(function(textures){
  console.log(textures);
});

addTexture

addTexture(url: string, callback: Function)

Add a new texture to the textures in the scene. The response includes the textureId.

Hint: The url is a CORS-enabled image file. The file format must be natively supported by the web browser.

js
api.addTexture('https://www.rooom.com/texture.png', function(textureId){
  console.log('New texture added with ID: ', textureId);
});

addVideoTexture

addVideoTexture(url: string, options: object, callback: Function)

Add a new video texture to the textures in the scene. The response includes the textureId.

The options parameter:

  • loop (boolean) will make the video loop.
  • mute (boolean) will play the video with audio muted. This is useful to avoid blocking autoplay in browsers.

Hint: The url is a CORS-enabled image file. The file format must be natively supported by the web browser.

js
api.addVideoTexture('https://www.rooom.com/texture.mp4', {loop: true, mute: true}, function(textureId){
  console.log('New video texture added with ID: ', textureId);
});

updateTexture

updateTexture(textureId: string, url: string, callback: Function)

Update an existing texture in the scene. Get the textures from the getTextures list.

Hint: The url is a CORS-enabled image file. The file format must be natively supported by the web browser.

js
api.updateTexture('1234567890', 'https://www.rooom.com/texture.png', function(textureId){
  console.log('Replaced texture with ID: ', textureId);
});

updateVideoTexture

updateVideoTexture(textureId: string, url: string, options: object, callback: Function)

Update an existing video texture in the scene. Get the textures from the getTextures list.

The options parameter:

  • loop (boolean) will make the video loop.
  • mute (boolean) will play the video with audio muted. This is useful to avoid blocking autoplay in browsers.

Hint: The url is a CORS-enabled image file. The file format must be natively supported by the web browser.

js
api.updateVideoTexture('1234567890', 'https://www.rooom.com/texture.mp4', {loop: true, mute: true}, function(textureId){
  console.log('Replaced video texture with ID: ', textureId);
});

Material channels

The following material channels are available:

  • diffuseTexture
  • diffuseColor
  • albedoTexture
  • albedoColor
  • bumpTexture
  • emissiveTexture
  • reflectionTexture
  • lightmapTexture
  • ambientTexture
  • ambientColor
  • emissiveColor

They can be edited as JSON objects using the setMaterial function. Their exact attributes depend on the specific channel and texture options.