為何需要一種新格式?
互聯網時代的表情包或者是靜態的 jpg,或者是動態的 gif(從知乎上看是靜態的,微信訂閱號里能看到動畫)。
人類進入 VR 時代后,打開 WeChatVR,輸入的表情包也得是真三維的內容,轉個身能看到不一樣的風景。比如這樣(從知乎上看是靜態的,微信訂閱號里能看到動畫):
這就給段子手帶來了一個難題,如何製作、傳播這種三維的內容?
互聯網上的內容交換格式不能是商業公司私有的格式,jpg 和 gif 都是開放的格式,開放的格式得到各種應用軟體的支持。你在電腦瀏覽器里看到的圖片,可以另存為到手機上,可以轉載到朋友圈。
VR 時代也需要一種開放的、無處不在的三維格式。
熱衷於制定圖形領域工業標準的 Khronos Group(克洛諾斯組織)看到了這個機會,搞了個大新聞:
glTF - GL Transmission Format,也就是為 OpenGL / WebGL 設計的交換格式。
這個格式得到了 VR 屆的 VIP、Oculus CTO 卡馬克的支持。
卡馬克看的更遠,看到了 VR 的下一個階段 metaverse,一個超越了 AR、VR、互聯網的虛擬世界。metaverse 是由 Neal Stephenson 在《雪崩》(Snow Crash)一書中描述的平行世界,所有現實世界中的人在 metaverse 中都有一個化身。
讓你們感受下 glTF
一個 gltf 的三維模型由四種文件格式組成,gltf、bin、glsl、jpg / png。
.gltf,由 JSON 格式描述三維模型的內部結構、虛擬相機、材質等,人類可以閱讀,長成這樣:
.bin,描述頂點信息和動畫信息,人類無法閱讀的二進位文件,長這樣:
.glsl,shader 圖形著色語言,長這樣:
用作三維貼圖的圖片格式,對不起,我欺騙了你們,到了 VR 時代依然需要 jpg。
glTF 的生態圈已經成熟
從圖中可以看到,生態上得到了三維建模軟體霸主 Autodesk 以及開源軟體 Blender 的支持,FBX、Collada、OBJ 等格式都可以導出到 glTF,開源的 C++ 庫方面 Assimp 也已經支持 glTF 到導入和導出。渲染引擎方面第一時間支持 glTF 的是 WebGL 引擎,包括最受歡迎的 three.js。
行業方面,在這周的的 SIGGRAPH 圖形學大會上,Oculus 也展示了 glTF 在 Mobile VR 中的重要性:
NVIDIA 的開源渲染引擎 nvpro-pipeline 也於這周加入了 glTF 的支持。
不論你是 AR、VR 的設備的提供商或是內容製作商,都可以把支持 glTF 放進 roadmap 了,這是現在看來最有未來的內容格式。