opengl 教程(3) 在窗口画三角形

    原文地址:http://ogldev.atspace.co.uk/www/tutorial03/tutorial03.html

 

    本教程内容很少,主要是在教程2基础上渲染一个三角形。

   在前面一个教程中,我们在归一化的裁剪空间中定义一个顶点,这样就省去一些坐标变化操作,但不能省去的操作是视口变化。我们从z轴正方向向负方向看去,裁剪空间类似下图的样子,裁剪空间盒子中的三维物体先投影到该平面上,然后通过视口变化映射到屏幕空间,点(-1.0,1.0)被映射到屏幕的左上角,(-1.0,-1.0)被映射到屏幕的左下角,(1.0,1.0)被映射到屏幕的右上角,(1.0,-1.0)映射到屏幕的右下角。

   变化的代码很少,就是定义3个顶点,然后就是调用draw函数时候,指定体元语义为三角形,顶点数目为3.

Vector3f Vertices[3];
Vertices[0] = Vector3f(-1.0f, -1.0f, 0.0f);
Vertices[1] = Vector3f(1.0f, -1.0f, 0.0f);
Vertices[2] = Vector3f(0.0f, 1.0f, 0.0f);

glDrawArrays(GL_TRIANGLES, 0, 3);

程序运行后,界面如下:

时间: 2024-10-01 16:36:52

opengl 教程(3) 在窗口画三角形的相关文章

opengl 教程(2) 在窗口画点

      原文地址:http://ogldev.atspace.co.uk/www/tutorial02/tutorial02.html       通常在写OpenGL程序时候,我们都需要glew库,该库包装了OpenGL的各种扩展,便于我们使用. 我们可以在main函数中调用glew初始化函数,之后就可以查询OpenGL各种扩展能否使用了,对于能够使用的函数,可以动态的加载.       在这篇教程中,我们首先了解一下顶点缓冲对象(VBO,vertex buffer object)的用法.

opengl 教程(1) 创建窗口

本章教程内容主要来自:http://ogldev.atspace.co.uk/www/tutorial01/tutorial01.html 使用OpenGL之前,请先安装和设置好FreeGlut和glew, 下载地址: http://freeglut.sourceforge.net/ http://glew.sourceforge.net/   原教程源码下载地址:http://ogldev.atspace.co.uk/ogldev_win.zip          OpenGL做为3D图形接口

NeHe的OpenGL教程1(Bang翻译Delphi版)-如何绘制OpenGL窗口

NeHe的OpenGL教程1(Bang翻译Delphi版)-如何绘制OpenGL窗口 在这个教程里,我将教你在Windows环境中创建OpenGL程序.它将显示一个空的OpenGL窗口,可以在窗口和全屏模式下切换,按ESC退出.它是我们以后应用程序的框架.如下图: program lesson1a; {    OpenGL DelphiXE    出处:根据NeHe代码翻译而来(http://nehe.gamedev.net/)    作者:帅宏军 shuaihj@163.com} uses 

用VS2013编译opengl编程宝典第五版的第一个画三角形的例子,编译后程序运行不了

问题描述 用VS2013编译opengl编程宝典第五版的第一个画三角形的例子,编译后程序运行不了 代码如下: #include #include #define FERRGLUT_STATIC #include #include GLBatch trianglebatch; GLShaderManager shadermanager; int main(int argc, char* argv[]) { void RenderScene(); void ChangeSize(int w, int

NeHe的OpenGL教程6(Bang翻译Delphi版)-如何用图片进行纹理映射

NeHe的OpenGL教程6(Bang翻译Delphi版)-如何用图片进行纹理映射 在这一课里,我将教会你如何把纹理映射到立方体的六个面,如下图: 将下图放在应用程序data目录下,起名NeHe.bmp program lesson6a; {    OpenGL DelphiXE    出处:根据NeHe代码翻译而来(http://nehe.gamedev.net/)    作者:帅宏军 shuaihj@163.com     注:本单元用到了glaux.dll和glaux.pas,下载地址为:

NeHe的OpenGL教程2(Bang翻译Delphi版)-如何绘制平面图形

NeHe的OpenGL教程2(Bang翻译Delphi版)-如何绘制平面图形 这一课中,我将教您如何创建三角形和四边形.如下图: program lesson2a; {    OpenGL DelphiXE    出处:根据NeHe代码翻译而来(http://nehe.gamedev.net/)    作者:帅宏军 shuaihj@163.com} uses  Windows,  Messages,  OpenGL; // 全局变量var  h_Rc: HGLRC;               

NeHe的OpenGL教程5(Bang翻译Delphi版)-如何绘制立方体

NeHe的OpenGL教程5(Bang翻译Delphi版)-如何绘制立方体 在这一课里,我们把三角形变为立体的金子塔形状,把四边形变为立方体,如下图: program lesson5a; {    OpenGL DelphiXE    出处:根据NeHe代码翻译而来(http://nehe.gamedev.net/)    作者:帅宏军 shuaihj@163.com} uses  Windows,  Messages,  OpenGL; // 全局变量var  h_Rc: HGLRC;    

NeHe的OpenGL教程4(Bang翻译Delphi版)-如何让图形旋转

NeHe的OpenGL教程4(Bang翻译Delphi版)-如何让图形旋转 在这一课里,我将教会你如何旋转三角形和四边形.左图中的三角形沿Y轴旋转,四边形沿着X轴旋转.如下图 program lesson4a; {    OpenGL DelphiXE    出处:根据NeHe代码翻译而来(http://nehe.gamedev.net/)    作者:帅宏军 shuaihj@163.com} uses  Windows,  Messages,  OpenGL; // 全局变量var  h_Rc

NeHe的OpenGL教程7(Bang翻译Delphi版)-如何使用光源

NeHe的OpenGL教程7(Bang翻译Delphi版)-如何使用光源        在这一课里,我将教会你如何用光源照亮立方体的六个面,如下图: 将下图放在应用程序data目录下,起名NeHe.bmp program lesson7a; {    OpenGL DelphiXE    出处:根据NeHe代码翻译而来(http://nehe.gamedev.net/)    作者:帅宏军 shuaihj@163.com     在这一课里,我将教会你如何用光源照亮立方体的六个面     注:本