glTF格式初步了解


glTF格式初步了解

近期看到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的時候,大家都要花非常長的的時間來處理模型的加載。

非常多的游戲引擎或者工控渲染引擎,都使用的是插件的方式來加載各種格式的模型。但是。各種格式的模型都包括了非常多無關的信息。

比方說.blend格式包括了場景、燈光、攝像機信息。也包括了blender的元信息。這樣在加載的時候會浪費非常多的加載時間。這須要一次模型的再加工工序(這道工序是否須要,有待觀察)

 

當有glTF之后,能夠將模型再加工成為glTF。這樣渲染的程序僅僅須要支持glTF格式就能夠非常順利地處理各種情況了。

 

 

給大家簡介了一下glTF這個格式,以下我說一下我對glTF這個新的3D格式的看法。

1、 為什么要有glTF這個格式的提出呢?

首先。一切新的事物的發明都是為了為了解決曾經不方便的情況。就glTF格式而言,盡管曾經有非常多3D格式,但是各種3D模型渲染程序都要處理非常多種的格式。對於那些對加載格式不是那么重要的軟件(不是那些相似“格式工廠”那樣的軟件),能夠顯著降低代碼量。所以也有人說,最大的受益者是那些對程序大小敏感的3D Web渲染引擎,僅僅須要非常少的代碼就能夠順利地加載各種模型了。此外。glTF是對近二十年來各種3D格式的總結,使用最優的數據結構。來保證最大的兼容性以及可伸縮性。這就好比是本世紀初xml的提出。glTF使用json格式進行描寫敘述。也能夠編譯成二進制的內容:bglTF

glTF能夠包括場景、攝像機、動畫等,也能夠包括網格、材質、紋理,甚至包括了渲染技術(technique)、着色器以及着色器程序。同一時候因為json格式的特點,它支持預留一般以及特定供應商的擴展。

 

2、 為什么要提出一個新的格式而不是發展現有的格式比方說collada

我覺得這個是對3D通用格式的解釋權的一種爭奪戰。大家已經知道OpenGL已經成為其實的工業渲染標准。作為現有OpenGL的維護組織,khronos也迫切希望在3D格式上進行一次統一。讓glTF成為相似jpegmp3等常見的格式,khronos也有威望,能夠讓行業的大廠們協同一起來參與新標准的制定。對於collada這樣基於xml格式的競爭對手。glTF的提出給大家提供了一個新的思路以及解決方式。就好像json當初沒有提出的時候。大家都會傾向使用xml來描寫敘述通用的可交換的數據格式,但是隨着json的發展,xml不再是一枝獨秀。逐漸形成了兩強的局面。大家也有了很多其它的選擇。上圖我們能夠看到。我們能夠利用現有的格式轉換工具非常輕松地將collada格式轉換為glTF格式。而glTF對於OpenGL的兼容性。我想會因khronos而變得更好。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM