`
blogfeifei
  • 浏览: 1197394 次
文章分类
社区版块
存档分类
最新评论

在BlackBerry上使用 OpenGL绘图(一): OpenGL介绍

 
阅读更多

为了在QNX上完成3D绘图,拿回之前自己写的“在BlackBerry上使用 OpenGL绘图”阅读,同时在这里和大家分享一下。

文章太长,分几篇发上来。下面是第一部分。

在BlackBerry上使用OpenGL绘图

在BlackBerry上进行图像相关的编程有很多方式,开发人员可以通过Graphics编程接口在屏幕上完成复杂的图像展现。但是,如果开发人员希望实现3D图像编程的话,直接使用Graphics接口则显得有些力不从心,开发人员需要通过代码实现3D图像相关的工作,包括坐标轴定义、平移计算、旋转计算、投影计算等。这种方式工作量很大,对系统要求很高,无法和硬件直接配合,很难用于开发复杂的3D应用。

为了提供更为强大,更为方便的3D开发接口,新的BlackBerry平台上引入了OpenGL,通过它开发人员可以快速实现复杂的3D应用。因为OpenGL与平台结合比较紧密,它的编程方式与一般的BlackBerry应用不同,所以在BlackBerry开发环境中专门有一个OpenGL的样例。本章通过BlackBerry开发环境自带的OpenGL样例的介绍为读者讲解BlackBerry上使用OpenGL的方法。

OpenGL本身是一个复杂的课题,它涉及到图形处理很多具体方面,而其中任何一个具体方面,比如光照、纹理、视图等等,都需要花费大量时间和精力去学习。这里不希望,也不可能以短短的一章内容介绍OpenGL的全部内容,只希望通过简单的说明让BlackBerry开发人员可以快速地进入OpenGL的世界。如果读者需要详细学习OpenGL的相关知识,请参考OpenGL的相关文章。当然,为了结合代码的讲解,在本章中会对一些基本的OpenGL概念或者是3D图形的概念进行简要讲解。

1 OpenGL介绍

简单来讲,OpenGL是一种针对3D图形的软件接口。

从中我们可以理解的第一点是OpenGL是一种软件接口,也就是说它和实现语言无关,它只定义了接口,具体实现语言可以是c\c++,也可以是java,当然也可以是任何其它语言。举个具体的例子,在OpenGL中定义了glClearColor接口,用于指定清除屏幕的颜色,它在c\c++上的具体实现体现为头文件gl.h中定义的glClearColor()方法,开发人员在引入该头文件后可以直接调用方法glClearColor(),而它在java上的具体实现体现为GL10中的glClearColor()方法,开发人员通过GL10实例的glClearColor()的方法调用它。

另一点我们可以理解的是OpenGL是针对3D图形的,一般而言OpenGL需要硬件的支持,并不是随便拿一台机器都可以使用的。开发人员在选择开发测试环境的时候需要确认用于运行OpenGL程序的设备是支持OpenGL的。有趣的是,OpenGL既然是一种软件接口,理论上平台提供商可以完全依赖软件实现它,只需要按照OpenGL的接口定义实现所有方法就可以了。不过,OpenGL定义的接口往往都需要复杂的计算,单纯使用软件实现的话可能导致严重的性能问题。所以,事实上大部分OpenGL的实现都需要依赖于硬件。

结合以上两点,我们知道开发人员在开发OpenGL应用的时候只需要操作OpenGL接口,不需要了解低层硬件的工作方式。OpenGL接口和低层硬件之间的联系是由平台提供商建立的,体现这种联系的一般是平台提供商提供的应用程序库。开发人员需要完成的是在程序中导入对应的应用程序库,然后调用特定的接口。

具体到BlackBerry平台上使用OpenGL,同样需要确认目标设备在硬件层面上支持OpenGL,然后引入相关的应用程序库,并调用对应的接口。在硬件层面,特定的较新型号的BlackBerry手持设备支持OpenGL,如9520,9550等。在软件接口方面,因为BlackBerry平台的提供的开发语言是java,OpenGL在BlackBerry上体现为java接口。开发人员在BlackBerry上开发OpenGL应用的时候需要导入OpenGL相关的包,然后调用其中定义的OpenGL方法。

另外需要注意的是,因为BlackBerry是手持设备,所以它所支持的OpenGL并不是完整的OpenGL,而是OpenGL的一个子集,叫OpenGL ES,即OpenGL for Embedded Systems。OpenGL ES目前由Khronos组织管理,主要是针对嵌入式设备而设计的,在设计过程中考虑到嵌入式设备的资源有限性对OpenGL接口进行了很大程度上的简化,不过在简化过程中也兼顾了功能的完整性。

分享到:
评论

相关推荐

    黑莓blackberry第三方输入法:百度输入法

    1.解压BaiduInput_blackberry_v1.0.0.7.zip文件,用黑莓桌面管理器加载baiduinput.alx,在安装时务必把默认的四个选项都打上勾。 2.安装完毕后会在出现一个百度记事本和一个百度输入法图标。 3.百度记事本是用在第三...

    opengles2-book:OpenGL ES 2.0 编程指南示例代码

    ##Supported 平台本书中的示例代码可用于以下平台: 苹果手机(Microsoft Visual Studio) 使用 AMD OpenGL ES 2.0 Emulator 或 PowerVR Khronos OpenGL ES 2.0 SDK WebGL 安卓 2.2+ Linux 黑莓##iPhone ###...

    《OpenGL ES 2.0 Programming Guide》PDF&书籍源码

    源码非常齐全,Android、iOS、BlackBerry、LinuxX11,Windows,WebGL全平台同步代码

    opengl es 2.0 programming guide source code

    opengl es 2.0 programming guide source code, including android blackberry iphone linux11 webgl windows

    GOOGLE SYNC 手机同步软件-黑莓8700

    Google Sync现在支持blackberry,iPhone、Windows Mobile手机,稍后会支持其他类型的手机,使用Google Sync后,系统会自动同步用户的Gmail联系人、Google Calendar时间到你的手机中,Sync使用Push技术,你在通讯录...

    在黑莓上使用的农历软件

    在黑莓上使用的农历软件,适用所有型号。如:9000

    MiniExcel:黑莓上使用的excel工具

    MiniExcel,黑莓上使用的excel工具. MiniExcel,黑莓上使用的excel工具.

    Blackberry黑莓PRIV使用说明书.pdf

    Blackberry黑莓PRIV使用说明书.pdf

    BlackBerry代码签名工具申请及安装介绍

    如果您在应用程序中使用了这些受控类,在您将应用程序.cod 文件加载到 BlackBerry 智能手机之前,您的应用程序必须使用签名工具(由RIM提供)进行签名。完成 注册流程需要提供有效的信用卡,将收取管理费20 美元。...

    黑莓新注566个域名:98系列杂米近500个.docx

    黑莓新注566个域名:98系列杂米近500个.docx

    黑莓BlackBerry手机主题制作使用教程

    黑莓BlackBerry主题制作使用教程 Just Theme It! - BlackBerry 主题制作指南

    [黑莓游戏开发学习][Learn BlackBerry Games Development]

    Learn BlackBerry Games Development Paperback: 504 pages Publisher: Apress; 1 edition (March 30, 2010) Language: English ISBN-10: 1430227184 ISBN-13: 978-1430227182 Format: PDF You can buy this book: ...

    BlackBerry App World应用提交和其他商业服务

    •2009年4月1日在美国、加拿大和英国发布 •2009年7月31日扩展至另外10个国家 •法语、意大利语、德语和西班牙语的本地化支持 •2009年秋季扩展至拉美和亚太地区 •巴西西班牙语的本地化支持 •2010年4月发布...

    4.[开源][安卓]cocos2d-x-3-框架源码

    主分支在GitHub上使用OpenGL ES 2.0渲染,而旧版gles11分支则使用OpenGL ES 1.1渲染。 支持iOS、Android、Windows Phone 8、Bada、BlackBerry、Marmalade、Windows、Linux等多个平台。支持C++、Lua、JavaScript编程...

    BlackBerry开发平台配置及入门介绍(傻瓜教程)

     *世界各地都在使用的优秀的、经证明有效的解决方案:用户超过365万、全球部署BlackBerry的企业及政府组织超过45,000、可用于50多个国家/地区的超过100个网络完整的无线企业解决方案BlackBerry提供了一个完全集成的...

    黑莓手机usb驱动(BlackBerry USB Driver)

    黑莓usb驱动是一款黑莓手机专用驱动,已经装了桌面管理器的电脑就不需要...驱动介绍相信大家在第一次使用黑莓手机连接电脑的时候都出现了没有反应的问题了,就是手机用数据线连接电脑的时候没有任何的反,欢迎下载体验

    7290 bb blackberry黑莓

    7290 bb blackberry黑莓7290 bb blackberry黑莓7290 bb blackberry黑莓7290 bb blackberry黑莓7290 bb blackberry黑莓7290 bb blackberry黑莓7290 bb blackberry黑莓7290 bb blackberry黑莓7290 bb blackberry黑莓...

    黑莓 开发 文档 整合

    介绍如何使用黑莓JDE开发用于黑莓手机的标准MIDlet程序。 文档名:BlackBerry_MIDlet_Developer_Guide.pdf 3.黑莓桌面类API参考 [文档说明]黑莓开发桌面类API参考,这个用于开发桌面同步之类的程序,V4.6 文档...

    MobileSSH,黑莓上使用的SSH客户端工具

    MobileSSH,黑莓上使用的SSH客户端工具,在windows或者linux服务器上安装好SSH Server,然后就可以使用你的BB来远程控制它了,是不是很酷?

    BlackBerry 网络连接编程

    如果要确保应用程序使用uses BlackBerry MDS Services 作为它的连接路径,需要在 URL 最后加上参数“deviceside=false”,这也是我们推荐的方式,如下: 例2: (HttpConnection)Connector.open(...

Global site tag (gtag.js) - Google Analytics