zoukankan      html  css  js  c++  java
  • 3D Computer Grapihcs Using OpenGL

    这系列文章是我学习Youtube上一套OpenGL教程的笔记,自己对教程的案例重新制作并且做了一定程度的修改(更有条理,且修正了一些问题)。后续将持续更新。

    Visual Studio 2017工程

    教程使用的是visual studio 2012,我电脑上装的是visual studio 2017。

    1. 先创建一个Visual C++ Win32 Console Application,命名为GraphicsPad,放在C:Grphics目录下,不要勾选Create directory for solution 和 Add to source control,下一步。
    2. 取消勾选Precompiled header和Security Development Lifecycle(SDL) checks,下一步。
    3. 创建好工程以后在Solution Explorer中删除掉没用的Filter(像文件夹那样的东西): Header Files, Resource Files, Source Files
    4. 在C:Graphics目录下添加Middleware文件夹

    Qt

    这套教程比较特别,使用的是Qt作为窗口库,其他教程一般使用win32+GLFW。

    教程上使用的是Qt libraries 4.8.5  for Windows(VS2010)。我下载的5.6.3 - 32位。下载地址:http://download.qt.io/archive/qt/5.9/5.9.3/,选择的是 qt-opensource-windows-x86-5.9.3.exe。下载好以后安装在C:盘根目录。

    在官网的下载链接里下载的版本已经不区分MinGW和MSVC版本了,会在安装时选择版本,这种情况需要在安装好的目录里找一下msvc文件夹。

    1. 在C:GraphicsMiddleWare中创建Qt文件夹,在其中创建3个子文件夹:bin,include,lib.
    2. 从C:QtQt5.6.35.6.3msvc2015in 文件夹中拷贝四个文件到C:GraphicsMiddleWareQtin中,分别是:Qt5Cored.dll,Qt5Guid.dll,Qt5OpenGLd.dll,Qt5Widgetsd.dll(教程中使用的4.x版本不需要最后一个widgets,但实验发现5.x是需要这个dll的)
    3. 把C:QtQt5.6.35.6.3msvc2015include文件夹中的所有内容都拷贝到C:GraphicsMiddleWareQtinclude中。虽然不是全部都要需要用,但是逐个找出来太麻烦,就全部拷进来。
    4. 从C:QtQt5.6.35.6.3msvc2015lib中拷贝四个文件到 C:GraphicsMiddlewareQtlib,分别是: Qt5Cored.lib,Qt5Guid.lib,Qt5OpenGLd.lib,Qt5Widgetsd.lib

    GLEW

    C:GraphicsMiddleware下创建glew文件夹,其中创建include, lib文件夹。具体的编译方法在其他文章里已经介绍过多次了,这里略过

    GLM

    下载qlm库,地址:https://glm.g-truc.net/,这个库不需要编译,是个纯头文件库,下载后解压在C:GraphicsMiddlewareglm文件夹里就行了

    设置工程属性

    1. 在GraphicsPad工程上右键,属性。
    2. General > Intermediate Directory 设置 $(Configuration)Tmp
    3. C/C++ > General > Additional Include Directories 添加$(ProjectDir), $(ProjectDir)..MiddlewareQtinclude, $(ProjectDir)..Middlewareglewinclude, $(ProjectDir)..Middlewareglm
    4. Linker > General > Additional Library Directories 添加 $(ProjectDir)..MiddlewareQtlib, $(ProjectDir)..Middlewareglewlib
    5. Linker > Input > Additional Dependencies 添加 Qt5Cored.lib,Qt5Guid.lib,Qt5OpenGLd.lib,Qt5Widgetsd.lib,opengl32.lib, glew32.lib(更新:opengl32.lib一定要写上,不然容易导致各种问题。glew32.lib名称根据自己生成的glew的lib文件名字调整。另外,也可以根据需求包含Qt5Core.lib, Qt5Gui.lib, Qt5OpenGL.lib,Qt5Widgets.lib这几个Release版本的lib文件)
    6. 拷贝C:GraphicsMiddlewareQtin中的所有dll文件到C:GraphicsDebug 目录下
    7. 在工程中添加类MyGlWindow
      //MyGlWindow.h文件
      
      #pragma once
      #include <QtOpenGLqgl.h>
      class MyGlWindow:public QGLWidget
      {
      public:
      };
      //MyGlWindow.cpp文件
      
      #include "MyGlWindow.h"
    8. 添加Cpp文件Mainer,添加代码:

      #include <QtWidgetsqapplication.h>
      #include <MyGlWindow.h>
      
      int main(int argc, char* argv[])
      {
          QApplication app(argc, argv);
          MyGlWindow myWindow;
          myWindow.show();
      
          return app.exec();
      }
    9. 编译运行,可以打开一个黑色的空白窗口。
  • 相关阅读:
    ASCII&Base64
    CentOS自动同步时间
    Java的HashMap
    Java线程同步操作
    Nginx基本配置与应用
    vc中调用Com组件的方法详解
    VC++ try catch (转)
    oracle中exp,imp的使用详解
    jdbc oracle 连接字符串
    标准的开源实现
  • 原文地址:https://www.cnblogs.com/AnKen/p/8330733.html
Copyright © 2011-2022 走看看