`

渲染浅析

 
阅读更多

新生事物的发展,总是伴随着新的概念产生,从软光栅化模拟3D以来,图形渲染技术已经快速发展了很多年。同样的也出现了很多新的标准和技术,如果不花时间很难有尽收眼底的清晰感,这里简单说说自己的理解。

 

DX11:

这是我了解的第一套渲染API,他的劣势是不能跨平台,甚至XP系统都不兼容,好在目前主流显卡都支持这个标准。他的优势,设计简洁,清晰,风格统一,更重要的是完善。因为是大公司推广,所以在测试这块会做的更完善,虽然有很多不兼容和不支持,但是兼容的和支持的都比较到位,这是个优点。

 

DX9:

既然有9为啥还要出11呢?如果只是为了加一些新特性,更不应该不兼容。这也体现9在设计上的一些缺点,它最大的缺点就是不自由,虽然9也有可编程管线,但是在用的时候还是有一些不自由的东西在里面,当然这主要是由前期硬件的特点决定的。它的不自由也体现在硬件标准上,还有就是微软为了推广11,9就停滞不前,其实完全可以不改变就的模式,而升级9的一些硬件上的标准。我的意思是做两个版本的DX11,一个是兼容9的一个是不兼容的,可惜没有。

 

opengl:

它是一个开放的,跨平台的标准,看到这个的时候仿佛看到了希望,但事实并非如此。首先微软只支持GL1.1的版本,但是现在标准都发展到GL4.3了。然后就是gl这个同意的标准,只是针对渲染底层的接口,而接口与本地的衔接这部分,各个平台又有自己的标准。window有WGL,ios有AGL,安卓的忘记了,反正就是它跨平台,但是只是局部的跨平台,这点让他打了折腾。最后,最蛋疼的一件事,就是它最有优势的手持设备领域,又单独发展了一个opengl es,导致很多手持设备只支持es不支持gl。最后需要补充的是,如微软的DX不一样,gl的规范的测试和硬件支持的完整性并不到位,尤其是在PC端,它始终处于次要角色,而手持设备上它又,唉可以说gl是很尴尬的。

 

opengl es:

是gl的删减版,主要为了适应手持设备的硬件条件,还有就是减少一些gl里面冗余的功能,就是如果在gl里面有三种方式解决一个问题的话,在es里面只会有其中一种。个人觉得这是一个比较好的选择,如果功能不受影响的话,这样可以降低学习成本以及开发维护成本,更多的选择其实就是更多的浪费。es在手持设备领域的地位是无可替代的,尤其是ios和安卓的支持。但是,它并不是没有缺点,它的缺点就是手持设备的种类太多,所以兼容性并不是那么的容易。这个也是所有的渲染标准都需要面对的,手持设备领域es始终是最佳方案。另外,跟ES配套的有一个EGL标准,它统一了gl存在的WGL,AGL,XGL这种问题。唯一的遗憾,PC机不支持。

分享到:
评论

相关推荐

    浅析浏览器解析和渲染.pptx

    各浏览器加载策略,ie6/7/8/9,firefox,chrom.同步模型,JS阻塞,JS执行策略 ,Inline Script,阻塞渲染,浏览器的优化

    Vue渲染过程浅析

    主要介绍了Vue渲染过程浅析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    vuex的数据渲染与修改浅析

    1.vuex是什么? 用官方的话来说“Vuex 就是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的...在组件中渲染store中的数据 1.通过 this.$store来访问store中的state

    浅析Vue.js 中的条件渲染指令

    主要介绍了Vue.js 中的条件渲染指令,Vue.js 中的条件渲染指令可以根据表达式的值,来决定在 DOM 中是渲染还是销毁元素或组件。本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考...

    深入浅析Vue.js 中的 v-for 列表渲染指令

    当遍历一个数组或枚举一个对象进行迭代循环展示时,就会用到列表渲染指令 v-for。这篇文章主要介绍了Vue.js 中的 v-for 列表渲染指令,需要的朋友可以参考下

    UE4程序设计浅析

    本书以两位作者本人在使用虚幻引擎过程中的实际经历为参考,包括三大部分:使用C++语言进行游戏性编程、了解虚幻引擎本身底层结构与渲染结构、编写插件扩展虚幻引擎。提供了不同于官方文档内容的虚幻引擎相关细节和...

    详解浏览器渲染页面过程

    主要介绍了详解浏览器渲染页面过程的相关资料,需要的朋友可以参考下

    浅析html网页基本概念

    编码是我们通过代码的形式把想要展示的页面写到html文档里面,接着渲染作为一个动作,主要是html文档本身无法被人很好识别的,所以需要经过浏览器内核渲染展示为正常人看的页面,查看页面源代码快捷键是CTRL+U;...

    JavaScript异步加载浅析

    前言 关于JavaScript脚本加载的问题,...上面,会阻塞所有页面渲染工作,使得用户在脚本加载完毕并执行完毕之前一直处于“白屏死机”状态。而<body>末尾的打脚本只会让用户看到毫无生命力的静态页面,原本应该

    浅析CSS里的BFC和IFC的用法

    它是页面中的一块渲染区域,并且有一套渲染规则. 它决定了其子元素将如何定位,以及和其他元素的关系和相互作用。 而 Block Formatting Contexts (BFC,块级格式化上下文),就是 一个块级元素 的渲染显示

    浅析vue component 组件使用

    component 使用 ... ... 使用用Vue.component(...在实例声明的作用域下中使用<componentName></componentName> 成功渲染效果就是 ‘”tem1″>hello world Vue.component('my-component',{ template:'<div class=

    浅析IOS中播放gif动态图的方法

     在iOS开发中,UIImageView类专门来负责图片数据的渲染,并且UIImageView也有帧动画的方法来播放一组图片,但是对于gif类型的数据,UIImageView中并没有现成的接口提供给开发者使用,在iOS中一般可以通过两种方式来...

    qt 开发文档大全

    ./深入QT信号槽机制浅析.pdf ./Qt新渲染底层Scene Graph研究2.pdf ./Qt及Qt Quick开发实战精解.pdf ./Qt Creator 你必须掌握的快捷操作.pdf ./Qt新渲染底层Scene Graph研究1.pdf ./浅谈qmake之pro,pri,prf,prl文件....

    浅析php如何实现爬取数据原理

    简介 ...拥有丰富的插件,支持多线程采集以及使用PhantomJS采集JavaScript动态渲染的页面。 安装 通过Composer安装: composer require jaeger/querylist 使用教程: 直接上代码: <?php includ

    浅析Yii2中GridView常见操作

    html渲染 自定义按钮 设定宽度等样式 自定义字段 自定义行样式 增加按钮调用js操作 yii2 GridView 下拉搜索实现案例教程 yii2 GridView 日期格式化并实现日期可搜索 案例 是否显示某列案例 我们举一个简单的案例 ...

    vue中created和mounted的区别浅析

    前言 关于vue.js中的生命周期,如果不是有特别的需求,一般在项目开发过程中更多的使用created和mounted, 所以在本文中主要讲解created与mounted在开发中的主要使用区别。 关于完整的生命周期,不久...浏览器渲染过程

    浅析图片上传及canvas压缩的流程

    我们通常在做图片上传的时候都会遇上这样的情况,一是后端接口限制上传图片的大小,或者是即使后端没有限制大小,因为图片太大在前端渲染时太慢,造成页面加载体验较差。因此我们很有必要对上传的图片进行压缩。 ...

    浅析安卓(Android)的性能优化

    首先来看一下布局优化,系统在渲染UI的时候会消耗大量的资源,所以,对布局的优化就显得尤为重要 避免Overdraw 也就是避免过度的绘制,过度的绘制会浪费更多的资源,举个例子,Android系统会默认绘制Activity的背景...

Global site tag (gtag.js) - Google Analytics