首先,感谢您所做的出色工作,我在使用 three.js 时获得了很多乐趣。
我试图找到关于一个经常性问题的答案, .WebGLRenderingContext: GL ERROR :GL_INVALID_OPERATION : glDrawElements: attempt to access out of range vertices in attribute 2
我在 webgl 中创建一个网站,我花了几周时间了解有关 three.js 的所有信息,但我无法解决这个问题。每次我尝试将画布加载到地图、凹凸贴图和规格图中时,我都会在 Chrome 和 firefox(最新)上收到此消息。我所有的网格都是从 obj 文件加载的,顺便说一下,我重写了 OBJMTLLoader.js 以便能够从 obj 文件加载更多参数等等。这里是用于加载图像的代码。
THREE.MTLLoader.loadTexture = function (url, mapping, onLoad, onError) {
var isCompressed = url.toLowerCase().endsWith( ".dds" );
var texture = null;
if ( isCompressed ) {
texture = THREE.ImageUtils.loadCompressedTexture( url, mapping, onLoad, onError );
} else {
var image = new Image();
texture = new THREE.Texture( image, mapping );
var loader = new THREE.ImageLoader();
loader.addEventListener( 'load', function ( event ) {
texture.image = THREE.MTLLoader.ensurePowerOfTwo_( event.content );
texture.needsUpdate = true;
if ( onLoad )
onLoad( texture );
} );
loader.addEventListener( 'error', function ( event ) {
if ( onError ) onError( event.message );
} );
loader.crossOrigin = this.crossOrigin;
loader.load( url, image );
}
return texture;
}; 我很确定它来自这个,因为当我禁用此功能时,没有更多警告。
是因为网格在加载数据时有一个带有空图像的纹理吗?对图像的尺寸有任何限制吗?
现在一切正常,但我觉得在控制台中有这些消息很奇怪。
谢谢