天天看點

我隻用了3步,實作了一個逼真的3D場景渲染

給3d模型及環境場景渲染出兼具質感和真實感的材質效果,需要經曆幾步?

顯然,目前的3d模型材質渲染技術,還無法實作簡單幾步就能搞定的标準化作業來量化,完成一個品質過關的3d模型渲染,一般需要:

1、準備一個内容豐富的貼圖、材質庫:渲染想要的材質效果,需要根據具體模型場景的形狀細節及複雜程度,針對性收集對應的素材外觀和紋理素材,耗時與模型的複雜程度呈正比,并且市面上大部材質付費使用,造價成本高。

2、從零開始調參:現有的3d模組化工具都要以豐富的參數來實作模組化渲染操作,通過調整參數來設定和控制模型。

3、渲染效果依賴美術經驗:3d模組化師逐漸成為緊俏的行業人才,也說明了3d模型制作需要技術和經驗老道的從業者,伴随着模型及場景的多樣化以及制作的精細化,美術經驗直接關系成品品質水準。

傳統作業方式确實細活慢工,但逆襲繁瑣步驟的材質生成能力已經出現啦!今天給大家帶來的材質生成能力,簡單易用,渲染高品質材質效果,隻需3步!

以較為常見的3d遊戲所需的複雜場景舉例,給一個多物體組合的複雜場景渲染材質,隻需如下的簡單操作:

我隻用了3步,實作了一個逼真的3D場景渲染

1、使用rgb相機拍攝所需材質實物照片。

我隻用了3步,實作了一個逼真的3D場景渲染

2、将rgb照片自動生成材質素材。

我隻用了3步,實作了一個逼真的3D場景渲染

3、材質貼圖,完成渲染。

我隻用了3步,實作了一個逼真的3D場景渲染

​​華為3d模組化服務​​提供的材質生成能力,将操作繁瑣的材質生成及渲染過程簡化提速,基于ai輔助材質生成,提升三維模型外觀創作效率,将技術美術的經驗和制作規範,固化為材質預設執行個體,複用有價值的經驗與規範,提升内容制作效率,降低材質制作成本。

材質生成能力

提供将rgb圖像轉換為pbr材質的能力,使用者通過內建sdk,僅需拍攝一張或多張rgb圖檔,便可一鍵生成4種材質貼圖,包括diffuse map /normal map/specular map/roughness map。ai輔助pbr素材生成,從照片生成材質,解放人力操作成本,滿足消費級3d材質應用。

我隻用了3步,實作了一個逼真的3D場景渲染

輸入圖檔檔案規格

軟硬體要求: 普通rgb手機,不要求rgb-d\lidar, 全android機型

支援類型:混凝土、大理石、岩石、碎石、磚、石膏、黏土、金屬、木材、樹皮、皮革、織物、漆面、塑膠、合成材料、碎石、大地(草地、沙灘等)

輸入圖像的要求:輸入圖像分辨率達到1~4k,輸入圖像中無接縫、無亮斑、陰影、倒影

輸出貼圖分辨率:1k(10241024px) 2k(20482048px)

sdk包大小:88kb

準确率:渲染後ssim>0.9

應用場景

3d模組化的材質生成能力一鍵實作現實中各色紋理的木材轉化為pbr材質,具有高還原度,極大提高場景的建構效率。簡單易用,效果佳,廣泛應用于3d内容制作領域。

電商行業:使用3d模型展示商品,為使用者提供逼近真實的線上購物體驗。

展覽行業:高價值的展品及文物,以3d模型形式展示,友善使用者細緻觀覽展品細節。

遊戲行業:如室内場景裡地闆、桌子、牆面等所需的木材,打造身臨其境的遊戲體驗。

開發準備

1.1、添加目前應用的appgallery connect配置檔案

如果在appgallery connect中開通了相關服務則需要将“agconnect-services.json”檔案添加到您的app中。

步驟 1:登入appgallery connect網站,點選“我的項目”。

步驟 2:在項目清單中找到您的項目,在項目中點選需要內建hms core sdk的應用。

步驟 3:在“項目設定 > 正常”頁面的“應用”區域,點選“agconnect-services.json”下載下傳配置檔案。

