我想採取任何three.js幾何,並將其現有的面分成更小的面。這基本上給了幾何更高的「分辨率」。在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周圍挖,但我不知道如何修改它以獲得期望的結果。
注意:細分應該可以應用於任何幾何。我希望得到的結果的例子可能會使三維平面幾何體具有增加的片段效果,但我需要將其應用於各種幾何體。
在SubdivisionModifier代碼中,它使用頂點和邊權重定位新的細分頂點。我沒有時間深入瞭解正在發生的事情,但如果您可以修改/替換定位邏輯以沿着原始邊緣放置新頂點,那麼您的幾何圖形應該保持其形狀,同時仍然細分爲更多面。 – TheJim01
@ TheJim01謝謝,我一直在修改這些值,我想我接近一個解決方案。如果我找到一個可靠的解決方案,會發佈一個答案 – jackrugile