THREEjs geometry升級buffergeometry的萬能方法

更新於 發佈於 閱讀時間約 2 分鐘

在THREE r125版本開始,THREE.Geometry就被棄用。

自己的職位是IT前端,由於套件安全性的原因,需要對THREE套件進行升級,但自己所在公司的程式內還有大量的Geometry。

因為前輩們開發了一些複雜強大的算法,如果用Threejs官方建議的正規方法,自己必須要看懂並且改寫算法。但自己水平有限,所以只能另尋其他方法。

這些踩坑路上找到的強大方法,感覺隨著時間消失太可惜了,所以這裡將大概的思想記錄下來分享給大家。

複製轉換函式

在r124版本,有Geometry與BufferGeometry轉換的函式,可以把這幾個函式需要的部分取出來,改造一下,變成自己的工具函式,需要時就呼叫使用。

自創Geometry物件

大部分程式不會一次用到Geometry的所有欄位,所以我們可以自己建立簡單Geometry物件,裡面只需包含簡單必要的欄位就行。

當然也可以自創整個Geometry類別,但我為了保持程式簡單,只有建立簡單有必要欄位的物件,需要用到的函式都提取成工具函式。

改寫程式

有了這個假的類別,又有了假的轉換函式,就不用擔心新版Threejs棄用Geometry了。

理論上也不需修改前輩們的複雜算法,只要把Geometry類別替換成自己假的Geometry物件,輸出時再用假的工具函式轉換成BufferGeometry即可。

但是這個方式非常耗效能,所以不到必不得已,還請斟酌使用。

