cesium/resium 修改子模型材質

我是?www.v2ex.com/t/1151549 的作者,在csdn這邊補全一些更多的信息

相關工具

主項目插件版本: "cesium": "^1.131.0",、"resium": "^1.19.0-beta.1"、"three": "^0.178.0"、"react": "^19.1.0"、"3d-tiles-renderer": "^0.4.13"

用ai寫的給glb的頂點屬性增加_BATCHID的腳本的插件依賴:?"@gltf-transform/core": "^4.2.1","@gltf-transform/extensions": "^4.2.1"

npm版的非官方的那個3d-tiles-tools的版本: 1.0.0

官方3d-tiles-tools源碼的版本"name": "3d-tiles-tools","version": "0.5.0",

失敗的glb模型路線

最近有單子搞 web3d ,有個明確的需求是對"一個由多個模型組成的大模型"進行子模型級別的交互并更改材質顏色。這個需求原本和團隊里人聊的很嗨,感覺實現很容易,實際上我(+ai )硬磨了 3 天半后,發現 resium 的 Entiy 、Model 都不行,感覺卡的夠久了,就不再試試 Primitive 了,開始回頭復盤哪里出了問題——blender 導出的 glb 模型,resium 倒是能拿到 node ,但很多都是不公開的變量,雖然 console 能打印,但我這邊調研的定論是"cesium 不能對 glb 模型進行 node 級別的材質顏色修改",賦值能賦值成功,scene 重渲染就是不生效。

我這邊為了防止自己對 ai 誘導型提問,豆包、通義靈碼、gpt 三個混著用,第三天才想起來重新提問了大方向,明確了下一個調研方向.b3dm 的 3dtiles 。

3dtiles和.b3dm

讓 gpt 寫 @gltf-transform/core 的腳本失敗率好高,總之基于 @gltf-transform/core 整了個腳本(這個是成功的),給 glb 的每個頂點屬性加上"_BATCHID"。 用 3d-tiles-tools analyze (不是 cesium 官方的那個 3d-tiles-tools, 這里的是個 npm 包)驗證了一下這個修改后的 glb 確實有了_BATCHID,下一步是把這個有 batchid 的 glb 做成有 batchTable 和 featureTable 的的.b3dm 。我嘗試了一天一夜最終放棄了“讓 ai 基于 @gltf-transform 去寫上述要求的 glb 轉.b3dm 方法”。下載了 cesium 官方的 3d-tiles-tools 源碼, 用 src/tilesets/tileFormats/TileFormats 的 createB3dmTileDataFromGlb 方法搞了個腳本,成功做出了符合要求的.b3dm 。這個.b3dm 我 analyze 出來后的 xxx.batchTable.json 、xxx.featureTable.json 都是有正確的值的。對了,有個在線分析 glb 是否合規的,是?glTF Validator?,再加上官方的 3d-tiles-tools 能確保 ai 不會搗亂出非法的 glb 、.b3dm (走了很多彎路,我真信了 ai 給我搓了個驗證腳本,迭代了半天然后放棄了)。tileset.json 的話,我這波調研是能跑就行,用 3d-tiles-tools 隨便生成了一個,坐標什么的我自己在 resium 里用代碼矯正。最終,我用 resium 的 Cesium3DTileset 接入這個 3dtiles 后,成功 pick 到了一個 Cesium3DTileFeature 對象,pickedObject.getProperty('name')也有值了,可以通過 tile 的 Cesium3DTileStyle 批處理改材質顏色了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/918536.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/918536.shtml
英文地址,請注明出處:http://en.pswp.cn/news/918536.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

nvm install 14.21.3 時npm 無法下載和識別

錯誤:C:\Users\H3C>nvm install 14.21.3 Downloading node.js version 14.21.3 (64-bit)... Complete Downloading npm... Creating C:\Users\H3C\AppData\Local\Temp\nvm-install-939491942\temp Downloading npm version 6.14.18... Error while downloading h…

