27KB 程式畫出一條龍:Keenan Crane 的 AI 生成 GLSL 示範在 X 熱傳

Keenan Crane 分享約 27KB GLSL 程式渲染的龍,引發 X 討論。本文用白話解釋隱式曲面、著色器與 3D 模型差異,並整理重現、效能、修改與交付時需要確認的資訊。

Share
Keenan Crane 原始影片第 5 秒畫面:由 GLSL 程式渲染的立體龍
Keenan Crane 原始示範影片第 5 秒畫面 圖片來源:Keenan Crane。

一條有立體細節的龍,背後可能是一小段程式。電腦圖學研究者 Keenan Crane 在 X 分享 AI 生成的 GLSL 示範,表示畫面由約 27KB 的程式描述,截至 2026 年 10 月 12 日,貼文累積超過 65 萬次瀏覽。

這段影片容易讓人聯想到 AI 生成 3D 模型,但創作者對技術形式有明確說明:它用程式定義一個隱式曲面,再把形狀渲染成畫面。理解這個差別,才知道這個示範能帶來什麼啟發。

Keenan Crane 原始影片第 5 秒畫面:由 GLSL 程式渲染的立體龍
Keenan Crane 原始示範影片第 5 秒畫面 圖片來源:Keenan Crane。

27KB GLSL 描述形狀,再由程式畫出畫面

GLSL 是常見的圖形著色語言,用來描述圖形處理器如何計算畫面。著色器可以處理顏色與光線,也可以透過數學函式描述形狀,讓畫面在執行時被計算出來。

隱式曲面指用方程式或函式定義物體表面。你可以把它想成一條數學規則:程式詢問某個位置與表面的關係,再依規則找出形狀。這和逐個儲存頂點與面片的模型形式不同。

依 Crane 的貼文,這條龍使用封閉形式的隱式曲面描述。約 27KB 是創作者報告的程式大小,並不包含觀看者執行渲染時需要的瀏覽器、圖形環境或其他系統資源。

0:00
/0:00
Keenan Crane 原始示範影片,展示範圍以原文說明為準。 影片來源:Keenan Crane。

原始影片展示的是可渲染的程式作品

創作者特別指出,這項示範不是網格、NeRF 或 3D Gaussian Splatting。網格以頂點與面片表示表面。後兩者則常用影像或空間表示重建場景,它們與這次的數學曲面形式不同。

這個差別會影響作品能怎麼使用。影片看起來具有立體形狀,不代表已經有可以直接放進遊戲引擎、修改骨架或交給 3D 列印的模型檔。

如果要把作品帶進其他流程,需要確認原始程式是否公開、如何執行,以及能否轉換成目的工具支援的格式。只有一段觀看影片,還不足以完成這些步驟。

因此,讀者可以把它看作一個程式生成的視覺實驗。示範讓我們看見語言模型能協助描述複雜圖形。是否能穩定產出可交付的 3D 資產,還需要其他證據。

小段程式能做複雜圖形,值得研究的是修改方式

對創作而言,程式描述形狀的吸引力在於可修改性。若形狀由參數與函式控制,創作者可能透過調整數值,改變比例、細節與表面效果,而不必每次重新製作整份素材。

這是這類技術的一般用途,不能直接推論影片中的龍已提供所有可調參數。想進一步評估,應回到原始程式,看哪些部分容易控制,哪些修改會讓畫面產生破綻。

例如,要求 AI 修改角的大小或身體比例後,可以觀察形狀是否連續、細節是否仍合理,以及渲染是否變慢。這類測試比只看一次漂亮輸出,更能判斷作品能否持續迭代。

同時,小檔案不代表執行成本一定低。程式需要多少計算,取決於描繪形狀與光線的方法。最終使用情境仍要檢查裝置效能與畫面品質。

這個示範能說明 AI 已經會做所有 3D 嗎?

單一示範提供的是一個成功案例。創作者這則貼文沒有給出完整模型名稱、提示詞與大量重現測試,所以目前無法從它推算一般使用者的成功率。

有興趣的人可以先把問題縮小:讓 AI 生成一個能執行的基本形狀,再逐步加入細節,記錄每次修改與結果。這樣比較容易分辨模型能力、人工調整與圖形工具各自的貢獻。

