本文源自:http://dev.gameres.com/Program/Visual/3D/OpenGLTutorial/OpenGL_5.htm
?
如果用过3DS/LIGHTWAVE等任何一种三维图形软件包,就可以发现制作一个三维场景无非以下几项工作:
建模:制作各种物体。
放置:将做好的各物体通过平移、旋转等放到场景空间的适当位置。
上色:给物体模型指定颜色或表面纹理。
打灯:在场景中适当位置放置几盏灯以照亮场景。
摄像:在空间适当位置放上适当角度的摄像机,以得到所需的视觉效果。
用OpenGL开发应用程序与之类似,通常是:
设定视见体
定义光源
生成场景
而三维图形生成的流程如下:
放置几何变换:平移、旋转、缩放等
视见变换:裁剪、消隐、投影等
视见体设定:
视见体有两种:正投影体和透视投影体,正投影视见体中的物体在屏幕上的投影不会出现近大远小的现象,而透视投影视体则与人眼的观察结果类似,离观察点越远的物体在屏幕上的投影越小,因此透视投影体中的观察结果看起来更真实一些。
定义透视投影体的方法是:
glFrustum(left,right,bottom,top,near,far);
//物体在这六个参数界定的范围内可见,超出边界将被裁掉。
//left,bottom,代表左下 right,top代表右上
定义透视投影体的方法是:
glOrtho(left,right,bottom,top,near,far);
//物体在这六个参数界定的范围内可见,超出边界将被裁掉。
综上所述,一个三维图形应用程序在建好OpenGL Pipleline之后就要向管道发如下一系列的命令,以建立一个三维观察环境:
//1、设定视见体,在窗体的Resize事件时
void __fastcall TForm1::FormResize(TObject *Sender)
{
??? glViewport(0, 0, Width, Height);
??? //使用Form窗体的指定区域为显示区
??? //如改为Width/4,Height/4,Width/2,Width/2,
??? //则只用Form1的-窗体的中间1/4进行显示
??? glMatrixMode(GL_PROJECTION); //切换到投影矩阵栈
??? glLoadIdentity(); //清除投影矩阵
??? glFrustum(1.0,-1.0,-1.0,1.0,1.0,-1.0);
??? //指定透视视见体范围
??? //超出部分将被裁去
??? //或正投影glOrtho(1.0,-1.0,-1.0,1.0,1.0,-1.0);
??? glMatrixMode(GL_MODELVIEW); //切换到模型视见矩阵栈
??? glLoadIdentity(); //清除视见矩阵
}
说明:视见环境的设定还有许多其它的细节,以后会逐步介绍。
分享到:
相关推荐
### OpenGL入门教程知识点详解 #### 一、OpenGL简介与优势 **OpenGL** 是一种跨语言、跨平台的应用程序编程接口(API),主要用于渲染2D、3D矢量图形。它是图形学领域的一个重要标准,被广泛应用于游戏开发、虚拟...
OpenGL入门教程实例 OpenGL入门教程实例 OpenGL入门教程实例 OpenGL入门教程实例 OpenGL入门教程实例 OpenGL入门教程实例 OpenGL入门教程实例
OpenGL入门教程(精)
入门教程内容: - 学习OpenGL能使人掌握创建绚丽PC游戏所必需的编程技能,突破老旧图形接口的限制。 - OpenGL之所以是主流图形API之一,是因为它具有与C语言的紧密结合、优秀的可移植性以及高性能的图形渲染能力。 -...
### OpenGL入门经典教程知识点概述 #### 一、OpenGL简介及特点 - **替代传统图形库**:传统的图形库,如TC中的`<graphics.h>`,虽然简单易用,但功能有限,仅支持较低分辨率(例如640x480)和较少的颜色模式(如16...
OpenGL入门教程是学习图形编程的重要资源,特别是对于初学者来说,它能帮助理解3D图形渲染的基本原理。OpenGL是一个跨语言、跨平台的编程接口,用于渲染2D、3D图像。在这个“OpenGL入门教程(精选)相关例子试验代码...
OpenGL入门教程12讲代码加解析
OpenGL入门教程 OpenGL入门教程 OpenGL入门教程
OpenGL入门教程旨在帮助初学者快速掌握这一强大的图形编程接口,为3D图形处理打下坚实的基础。OpenGL是一种跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形。它广泛应用于游戏开发、科学可视化、工程设计等多个...
OpenGL入门教程旨在帮助初学者掌握这个强大的图形编程接口。OpenGL是一个跨语言、跨平台的编程接口,用于渲染2D和3D图形。它的核心库包含了115个基础函数,这些函数可在任何支持OpenGL的平台上运行。在此基础上,...
### OpenGL入门教程知识点详解 #### 一、OpenGL简介与优势 **OpenGL**(Open Graphics Library)是一种跨语言、跨平台的应用程序编程接口(API),主要用于渲染2D、3D矢量图形。它由一系列调用构成,这些调用定义...
android OpenGL 入门 教程 12 个小case 。
OpenGL教程.pdf
opengl教程,轻松入门 opengl教程,轻松入门 opengl教程,轻松入门 opengl教程,轻松入门
QT opengl入门教程案例