近期看到Qt 3D的進展。偶然瞭解到了一種新的格式:glTF格式。這樣的格式聽說比現有的3D格式更加符合OpenGL應用的需要。這引發了個人好奇。因而我在Qt 3D的外部連接中找到了有關glTF的相關連接。
上海萌夢信息科技有限公司(微博:http://weibo.com/qtdream)原創文章,首發地址:http://qtdream.com/topic/140。數據結構
歡迎同行前來探討。
glTF的官網介紹在這裏。它介紹了glTF的一些特性、發起者以及應用情景。官網中。介紹了glTF是一種可以下降3D格式中與渲染無關的冗餘數據並且在更加適合OpenGL簇加載的一種3D文件格式。glTF的提出是源自於3D工業和媒體發展的過程當中,對3D格式統一化的急迫需求。官網的一張圖片可以簡單地說明這一點:
也就是說。glTF立志成爲音頻界的mp3、視頻界的H.264,圖片界的jpeg。動畫
在官網的截圖上咱們看到。在沒有glTF的時候,你們都要花很是長的的時間來處理模型的加載。spa
很是多的遊戲引擎或者工控渲染引擎,都使用的是插件的方式來加載各類格式的模型。可是。各類格式的模型都包括了很是多無關的信息。插件
比方說.blend格式包括了場景、燈光、攝像機信息。也包括了blender的元信息。這樣在加載的時候會浪費很是多的加載時間。這需要一次模型的再加工工序(這道工序是否需要,有待觀察)
當有glTF以後,可以將模型再加工成爲glTF。這樣渲染的程序僅僅需要支持glTF格式就可以很是順利地處理各類狀況了。視頻
給你們簡介了一下glTF這個格式,如下我說一下我對glTF這個新的3D格式的見解。xml
一、
爲何要有glTF這個格式的提出呢?
首先。一切新的事物的發明都是爲了爲了解決曾經不方便的狀況。就glTF格式而言,儘管曾經有很是多3D格式,可是各類3D模型渲染程序都要處理很是多種的格式。對於那些對加載格式不是那麼重要的軟件(不是那些類似「格式工廠」那樣的軟件),可以顯著下降代碼量。因此也有人說,最大的受益者是那些對程序大小敏感的3D Web渲染引擎,僅僅需要很是少的代碼就可以順利地加載各類模型了。此外。glTF是對近二十年來各類3D格式的總結,使用最優的數據結構。來保證最大的兼容性以及可伸縮性。這就比如是本世紀初xml的提出。glTF使用json格式進行描寫敘述。也可以編譯成二進制的內容:bglTF。
glTF可以包括場景、攝像機、動畫等,也可以包括網格、材質、紋理,甚至包括了渲染技術(technique)、着色器以及着色器程序。同一時候由於json格式的特色,它支持預留通常以及特定供應商的擴展。
二、
爲何要提出一個新的格式而不是發展示有的格式比方說collada?
我以爲這個是對3D通用格式的解釋權的一種爭奪戰。你們已經知道OpenGL已經成爲其實的工業渲染標準。做爲現有OpenGL的維護組織,khronos也迫切但願在3D格式上進行一次統一。讓glTF成爲類似jpeg、mp3等常見的格式,khronos也有威望,可以讓行業的大廠們協同一塊兒來參與新標準的制定。對於collada這樣基於xml格式的競爭對手。glTF的提出給你們提供了一個新的思路以及解決方式。就好像json當初沒有提出的時候。你們都會傾向使用xml來描寫敘述通用的可交換的數據格式,可是隨着json的發展,xml再也不是一枝獨秀。逐漸造成了兩強的局面。你們也有了不少其它的選擇。上圖咱們可以看到。咱們可以利用現有的格式轉換工具很是輕鬆地將collada格式轉換爲glTF格式。而glTF對於OpenGL的兼容性。我想會因khronos而變得更好。