Crane 的龍讓「AI 寫程式」多了一個很直觀的例子:程式本身可以成為視覺作品的描述。下一步值得看的,是原始方法能否被重現,以及作品能否在可控的修改過程中保持品質。

著色器、隱式曲面與 3D 模型,差別在哪裡

觀看一段立體畫面時,很難只從外觀知道背後存了什麼。可能是一份由頂點與面片組成的模型,也可能是程式在執行時,依數學規則找出表面並計算顏色。

Crane 的示範屬於後一種方向。理解它的資料形式,會影響你是否能把作品帶去修改、加動畫或交給其他工具,而不只是影響影片看起來多漂亮。

用一個球理解隱式曲面

最簡單的例子是一個球。你可以用「某個位置到球心的距離等於半徑」描述它的表面,程式按照這個規則,就能判斷位置與球的關係。

這種描述沒有先列出所有表面頂點,卻定義了形狀。複雜物體也可以用更多數學規則組合,但如何保持表面合理、如何有效計算,都需要相應方法。

這個球只是理解概念的例子,不代表原作者的龍使用相同實作。官方貼文對龍的形式有說明,完整程式細節則仍需要回到創作者提供的內容確認。

形狀描述與畫面計算,是兩段工作

形狀規則告訴程式表面在哪裡,渲染則決定如何把它畫成影像。相機位置、光線與材質會影響結果,所以同一個形狀也可能呈現不同外觀。

GLSL 是用來描述圖形程式計算的語言,Khronos 的文件將它列為 OpenGL 的主要著色語言。了解這個背景,有助於把示範放回程式圖學,而不把它當成已輸出的模型檔。

對創作者來說,修改程式可能同時影響形狀與呈現。若一次改太多條件,就很難知道畫面變化來自哪裡,因此逐項調整與保存版本會比較容易查證。

如果想重現類似作品,先從可執行的小形狀開始

看到複雜示範後,直接要求 AI 做出同樣的龍,可能很難判斷哪個步驟出了問題。比較容易學習的做法,是先完成一個能在指定環境執行的基本形狀。

以下是一個練習思路,並非原作者公布的製作流程。目的是把程式生成、渲染與人工修改分開觀察,讓讀者知道自己實際驗證了哪些能力。

第一輪只確認環境與基本畫面

可以先明確指定使用環境與需要的輸入、輸出,要求產生簡單形狀。確認程式能編譯、畫面能顯示,再加入材質或光線,避免同時處理太多未知部分。

環境資訊包括工具接受哪一種著色器、如何提供相機資料,以及需要哪些變數。這些條件如果與程式不一致,即使數學規則合理,也可能無法正常執行。

出錯時可以保留完整訊息與目前版本,再請 AI 針對問題修改。只丟一句「不能跑」,會讓模型猜測原因,也容易把原本正確的部分一起改掉。

第二輪讓每個修改有可觀察的目標

例如,先改變球的比例,再增加簡單突起,觀察輪廓是否符合需求。每次修改都保留前一版,才容易知道某個效果是哪段程式帶來的。

如果目標是龍的造型,也可以先拆成整體輪廓與局部細節。先看身體、頭部與角的位置,再處理表面紋理,會比一次要求所有細節更容易驗收。

這種拆解方法不保證任何模型都能完成複雜作品。它提供的是練習與評估方式,讓成功與失敗都能對應具體步驟,而不是只比較最終截圖。

27KB 很小,執行效能還需要另外量測

程式大小描述需要保存或傳送多少內容,執行效能則描述裝置如何計算畫面。兩者有關,但不能直接用小檔案推論高速度。

一個簡短函式也可能在每個像素重複大量計算。畫面解析度、形狀求解與光線方法,都可能影響工作量,所以效能要在實際裝置與設定下觀察。

用相同畫面條件比較版本

如果想知道某次修改是否變慢,可以固定解析度、相機與顯示環境,再比較修改前後。條件變動太多,就很難把差異歸因到程式本身。

同時觀察畫面品質。為了加速而減少計算,可能讓表面出現缺口或細節消失。有用的比較應該同時記錄速度與可接受的視覺結果。

