跳至主要內容
YIP NEWS
YIP NEWS

9月23日

兩萬五千株草被塞進一個籠子裡,而你家的高湯早就這樣燉了

生活爐 美食生活

AMD 把光線追蹤的顯存需求從 80GB 壓到 1.7GB,我們把這門「用簡單的籠子包住複雜」的技術,翻譯成廚房裡高湯、菜籃與一鍋燉菜的滋味故事。

刊出 (台北時間) 閱讀約 5 分鐘

9 月 23 日,AMD 在 GPUOpen 部落格上發表了一項叫「四面體籠」的光線追蹤技術。簡單講,他們讓一個塞了兩萬五千株會動的植物、近二十八億個三角形的場景,原本要喫掉 80GB 顯存、每幀更新要等超過三百毫秒的畫面,縮到只要 1.7GB、三點多毫秒就跑完。八十到一點七,中間差了四十七倍。

這些數字離餐桌很遠。但那句技術的核心思想,離你的廚房很近:與其讓每一株草都自己動,不如用一個簡單的、會變形的籠子把它們整個包起來,讓複雜的東西待在裡面安靜不動,只動外面那層殼。

你燉高湯的時候,做的就是這件事。

一鍋湯,也是一個籠子

想一下你燉一鍋蔬菜高湯的過程。胡蘿蔔、洋蔥、西洋芹、幾朵香菇、一小把乾燥的昆布,這些東西各自有自己的形狀、纖維、含水量,要是你想逐一控制每一根纖維什麼時候釋放甜味,那鍋湯你永遠燉不完。所以你把它們全丟進鍋裡,粗切就好,讓水當那個籠子,讓火當那個籠子的形變。你只控制兩件事:火的大小,和時間的長短。裡面幾萬幾億個微小的化學反應,自己會發生。

AMD 的工程師面對的問題其實結構一模一樣。光線追蹤的場景裡,每一株會搖的草、每一片會飄的葉,都得有自己的位置資料,而且每一格畫面都要重新算一遍。草越種越多,帳單就指數級膨脹。他們的解法是別再逐株追蹤,改用一層簡單的四面體網格把整叢草包住,動畫只發生在這層殼上,殼裡的幾何體保持靜態、可以重複使用。於是成本不再跟三角形數量一起長,只跟籠子的複雜度有關。

這就是廚房裡的老智慧。你切洋蔥不會去算每一層鱗葉的厚度,你抓的是整顆的火候。你醬一鍋肉,不會替每塊肉安排獨立的時間表,你定的是那鍋醬汁整體的濃度和溫度。把力氣花在殼上,讓裡面的複雜自己運轉。

代價也是有的。AMD 說得很誠實:這套方法失去了逐頂點的動畫控制,也就是說,你沒辦法指定某一株草特別往左彎三度。這就像高湯裡的胡蘿蔔,燉到最後全都融成一種甜,你分不出哪一口甜來自哪一根。放棄個體的精細,換整體的可行。廚房裡管這個叫「入味」,工程那邊管這個叫取捨。

會動的草,和市場裡整把賣的菜

這項技術被定位給草和植被這類「密集但不需要逐一精細動畫」的東西。讀到這裡,我腦中浮現的是清晨的傳統市場。

菜販擺菜從來不一株一株擺。青江菜十把一綁,地瓜葉堆成一座小丘,空心菜用草繩束腰,整齊得像列隊。風從市場口灌進來的時候,那幾十把菜葉一起晃,沙沙的聲音是整片的,沒有人會去注意其中一片葉子晃了幾度。菜販早就懂了:賣菜的時候,你管理的是「一批」,不是「一株」。

回去做菜也是。炒一鍋空心菜,大火、熱鍋、下蒜、菜下鍋那一聲炸響,然後鍋鏟翻的是整鍋,不是每一根。你 trusting 那個「整體的火候」,讓鹽和蒜香均勻落在每一莖上。要是有人真的一根一根炒,那盤菜大概會一半焦黑一半還生的。遊戲引擎裡那句「場景越密集,開銷長得越快」,在炒菜這件事上一樣成立。

AMD 用 Radeon RX 9070 XT 跑這個示範場景,1080p 解析度、每秒六十張以上,光線追蹤主射線加陰影射線都開著。換成廚房的語言:一口家用爐,一個炒鍋,同時出了主菜和配菜,而且是在青菜這種最容易出水垮掉的品項上辦到的。這不是靠更大的爐子,是靠更聰明的鍋法。

從 300 毫秒到 3.3 毫秒:等不等得及上菜

那組時間數字也值得用喫的方式再講一次。傳統做法,每幀更新那個場景要超過三百毫秒,也就是說畫面動一格,機器要磨蹭將近三分之一秒。改用四面體籠之後,三點三毫秒。

三百毫秒在廚房裡是什麼概念?大概是你把一片牛肉放進燒熱的鍋裡,到它表面剛剛變色、還來不及出現梅納反應香氣的那段時間。菜等不起。客人等不起。湯滾了就是滾了,你要在那個瞬間下料,晚半秒,蝦就老了;早半秒,鍋氣還沒上來。做菜的人一輩子都在跟這種毫秒級的東西搏鬥,只是我們用舌頭和鼻子在計時,不用幀率。

而 80GB 縮到 1.7GB,像什麼?像你原本得租一臺小貨車才能載的食材量,現在一只後背包就裝下了。更像我們先前聊過的,那罈懂得複利的醬菜,真正的省,從來都是靠結構和時間換來的,硬堆硬塞反而是最貴的做法。

還在實驗室裡的菜,和還在爐上試的湯

要說清楚的是,這項技術目前還在研究展示階段。AMD 沒說它什麼時候、甚至會不會走進實際的遊戲裡,論文是在 High-Performance Graphics 2026 這個學術場合發表的。就像你在餐廳喫過一道主廚還在試菜階段的作品:概念完整、 execution 漂亮,但什麼時候上正式菜單,沒人保證。

不過實驗的東西自有它的樂趣。你在家裡試過把一鍋紅燒的滷汁留起來當老滷嗎?第一次它只是醬油和糖,第二次開始有層次,第五次之後它變成家裡獨有的味道。技術也是這樣長出來的:先有人願意把兩萬五千株草種進一張顯示卡,願意承認「我不要控制每一株」這個看似退讓的前提,才換得到後面那個四十七分之一。

晚餐時可以想想的事

下一次你站在爐前,面對一鍋料多到快滿出來的湯,別急著一樣一樣顧。把火調對,把時間定好,讓鍋子當那個籠子。裡面幾百萬次的融化、釋放、融合,會自己完成,而且比你盯著每一片薑做得更好。

草會搖,湯會滾,複雜的東西交給籠子。這是工程師花了幾年才寫成論文的道理,你的外婆用一口鍋就懂了。


(重下:此為示範用內容)