【发布时间】:2017-06-05 16:49:12
【问题描述】:
我正在尝试采用任何 three.js 几何并将其现有面细分为较小的面。这基本上会给几何图形更高的“分辨率”。在three.js 的示例中有一个细分修改器工具,它非常适合我正在尝试做的事情,但它最终会改变和变形几何体的原始形状。我想保留原来的形状。
View the Subdivision Modifier Example
当前细分修饰符的行为示例:
我希望它如何表现的粗略示例:
细分修饰符的应用如下:
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 看起来可行,但我需要将其应用于各种几何。
【问题讨论】:
-
在 SubdivisionModifier 代码中,它使用顶点和边权重来定位新的细分顶点。我没有时间深入研究正在发生的事情的数学,但是如果您可以修改/替换定位逻辑以沿原始边缘放置新顶点,那么您的几何图形应该保持其形状,同时仍被细分为更多面.
-
@TheJim01 谢谢,我一直在修改这些值,我想我已经接近解决方案了。如果我找到可靠的解决方案,将发布答案。
标签: javascript three.js geometry