OpenGL系列教程之一:OpenGL

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




概述:

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




渲染管线

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函数的调用从普遍的消息路由中完全脱离开来。





  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程解决的问题: 作为游戏行业或者图形学从业者,你是否面临以下问题: 到底openGL底层如何实现的? 到底矩阵操作变换是怎么做到的? 到底光栅化的算法以及原理是什么? 到底如何才能从3D世界投射到2D屏幕呢? 图形学有这么多的矩阵操作,到底如何推导如何应用呢? 学完这门课程,你应该就可以从底层了解一个初级的openGL图形接口如何实现,图形学最底层的封装到底面临哪些挑战;跟随我们一行一行写完代码,你就会得到一个迷你版本的openGL图形库,你可以深度体会图形从模型变换,观察矩阵变换,投影矩阵变换一直到光栅化纹理操作的全套模拟流程。 课程介绍: 本课程将带领学员不使用任何图形库,实现从0到1的图形学接口封装以及算法讲解,并且带领大家手敲代码,一行一行进行实现。 涵盖了(环境搭建,绘制点,Bresenham算法绘制完美直线,三角形拆分绘制算法,颜色插值算法,图片操作,图片二次插值放缩算法,纹理系统接口搭建及封装,矩阵操作理论以及实践,openGL类似接口封装,3D世界的图形学理论及接口封装等) 最终将带领大家通过C++实现一个3D世界的图形接口,方便所有人入门图形学,进行接下来的openGL接口以及GPU编程的学习   本课程为系列课程的第一步入门,且带领所有人进行实现,更加实用,可以让大家打牢图形学的基础知识及编程技能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值