【问题标题】:Improve bump map quality in threejs提高threejs中的凹凸贴图质量
【发布时间】:2017-05-12 00:01:54
【问题描述】:

我有一个表面平坦的模型,我正在应用凹凸贴图纹理来绘制并在其上放置一些文本。我使用的代码是这样的:

loadedMesh.material.bumpMap = new THREE.Texture(canvas);
loadedMesh.material.bumpScale = 1;
loadedMesh.material.bumpMap.wrapS = loadedMesh.material.bumpMap.wrapT = THREE.ClampToEdgeWrapping;
loadedMesh.material.bumpMap.minFilter = THREE.LinearFilter;
loadedMesh.material.bumpMap.needsUpdate = true;
loadedMesh.material.needsUpdate = true;

场景中有模型和 4 个启用了阴影的定向灯。凹凸贴图效果很好,但质量真的很差。凹凸贴图大小为 2048x2048,我期待更好的质量。这里有一些图片:

如您所见,它的像素化程度很高,增加纹理大小并没有太大改善。如果从定向光到模型的入射角发生变化(例如,通过旋转模型),质量也会发生变化。

凹凸贴图只是一个纯黑白图像,在图像中添加一些抗锯齿可以提高质量吗?我知道凹凸贴图只会修改光的行为方式,它不会修改几何形状,但我在某些网站上读到增加模型的面数可以改善凹凸贴图(而不是置换贴图)细节,这可以吗工作吗?

【问题讨论】:

  • 改用法线贴图?
  • +1,您应该能够从中获得更高的精度,同时基本上做同样的事情。这里还有一点值得注意,你用的是jpg吗?
  • 1) 如果我理解正确,您将minFiltermagFIlter 都设置为THREE.LinearFilter(这是magFilter 的默认值)。您是否尝试过其他过滤器,例如THREE.NearestFilter? 2) 增加面数不应该有任何效果,除非您将 UV 分配给内部顶点,这将防止位置百分比计算在精确兔子洞中走得太远。 3)尝试一些抗锯齿。它会伤害什么?
  • 另外,当您创建画布图像时,请确保它没有应用自己的抗锯齿:developer.mozilla.org/en-US/docs/Web/API/…
  • @gman 我用法线贴图替换了凹凸贴图(也改变了颜色,而不是黑白),效果很好,质量更高。将其发布为答案,以便我接受:)

标签: javascript three.js bump-mapping


【解决方案1】:

尝试使用法线贴图而不是凹凸贴图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 2023-03-05
    相关资源
    最近更新 更多