应用纹理时 Collada 模型不渲染
Posted
技术标签:
【中文标题】应用纹理时 Collada 模型不渲染【英文标题】:Collada model does not render when applying a texture 【发布时间】:2014-12-10 11:03:10 【问题描述】:当我尝试将纹理应用到我的.dae
模型时,它没有被渲染并且控制台显示这个错误:
[.WebGLRenderingContext]GL ERROR :GL_INVALID_OPERATION :
glDrawElements: attempt to access out of range vertices in attribute 2
当我将以下代码添加到我的 collada loader
时会发生这种情况:
loader.load( 'models/walls.dae', function ( collada )
var colladaWalls = collada.scene.children[0]
colladaWalls.name = "walls";
var wallsTexture = new THREE.ImageUtils.loadTexture( 'textures/walls.jpg' );
wallsTexture.wrapS = wallsTexture.wrapT = THREE.RepeatWrapping;
wallsTexture.repeat.set( 2, 2 );
//adding the line below cause the model to not be loaded
colladaWalls.material = new THREE.MeshPhongMaterial( map: wallsTexture, side: THREE.DoubleSide );
colladaWalls.material.needsUpdate = true;
colladaWalls.material.wireframe = false;
colladaWalls.position.set(0,-2,0);//x,z,y- if you think in blender dimensions ;)
colladaWalls.scale.set(2,2,2);
scene.add( colladaWalls );
);
问题:为什么?
【问题讨论】:
【参考方案1】:MeshPhongMaterial()
需要更多属性。尝试使用MeshBasicMaterial()
【讨论】:
不会改变任何东西。当我尝试使用 ThreeJS 将材质更改为导入的模型 .dae 时,问题就出现了。这是对 Collada 或 ThreeJS 的某种限制吗?以上是关于应用纹理时 Collada 模型不渲染的主要内容,如果未能解决你的问题,请参考以下文章
Threejs collada 3D模型在某些角度无法正确渲染
iPhone OpenGL ES 2.0 奇怪的图案在 COLLADA 文件中的球体上渲染纹理