Three.js lightMap导致错误WebGLRenderingContext:GL错误:GL\u无效\u操作
我正在加载灯光贴图的jpeg文件Three.js lightMap导致错误WebGLRenderingContext:GL错误:GL\u无效\u操作,three.js,webgl,Three.js,Webgl,我正在加载灯光贴图的jpeg文件 var texture=new THREE.ImageUtils.loadTexture(“textures/metal.jpg”) 然后我将纹理应用于THREE.MeshPhongMaterial var frontMaterial = new THREE.MeshPhongMaterial( { color: 0xfade7e, specular: 0xffffff, ambient: 0xaa0000,
var texture=new THREE.ImageUtils.loadTexture(“textures/metal.jpg”)代码>
然后我将纹理应用于THREE.MeshPhongMaterial
var frontMaterial = new THREE.MeshPhongMaterial( {
color: 0xfade7e,
specular: 0xffffff,
ambient: 0xaa0000,
lightMap:texture
} )
完整错误消息为WebGLRenderingContext:GL错误:GL\u无效\u操作:GL抽屉元素:尝试访问属性2中超出范围的顶点
有什么不对劲吗?所有浏览器中都出现错误。Three.js r.56正如线程中@alteredq所解释的那样,光照贴图
需要第二组UV
光照贴图的要点是,它们可以独立于其他纹理而存在,从而使其他纹理有机会获得更高的细节。光照贴图使用自己的UV坐标集(通常由某些灯光烘焙解决方案自动生成,而不是艺术家创建的主UV集)
使用与其他所有东西具有相同UV的光照贴图没有多大意义,因为这样你就可以通过将光照贴图与颜色贴图一起烘焙(这就是Rage使用的,它看起来很棒,但需要大量纹理)以更少的纹理成本获得基本相同的结果
此外,光照贴图应该是乘法的,而不是加法的。光照贴图的主要用途是预烘焙阴影和环境光遮挡,因此您需要能够使事物变暗
因此,您的问题的答案是geometry.faceVertexUvs[0]
包含一组常见的UV;您需要向几何体添加几何体。faceVertexUvs[1]
three.js r.56正如线程中@alteredq所解释的那样,光照贴图
需要第二组UV
光照贴图的要点是,它们可以独立于其他纹理而存在,从而使其他纹理有机会获得更高的细节。光照贴图使用自己的UV坐标集(通常由某些灯光烘焙解决方案自动生成,而不是艺术家创建的主UV集)
使用与其他所有东西具有相同UV的光照贴图没有多大意义,因为这样你就可以通过将光照贴图与颜色贴图一起烘焙(这就是Rage使用的,它看起来很棒,但需要大量纹理)以更少的纹理成本获得基本相同的结果
此外,光照贴图应该是乘法的,而不是加法的。光照贴图的主要用途是预烘焙阴影和环境光遮挡,因此您需要能够使事物变暗
因此,您的问题的答案是geometry.faceVertexUvs[0]
包含一组常见的UV;您需要向几何体添加几何体。faceVertexUvs[1]
three.js r.56由于three.js缓冲区已过时,因此此错误会发生。将某些纹理(贴图、凹凸贴图…)添加到网格时,必须重新组合缓冲区并更新UV,如下所示:
ob is THREE.Mesh, mt is a Material, tex is a texture.
tex.needsUpdate = true;
mt.map = tex;
ob.material = mt;
ob.geometry.buffersNeedUpdate = true;
ob.geometry.uvsNeedUpdate = true;
mt.needsUpdate = true;
这就是所有的人
希望能有所帮助
问候
Sayris由于三个.js缓冲区已过时,因此此错误会发生。将某些纹理(贴图、凹凸贴图…)添加到网格时,必须重新组合缓冲区并更新UV,如下所示:
ob is THREE.Mesh, mt is a Material, tex is a texture.
tex.needsUpdate = true;
mt.map = tex;
ob.material = mt;
ob.geometry.buffersNeedUpdate = true;
ob.geometry.uvsNeedUpdate = true;
mt.needsUpdate = true;
这就是所有的人
希望能有所帮助
问候
Sayris这是一个猜测,所以我不会把它作为答案。。还可以尝试使用法线漫反射纹理贴图。我模模糊糊地记得,当材质只有一种颜色,但没有纹理时,其他一些功能出现了问题。@yakuMeshPhongMaterial
实际上可以与灯光贴图和漫反射纹理贴图一起正常工作。r、 这是一个猜测,所以我不会把它作为答案。。还可以尝试使用法线漫反射纹理贴图。我模模糊糊地记得,当材质只有一种颜色,但没有纹理时,其他一些功能出现了问题。@yakuMeshPhongMaterial
实际上可以与灯光贴图和漫反射纹理贴图一起正常工作。r、 56