gpt4 book ai didi

javascript - BufferGeometry MeshFaceMaterial 实现 r68

转载 作者:行者123 更新时间:2023-12-02 17:01:59 25 4
gpt4 key购买 nike

我们最近切换到 r68 并将所有几何图形移动到 THREE.BufferGeometry

我们在很多地方使用了 THREE.MeshFaceMaterial,根据 BufferGeometry faces materials THREE.BufferGeometry 不支持。解决方案似乎是创建多个网格,我尝试了这个,但它似乎不起作用,而且我没有收到任何错误。

我的方法如下:

var oldGeometry = ... // THREE.Geometry from our loader
var materials = ... // Material array from our loader, uses lightmaps, normalmaps etc.
var bufferGeometry = new THREE.BufferGeometry();
var geometry = bufferGeometry.fromGeometry(oldGeometry);

var group = new THREE.Object3D();

materials.forEach(function(material){
group.add(new THREE.Mesh(geometry, material));
});

geometry.attributes.uv = geometry.attributes.uvs;

这工作正常,没有错误,但是渲染时,所有光照贴图等似乎都不起作用,几何体看起来很好,但只有一种颜色。

关于如何正确实现这一点有任何提示吗?

编辑:

紫外线问题:https://github.com/mrdoob/three.js/issues/5118

编辑2:

在深入研究了 WebGLRenderer 源代码之后,我认为实现这一点需要做更多的工作,而现在是值得的。我们现在将坚持使用旧的几何形状,但我仍然愿意接受建议;)

编辑3:您可以在这里找到自己执行此操作的基本方法: https://github.com/mrdoob/three.js/issues/5268

这里正在做工作 https://github.com/mrdoob/three.js/issues/5417改进 Three.js 导出器,例如导出具有多种 Material 的缓冲区几何图形。

最佳答案

在 r68 中处理 uv 时,bufferGeometry.fromGeometry() 中存在错误。

尝试此解决方法:

bufferGeometry.attributes.uv = bufferGeometry.attributes.uvs;

关于javascript - BufferGeometry MeshFaceMaterial 实现 r68,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25609031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com