当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

<b>在C++ Builder中利用OpenGL编程的优化框架</b>[VC/C++编程]

赞助商链接



  本文“<b>在C++ Builder中利用OpenGL编程的优化框架</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

姑且不评论OpenGL的贵重后台和光亮前途,单凭其实用性和有效性就足以使其成为我们图形输出编程的首选.但是在实际工程利用中程序员没必要细心地深究OpenGL的运作机制,也常常不需求掌握各种高级的效果制作,真正需求的是最简便地操纵这个得力的工具实现输出数据的可视化,如波形、谱图、立体统计图表等的显示.有鉴于此,本文总结出了在C++Builder中OpenGL编程的实用框架.笔者经过实践,关于普通的图形输出的利用,此框架足以对付.关于复杂些的程序可以在本框架的底子上举行扩大.

Windows环境下用OpenGL编程至少要理解以下预备知识:

OpenGL本身:关于普通的利用,我们可以认为OpenGL就是一套与窗口系统和操作系统无关的三维图形函数库.

DC和RC:每个Win32利用程序都有一个设备描写表(Device Context)简称DC,在这个设备描写表中包含了图形怎样显示在窗口的设置( GDI)信息.调用OpenGL函数必须利用设备描写表才能精确地在窗口输出.图形操作描写表(Rendering Context)简称RC,是一种设备描写表的情势,在图形操作描写表中存放一些OpenGL和操作系统相接洽的信息.图形操作描写表是传送全部OpenGL号令的端口.

像素格局:像素格局定义了OpenGL画图的属性,成立图形操作描写表首先要定义象素格局.它由这样一个数据构造实现

typedef struct tagPIXELFORMATDESCRIPTOR
{
WORD nSize; //构造大小
WORD nVersion; //版本
DWORD dwFlags; //象素缓冲的位标志
BYTE iPixelType; //RGBA情势或颜色索引情势
BYTE cColorBits; //颜色位数
BYTE cRedBits; //RGBA情势下R所占位数
BYTE cRedShift; //RGBA情势下R位数偏移
BYTE cGreenBits; //RGBA情势下G所占位数
BYTE cGreenShift; //RGBA情势下G位数偏移
BYTE cBlueBits; //RGBA情势下B所占位数
BYTE cBlueShift; //RGBA情势下B位数偏移
BYTE cAlphaBits; //RGBA情势下Alpha所占位数
BYTE cAlphaShift; //RGBA情势下Alpha位数偏移
BYTE cAccumBits; //累计缓冲区位面总数
BYTE cAccumRedBits; //累计缓冲区R位面总数
BYTE cAccumGreenBits; //累计缓冲区G位面总数
BYTE cAccumBlueBits; //累计缓冲区B位面总数
BYTE cAccumAlphaBits; //累计缓冲区Alpaha位面总数
BYTE cDepthBits; //深度缓冲位数
BYTE cStencilBits; //模板缓冲位数
BYTE cAuxBuffers; //Win32 下不支持
BYTE iLayerType; //不再利用
BYTE bReserved; //0
DWORD dwLayerMask; //不再利用
DWORD dwVisibleMask; //0
DWORD dwDamageMask; //不再利用
} PIXELFORMATDESCRIPTOR; 

双缓冲技术:OpenGL支持一个显示缓冲和一个非显示缓冲.缺省的情形是全部的OpenGL绘制号令在非显示缓冲中绘制,绘制完成后再将其内容拷贝到显示缓冲区中(利用SwapBuffers函数).双缓冲使图象转换更平滑,这就是在快速动画(如波形等的及时输出)时没有屏幕闪耀的奥妙所在.

反走样技术:实际中需求画出的常常是曲线,由于计算机以离散点生成图形,曲线上会有锯齿,这就是一种走样现象.在用普通语言画图时,这一现象是难以避免的.OpenGL中操纵混合技术,把本来边界的锯齿部份用低饱和度的点补上从而实现反走样,到达平滑的边界效果.

好,我们目前可以启用下面的程序框架了.

在*.h文件的类声明中增添private成员:

private:

HGLRC hRC;

HDC hDC;

以下是呼应*.cpp文件

首先加上两个包含文件:

#include <gl\gl.h> //程序利用OpenGL的核心函数

#include <gl\glu.h> //程序利用实用库中的函数


  以上是“<b>在C++ Builder中利用OpenGL编程的优化框架</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .