OpenGl学习笔记1——建立一个可以支持OpenGL的窗口

我的开发环境是VS2008——VC++

一、准备工作

1、下载OpenGl SDK ,CSDN中就有

2、释放后,在“工具|选项”中设置“项目和解决方案|VC++目录”

在“包含文件”与“库文件”中添加上OpenGl SDK的相关目录。

这样在你的程序中就可以用上#include<gl.h>,#include<glu.h>,#include<glaux.h>了

3、在你的stdafx.h中加上

#pragma comment( lib, "opengl32.lib")

#pragma comment( lib, "glu32.lib")

#pragma comment( lib, "glaux.lib")

然后就可以在自己的项目中调用OpenGl了。

二、创建一个支持OpenGL的窗口

必备的几个对象

HDC hDC=NULL;// 图形设备环境
HGLRC hRC=NULL;// OpenGl的展示环境
HWND hWnd=NULL;// Holds Our Window Handle
HINSTANCE hInstance;// Holds The Instance Of The Application


1、声明一个窗口类结构的对象,然后注册它,最后建立一个窗口

WNDCLASS wc;// Windows Class Structure

……//填写wc的过程略,如何一步步建立窗口的教程里都有。

RegisterClass(&wc); //  To Register The Window Class

……//生成一个标准窗口的细节步骤,相关教程里很清楚

(hWnd=CreateWindowEx(……);                 //我实验的结果用CreateWindow();也不影响对OpenGL的支持

2、让生成的标准窗口支持OpenGL!

static PIXELFORMATDESCRIPTOR pfd= // pfd Tells Windows How We Want Things To Be
{
sizeof(PIXELFORMATDESCRIPTOR),// Size Of This Pixel Format Descriptor
1, // Version Number
PFD_DRAW_TO_WINDOW |// Format Must Support Window
PFD_SUPPORT_OPENGL |// Format Must Support OpenGL——就是这里了。
PFD_DOUBLEBUFFER,// Must Support Double Buffering
PFD_TYPE_RGBA,// Request An RGBA Format
bits, // Select Our Color Depth
0, 0, 0, 0, 0, 0,// Color Bits Ignored
0, // No Alpha Buffer
0, // Shift Bit Ignored
0, // No Accumulation Buffer
0, 0, 0, 0, // Accumulation Bits Ignored
16, // 16Bit Z-Buffer (Depth Buffer)  
0, // No Stencil Buffer
0, // No Auxiliary Buffer
PFD_MAIN_PLANE,// Main Drawing Layer
0, // Reserved
0, 0, 0 // Layer Masks Ignored
};

hDC=GetDC(hWnd))) //  To Get A Device Context(得到窗口的设备环境(入口)——一般说是设备上下文,我觉得“上下文”让人莫名其妙)

PixelFormat=ChoosePixelFormat(hDC,&pfd); // To Find A Matching Pixel Format

SetPixelFormat(hDC,PixelFormat,&pfd); // To Set The Pixel Format


hRC=wglCreateContext(hDC); // To Get A Rendering Context for OpenGL 得到一个OpenGL的展示环境(入口?权限)

 wglMakeCurrent(hDC,hRC);// To Activate The Rendering Context

ShowWindow(hWnd,SW_SHOW);// Show The Window

.............

好一个OpenGL表演的窗口就完成了。

 

好的,关于绘制多边形,我会为您提供一些OpenGL学习笔记。 首先,我们需要了解一下OpenGL绘制多边形的基本流程。OpenGL绘制多边形的过程包括三个基本步骤:指定顶点数据、指定绘制方式和执行绘制。 指定顶点数据:在OpenGL中,我们可以使用glVertex等函数来指定多边形的顶点。例如,如果我们要绘制一个三角形,我们可以使用以下代码: ``` glBegin(GL_TRIANGLES); glVertex3f(0.0f, 1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 0.0f); glVertex3f(1.0f, -1.0f, 0.0f); glEnd(); ``` 其中,glBegin和glEnd函数用来指定绘制的方式,GL_TRIANGLES表示绘制三角形。glVertex3f函数用来指定三角形的三个顶点,每个顶点由三个坐标值组成。 指定绘制方式:OpenGL支持多种绘制方式,例如GL_TRIANGLES、GL_TRIANGLE_STRIP、GL_TRIANGLE_FAN等。在上面的代码中,我们使用了GL_TRIANGLES来指定绘制三角形的方式。 执行绘制:最后,我们需要调用glDrawArrays函数来执行绘制。例如,如果我们要绘制一个三角形,我们可以使用以下代码: ``` glDrawArrays(GL_TRIANGLES, 0, 3); ``` 其中,GL_TRIANGLES表示绘制三角形的方式,0表示顶点数组的起始位置,3表示顶点的数量。 以上就是OpenGL绘制多边形的基本流程,下面我们来看一下如何绘制着色多边形。 绘制着色多边形的过程与绘制普通多边形的过程基本相同,只需要在绘制前调用glColor函数来指定颜色即可。例如,如果我们要绘制一个红色的三角形,我们可以使用以下代码: ``` glBegin(GL_TRIANGLES); glColor3f(1.0f, 0.0f, 0.0f); // 指定颜色为红色 glVertex3f(0.0f, 1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, 0.0f); glVertex3f(1.0f, -1.0f, 0.0f); glEnd(); ``` 其中,glColor3f函数用来指定颜色,三个参数分别表示红、绿、蓝三个颜色通道的值,取值范围为0到1。 希望以上内容能够帮助到您。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值