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而变得更好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【第二十七章】 springboot + zipkin(brave-okhttp实现)

本文截取自:http://blog.csdn.net/liaokailin/article/details/52077620 一、前提 1、zipkin基本知识:附8 zipkin 2、启动zipkin server: 2.1、在官网下载服务jar,http://zipkin.io/pages/quickstart.html,之后使用命令…

oracle在线sql数据库设计,一款在线ER模型设计工具,支持MySQL、SQLServer、Oracle、Postgresql...

在线QQ客服:1922638专业的SQL Server、MySQL数据库同步软件介绍一个在线ER模型生成工具,该工具可以在线为多个数据库的DDL文件生成ER模型图,并支持MySQL,SQLServer,Oracle,PostgreSQL和其他数据库。主要功能…

_M_invoke(_Index_tuple_Indices...)

2019独角兽企业重金招聘Python工程师标准>>> [hadoopiZ25s7cmfyrZ C_script]$ cat test_thread_a.cpp #include <iostream> #include <atomic> #include <thread> #include <vector>std::atomic<int> global_counter(0);void increa…

1203正规式转换为有穷自动机

1 #include<stdio.h>2 #include <ctype.h>3 #define ok 14 #define error 05 #define MAXREGLUARLONG 406 #define MAXSTATELONG 40 7 #define MAXCAHRSLONG 40 8 typedef int state;9 int iCurrentState0; //初态以1开始10 int iPreState0;11 in…

[VMware WorkStation]虚拟机网络

1、简介&#xff1a; vmware为我们提供了三种网络工作模式&#xff0c;它们分别是&#xff1a;Bridged&#xff08;桥接模式&#xff09;、NAT&#xff08;网络地址转换模式&#xff09;、Host-Only&#xff08;仅主机模式&#xff09;。在我安装了vmware workstation player 1…

火狐中的CSS Grid Inspector新增强大的功能

2019独角兽企业重金招聘Python工程师标准>>> 上周&#xff0c;我谈到了日常的网站浏览我用Firefox&#xff0c;但是在切图网做前端开发的时候我会用Chrome。 随着每个版本&#xff0c;FF Nightly在开发工具箱中有一些越来越棒的工具&#xff0c;这些更新使Firefox成…

Linux内核态之间进程通信,内核态和用户态通信(二)--实现

本文主要使用netlink套接字实现中断环境与用户态进程通信。系统环境&#xff1a;基于linux 2.6.32.27 和 linux 3.16.36Linux内核态和用户态进程通信方法的提出和实现用户上下文环境运行在用户上下文环境中的代码是可以阻塞的&#xff0c;这样&#xff0c;便可以使用消息队列和…

上下文无关文法

在计算机科学中&#xff0c;若一个形式文法 G (N, Σ, P, S) 的产生式规则都取如下的形式&#xff1a;V -> w&#xff0c;则称之为上下文无关文法&#xff08;英语&#xff1a;context-free grammar&#xff0c;缩写为CFG&#xff09;&#xff0c;其中 V∈N &#xff0c;w∈…

linux脚本转换exe,Ps1 To Exe(powershell脚本转换EXE工具) V3.0.6 官方版

Ps1 To Exe是款将PowerShell脚本转换为EXE可执行文件的软件。同时软件非常小巧&#xff0c;功能实用&#xff0c;软件还支持各国的语言&#xff0c;有需要的小伙伴们不要错过了。(点击图片查看高清大图)【软件特色】1、Ps1 To Exe 支持多种语言2、Ps1 To Exe使用简单&#xff0…

NSString 练习

//将“⽂文艺⻘青年”改成“213⻘青年”。 NSString *str "文艺青年"; NSString *str1 [str stringByReplacingOccurrencesOfString:"文艺" withString:"213"]; NSLog("%",str1); //将 整数123 转换为字符串“123”。 NSString *s …

linux编译运行build.sh,linux下libwebsockets编译及实例

最近想自己搭建一个webscoket协议的服务器&#xff0c;打算用libwebsockts这个库。下载代码编译。编写一个shell脚本#!/bin/sh# wget http://git.warmcat.com/cgi-bin/cgit/libwebsockets/snapshot/libwebsockets-1.4-chrome43-firefox-36.tar.gz# tar xvzf libwebsockets-1.4-…

Tomcat如何配置环境变量

1&#xff0c; JDK&#xff1a;版本为jdk-7-windows-i586.exe 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html 2&#xff0c;tomcat&#xff1a;版本为apache-tomcat-7.0.33-windows-x86.zip 下载地址&#xff1a;http://tomcat.apache.org/ 2…

反编译查看源码dex2jar

为什么80%的码农都做不了架构师&#xff1f;>>> 上次说到了用apktool反编译&#xff0c;这次我们来用dex2jar 把apk解压得到文件夹 文件夹打开看到这些文件 其中这个classes.dex就是这次需要用到的字节码文件 把这个字节码文件托到dex2jar目录里 命令行编辑 得到下…

代码混淆之后定位线上bug

代码混淆的目的 代码混淆的目的是防止竞争对手通过反编译来阅读项目代码。 Android中通过ProGuard来做代码混淆&#xff08;当然也还有其他的产品可以做代码混淆&#xff09;。 bug日志反混淆 资料&#xff1a;错误log、mapping.txt 异常log&#xff1a; mapping.txt&#xff…

本地通知

本地通知&#xff0c;local notification&#xff0c;用于基于时间行为的通知&#xff0c;比如有关日历或者todo列表的小应用。另外&#xff0c;应用如果在后台执行&#xff0c;iOS允许它在受限的时间内运行&#xff0c;它也会发现本地通知有用。比如&#xff0c;一个应用&…

把windows装到linux下,如何将WSL(Windows Subsystem for Linux 2)安装到Windows 10?

原标题&#xff1a;如何将WSL(Windows Subsystem for Linux 2)安装到Windows 10&#xff1f;Windows 10凭借大受欢迎的WSL(Windows Subsystem for Linux)进入Linux领域。由于最近推出了WSL的最新版WSL2&#xff0c;用户现在可以利用实际的Linux内核从Windows执行Linux任务。现在…

vba执行linux命令,从VBA中的shell命令捕获输出值?

慕盖茨4494581根据Andrew Lessard的回答&#xff0c;这是一个运行命令并将输出作为字符串返回的函数 -Public Function ShellRun(sCmd As String) As StringRun a shell command, returning the output as a stringDim oShell As ObjectSet oShell CreateObject("WScript…

C#= 栈模仿堆的操作

//原理&#xff0c;利用两个栈&#xff0c;互相作用&#xff0c;来模仿堆的效果&#xff0c;先进先出。。 1 using System;2 using System.Collections.Generic;3 using System.Linq;4 using System.Threading.Tasks;5 6 namespace TwoStacksQueue7 {8 public class Progra…

linux中内部命令有哪些,linux内部命令有哪些

linux中常见的内部命令有&#xff1a;1.exit命令&#xff0c;退出当前的shell&#xff1b;2.history命令&#xff0c;显示历史执行过的命令&#xff1b;3.cd命令&#xff0c;切换当前工作目录&#xff1b;4.source命令&#xff0c;重新执行刚修改的初始化文件&#xff1b;5.ech…

POJ 2778

题意&#xff1a;很Uva项链题目类似。 区别&#xff1a; 1、字符串很多&#xff0c;用map hash超时&#xff0c;用Trie查找。 2、DFS判断连通&#xff0c;和并查集判连通&#xff0c;被我写错的地方时&#xff0c;查森林的时候&#xff0c;还是要Find_Set。 1 #include <ios…