Safari Mobile - Сбой - Три текстуры JS не загружаются - PullRequest
3 голосов
/ 19 марта 2012

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

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

  1. Я использую Canvas 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

1 Ответ

0 голосов
/ 21 августа 2014

Я пытался, уменьшение количества лиц может работать на iPad, но это просто ужасно.

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

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

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

renderer.render( scene, camera );

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

...