留言
avatar-img
留言分享你的想法!
avatar-img
s_SoNg的沙龍
4會員
12內容數
s_SoNg的沙龍的其他內容
2025/04/28
在工作上遇到nodejs呼叫執行檔執行失敗問題,最後發現是由於nodejs專案本身有用nssm包成服務,在服務環境的nodejs呼叫的執行檔也執行在服務中,造成程式不會跳出視窗而導致失敗。
Thumbnail
2025/04/28
在工作上遇到nodejs呼叫執行檔執行失敗問題,最後發現是由於nodejs專案本身有用nssm包成服務,在服務環境的nodejs呼叫的執行檔也執行在服務中,造成程式不會跳出視窗而導致失敗。
Thumbnail
2025/04/08
準備專案 這邊首先準備一個新的專案,可以參考react官網,完成後參考README.md輸入npm run dev就可以啟動並在瀏覽器看到畫面 準備nssm工具 在google上搜nssm,第一個項目點進去後,找到並下載穩定版,附上下載鏈接 壓縮檔下載完畢後,解壓縮到喜歡的地方,然後進入資料
Thumbnail
2025/04/08
準備專案 這邊首先準備一個新的專案,可以參考react官網,完成後參考README.md輸入npm run dev就可以啟動並在瀏覽器看到畫面 準備nssm工具 在google上搜nssm,第一個項目點進去後,找到並下載穩定版,附上下載鏈接 壓縮檔下載完畢後,解壓縮到喜歡的地方,然後進入資料
Thumbnail
2024/10/30
如果有個算法是2秒以上很耗時的長任務,希望在執行長任務前後修改state渲染loading畫面,可能會難以達到預期效果,會看到loading畫面一閃而過。 把setState改非同步的方法...
2024/10/30
如果有個算法是2秒以上很耗時的長任務,希望在執行長任務前後修改state渲染loading畫面,可能會難以達到預期效果,會看到loading畫面一閃而過。 把setState改非同步的方法...
看更多
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
遭受學習挫折的一周,開始發現社群的重要性,最終還是回歸於自己報名體驗營的目的。
Thumbnail
遭受學習挫折的一周,開始發現社群的重要性,最終還是回歸於自己報名體驗營的目的。
Thumbnail
軟體工程師體驗營的第三周,對於知識、學習、課程、社群的感想,持續內化中,我不想只有上課,也希望從學習過程獲得更多經驗,所以寫下了這篇記錄。我也意外發現剛學習的 JavaScript,說不定能讓我重拾學習程式互動藝術,這很令人開心,即使我正在考慮轉職,但創作是終生的,希望下次發作品能有些新展現。
Thumbnail
軟體工程師體驗營的第三周,對於知識、學習、課程、社群的感想,持續內化中,我不想只有上課,也希望從學習過程獲得更多經驗,所以寫下了這篇記錄。我也意外發現剛學習的 JavaScript,說不定能讓我重拾學習程式互動藝術,這很令人開心,即使我正在考慮轉職,但創作是終生的,希望下次發作品能有些新展現。
Thumbnail
這篇文章將會分享一場討論程式發展階段的體悟。
Thumbnail
這篇文章將會分享一場討論程式發展階段的體悟。
Thumbnail
漸漸醞釀產生劇情的架構、玩法、以及一些點子 這時期通常也是最有趣,但最容易造成遊戲難產的時候 過去看過很多優秀的點子或是企劃人員 想了很多,最後專案難產 原因就是把架構拉得太大,要求過多 甚至鐵三角(企劃、程式、美術)互相推諉 導致專案直接胎死腹中 其實,不用那麼在意 初期,就是先把核心玩法訂出,接
Thumbnail
漸漸醞釀產生劇情的架構、玩法、以及一些點子 這時期通常也是最有趣,但最容易造成遊戲難產的時候 過去看過很多優秀的點子或是企劃人員 想了很多,最後專案難產 原因就是把架構拉得太大,要求過多 甚至鐵三角(企劃、程式、美術)互相推諉 導致專案直接胎死腹中 其實,不用那麼在意 初期,就是先把核心玩法訂出,接
Thumbnail
軟體開發是在虛擬的空間重新描述並解決現時的問題,多數時候並不存在正確答案。如何穿越這些不確定及未知就體現了開發者的功力以及對事物的把握度。 標題有點聳動,但且以這篇短文紀錄幾個印象比較深的、飛一陣後發現什麼節論都沒得到的可能作法(? 所以其實是要反著看 … 以下列舉三個常碰到的情況跟大家分享
Thumbnail
軟體開發是在虛擬的空間重新描述並解決現時的問題,多數時候並不存在正確答案。如何穿越這些不確定及未知就體現了開發者的功力以及對事物的把握度。 標題有點聳動,但且以這篇短文紀錄幾個印象比較深的、飛一陣後發現什麼節論都沒得到的可能作法(? 所以其實是要反著看 … 以下列舉三個常碰到的情況跟大家分享
Thumbnail
我一開始在設計初期並沒有預設要往數位建築的方向操作,而是在後期發展的時候與我的造型與概念有關,因此軟體的選擇以RHINO為主和SOLIDWORKS為輔助,再轉成STL檔進入CURA(3D打印機的開源切片應用程序),GRASSHOPPER(參數設計)基本上是沒有用到。
Thumbnail
我一開始在設計初期並沒有預設要往數位建築的方向操作,而是在後期發展的時候與我的造型與概念有關,因此軟體的選擇以RHINO為主和SOLIDWORKS為輔助,再轉成STL檔進入CURA(3D打印機的開源切片應用程序),GRASSHOPPER(參數設計)基本上是沒有用到。
Thumbnail
初學程式時認為寫程式是在跟機器溝通,它懂了、可以動了,我的目的達成了,結案!然而大多時候,光是連編譯器吐出來的錯誤訊息都看不懂,更別說是考慮自己寫出來的程式碼的可讀性,而且專案太小也感覺不出維護上的困難。
Thumbnail
初學程式時認為寫程式是在跟機器溝通,它懂了、可以動了,我的目的達成了,結案!然而大多時候,光是連編譯器吐出來的錯誤訊息都看不懂,更別說是考慮自己寫出來的程式碼的可讀性,而且專案太小也感覺不出維護上的困難。
Thumbnail
回顧過往,參與協作了超過 60 個軟體方案。 曾接觸過合作內容差異頗大,比如 仔細看看也還蠻多面向的,未來好像可以就這些部分做些分享交流。但總會想到一件事,到底這些開發裡頭到底都在做些什麼? 身為設計師是否常常覺得某些著名產品的體驗不好?比如該對齊沒對齊或重要功能拜放在很難找到的地方。
Thumbnail
回顧過往,參與協作了超過 60 個軟體方案。 曾接觸過合作內容差異頗大,比如 仔細看看也還蠻多面向的,未來好像可以就這些部分做些分享交流。但總會想到一件事,到底這些開發裡頭到底都在做些什麼? 身為設計師是否常常覺得某些著名產品的體驗不好?比如該對齊沒對齊或重要功能拜放在很難找到的地方。
Thumbnail
應用 昨天嘗試一次發兩篇 結果 第一篇瞬間不見 也就是方格子的機制是以人作為單位 不管今天發了幾篇,就算不同專欄, 也只會有一篇文章在最新的檯面上 用洗版來刷存在感的方式用不了呢(´ºωº`) ================================ 更多作品資訊與人物一覽 ht
Thumbnail
應用 昨天嘗試一次發兩篇 結果 第一篇瞬間不見 也就是方格子的機制是以人作為單位 不管今天發了幾篇,就算不同專欄, 也只會有一篇文章在最新的檯面上 用洗版來刷存在感的方式用不了呢(´ºωº`) ================================ 更多作品資訊與人物一覽 ht
Thumbnail
本系列文為節選第 468 期 JavaScript Weekly 文章的讀後整理心得。 本文為「下」,收錄內容: Vue 3.0 的設計概念 TypeScript 的 const assertion Preact 華麗復活 阿 Svelte 不是很邱?
Thumbnail
本系列文為節選第 468 期 JavaScript Weekly 文章的讀後整理心得。 本文為「下」,收錄內容: Vue 3.0 的設計概念 TypeScript 的 const assertion Preact 華麗復活 阿 Svelte 不是很邱?
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News