Note that there are some explanatory texts on larger screens.

plurals
  1. POThree.js texture / image update at runtime
    primarykey
    data
    text
    <p>I am trying to change a cube image at run time by selecting an option from Select Form element. When running the code, the image changes after selecting, but the previous cube and image stays in the scene. </p> <p>How I clear / refresh / update the scene properly when changing the material / image / texture. </p> <pre><code>&lt;div id = "container"&gt;&lt;/div&gt; &lt;form id = "changesForm"&gt; Cube Image: &lt;br&gt; &lt;select id = "cubeImage"&gt; &lt;option value = "random"&gt;Random&lt;/option&gt; &lt;option value = "image1"&gt;First Image&lt;/option&gt; &lt;option value = "Image2"&gt;Second Image&lt;/option&gt; &lt;/select&gt; &lt;br&gt; &lt;/form&gt; &lt;script type = "text/javascript"&gt; window.onload = windowLoaded; function windowLoaded(){ if (window.addEventListener){ init(); animate(); //document.getElementById('container').addEventListener('mousemove', containerMouseover, false); window.addEventListener( 'resize', onWindowResize, false ); var cubeImage = document.getElementById('cubeImage'); cubeImage.addEventListener("change", changeCubeImage, false); } else if (window.attachEvent){ //init(); //animate(); //document.getElementById('container').attachEvent('onmousemove', containerMouseover); //window.attachEvent( 'onresize', onWindowResize); } function changeCubeImage(e){ //e.preventDefault(); var target = e.target; cubeImageCheck = target.value; createCube(); } // rest code ..... function createCube(){ //image var cubeImg; switch (cubeImageCheck){ case 'random': { // should load the 2 images random - to do cubeImg = new THREE.ImageUtils.loadTexture("img1.jpg"); break; } case 'image1': { cubeImg = new THREE.ImageUtils.loadTexture("image1.jpg"); break; } case 'image2': { cubeImg = new THREE.ImageUtils.loadTexture("image2.jpg"); break; } } cubeImg.needsUpdate = true; // geometry var cubeGeometry = new THREE.CubeGeometry(200,200,200);; // material var cubeMaterial = new THREE.MeshPhongMaterial({ map: cubeImg, side:THREE.DoubleSide, transparent: true, opacity:1, shading: THREE.SmoothShading, shininess: 90, specular: 0xFFFFFF }); cubeMaterial.map.needsUpdate = true; //mesh cubeMesh = new THREE.Mesh(cubeGeometry, cubeMaterial); cubeMesh.needsUpdate = true; scene.add(cubeMesh); } // rest .... </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload