OpenGL ES在移动设备有限资源下的性能与效果的综合平衡

OpenGL ES在移动设备有限资源下的性能与效果的综合平衡

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。

要想性能好,资源消耗低,那么效果肯定要差些;

要想效果好,那么消耗的资源肯定要高;

即使在pc这种资源高的环境中同样适用的道理,只不过pc上显现不明显,在手持设备上很明显而已。

为了降低GPU资源消耗,往往会在CPU中将灯光信息在某个角度的反射状态,即各个顶点的颜色值记录到该点的纹理贴图上,这样,在使用GPU呈现三维图时,不再计算灯光,而是直接把贴图贴上去就直接从贴图上取该点的颜色(实际也是计算灯光的三大颜色在该点的作用来计算该点的颜色)。

这叫做烘焙图的使用,即记录了灯光反射信息的贴图。能大大地降低实时灯光计算带来的高资源消耗。

不过烘焙图的使用,一般适用于静态展示某个角度的效果,毕竟只有在某个角度下,灯光的反射,在材质上才是确定的,随着观察视角的变化,每个顶点针对光源所反射的灯光,投射到观察者的光线是不同的,颜色也就不同。

实际分析会发现,在一个场景中,有些位置的顶点反射光线随观察视角的变化会很小,有的确会发生很大的变化,甚至逆转。

这样,我们可以考虑针对变化大的顶点位置,使用实时灯光计算,而针对变化小的顶点部分,使用烘焙贴图。

通过这种组合方案,可以滤掉一大部分不必要的实时灯光渲染计算,降低GPU资源的消耗,以提高性能。

时间: 2024-09-29 07:11:04

OpenGL ES在移动设备有限资源下的性能与效果的综合平衡的相关文章

运用OpenGL ES 2.0实现各种各样图像滤镜(图像处理)效果,多达50多种效果。

实现各种各样图像滤镜(图像处理)效果,多达50多种效果,基本囊括了最常见的图像处理效果.包括:contrast,hue,gamma,brightness,sharpness,emboss,saturation,exposure,shadow,blend等等. 由于需要用到OpenGL ES 2.0,所以,仅能在真机中测试.可以载入本地相册的照片或者直接拍照后进行照片处理. 源码下载地址:http://download.csdn.net/detail/gulaer/6576371 转载地址:htt

OpenGL ES简介

概述 在聊Android的View渲染流程中,通常会有一个比较核心的步骤:通过OpeGL ES接口调用GPU接口通知GPU绘制图形.其完整的流程:UI对象---->CPU处理为多维图形,纹理 -----通过OpeGL ES接口调用GPU----> GPU对图进行光栅化(Frame Rate ) ---->硬件时钟(Refresh Rate)----垂直同步---->投射到屏幕. 详解的绘制原理,后面会慢慢讲的. 渲染的基础知识 使用OpenGL ES,一般包括如下几个步骤: (1)

OpenGL ES 背面消隐特性在 iOS 设备与模拟器上的运行效果细微差异

OpenGL ES 背面消隐特性在 iOS 设备与模拟器上的运行效果细微差异 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 2014-01-09补充 ---------------------

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.5节Android应用程序运行的机制

1.5 Android应用程序运行的机制 Android 3D游戏开发技术宝典--OpenGL ES 2.0 上一节介绍了如何搭建Android开发环境.如何开发Hello Android应用程序以及Android应用程序的调试,接下来在本节中将简要地介绍Android应用程序的运行机制. 1.5.1 应用程序的系统架构 Android平台由应用程序.应用程序框架.Android运行时.系统库以及底层Linux内核构成,详细结构如图1-54所示. 说明 应用程序层里面包含的就是需要读者去发挥创意

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——1.4节Hello Android应用程序的开发

1.4 Hello Android应用程序的开发 Android 3D游戏开发技术宝典--OpenGL ES 2.0 本节首先将介绍如何在Eclipse中创建一个基于Android的Hello World应用程序,之后将简单介绍Android应用程序的调试,为读者以后学习高级开发铺平道路. 1.4.1 第一个Android应用程序 本小节将向读者介绍如何在Eclipse中创建一个基于Android的Hello World应用程序,基本步骤如下所列. (1)首先打开Eclipse,然后依次选择Fi

《OpenGL ES应用开发实践指南:Android卷》—— 导读

前 言 Android刚刚经历了一个难以置信的增长周期,全世界的消费者手里有超过7.5亿台设备,并且每天都有一百多万台设备被激活.和Apple一样,在每一台Android手机和平板上也有个集中的市场,称为Google Play.随着这个市场被安装到每台Android设备上,对任何一个梦想着发布自己的游戏或者壁纸的人来说,这都是个前所未有的机会. 在Android上,与Apple的iOS及许多其他移动平台一样,开发者可以使用一个跨平台应用编程接口创建二维或者三维图形,这个接口称为OpenGL:Op

《Android 3D游戏开发技术宝典——OpenGL ES 2.0》——2.7节蓝牙通信

2.7 蓝牙通信 Android 3D游戏开发技术宝典--OpenGL ES 2.0 随着硬件设备价格的不断降低,大部分智能手机上都已配备了蓝牙网络模块,Android设备也是如此.如果能为一些小型的休闲娱乐游戏增加蓝牙联网对战的功能,将会大大增加游戏的可玩性.本节将向读者详细介绍如何在Android平台下开发具有蓝牙互联功能的应用程序. 2.7.1 蓝牙通信的基本知识 蓝牙是一种支持设备短距离通信(一般是10m以内)的无线技术,其数据传输时不仅不需要连线,而且传输速率也比传统手持设备的红外模式

《OpenGL ES 3.x游戏开发(上卷)》一1.5 Android应用程序运行的机制

1.5 Android应用程序运行的机制 前面介绍了如何搭建Android开发环境.如何开发Hello Android应用程序以及Android应用程序的调试,接下来在本节中将简要地介绍Android应用程序的运行机制. 1.5.1 应用程序的系统架构 Android平台由应用程序.应用程序框架.Android运行时.系统库以及底层Linux内核构成,详细结构如图1-68所示. 说明 应用程序层里面包含的就是需要读者去发挥创意开发的.各种各样丰富多彩的应用程序,这也是一般Android应用开发人

OpenGL ES 多个模型导入呈现的公共部分

OpenGL ES 多个模型导入呈现的公共部分 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 为什么要提这个话题呢,是因为多个模型文件obj导入到OpenGL ES中,会有多个纹理库,多个几何