OpenGL 入门教程实例
来源:互联网 发布:nginx 开启hsts 编辑:程序博客网 时间:2024/06/07 00:27
网上找了很多OpenGL的书籍,教程的代码,都编译不过,主要原因是目前OpenGL对VS2015以上版本的支持性不是很好,所以目前最好还是用VS2013做开发比较好,
下面是OpenGL环境的配置及代码:
1.下载相关的OpenGL包
2.新建工程,在工程目录新建include和lib目录
3.将相关包里面的头文件拷贝到include目录下
4.将lib文件拷贝到lib文件夹下
5.将dll文件拷贝到Debug目录(我采用的是Debug模式,如果是Release模式就拷贝到Release文件夹下)
6.设置项目属性:包含目录,库目录,依赖库(就是lib目录下所有的lib文件名)
7.新建文件,贴上以下代码:
#include <stdio.h>#include <iostream>#include "gl/glew.h"#include <string>#include <SDL2\SDL.h>using namespace std;/*SDL ------------> 操作系统| OPenGL ----> GPU| 窗口1.首先SDL发送所有赋予数据到操作系统中2.由于绘制窗口的时候需要用到OpenGL的API,所以OpenGL会把所有的命令发送到GPU中3.由于GPU不能直接与窗口进行交互,所以需要用SDL_GLContext通过SDL_GLContext,操作系统就可以通过GPU进行窗口的绘制了*/class Display{public:Display(int width, int height, const string & title);// {~Display();void Update();//每一帧的绘制bool IsClosed();void Clear(float r, float g, float b, float a);//擦除图像并绘制private:SDL_Window* m_window;SDL_GLContext m_glContext;//可以通过GPU绘制窗口bool m_isClosed;};Display::Display(int width, int height, const string & title) {SDL_Init(SDL_INIT_EVERYTHING);SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);SDL_GL_SetAttribute(SDL_GL_BUFFER_SIZE, 32);SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);;m_window = SDL_CreateWindow(title.c_str(), SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_OPENGL);m_glContext = SDL_GL_CreateContext(m_window);auto status = glewInit();if (status != GLEW_OK){std::cerr << "init failed" << std::endl;}m_isClosed = false;}void Display::Update(){SDL_GL_SwapWindow(m_window);//交换缓冲区SDL_Event e;while (SDL_PollEvent(&e)){if (e.type == SDL_QUIT){m_isClosed = true;}}}Display::~Display() {SDL_GL_DeleteContext(m_glContext);SDL_DestroyWindow(m_window);SDL_Quit();}bool Display::IsClosed(){return m_isClosed;}void Display::Clear(float r, float g, float b, float a){glClearColor(r, g, b, a);glClear(GL_COLOR_BUFFER_BIT);}int main(int argc,char** argv) {Display display(800, 600,"NameWindow");while (!display.IsClosed()){display.Clear(0.4f, 1.0f, 1.0f, 1.0f);display.Update();}getchar();return 0;}
代码下载地址:http://download.csdn.net/download/a1317338022/10144275
注意运行代码需要在VS2013上运行,不能是VS2015等
阅读全文
0 0
- OpenGL 入门教程实例
- OpenGL入门教程
- opengl入门教程
- opengl 入门教程
- opengl入门教程(1)
- opengl入门教程(2)
- OpenGL入门教程(3)
- OpenGL入门教程(4)
- OpenGL入门教程资源汇总
- OpenGL 入门教程(六)
- OpenGL 入门教程(八)
- Opengl 入门教程的翻译
- OpenGL 入门教程1
- OpenGL 入门教程2
- OpenGL 入门教程3
- OpenGL 入门教程4
- OpenGL 入门教程5
- Opengl 入门教程的翻译
- Jquery鼠标点击后变色,点击另一个按钮颜色还原
- 选择排序法
- Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/tools/ant/launch/Launc
- org.junit.platform.commons.util.ReflectionUtils.getDefaultClassLoader()
- darwin之socket消息获取与处理
- OpenGL 入门教程实例
- Kerberos
- 欢迎使用CSDN-markdown编辑器
- Java freemaker中导出excel,格式错乱解决方案
- Java IO流学习
- vmware workstation 14 黑屏问题解决
- Android贝塞尔曲线-波纹(波浪)效果
- 常用SQL语法
- freemarker把从后台传来的uct时间格式化展现到前台