若要分享作品,也可以測試接收者常用的裝置。自己的電腦能順利展示,不代表不同圖形環境會有相同效果,這就是交付前需要走完執行流程的原因。

記錄生成成本與人工修正

原作者的成功示範沒有提供大量重現測試,因此目前無法知道一般人需要多少輪修改。自己練習時,可以記錄生成次數、失敗原因與人工調整內容。

這些紀錄能讓你比較不同方法,也避免只選最好看的結果來判斷模型。能否持續修改出符合目標的作品,通常比偶爾得到一張漂亮畫面更有實用意義。

如果後續要把方法放進正式工作,也應評估維護成本。程式由 AI 生成之後,仍需要有人能理解關鍵規則,才能在需求改變時安全地調整。

作品如何交付,取決於最後要用在哪裡

如果用途是網頁上的即時視覺,可以評估著色器能否在目標環境執行。若用途是傳統 3D 軟體或其他模型流程,則可能需要額外轉換與整理。

轉換的結果也要驗收。即使畫面中看得見完整形狀,轉成其他資料形式後,表面、細節或結構也未必與原本呈現相同。

影片、程式與模型檔,各有不同的可修改性

影片方便觀看,卻不提供修改形狀所需的資料。程式可以描述規則,但需要相應執行環境。模型檔則可以進入部分既有工具,仍要看格式與結構是否符合用途。

因此,想引用或使用這個示範時,先確認你真正需要哪一種成果。只想介紹方法,可以觀看原始影片。想進一步重現,就需要可用程式與執行說明。

原始內容的使用權也需要分別確認。能在 X 觀看影片,不等於已取得任意修改或商業再刊的許可,交付時應保留來源與相應權利資訊。

GLSL AI 生成示範常見問題

這條龍可以直接拿去做遊戲角色嗎?

原始貼文說明的是隱式曲面程式渲染,沒有提供一般遊戲角色所需的完整資產流程。是否能轉成其他格式、加上動畫或骨架,需要另行確認。

不能只因為影片看起來立體,就把它當成已完成的遊戲模型。使用目的與資料形式相符,才容易安排後續工作。

GLSL 是 AI 模型嗎?

GLSL 是圖形著色語言,AI 在這個示範中協助生成程式。真正的畫面仍由圖形環境執行相應計算,所以語言模型與渲染程式負責不同部分。

理解分工有助於查錯。模型產生的程式需要編譯與執行,畫面問題則可能來自形狀、光線或環境設定。

為什麼只有 27KB,也能有這麼多細節?

程式可以用規則生成細節,而不必逐個保存所有表面元素。這能讓描述比較精簡,但實際複雜度與計算需求仍取決於方法。

原作者報告的是程式大小,不應把它理解為整套圖形系統只需要相同容量。執行作品還需要相應工具與運算環境。

如何判斷這是可重複的方法,而非單次成功?

可以看完整程式、製作流程與多次修改結果是否公開,再用相同條件自行驗證。若只有一段展示,目前能確認的就是這個成功案例。

它仍具有啟發性:語言模型生成的程式,可以成為形狀的描述。把這個方向變成可使用的工作方法,則需要可執行、可修改與可驗收的完整流程。

從可執行的小作品,觀察 AI 程式生成的能力

想研究類似方法,可以先指定一個簡單形狀與執行環境,保存能正常顯示的版本,再一次修改一個條件。這樣更容易知道模型是否理解你的要求,以及畫面變化來自哪裡。

如果要分享成果,也保留程式、環境說明與修改紀錄。觀看影片和重現作品需要不同資訊,準備得越清楚,接收者就越容易走完相同流程。

Crane 的示範讓程式成為視覺創作的一種形式。從驚豔畫面走向可使用的方法,需要的仍是可執行、可修改與可驗收的連續步驟。

想持續追蹤 AI 科技新聞與實用工具,可以免費註冊 AI 郵報會員,閱讀更多新功能的用途與實作解讀。

延伸閱讀:3JSBench 揭露 AI 3D 物件的連接問題:做 Three.js 作品,如何同時驗收外觀與結構?。

延伸閱讀:Voyager 教學:把既有 3D 模型變成可修改的產品短片。

資料來源

Keenan Crane 一手資料、X 原始貼文。另見Khronos GLSL 文件。