【发布时间】:2014-03-22 11:44:59
【问题描述】:
我已将一个 collada (dae) 模型导入到我的 Three.js 场景中,并且效果很好。我创建了一个 MeshPhongMaterial 并将其应用于场景中的一个特定对象,并且在 Chrome/FF 上它按预期工作,但在 IE11 中,设置 THREE.DoubleSided 会导致不绘制材质。
我猜测着色器和 IE11 存在问题,但想知道我是否可能遗漏了什么或者有人有解决方案:
var map = THREE.ImageUtils.loadTexture( "meshes/demoRoom/textures/Tank_COLOR.png" );
var mat = new THREE.MeshPhongMaterial(
{
map: map,
side: THREE.DoubleSide,
blending: THREE.AdditiveBlending,
depthTest: true,
transparent: true,
opacity: 0.35,
ambient: 0xffffff,
color: 0xFFFFFF,
specular: 0xcccccc,
shininess: 20,
emissive: 0xFFFFFF,
shading:THREE.SmoothShading
} );
【问题讨论】:
-
(1) 加载是异步的。您确定在纹理加载后调用 render() 吗? (2) 你的背景是白色的吗?设置
emissive = 0x000000; -
是的,肯定会渲染,而且我都将自发光设置为白色,将其移除(默认为黑色)等。不幸的是,我认为这是 IE11 中的着色器支持。
-
我收到“WEBGL11095: INVALID_OPERATION: clearStencil: Method not current support”以及“gl_FrontFacing”声明不正确
-
我还编写了一个与 Threes 加载管理器一起使用的多加载器,因此,在预加载所有资产之前,我不会构建场景/资产。
标签: javascript three.js shader internet-explorer-11