[OpenGL] 1、环境搭建及最小系统
>_<: 首先推荐一个企业版的VC6.0自带OpenGL和DirectX,非常方便:http://pan.baidu.com/s/1mgIAGi8
PS: 要注意这里的OpenGL建立的工程有一点小错误,即:#include <glu.h> #include <gl.h>要在前面加上GL\(因为这两个文件是在include/GL文件夹内的)
aaarticlea/png;base64,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" alt="" width="464" height="304" />
此外,还要推荐一个非常好的OpenGL学习网站:http://www.yakergong.net/nehe/
PS: 由于这个网站的作者采用的是另一种Win32架构,用VC6.0默认的模板建立的工程可能有点不同,这里我把如何建立一个他那样的OpenGL的工程给介绍一下:
- 直接看创建一个OpenGL窗口的部分,你要建立一个Win32 Application空工程
- 建好之后引入OpenGL的动态链接库,Project-> Settings,然后单击LINK标签。在"Object/Library Modules"选项中的开始处(在 kernel32.lib 前)增加 OpenGL32.lib GLu32.lib 和 GLaux.lib 后单击OK按钮。现在可以开始写您的OpenGL程序了。
- 建立一个CPP文件放入下面的代码[就是他第一课的代码]
#include <windows.h> // Windows的头文件
#include <GL/glu.h> // 包含最新的gl.h,glu.h库
#include <GL/gl.h>
#include <GL/glut.h> // 包含OpenGL实用库 HGLRC hRC=NULL; // 窗口着色描述表句柄
HDC hDC=NULL; // OpenGL渲染描述表句柄
HWND hWnd=NULL; // 保存我们的窗口句柄
HINSTANCE hInstance; // 保存程序的实例 bool keys[]; // 保存键盘按键的数组
bool active=TRUE; // 窗口的活动标志,缺省为TRUE
bool fullscreen=TRUE; // 全屏标志缺省,缺省设定成全屏模式 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // WndProc的定义
GLvoid ReSizeGLScene(GLsizei width, GLsizei height) // 重置OpenGL窗口大小
{
if (height==) // 防止被零除
{
height=; // 将Height设为1
}
glViewport(, , width, height); // 重置当前的视口
glMatrixMode(GL_PROJECTION); // 选择投影矩阵
glLoadIdentity(); // 重置投影矩阵
// 设置视口的大小
gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);
glMatrixMode(GL_MODELVIEW); // 选择模型观察矩阵
glLoadIdentity(); // 重置模型观察矩阵
} int InitGL(GLvoid) // 此处开始对OpenGL进行所有设置
{
glShadeModel(GL_SMOOTH); // 启用阴影平滑
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // 黑色背景
glClearDepth(1.0f); // 设置深度缓存
glEnable(GL_DEPTH_TEST); // 启用深度测试
glDepthFunc(GL_LEQUAL); // 所作深度测试的类型
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // 告诉系统对透视进行修正
return TRUE; // 初始化 OK
} int DrawGLScene(GLvoid) // 从这里开始进行所有的绘制
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕和深度缓存
glLoadIdentity(); // 重置当前的模型观察矩阵
return TRUE; // 一切 OK
} GLvoid KillGLWindow(GLvoid) // 正常销毁窗口
{
if (fullscreen) // 我们处于全屏模式吗?
{
ChangeDisplaySettings(NULL,); // 是的话,切换回桌面
ShowCursor(TRUE); // 显示鼠标指针
}
if (hRC) // 我们拥有OpenGL渲染描述表吗?
{
if (!wglMakeCurrent(NULL,NULL)) // 我们能否释放DC和RC描述表?
{
MessageBox(NULL,"释放DC或RC失败。","关闭错误",MB_OK | MB_ICONINFORMATION);
}
if (!wglDeleteContext(hRC)) // 我们能否删除RC?
{
MessageBox(NULL,"释放RC失败。","关闭错误",MB_OK | MB_ICONINFORMATION);
}
hRC=NULL; // 将RC设为 NULL
}
if (hDC && !ReleaseDC(hWnd,hDC)) // 我们能否释放 DC?
{
MessageBox(NULL,"释放DC失败。","关闭错误",MB_OK | MB_ICONINFORMATION);
hDC=NULL; // 将 DC 设为 NULL
}
if (hWnd && !DestroyWindow(hWnd)) // 能否销毁窗口?
{
MessageBox(NULL,"释放窗口句柄失败。","关闭错误",MB_OK | MB_ICONINFORMATION);
hWnd=NULL; // 将 hWnd 设为 NULL
}
if (!UnregisterClass("OpenG",hInstance)) // 能否注销类?
{
MessageBox(NULL,"不能注销窗口类。","关闭错误",MB_OK | MB_ICONINFORMATION);
hInstance=NULL; // 将 hInstance 设为 NULL
}
} BOOL CreateGLWindow(char* title, int width, int height, int bits, bool fullscreenflag)
{
GLuint PixelFormat; // 保存查找匹配的结果
WNDCLASS wc; // 窗口类结构
DWORD dwExStyle; // 扩展窗口风格
DWORD dwStyle; // 窗口风格
RECT WindowRect; // 取得矩形的左上角和右下角的坐标值
WindowRect.left=(long); // 将Left 设为 0
WindowRect.right=(long)width; // 将Right 设为要求的宽度
WindowRect.top=(long); // 将Top 设为 0
WindowRect.bottom=(long)height; // 将Bottom 设为要求的高度
fullscreen=fullscreenflag; // 设置全局全屏标志 hInstance = GetModuleHandle(NULL); // 取得我们窗口的实例
wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; // 移动时重画,并为窗口取得DC
wc.lpfnWndProc = (WNDPROC) WndProc; // WndProc处理消息
wc.cbClsExtra = ; // 无额外窗口数据
wc.cbWndExtra = ; // 无额外窗口数据
wc.hInstance = hInstance; // 设置实例
wc.hIcon = LoadIcon(NULL, IDI_WINLOGO); // 装入缺省图标
wc.hCursor = LoadCursor(NULL, IDC_ARROW); // 装入鼠标指针
wc.hbrBackground = NULL; // GL不需要背景
wc.lpszMenuName = NULL; // 不需要菜单
wc.lpszClassName = "OpenG"; // 设定类名字 if (!RegisterClass(&wc)) // 尝试注册窗口类
{
MessageBox(NULL,"注册窗口失败","错误",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // 退出并返回FALSE
} if (fullscreen) // 要尝试全屏模式吗?
{
DEVMODE dmScreenSettings; // 设备模式
memset(&dmScreenSettings,,sizeof(dmScreenSettings)); // 确保内存清空为零
dmScreenSettings.dmSize=sizeof(dmScreenSettings); // Devmode 结构的大小
dmScreenSettings.dmPelsWidth = width; // 所选屏幕宽度
dmScreenSettings.dmPelsHeight = height; // 所选屏幕高度
dmScreenSettings.dmBitsPerPel = bits; // 每象素所选的色彩深度
dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;
// 尝试设置显示模式并返回结果。注: CDS_FULLSCREEN 移去了状态条。
if (ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCCESSFUL)
{
// 若模式失败,提供两个选项:退出或在窗口内运行。
if (MessageBox(NULL,"全屏模式在当前显卡上设置失败!\n使用窗口模式?","NeHe G",MB_YESNO|MB_ICONEXCLAMATION)==IDYES)
{
fullscreen=FALSE; // 选择窗口模式(Fullscreen=FALSE)
}
else
{
// 弹出一个对话框,告诉用户程序结束
MessageBox(NULL,"程序将被关闭","错误",MB_OK|MB_ICONSTOP);
return FALSE; // 退出并返回 FALSE
}
}
}
if (fullscreen) // 仍处于全屏模式吗?
{
dwExStyle=WS_EX_APPWINDOW; // 扩展窗体风格
dwStyle=WS_POPUP; // 窗体风格
ShowCursor(FALSE); // 隐藏鼠标指针
}
else
{
dwExStyle=WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; // 扩展窗体风格
dwStyle=WS_OVERLAPPEDWINDOW; // 窗体风格
}
AdjustWindowRectEx(&WindowRect, dwStyle, FALSE, dwExStyle); // 调整窗口达到真正要求的大小
if (!(hWnd=CreateWindowEx( dwExStyle, // 扩展窗体风格
"OpenG", // 类名字
title, // 窗口标题
WS_CLIPSIBLINGS | // 必须的窗体风格属性
WS_CLIPCHILDREN | // 必须的窗体风格属性
dwStyle, // 选择的窗体属性
, , // 窗口位置
WindowRect.right-WindowRect.left, // 计算调整好的窗口宽度
WindowRect.bottom-WindowRect.top, // 计算调整好的窗口高度
NULL, // 无父窗口
NULL, // 无菜单
hInstance, // 实例
NULL))) // 不向WM_CREATE传递任何东东
{
KillGLWindow(); // 重置显示区
MessageBox(NULL,"不能创建一个窗口设备描述表","错误",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // 返回 FALSE
}
static PIXELFORMATDESCRIPTOR pfd= // /pfd 告诉窗口我们所希望的东东,即窗口使用的像素格式
{
sizeof(PIXELFORMATDESCRIPTOR), // 上述格式描述符的大小
, // 版本号
PFD_DRAW_TO_WINDOW | // 格式支持窗口
PFD_SUPPORT_OPENGL | // 格式必须支持OpenGL
PFD_DOUBLEBUFFER, // 必须支持双缓冲
PFD_TYPE_RGBA, // 申请 RGBA 格式
bits, // 选定色彩深度
, , , , , , // 忽略的色彩位
, // 无Alpha缓存
, // 忽略Shift Bit
, // 无累加缓存
, , , , // 忽略聚集位
, // 16位 Z-缓存 (深度缓存)
, // 无蒙板缓存
, // 无辅助缓存
PFD_MAIN_PLANE, // 主绘图层
, // Reserved
, , // 忽略层遮罩
};
if (!(hDC=GetDC(hWnd))) // 取得设备描述表了么?
{
KillGLWindow(); // 重置显示区
MessageBox(NULL,"不能创建一种相匹配的像素格式","错误",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // 返回 FALSE
}
if (!(PixelFormat=ChoosePixelFormat(hDC,&pfd))) // Windows 找到相应的象素格式了吗?
{
KillGLWindow(); // 重置显示区
MessageBox(NULL,"不能设置像素格式","错误",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // 返回 FALSE
}
if(!SetPixelFormat(hDC,PixelFormat,&pfd)) // 能够设置象素格式么?
{
KillGLWindow(); // 重置显示区
MessageBox(NULL,"不能设置像素格式","错误",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // 返回 FALSE
}
if (!(hRC=wglCreateContext(hDC))) // 能否取得着色描述表?
{
KillGLWindow(); // 重置显示区
MessageBox(NULL,"不能创建OpenGL渲染描述表","错误",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // 返回 FALSE
}
if(!wglMakeCurrent(hDC,hRC)) // 尝试激活着色描述表
{
KillGLWindow(); // 重置显示区
MessageBox(NULL,"不能激活当前的OpenGL渲然描述表","错误",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // 返回 FALSE
}
ShowWindow(hWnd,SW_SHOW); // 显示窗口
SetForegroundWindow(hWnd); // 略略提高优先级
SetFocus(hWnd); // 设置键盘的焦点至此窗口
ReSizeGLScene(width, height); // 设置透视 GL 屏幕
if (!InitGL()) // 初始化新建的GL窗口
{
KillGLWindow(); // 重置显示区
MessageBox(NULL,"Initialization Failed.","ERROR",MB_OK|MB_ICONEXCLAMATION);
return FALSE; // 返回 FALSE
}
return TRUE; // 成功
} LRESULT CALLBACK WndProc( HWND hWnd, // 窗口的句柄
UINT uMsg, // 窗口的消息
WPARAM wParam, // 附加的消息内容
LPARAM lParam) // 附加的消息内容
{
switch (uMsg) // 检查Windows消息
{
case WM_ACTIVATE: // 监视窗口激活消息
{
if (!HIWORD(wParam)) // 检查最小化状态
{
active=TRUE; // 程序处于激活状态
}
else
{
active=FALSE; // 程序不再激活
}
return ; // 返回消息循环
}
case WM_SYSCOMMAND: // 系统中断命令
{
switch (wParam) // 检查系统调用
{
case SC_SCREENSAVE: // 屏保要运行?
case SC_MONITORPOWER: // 显示器要进入节电模式?
return ; // 阻止发生
}
break; // 退出
}
case WM_CLOSE: // 收到Close消息?
{
PostQuitMessage(); // 发出退出消息
return ; // 返回
}
case WM_KEYDOWN: // 有键按下么?
{
keys[wParam] = TRUE; // 如果是,设为TRUE
return ; // 返回
}
case WM_KEYUP: // 有键放开么?
{
keys[wParam] = FALSE; // 如果是,设为FALSE
return ; // 返回
}
case WM_SIZE: // 调整OpenGL窗口大小
{
ReSizeGLScene(LOWORD(lParam),HIWORD(lParam)); // LoWord=Width,HiWord=Height
return ; // 返回
}
}
// 向 DefWindowProc传递所有未处理的消息。
return DefWindowProc(hWnd,uMsg,wParam,lParam);
} int WINAPI WinMain( HINSTANCE hInstance, // 当前窗口实例
HINSTANCE hPrevInstance, // 前一个窗口实例
LPSTR lpCmdLine, // 命令行参数
int nCmdShow) // 窗口显示状态
{
MSG msg; // Windowsx消息结构
BOOL done=FALSE; // 用来退出循环的Bool 变量
// 提示用户选择运行模式
if (MessageBox(NULL,"你想在全屏模式下运行么?", "设置全屏模式",MB_YESNO|MB_ICONQUESTION)==IDNO)
{
fullscreen=FALSE; // FALSE为窗口模式
}
// 创建OpenGL窗口
if (!CreateGLWindow("NeHe's OpenGL程序框架",,,,fullscreen))
{
return ; // 失败退出
}
while(!done) // 保持循环直到 done=TRUE
{
if (PeekMessage(&msg,NULL,,,PM_REMOVE)) // 有消息在等待吗?
{
if (msg.message==WM_QUIT) // 收到退出消息?
{
done=TRUE; // 是,则done=TRUE
}
else // 不是,处理窗口消息
{
TranslateMessage(&msg); // 翻译消息
DispatchMessage(&msg); // 发送消息
}
}
else // 如果没有消息
{
// 绘制场景。监视ESC键和来自DrawGLScene()的退出消息
if (active) // 程序激活的么?
{
if (keys[VK_ESCAPE]) // ESC 按下了么?
{
done=TRUE; // ESC 发出退出信号
}
else // 不是退出的时候,刷新屏幕
{
DrawGLScene(); // 绘制场景
SwapBuffers(hDC); // 交换缓存 (双缓存)
}
}
if (keys[VK_F1]) // F1键按下了么?
{
keys[VK_F1]=FALSE; // 若是,使对应的Key数组中的值为 FALSE
KillGLWindow(); // 销毁当前的窗口
fullscreen=!fullscreen; // 切换 全屏 / 窗口 模式
// 重建 OpenGL 窗口
if (!CreateGLWindow("NeHe's OpenGL 程序框架",,,,fullscreen))
{
return ; // 如果窗口未能创建,程序退出
}
}
}
}
// 关闭程序
KillGLWindow(); // 销毁窗口
return (msg.wParam); // 退出程序
}
hehe.cpp
具体说明可以参看那位作者的说明,很详细滴~
>_<: 再说说用VC6.0自带的OpenGL工程建立的项目,其实他也是Win32应用程序,只是模块化更清晰,仔细对比两个程序,会发现有很大的相同点的。一般只要在MainWnd.cpp中做相应的修改就行啦:
void DrawScene();
void KillScene();
void InitScene();
void Tick(BOOL &bRedrawScene);
这是MainWnd类的几个成员函数,其中第一个就是负责显示的,第三个就是负责初始化相关,第四个负责更新参数,就相当于时间轴,更直白的说就是每隔一定时间就会执行一次的函数,你把一些运动相关的参数放进里面就可以实现递增或递减或复杂的变化关系~
PS: 接下来我会使用VC自带的工程做,如果你还是个新手建议用那位作者的框架~
[OpenGL] 1、环境搭建及最小系统的更多相关文章
- SLAM+语音机器人DIY系列:(五)树莓派3开发环境搭建——1.安装系统ubuntu_mate_16.04
摘要 通过前面一系列的铺垫,相信大家对整个miiboo机器人的DIY有了一个清晰整体的认识.接下来就正式进入机器人大脑(嵌入式主板:树莓派3)的开发.本章将从树莓派3的开发环境搭建入手,为后续ros开 ...
- Android OpenGL ES 开发(二): OpenGL ES 环境搭建
零:环境搭建目的 为了在Android应用程序中使用OpenGL ES绘制图形,必须要为他们创建一个视图容器.其中最直接或者最常用的方式就是实现一个GLSurfaceView和一个GLSurfaceV ...
- 【游戏开发】基于VS2017的OpenGL开发环境搭建
一.简介 最近,马三买了两本有关于“计算机图形学”的书籍,准备在工作之余鼓捣鼓捣图形学和OpenGL编程,提升自己的价值(奔着学完能涨一波工资去的).俗话说得好,“工欲善其事,必先利其器”.想学习图形 ...
- 第一章 MIZ701 VIVADO 搭建SOC最小系统HelloWorld
本章内容是MIZ701中的第五章,本来也是要过渡一下FPGA部分的,但是由于MIZ701没有单独提供PL部分的晶振时钟,时钟必须通过PS产生,所以本章内容作为Miz701的第一章内容.本章的目的是 ...
- 环境搭建-VMware安装系统
常用的虚拟化软件: 1.vmware:收费 commercial(商业版的) 2.vitualbox:free 虚拟化软件:vmware workstation(虚拟系统工作站) 安装系统任务 ...
- Windows Opengl ES 环境搭建
环境 OS:win7 专业版SP1 64位 编译器: VS 2013 express 的cl 软件 windows上运行OpenGL ES要用到第三方的头文件,库文件和dll.下载地址 http:// ...
- OpenGL(1)-环境搭建
写在前面 工作几年,开始沉心做技术,对自己的知识进行梳理. OpenGL是由khronos组织制定并维护的规范,并不是API. OpenGL在3.2之前采用的是立即渲染模式(固定渲染管线),3.2之后 ...
- Python多版本环境搭建(Linux系统)
python Linux 环境 (版本隔离工具) 首先新建用户,养成良好习惯 useradd python 1.安装pyenv GitHub官网: https://github.c ...
- Python 编程环境搭建(Windows 系统中)
由于大家普遍使用 Windows 系统,所以本文只介绍 Windows 系统中 Python 环境的安装. 在 Windows 中安装 Python 与安装普通软件没什么差别,下载所需版本的安装包后, ...
随机推荐
- javascript 函数执行上下文
在js里,每个函数都有一个执行的上下文,我们可以通过this来访问. 如: 全局函数 function test(){ var local = this; } 我们发现local等于window(do ...
- 重新认识Android
首先我们来看下源码中源于Activity的定义: public class Activity extends ContextThemeWrapper implements LayoutInflater ...
- bzoj 2152聪聪可可
2152: 聪聪可可 Time Limit: 3 Sec Memory Limit: 259 MB Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰 ...
- Light OJ 1026 - Critical Links (图论-双向图tarjan求割边,桥)
题目大意:双向联通图, 现在求减少任意一边使图的联通性改变,按照起点从小到大列出所有这样的边 解题思路:双向边模版题 tarjan算法 代码如下: #include<bits/stdc++.h& ...
- 加载form表单
var row = $('#dg').datagrid('getData').rows[rowIndex]; $('#moneyff').form('load', row);//row 可以 ...
- boxes
boxes [英][bɒksɪz][美][bɑ:ksɪz] n.盒( box的名词复数 ); 一盒; 电视; 小亭; v.把…装入盒[箱,匣]中( box的第三人称单数 ); 拳击; 以上结果来自 ...
- Revenge of Nim hdu 4994 (博弈)
http://acm.split.hdu.edu.cn/showproblem.php?pid=4994 题意:现在有两个人在取石子,共有n堆石子,每堆石子取完后才可以取下一堆石子,最后一个取石子的人 ...
- java内存分析
链接:http://blog.csdn.net/chana1101/article/details/5632393
- flex 正则 验证
验证数字:^[-]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(|[-][-]*)$ 验证有两位小数的正 ...
- 剑指offer题目31-40
面试题31:连续字数组的最大和 public class Solution { public int FindGreatestSumOfSubArray(int[] array) { int len ...