gpt4 book ai didi

javascript - 在不改变外部几何形状的情况下应用 three.js 分割修改器?

转载 作者:数据小太阳 更新时间:2023-10-29 06:05:02 25 4
gpt4 key购买 nike

我正在尝试采用任何 three.js 几何体并将其现有面分割为更小的面。这实质上会给几何图形更高的“分辨率”。 three.js 的示例中有一个分割修改器工具,它非常适合我正在尝试做的事情,但它最终会改变和变形几何体的原始形状。我想保留原来的形状。

View the Subdivision Modifier Example


当前分割修饰符的行为示例:

enter image description here

我希望它如何表现的粗略示例:

enter image description here


分割修饰符是这样应用的:

let originalGeometry = new THREE.BoxGeometry(1, 1, 1);
let subdivisionModifier = new THREE.SubdivisionModifier(3);
let subdividedGeometry = originalGeometry.clone();
subdivisionModifier.modify(subdividedGeometry);

我试图在 source of the subdivision modifier 周围挖掘,但我不确定如何修改它以获得所需的结果。

注意:分割应该能够应用于任何几何体。我的期望结果示例可能使具有更多分段的 three.js PlaneGeometry 看起来可行,但我需要将其应用于各种几何体。

最佳答案

根据 TheJim01 评论中的建议,我能够挖掘原始来源并修改顶点权重、边权重和 beta 值以保留原始形状。我的修改应该删除任何平均,并将所有权重放在源形状上。

必须修改三个部分,所以我继续将其作为一个选项,可以将其传递到名为 retainShape 的构造函数中,默认为 false。

我用修改后的 SubdivisionGeometry.js 代码做了一个要点。

View the modified SubdivisionGeometry.js Gist


下面是在选项关闭和打开的情况下分割立方体的示例。

new THREE.SubdivisionModifier(2, false);

右: new THREE.SubdivisionModifier(2, true);

enter image description here

如果有人遇到任何问题或有任何疑问,请告诉我!

关于javascript - 在不改变外部几何形状的情况下应用 three.js 分割修改器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44373754/

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