Entorno de aprendizaje OpenGL para construir Clion + glew + freeglut + mingw

Prólogo

glew + freeglut es una combinación de aprendizaje de OpenGL relativamente antigua. El libro de texto de nuestro maestro sigue siendo la ventana de glut. La
más nueva es la configuración de glfw + glad. ¡Esto es mucho más cómodo!
También configuré glad + glfw
glad + glfw para configurar la configuración de la dirección
. ¡
Todavía hay algunos vacíos en el uso de estos dos conjuntos en algunos lugares!

1. Descargar Library

Puede compilar su propio código fuente o puede descargar el sitio web oficial de la
biblioteca glew precompilada para
descargar la versión binaria del sitio web oficial de la
Inserte la descripción de la imagen aquí
biblioteca freeglut para descargar
Inserte la descripción de la imagen aquí

Descargamos todo compilado

¡No es necesario compilarlo usted mismo!
Los dos archivos descargados deben ser la siguiente imagen después de la descompresión
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

2. Configuración

La configuración de Cmakelist en Clion es la siguiente

cmake_minimum_required(VERSION 3.15)
project(Graph)

set(CMAKE_CXX_STANDARD 14)
# 路径自己替换

link_directories("F:/freeglut/lib/x64")
link_directories("F:/glew-2.1.0/lib/Release/x64")

#文件头
include_directories("F:/freeglut/include")
include_directories("F:/glew-2.1.0/include")



add_executable(Graph main.cpp)
# 这句话重要,一点要先衔接opengl32库才能用! opengl32.lib或者libopengl32.a都可以
target_link_libraries(Graph libopengl32.a  libfreeglut.a glew32.lib)

Inserte la descripción de la imagen aquí

3. Prueba de funcionamiento

Dibuja un triángulo aquí

#include<gl/glew.h>
#include<gl/freeglut.h>
#include<iostream>

using namespace std;

//改变窗口大小
void changeViewport(int w, int h)
{
    glViewport(0, 0, w, h);
}

//渲染一个三角形
void render()
{
    glClear(GL_COLOR_BUFFER_BIT);// 线形
    glBegin(GL_TRIANGLE_STRIP);
    {
        glVertex2f(-0.8,-0.8);
        glVertex2f(0.8,-0.8);
        glVertex2f(0,0.8);
    }
    glEnd();
    glutSwapBuffers();
}

int main(int argc,char** argv)
{
    //初始化
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
    glutInitWindowSize(800, 600);
    glutCreateWindow("HelloWord");
    glutReshapeFunc(changeViewport);
    glutDisplayFunc(render);
    // 测试glew
    GLenum error = glewInit();
    if (error!=GLEW_OK)
    {
        printf("GLEW CREATE ERROR");
        return -1;
    }
    glutMainLoop();
    return 0;
}

El producto terminado es el siguiente

Inserte la descripción de la imagen aquí

22 artículos originales publicados · Me gusta2 · Visitas 881

Supongo que te gusta

Origin blog.csdn.net/weixin_41685373/article/details/104575908
Recomendado
Clasificación