用Open GL编写应用程序,就相当于在应用程序中添加了一个三维函数库。一般包括以下几部分。①窗口的定义。规定了三维图形在窗口坐标系中的显示位置,定义窗口的大小和性质;②初始化。包括清缓冲区、定义光照模型、定义纹理映射、安装显示列表、定义雾化、定义视口等;③绘制和显示图形。包括三维建模、设置物体在立体空间的运动轨迹、变换Open GL的状态变量、协调合理地结合应用Open GL的各种基本操作、实现完美的三维图形显示。为了说明Open GL的主体结构,下面为用标准C调用Open GL函数编制的一段程序样本。
#include<GL/gl.h>
#include<GL/glu.h>
#include<GL/glaux.h>
#include<stdio.h>
void my Init(void)
void CALLBACK display(void)
void CALLBACK ny Reshape(Glsizei w,Glsizei h)
//
//初始化工作,设定清屏颜色
void my Init(void){
gl Clear Color(0.0,0.0,0.0,0.0)
}
//绘制场景
void CALLBACK display(void){
gl Clear(GL_COLOR_BUFFER_BIT);
gl Color4f(0.2,0.6,1.0,1.0);
gl Rotatef(60.0,1.0,1.0,1.0);
aux Wire Cube(1.0);
gl Flush();
}
//
//定义视口的大小和三维场景的视景体
void CALLBACK my Reshape(Glsizei w,Glsizei h){
gl Viewport(0,0,w,h);
}
//调用5个aux为前缀的函数,完成窗口和事件的管理
void main(void){
aux Init Display Mode(AUX SINGLE|AUX_RGBA);//定义窗口的显示属性
aux Init Position(0,0,400,400);//定义了程序执行窗口的位置和大小
aux Init Window("sample.c");
my Init();
aux Reshape Fun(my Reshape);//当图形输出窗口大小变化时主程序自动调用这个函数
aux Main Loop(display);//每次窗口建立、移动、改变形状和其他事件发生时需重新//绘制场景
}
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。