【網絡運維】Linux:LNMP 項目實踐

LNMP 項目實踐 簡介:什么是 LAMP/LNMP LAMP:LinuxApacheMysql/MariadbPHP/Python/Perl。 LNMP:LinuxNginxMysql/MariadbPHP/Python/Perl。 Linux:操作系統,提供程序運行基礎。Apache/Nginx:Web 服務器&…

用 Docker 安裝并啟動 MySQL:從零到實戰的完整指南

用 Docker 安裝并啟動 MySQL:從零到實戰的完整指南MySQL 是目前最流行的關系型數據庫之一,廣泛應用于各類應用系統中。使用 Docker 部署 MySQL 可以極大簡化環境配置,保證開發、測試和生產環境的一致性。本文將詳細介紹如何使用 Docker 安裝、…

動態規劃----1.爬樓梯

70. 爬樓梯 - 力扣(LeetCode) /** 1階:1步,即1種; 2階:1步1步或直接2步,即2種 f(1) 1,f(2) 2 3階:由1階邁2步,或2階邁一步; 4階:由2階邁2步,或3階1步; n階:由n-2階邁2步,或n-1階邁1步 f(n) f(n - 1) f(n - 2) */ class Solution {/**1階:1步,即1種…

special topic 11 (1)

preface 雖然我知道專業課必須得學,但是要學的東西,好多,我對專業課很害怕,稍微往后挪一挪,今天學了兩個強化網課之后再學專業課吧。今天的目標是學完 11 到 14.任重道遠,加油!從今天開始盡量早…

MTD和FTL的關系

在嵌入式存儲系統里,MTD(Memory Technology Device)和 FTL(Flash Translation Layer)是上下兩層、互相配合的概念。你可以把它想成**“原始硬件接口”和“硬盤驅動”**的關系。1. MTD 是什么定位:內核里對原…

自動駕駛 HIL 測試:構建 “以假亂真” 的實時數據注入系統

01 引言在端到端自動駕駛的研發競賽中,算法的迭代速度遠超物理世界的測試能力。單純依賴路測不僅成本高昂、周期漫長,更無法窮盡決定系統安全性的關鍵邊緣場景(Corner Cases)。因此,硬件在環(HIL&#xff0…

jdk升級

列出所有的jdk版本 /usr/libexec/java_home -V 永久切換版本 export JAVA_HOME(/usr/libexec/javahome?v11)exportPATH(/usr/libexec/java_home -v 11) export PATH(/usr/libexec/javah?ome?v11)exportPATHJAVA_HOME/bin:$PATH 保存后執行 source ~/.zshrc

Openlayers基礎教程|從前端框架到GIS開發系列課程(24)openlayers結合canva繪制矩形繪制線

本章節講解Canvas如何結合 Openlayer 使用&#xff0c;首先我們講解Canvas的繪圖基礎。我們初始化地圖的時候可以看見&#xff0c;實際上Openlayer的地圖就是用Canvas實現繪制的。Canvas繪制基本概念什么是canvas&#xff1f;HTML5 <canvas> 元素用于圖形的繪制&#…

深度學習——01 深度學習簡介

1 什么是深度學習&#xff1f;人工智能是個大范疇&#xff0c;目標是打造智能機器和程序&#xff1b; 機器學習是實現人工智能的一種途徑&#xff0c;它能讓機器在不被明確編程的情況下自主學習&#xff1b;而深度學習&#xff0c;是機器學習的一個分支&#xff0c;它是基于深度…

自然語言處理( NLP)基礎

一、基本概念自然語言處理也就是Natural Language Processing&#xff0c;簡稱NLP。NLP就是人工只能和語言學領域的一個分支&#xff0c;涉及到計算機與人類語言之間的相互作用。主要目標是讓計算機能夠理解、解釋和生成人類語言的數據。1 自然語言處理的基本介紹NLP包括但不限…

云原生作業(nginx)

目錄 1 Web 服務基礎介紹 1.1 Web 服務介紹 1.1.1 Apache 經典的 Web 服務端 1.1.2 Nginx-高性能的 Web 服務端 1.1.3 用戶訪問體驗和性能 1.1.4 服務端 I/O 流程 1.2 I/O 模型 1.2.1 I/O 模型相關概念 1.2.2 網絡 I/O 模型 1.2.3 五種 IO 對比 1.2.4 I/O 的具體實現…

NY198NY203美光固態閃存NY215NY216

NY198NY203美光固態閃存NY215NY216技術架構與核心創新突破美光NY系列&#xff08;含NY198/NY203/NY215/NY216&#xff09;作為新一代企業級存儲解決方案&#xff0c;其底層采用232層NAND閃存三維堆疊工藝&#xff0c;如同垂直建造數字世界的摩天大樓&#xff0c;在有限芯片面積…

後端開發技術教學(四) 數據交互延伸

書接上回&#xff1a;後端開發技術教學(三) 表單提交、數據處理-CSDN博客 必要資源&#xff1a; trae中文版下載網址: TRAE - The Real AI Engineer phpStudy 2018 : phpStudy - Windows 一鍵部署 PHP 開發環境 小皮出品 前言 大家好&#xff0c;我是小楓。書接上期說到的後…

華清遠見25072班C語言學習day7

重點內容&#xff1a;二維整形數組&#xff1a;定義&#xff1a;數據類型 數組名[行數][列數];數組中元素的訪問&#xff1a;通過行標和列標來訪問、行標從0開始&#xff0c;列標從0開始初始化和賦值&#xff1a;int arr1[2][3]{1,2,3,4,5,6}; -->二維數組完全初始化int arr…

FPGA實現Aurora 64B66B數據回環傳輸,基于GTX高速收發器,提供2套工程源碼和技術支持

目錄1、前言Aurora 64B66B是啥&#xff1f;官方有Example&#xff0c;為何要用你這個&#xff1f;工程概述免責聲明2、相關方案推薦我已有的所有工程源碼總目錄----方便你快速找到自己喜歡的項目我這里已有的 GT 高速接口解決方案本方案在Aurora 8B10B上的應用3、工程詳細設計方…

實用硬件設計規范要點-原理圖

此處所涉及的并非指導硬件工程師如何繪制原理圖&#xff0c;而是旨在規范原理圖的模板&#xff0c;統一原理圖的設計方式&#xff0c;確保原理圖具備良好的可閱讀性&#xff0c;并統一與下一環節——PCB LAYOUT的接口。具體的硬件設計方法&#xff0c;諸位需在未來的工作中加以…

用 Apache Iceberg 與 Apache Spark 在 Google Cloud 打造高性能、可擴展的數據湖倉

大數據分析版圖不斷演進&#xff0c;組織正尋求更靈活、可擴展且具成本效益的方式來管理與分析海量數據。這一追求催生了數據湖倉范式&#xff0c;它將數據湖的低成本存儲與靈活性&#xff0c;與數據倉庫的數據管理能力和事務一致性相結合。站在這場變革中心的是 Apache Iceber…

【PyTorch學習筆記 - 02】 Datasets DataLoaders

前言 處理數據樣本的代碼可能會變得雜亂無章且難以維護&#xff1b;為了獲得更好的可讀性和模塊化&#xff0c;我們理想的情況是將數據集代碼與模型訓練代碼解耦。PyTorch 提供了兩個數據處理類&#xff1a; torch.utils.data.DataLoader 和 torch.utils.data.Dataset&#x…

JavaWeb 30 天入門:第七天 —— 異常處理機制

在前六天的學習中&#xff0c;我們掌握了 Java 的基礎語法、面向對象核心特性、抽象類與接口等知識。今天我們將學習 Java 中的異常處理機制&#xff0c;這是保證程序健壯性的關鍵技術。在 JavaWeb 開發中&#xff0c;無論是用戶輸入錯誤、數據庫連接失敗還是網絡異常&#xff…