2012-03-19 1 views
3

Я пытаюсь создать сферическую панораму, используя THREE.js. Он отлично работает на Safari Desktop, но падает на Safari Mobile на iPAD. Это как-то связано с тем, как я загружаю изображение текстуры.Safari Mobile - Crashing - Три текстуры JS не загружаются

Несколько вещей, которые я пытался

  1. Я использую холст Renderer
  2. Пробовал загружая изображение меньшего размера.
  3. Пробная загрузка силы 2 текстуры изображения.
  4. Пробная загрузка Сферы с каркасным материалом - Работает!

Вот мой код. http://pastebin.com/1nwTMHJV

sceneHolder = document.getElementById('sceneHolder'); 
scene = new THREE.Scene(); 
camera = new THREE.PerspectiveCamera(60, SCENE_WIDTH/SCENE_HEIGHT, 1, 10000); 
camera.position.z = 0; 
scene.add(camera); 

var sphereGeom = new THREE.SphereGeometry(200, 20, 20); 
//NOTE: If we add {},function(){render()} in the following, it stops working! 
var sphereTexture = THREE.ImageUtils.loadTexture('media/vr/testpot.jpg'); 
mesh = new THREE.Mesh(sphereGeom,new THREE.MeshBasicMaterial({map:sphereTexture,overdraw:true})); 
//So that we see the inside of the sphere too! 
mesh.doubleSided=true; 
scene.add(mesh); 

renderer = new THREE.CanvasRenderer(); 
renderer.setSize( SCENE_WIDTH, SCENE_HEIGHT); 
sceneHolder.appendChild(renderer.domElement); 

Вот мой пост на three.js https://github.com/mrdoob/three.js/issues/1529

также: https://github.com/mrdoob/three.js/issues/1550

Благодарности smaira

+0

У меня такая точная проблема, какие-то обновления? –

ответ

0

Я пытался, понижая число граней может работать на IPad, но это просто уродливый.

вы можете попробовать:

var sphereGeom = new THREE.SphereGeometry(200, 10, 10); 

и аварии сафари во время рендеринга

renderer.render(scene, camera); 

вывод: если текстура загрузить изображение в сферу слишком много граней, IPad будет врезаться