我正在尝试使用CanvasRenderer
(three.js
)作为不支持的设备的备用WebGL
。是否有一些比较页面,说明什么是不同的并且不能一起使用CanvasRenderer
?
我遇到两个主要问题:
平面阴影,灯光完全消失(是否MeshPhongMaterial
受支持?),我看不到任何照明也没有阴影(在中支持阴影CanvasRenderer
)?我所看到的只是没有任何照明的漫反射纹理。在WebGL中,我当前的设置是PointLight, DirectionalLight, softShadows, antialiasing
和MeshPhongMaterial
(带有漫反射,凹凸,规格和环境贴图)
this.materialM = new THREE.MeshPhongMaterial({
ambient : 0x050505,
color : this.model.color,
specular : 0xcccccc,
shininess : 100,
bumpScale : BUMP_SCALE,
reflectivity : REFLECTIVITY,
});
透明的多边形边缘(我知道可以用material.overdraw
= 0.5进行调整,但是会产生其他伪像(因为它可能仅沿着法线缩放多边形)?
非常感谢1.或与之CanvasRenderer
相比可能无法提供的一般帮助概述WebGLRenderer
!
three.js r68
CanvasRenderer
有局限性。
MeshPhongMaterial
不支持CanvasRenderer
-它回退到MeshLambertMaterial
。
MeshLambertMaterial
支持,但当材质具有纹理时不支持-它回退到MeshBasicMaterial
。(MeshBasicMaterial
渲染时不考虑场景光。)
不支持阴影。
material.overdraw = 0.5
当材质不透明时,有助于隐藏多边形边缘。如果材质是透明的,它可能仍会留下伪影。
three.js r.68
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句