OpenGL系列教程之一:OpenGL(转)

这个页面包含了一些基础的OpenGL教程和说明。所有的例子程序都是在Code::Blocks和Orwell Dev-C++下使用C++编写的,当然也包括一些在linux和mac下运行所需要的makefile文件。大多数情况下我使用的GLUT,你可以从这里下载在Dev-C++中开发所需要的GLUT库。




概述:

OpenGL是一种图形硬件的软件接口。这一章是对OpenGL的简单描述。

原文地址:https://blog.csdn.net/u012501459/article/details/12945135


渲染管线

OpenGL渲染管线包含一系列有序地处理数据的阶段。两种图形数据即基于顶点的数据和基于像素的数据,在渲染管线中处理并统一输出到帧缓冲区。




变换

OpenGL使用几个4*4的矩阵来表示变换:GL_MODELVIEW(模型视图矩阵),GL_PROJECT(投影矩阵),GL_TEXTURE(纹理矩阵)和GL_COLOR(颜色矩阵)。几何数据和图形数据在光栅化处理之前会先使用这些矩阵进行变换。




OpenGL中的Matrix4类

Matrix4类是一个通用的,独立的矩阵类。它很容易被集成到OpenGL应用程序中。它提供了等价于glTranslate(),glRotatef(0,glScales()这些函数的矩阵变换模式。




顶点数组

使用顶点数组减少了函数调用了和共享顶点的冗余使用。因此,你能提高渲染的性能。




显示列表

显示列表是一种快速渲染静态数据的方式,因为OpenGL命令和顶点数据缓将存储在显示列表中,并且显示列表使客户端到服务器端的数据传送次数尽可能地少。




顶点缓冲区对象(VBO)

顶点缓冲区对象(VBO)允许顶点数据存储在服务器端高性能的显卡内存中,并促使高效的数据传送。




像素缓冲区对象(PBO)

像素缓冲区对象(PBO)将像素数据存储在OpenGL的控制存储器中,并且允许异步地DMA方式在GPU和控制存储器之间相互传输像素数据。典型地使用PBO的例子是流纹理更新和异步地回调。




帧缓冲区对象(FBO)

帧缓冲区对象是为了实现一种不显示在屏幕上的渲染的目的,这样可以提高渲染到纹理和离屏渲染的性能。




网格化

网格化是将凹多边形或有边相交的多边形划分成凸多边形。环绕的规则和环绕的数字决定了多边形那些部分填充或不填充。




MVC Windows 图形界面应用程序

MVC(Model-View-Controller,模型-视图-控制)框架是GUI(Graphic User Interface,图形用户界面)程序的一种普遍的设计框架。MVC框架的好处是将OpenGL函数的调用从普遍的消息路由中完全脱离开来。


猜你喜欢

转载自blog.csdn.net/zhang43211234/article/details/81004267