2013-07-27 60 views
0

我们在Blender中创建了一个模型,它使用布尔差分算子从“平面”基底中减去一个挤压SVG。换句话说,我们为它画了一张照片。该模型在Blender中渲染得很好,但将其加载到我们简单的基于three.js的Web查看器中(使用Blender的json导出器),我们在曲面上获得了一些非常奇怪的阴影,并且根据比例,闪亮的顶点。复杂模型的Three.js阴影看起来很奇怪

这里是我的灯和照相机:

camera = window.camera = new THREE.PerspectiveCamera(45, $('main').width()/$('main').height(), 10, 10000); 

    loader = new THREE.JSONLoader(true); 

    var light = new THREE.DirectionalLight(0xffffff, 1.0); 
    light.position.set(-30, 30, 100); 
    light.target.position.set(0, 0, 0); 
    light.shadowCameraNear = 200; 

任何人能发现我们是否做错了什么事?这是一个三特定的问题,或WebGL,或Blender,或我们的模型?

Output (screenshot) Fiddle

回答

0

我不确定这是否在技术上算作解决方案,但 - 通过删除JSON搅拌机导出来解决问题,并使用P3D代替直接加载.stl。

0

看你的小提琴,看来你vertexNormals是完全平滑,从而阴影不正确。 请参阅: https://github.com/mrdoob/three.js/issues/1258 这是否对您有帮助?

+0

使用FlatShading修复小提琴上的阴影,不幸的是它不符合我们真实的生产模型: -/ 我可以防止vertexNormals引起这种情况吗?这是我的Blender模型的东西,还是关于JSON导出的东西? – lalomartins