【问题标题】:Three.js canvas renderer seams between polygonsThree.js 画布渲染器在多边形之间接缝
【发布时间】:2013-12-10 13:43:05
【问题描述】:

我已经对这个库感到很舒服了,但是这个让我已经很累了:

当我试图简单地渲染没有任何纹理的网格时,从搅拌器导出到 .obj(启用三角剖分、平滑组),WebGL 渲染器可以完美地做到这一点,但我还需要使用画布渲染器来实现,麻烦来了;多边形边缘之间有接缝,并且部分可以看到

为了说明清楚,提供截图

WebGL 渲染器 https://www.monosnap.com/image/OVaQO8yLDU9Wl6ufhADDVCEWg

画布渲染器 https://www.monosnap.com/image/1AYeyHjWkGx9fQ6vg6xLr0EcV

网格相当复杂,大约 7k 个三角形

【问题讨论】:

标签: three.js


【解决方案1】:

使用CanvasRenderer时,需要设置

material.overdraw = 0.5; // or some number between 0 and 1

这将有助于缓解问题。

注意:overdraw 曾经是一个布尔值;它现在是一个浮点数。

three.js r.63

【讨论】:

  • 这不起作用,仍然有接缝。加载代码:var loader2 = new THREE.OBJLoader(); loader2.load( 'models/cevje.obj', function(object) { object.material = new THREE.MeshLambertMaterial({color:0xffffff, shading:THREE.FlatShading, overdraw:0.5}); sceneobjectparent2.add(object); });
  • 和这里的代码一样<link>
  • 你使用的是three.js r.63版吗?
  • 我用的是r62,更新到r63后没有区别
  • 您将 Lambert 材质分配给加载的对象,而不是对象的子网格。这样做:object.children[0].material.overdraw = 0.5;
猜你喜欢
  • 2012-02-05
  • 2013-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
  • 2018-10-14
  • 2012-09-21
  • 1970-01-01
相关资源
最近更新 更多