`
hereson3
  • 浏览: 162956 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

OpenGL 入门教程(五)

阅读更多

本文源自: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入门教程(精).pdf

    ### OpenGL入门教程知识点详解 #### 一、OpenGL简介与优势 **OpenGL** 是一种跨语言、跨平台的应用程序编程接口(API),主要用于渲染2D、3D矢量图形。它是图形学领域的一个重要标准,被广泛应用于游戏开发、虚拟...

    OpenGL入门教程实例

    OpenGL入门教程实例 OpenGL入门教程实例 OpenGL入门教程实例 OpenGL入门教程实例 OpenGL入门教程实例 OpenGL入门教程实例 OpenGL入门教程实例

    OpenGL入门教程(精)

    OpenGL入门教程(精)

    OpenGL入门教程pdf(最基础)

    入门教程内容: - 学习OpenGL能使人掌握创建绚丽PC游戏所必需的编程技能,突破老旧图形接口的限制。 - OpenGL之所以是主流图形API之一,是因为它具有与C语言的紧密结合、优秀的可移植性以及高性能的图形渲染能力。 -...

    OpenGL入门经典教程

    ### OpenGL入门经典教程知识点概述 #### 一、OpenGL简介及特点 - **替代传统图形库**:传统的图形库,如TC中的`<graphics.h>`,虽然简单易用,但功能有限,仅支持较低分辨率(例如640x480)和较少的颜色模式(如16...

    OpenGL入门教程(精选)相关例子试验代码

    OpenGL入门教程是学习图形编程的重要资源,特别是对于初学者来说,它能帮助理解3D图形渲染的基本原理。OpenGL是一个跨语言、跨平台的编程接口,用于渲染2D、3D图像。在这个“OpenGL入门教程(精选)相关例子试验代码...

    OpenGL入门教程12讲代码加解析

    OpenGL入门教程12讲代码加解析

    OpenGL入门教程

    OpenGL入门教程 OpenGL入门教程 OpenGL入门教程

    OpenGL入门教程,教你理解

    OpenGL入门教程旨在帮助初学者快速掌握这一强大的图形编程接口,为3D图形处理打下坚实的基础。OpenGL是一种跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形。它广泛应用于游戏开发、科学可视化、工程设计等多个...

    opengl入门教程.doc

    OpenGL入门教程旨在帮助初学者掌握这个强大的图形编程接口。OpenGL是一个跨语言、跨平台的编程接口,用于渲染2D和3D图形。它的核心库包含了115个基础函数,这些函数可在任何支持OpenGL的平台上运行。在此基础上,...

    OpenGL入门教程.pdf

    ### OpenGL入门教程知识点详解 #### 一、OpenGL简介与优势 **OpenGL**(Open Graphics Library)是一种跨语言、跨平台的应用程序编程接口(API),主要用于渲染2D、3D矢量图形。它由一系列调用构成,这些调用定义...

    android OpenGL 入门 教程

    android OpenGL 入门 教程 12 个小case 。

    OpenGL教程.pdf

    OpenGL教程.pdf

    opengl教程,轻松入门

    opengl教程,轻松入门 opengl教程,轻松入门 opengl教程,轻松入门 opengl教程,轻松入门

    Opengl入门案例教程.zip

    QT opengl入门教程案例

Global site tag (gtag.js) - Google Analytics