2016-05-13 2 views
0

Я использую three.js для приложения AR, чтобы показать 3D-объект (экспортированный с Maya с майя-экспортером в три js) на маркер, обнаруженный с помощью JSARToolKit.ThreeJS, текстура трехмерного объекта, не работающая только онлайн

Все работает нормально на localhost (я вижу текстуру), но когда я загружаю его в Интернете (github), и я вижу, что объект предварительного просмотра кажется черным без текстуры (например, если я удаляю свет).

// load the model 
var loader = new THREE.JSONLoader; 
var object; 
//var geometry = new THREE.BoxGeometry(1, 1, 1); 
loader.load('js/object3d.js', function(geometry, materials){ 
var material = new THREE.MeshFaceMaterial(materials); 
object = new THREE.Mesh(geometry, material); 

container.add(object); 
}); 

var ambLight = new THREE.AmbientLight(0x909090, 2.0); 
container.add(ambLight); 

Любые идеи?

+0

в chrome нажмите f12 и проверьте наличие ошибок в разделе Консоль. если их нет, перейдите на вкладку «Сеть» и перезагрузите игру, чтобы посмотреть, какие активы загружаются, а какие нет. –

+0

Ошибок в консоли. Все загружается. – Vig

+0

@Vig Можете ли вы опубликовать ссылку на демо? – user01

ответ

1

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

Метод JSONLoader нагрузки принимает четыре аргумента (url, onLoad, onProgress, onError), как вы можете видеть here in the class on line 40.

Попытайтесь установить обработчик ошибок (метод обратного вызова) и посмотреть, что вы получаете. Например:

var onload = function(geometry, materials){ 
    var material = new THREE.MeshFaceMaterial(materials); 
    object = new THREE.Mesh(geometry, material); 
    container.add(object); 
}); 
var onProgress = function(){ 
    // your optional on progress logic 
} 
var onError = function(error){ 
    console.log(error); 
} 

var loader = new THREE.JSONLoader; 
loader.load('js/object3d.js', onLoad, onProgress, onError); 
+0

Спасибо за предложение! На самом деле я получил эту ошибку в консоли: 'htmlpreview.github.io/:1 [.CommandBufferContext] GL ОШИБКА: GL_INVALID_OPERATION: glGenerateMipmap: Не может генерировать mips' ________________________________________________ ' (255) htmlpreview.github.io/: 1 [.CommandBufferContext] RENDER WARNING: текстура, связанная с блоком текстуры 0, не является рендерируемой. Это может быть не-power-of-2 и иметь несовместимую фильтрацию текстур. ' ________________________________________________ ' htmlpreview.github.io/:1 WebGL: слишком много ошибок, больше сообщений об ошибках в консоли не сообщается. ' – Vig

+1

@ Vig сообщение об ошибке дает некоторые подсказки о том, что может вызвать проблему. Является ли ваш размер текстуры размером 2 (так, например, 64x64, 128x128, 256x256 и т. Д.). – Wilt

+0

Да, это была не сила-2, но теперь я исправляю его, реэкспортируя объект из майи, но все равно получаю те же ошибки в консоли. – Vig