AI 點樣喺 3D 房間裡面擺放家具

Flur Team6 分鐘閱讀
一間已配置家具嘅酒店客房俯視圖,疊加顯示淨空同擺放疊加面板,展示家具佔地同尺寸

比起生成周圍嘅幾何結構,將一件家具擺入 3D 房間聽落好似係簡單嗰部分。其實唔係。 位置只係最唔重要嘅一環——真正難嘅問題係功能、朝向同碰撞, 只要其中任何一個出錯,一間原本正確嘅房間就會明顯睇落好似擺拍出嚟嘅, 而唔係真係有人住喺入面。

由平面圖讀取房間功能

家具擺放嘅第一步,係要知道一個房間「係咩」,而唔淨係佢嘅邊界。 一張解析後嘅平面圖帶有分區標籤——睡房、浴室、衣櫃、露台—— 每種分區類型都對應一套預期嘅家具組合,其比例要配合房間嘅實際尺寸。 一個睡房分區會得到一張同其面積相稱嘅床,而唔係一個通用預設值; 一個浴室分區會得到潔具,而唔係座椅。呢一步一旦出錯, 之後嘅一切都會跟住受影響——即使精度幾高,擺放咗錯嘅家具組合依然係錯。

喺呢一步之前,比例必須先啱,先至可以進行任何其他事情。一張標準雙人床 同一張加大雙人床所佔嘅面積有明顯分別,而房間嘅實際尺寸決定咗應該揀邊一種—— 或者話,一張床可唔可以同預期家具組合嘅其餘部分一齊擺得落。 由平面圖讀取功能,唔淨係揀一個家具類別,而係為而家搭建緊嘅呢個具體房間, 揀出該類別對應嘅正確尺寸版本。

佔地面積同淨空約束

每一件家具都佔據一塊佔地面積——地面上嘅一塊 2D 區域—— 每一次擺放,除咗唔可以同另一個物體嘅佔地面積重疊之外, 仲必須遵守通道淨空同門嘅開合弧線。一張梳化淨係由面積睇擺放正確, 但擋住咗浴室門嘅開合弧線,即使靜止狀態下冇任何物理重疊, 呢個依然係一次擺放失敗。隨住房間逐漸被填滿,呢啲約束會不斷疊加: 早期嘅擺放仲有較多空地可用,而後面嘅擺放就要喺剩返嘅空間入面, 喺唔違反已擺放物件周邊淨空嘅前提下搵到位置。

淨空亦唔係一個固定數字——一條通道所需嘅闊度, 同一扇衣櫃門前所需嘅空間係唔同嘅,床頭櫃可以比五桶櫃更加貼近床, 但五桶櫃就唔可以咁貼近門嘅開合範圍。將每一處空隙都當成同一個最小距離處理, 要麼過度保守、浪費可用地面面積,要麼產出一個喺靜態渲染入面睇落幾好、 但喺真正建成嘅房間入面根本行唔通嘅佈局。

點解朝向先係難點

位置同佔地面積可以令一個房間嘅佈局大致正確。而朝向,先至係令佢讀落去正確嘅 關鍵——而且佢比聽落去難得多。一張床相對於門被推去錯咗嘅嗰面牆, 或者一件櫃類家具朝向角落而唔係朝向房間開闊處,即使房間其餘部分擺放得完美無瑕, 呢種錯誤都會即刻打破真實感。解決辦法唔係一條全局規則, 而係一套逐件資產嘅朝向分類體系,每種家具類型都帶有自己嘅朝向邏輯—— 床頭要靠實牆,書枱要面向可用地面空間,衣櫃門前需要留出開合淨空。 單靠位置,從來就唔可能編碼呢啲資訊。

喺空間網格上做碰撞檢查

每一個候選擺放,喺俾人接受之前,都會對照一個追蹤緊已佔用狀態嘅空間網格嚟檢查—— 佔地面積、門嘅開合弧線、通道淨空。任何一次會同現有家具相撞、 擋住門口,或者侵佔所需通道闊度嘅擺放都會俾人拒絕並重新嘗試, 逐個房間進行,而唔係指望單一一輪擺放就可以一次過將每件家具都擺啱。

呢個亦正正就係令家具擺放能夠同之後嘅編輯互相兼容嘅原因。當一次對話式編輯 要求移動某件家具嗰陣,驗證原始擺放嘅同一套碰撞檢查,都會用嚟驗證新嘅擺放—— 網格唔需要為「編輯」同「初次擺放」分別設一套規則,因為兩者都只係 針對同一片已佔用空間進行檢查嘅擺放請求嚟啫。

可按類別瀏覽嘅家具目錄面板,用嚟將比例精確嘅家具擺入房間

點解真實目錄勝過佔位方塊

通用嘅佔位幾何體——一個大致按梳化尺寸做嘅灰色方塊——足以喺抽象層面 證明一個佈局係可行嘅,但佢完全冇辦法話俾你知真實家具擺唔擺得落、 睇落啱唔啱,而且佢冇辦法俾人訂購。一個真實、比例精確嘅目錄可以彌合呢道差距: 擺入場景入面嘅嘢,尺寸上同真實產品完全一致,所以一個喺可視化結果入面 睇落正確嘅佈局,都會係一個當有人真正要為呢間房間置辦家具嗰陣依然行得通嘅佈局。 呢個分別正正喺可視化結果成為採購決定依據嘅時候最為關鍵—— 而對酒店或者零售項目嘅實際建設嚟講,情況通常正正就係咁。一個基於佔位方塊 簽字確認嘅佈局,依然可能喺真實家具運到現場之後出問題; 而一個基於比例精確目錄家具簽字確認嘅佈局,將呢種風險壓得低好多, 因為俾人批准嘅嘢,就係最終俾人訂購嘅嘢。

立即開始

想了解家具擺放喺整體搭建流程入面處於咩位置,可以參考 如何將 2D 平面圖轉化做 3D 房間。 想了解擺放目錄家具同用 AI 生成全新家具之間嘅分別,可以參考 AI 3D 生成模型:究竟係咩喺生成 3D 房間。 而想了解同一套擺放邏輯點樣應用喺一套完全唔同嘅約束條件,可以參考 AI 平面圖可視化如何加快零售陳列架規劃嘅 5 種方式

了解運作方式,或申請優先試用, 睇吓家具點樣自動擺放到你自己嘅平面圖上。