2016-03-19 16 views
1

Cubemap'ta ilk 6 düşük kaliteli görüntünün yüklendiği ve görüntülendiği küp haritalarını kullanarak bir panorama göstermeye çalışıyorum. Bu işlem,THREE.js: Cubemap'ta yalnızca bir yüzün resmini değiştirin

İleri kullanılarak daha yüksek kalitede 6 görüntü yüklenir. Burada yapmaya çalıştığım şey, daha yüksek kaliteli bir görüntü yüklendiğinde, daha düşük kaliteli görüntünün yerini alması ve böylece daha yüksek kaliteli görüntülerin tek tek uygulanmasıdır. Her zaman loadTextureCube kullanmak bir seçenektir, ancak küp yüzlerini değiştirmek için daha doğrudan bir yol var mı?

cevap

1

Gökyüzü kutusu resimlerinizi değiştirmek istiyorsunuz.

Yeni bir CubeTexture ürününü yükleyin.

var newTexture = new THREE.CubeTextureLoader().load(urls, onLoadCallback); 

Ardından, geri bildirimde, skybox'ınızı yeni dokuya atayın. konsoluna

var oldTexture = skybox.material.uniforms.tCube.value; 

skybox.material.uniforms.tCube.value = null; 
oldTexture.dispose(); // important! 

skybox.material.uniforms.tCube.value = newTexture; 

Tip renderer.info eski dokular düzgün bir biçimde bertaraf ediliyor emin olmak için.

three.js r.76

+0

Yani, yüksek kaliteli görüntüdeki her değişiklik için bunu 6 kez yapmak zorundayım? – Parth

+0

Önerilen şekilde 6'yı bir kerede güncelleyin. – WestLangley

+0

Sanırım sorum çok net olmayabilir. Şu anda 6 görüntüyü bir kerede güncelliyorum. 6 yüz görüntü, yavaş ağlara yüklenmek için biraz zaman aldığından, 5 yüzün zaten yüklü olması ve yüklenmesi sadece zaman alıyor olabilir. Öyleyse, neden 5 yüksek kaliteli yüzleri hemen uygulayabildiğim ve yüklendikten sonra sonuncuyu uygulayabildiğim için sonuncuyu bekleyelim. – Parth