我隻用了3步,實作了一個逼真的3D場景渲染

步驟 4:将“agconnect-services.json”檔案拷貝到應用級根目錄下。

我隻用了3步,實作了一個逼真的3D場景渲染

1.2、配置hms core sdk的maven倉位址

步驟 1:打開android studio項目級“build.gradle”檔案。

我隻用了3步,實作了一個逼真的3D場景渲染

步驟 2:添加huawei agcp插件以及maven代碼庫。

在“buildscript > repositories”中配置hms core sdk的maven倉位址。

在“allprojects > repositories”中配置hms core sdk的maven倉位址。

如果app中添加了“agconnect-services.json”檔案則需要在“buildscript > dependencies”中增加agcp插件配置。

注:maven倉位址無法直接在浏覽器中打開通路,隻能在ide中配置。如需添加多個maven代碼庫,請将華為公司的maven倉位址配置在最後。

1.3、添加編譯依賴

步驟 1:打開應用級的“build.gradle”檔案。

我隻用了3步,實作了一個逼真的3D場景渲染

步驟 2:在“dependencies”中添加如下編譯依賴。

材質生成

3d物體模組化

注:{version}替換為實際的kit依賴版本,版本号索引請參見2 版本更新說明。例如:implementation 'com.huawei.hms:modeling3d-material-generate:1.0.0.300'和implementation 'com.huawei.hms:modeling3d-object-reconstruct:1.0.0.300'。

步驟 3:添加agcp插件配置。請根據實際情況選擇:

方式一:在檔案頭部聲明下一行添加如下配置。

方式二:在plugins中添加如下配置。

如果您的應用不需要設定隻支援某些特定語言,則請忽略本步驟。應用将預設支援所有hms core sdk支援的語言。

如果您的應用需要設定隻支援某些特定語言,則可通過本步驟配置。

a. 打開應用級的“build.gradle”檔案。

我隻用了3步,實作了一個逼真的3D場景渲染

b.在“android > defaultconfig”中新增“resconfigs”,配置需要支援的語種,配置格式如下:

hms core sdk支援的語言清單請參見hms core sdk支援的語言。

在完成以上的配置後,點選工具欄中的gradle同步圖示,完成“build.gradle”檔案的同步,将相關依賴下載下傳到本地。

我隻用了3步,實作了一個逼真的3D場景渲染

注:如果出現錯誤,請檢查網絡連接配接是否正常,以及檢查“build.gradle”檔案是否正确。

您編譯apk前需要配置混淆配置檔案,避免混淆hms core sdk導緻功能異常。

步驟 1:在應用級根目錄下打開混淆配置檔案“proguard-rules.pro”,加入排除hms core sdk的混淆配置腳本。

步驟 2:如果您使用了andresguard,需要在應用級的“build.gradle”檔案中加入andresguard允許清單。

在調用材質生成能力時,開發者需要在androidmanifest.xml檔案中申請如下權限:

在調用3d物體模組化能力時,開發者需要在androidmanifest.xml檔案中申請如下權限:

開發步驟

在開始api開發工作之前,完成開發準備工作同時請確定工程中已經配置配置hms core sdk的maven倉位址,并且完成了本服務的sdk內建。

使用雲側服務的能力,需要使用“agconnect-services.json”裡的api_key值,在應用初始化時通過api_key或者accesstoken來設定應用鑒權資訊,accesstoken的優先級較高。

(推薦)通過setaccesstoken方法設定accesstoken,在應用啟動時初始化設定一次即可,無需多次設定。

從“ageonnect-services.json”中的api_key擷取access token

通過setapikey方法設定api_key,在應用啟動時初始化設定一次即可,無需多次設定。

在appgallery connect上注冊應用時,會給你的應用配置設定api_key。

建立材質生成引擎和材質生成配置器并初始化材質生成引擎。

建立偵聽器回調,用于處理材質生成上傳結果。

上傳采集圖檔至雲側。

查詢雲側材質生成進度。

建立偵聽器回調,用于處理材質生成下載下傳結果。

下載下傳材質生成貼圖。

調用材質生成同步接口,可以實時擷取生成貼圖。

删除材質生成任務。

繼續閱讀