Los obstáculos que debe superar el desarrollo de OpenGL ------ preparación del entorno de desarrollo (Windows10)

prefacio

La programación de gráficos ha sido durante mucho tiempo uno de los temas más desafiantes en informática. Con el auge de la tecnología de realidad virtual limitada, cada vez más empresas comienzan a involucrarse en el campo de la realidad virtual. En la actualidad, Unity3d es el más utilizado para el desarrollo, pero al igual que los navegadores, las aplicaciones 2D deben ser 3D (la interfaz de la aplicación 2D se proyecta en una escena 3D y el usuario puede operar la interfaz 2D a través del mango). Estos requisitos requieren 3D gráficos La programación es muy familiar para hacer estas escenas geniales. La programación de gráficos actual se basa en la biblioteca de gráficos, es decir, el programador llama a una biblioteca predefinida oa una serie de funciones en la biblioteca, y estas bibliotecas brindan soporte para las operaciones gráficas subyacentes.

Hay muchas bibliotecas de gráficos en el mercado ahora, pero la biblioteca de gráficos independiente de la plataforma común se llama OpenGL (Open Graphics Library). Esta serie de blogs también presenta cómo usar OpenGL en C++ para la programación de gráficos 3D. Antes de presentar el uso de OpenGL para la programación de gráficos 3D, primero hagamos un obstáculo que debe superarse antes de comenzar: la preparación de la configuración del entorno de desarrollo de OpenGL.

1. Preparación de la configuración del entorno

Como dice el refrán: "Todo es difícil al principio". Muchos estudiantes están muy interesados ​​en OpenGL, pero se desaniman por la etapa de configuración del entorno cuando lo hacen. El umbral de entrada para los estudiantes interesados. En primer lugar, presentemos el entorno y las bibliotecas necesarias para usar OpenGL en C++, de la siguiente manera:

IDE de desarrollo: Visual Studio 2022, otras versiones también están disponibles, la configuración es similar a la biblioteca de administración de ventanas
OpenGL/GLSL
(GLFW)
biblioteca de extensión (GLEW)
biblioteca matemática (GLM)
biblioteca de carga de imágenes de textura (SOIL2)

A continuación, nos prepararemos para configurar el entorno mencionado anteriormente. OpenGL/GLSL no necesita ser configurado por nosotros. El sistema lo tiene por defecto. GLSL es un lenguaje de sombreado introducido en OpenGL2.0. Esta introducción permite a los programadores lograr efectos cada vez más realistas al escribir lenguajes de sombreado.

2. Descarga bibliotecas relacionadas

2.1 Biblioteca de administración de ventanas de descarga (GLFW)

OpenGl en realidad no dibuja la imagen directamente en la pantalla de la computadora, sino que la convierte en un búfer de cuadros, y luego la computadora es responsable de dibujar el contenido del búfer de cuadros en una ventana en la pantalla. Para completar esta función, puede optar por utilizar la biblioteca GLFW. Esta biblioteca es compatible con Windows, MacOS, Linux y otros sistemas operativos. Podemos obtenerla del sitio web oficial: Dirección de descarga del sitio web oficial de GLFW
Si
es miembro de CSDN, debe puede ir a los recursos para descargar, no necesita Puntos, si no tiene una membresía, vaya directamente al sitio web oficial para descargar, no es necesario gastar dinero para abrir una membresía para descargar un recurso: GLFW
CSDN dirección de descarga

2.2 Descargar la biblioteca de extensiones de OpenGL

GLEW (OpenGL extension wrangler), es decir, OpenGL extension cowboy, OpenGL se organiza en torno a un conjunto de funciones básicas y mecanismos de extensión. Con el desarrollo de la tecnología, el mecanismo de extensión se puede usar para admitir nuevas funciones, por lo que GLEW se usa para hacer este trabajo de. La descarga de esta biblioteca también brinda a los lectores dos direcciones:
Dirección de descarga del sitio web oficial de GLEW

Dirección de descarga GLEW CSDN

2.3 Descargar biblioteca de matemáticas OpenGL

GLM es la biblioteca matemática de OpenGL Mathematics, es una biblioteca C++ con solo archivos de cabecera, compatible con Windows, MacOS y Linux, puede proporcionar clases y funciones matemáticas básicas relacionadas con conceptos gráficos, como vectores, matrices y cuaterniones, también contiene varias clases de herramientas para crear y usar estructuras gráficas 3D comunes, como matriz de perspectiva y matriz de vista
Dirección de descarga del sitio web oficial de GLM

Dirección de descarga GLM CSDN

2. 4 Descarga de la biblioteca de carga de imágenes de textura SOIL2

SOIL2 se usa para cargar texturas de imágenes OpenGL. Podemos escribir un cargador de imágenes de textura desde cero, pero teniendo en cuenta una variedad de formatos de archivo de imagen, generalmente es una opción más inteligente usar una biblioteca de carga de imágenes de texturas. Instalación de la biblioteca integrada de carga de texturas de imágenes SOIL2 requiere que descargue la biblioteca SOIL2 y una herramienta auxiliar premake
SOIL2 Descarga de GitHub
herramienta premake descarga del sitio web oficial

SOIL2 CSDN descargar
herramienta prefabricada CSDN descargar

3. Prepare archivos de biblioteca compartidos (lib) e incluya carpetas

Debido a que desarrollar OpenGL en Windows requiere configurar el entorno, nuestra mejor manera es configurar el entorno de desarrollo de OpenGL como una plantilla de proyecto, de modo que podamos desarrollar en base a nuestra plantilla preconfigurada cada vez que creamos un nuevo proyecto de OpenGL. Antes de crear una plantilla de proyecto, debemos encontrar un lugar para colocar la biblioteca correspondiente y luego crear una referencia a la biblioteca en Visual Studio. Primero, debemos elegir una ubicación para almacenar nuestro archivo de biblioteca. Aquí podemos elegir almacenar en cualquier lugar. La siguiente figura es la estructura de carpetas de la carpeta.

estructura de carpetas de la biblioteca
De acuerdo con el diagrama de estructura de archivos de la biblioteca anterior, vamos a practicar Aquí creé una carpeta en mi disco D para almacenar estas bibliotecas relacionadas de OpenGL.
inserte la descripción de la imagen aquíDespués de crear la estructura del archivo de la biblioteca, comenzamos a preparar la biblioteca correspondiente

3.1 Preparar la biblioteca de gestión de ventanas GLFW

Después de descargar el paquete comprimido de GLFW y descomprimirlo, obtendremos un directorio de la siguiente manera.
directorio descomprimido glfwDespués de descomprimir, podemos ver que hay diferentes versiones de lib de Visual Studio. Yo uso Visual Studio 2022, así que pongo todo el contenido en lib. -vc2022 Cópielo en D:\OpenGL\OpenGLTemplate\libla , y luego regrese a la carpeta glfw que descomprimimos, que es la carpeta en la imagen de arriba. Haga clic en incluir y encontrará un directorio GLFW debajo del directorio. Copie todo el directorio en el carpeta que creamos En el directorio de inclusión en la carpeta OpenGLTemplate, la ruta es: D:\OpenGL\OpenGLTemplate\include, hasta ahora, la preparación de GLFW está completa.

3.2 Preparar la biblioteca de extensiones OpenGL GLEW

Del mismo modo, descomprima el paquete comprimido GLEW obtenido anteriormente y obtendrá la estructura de archivos que se muestra en la figura a continuación:
La estructura de archivos de la tarjeta de expansión brillabaDespués de descomprimir la biblioteca gew, haga clic en lib->Release->x64 y cópielos todos en la carpeta OpenGLTemplate que creamos en el lib directory: path D:\OpenGL\OpenGLTemplate\lib, luego regrese al directorio glew que descomprimimos, busque el directorio include, haga clic en él y busque un directorio GL dentro, cópielo todo en el directorio include en OpenGLTemplate. Ruta: D:\OpenGL\OpenGLTemplate\includeen este punto, la integración de la biblioteca GLEW está completa.

3.3 Preparar la biblioteca matemática OpenGL GLM

La integración de esta biblioteca es relativamente simple. Después de obtener el paquete comprimido de esta biblioteca y descomprimirlo, obtendremos el directorio que se muestra en la siguiente figura. Copiamos directamente todo el directorio glm
La estructura de directorios de archivos de la biblioteca matemática OpenGL glmbajo el directorio descomprimido al directorio de inclusión bajo el Directorio OpenGLTemplate que creamos. La biblioteca glm está integrada

3.4 Preparar la biblioteca de carga de imágenes de textura SOIL2

La integración de SOIL2 es un poco más problemática. Necesitamos la ayuda de la herramienta premake. Primero obtenemos el zip de SOIL2 y lo descomprimimos, luego obtenemos el paquete zip de premake y lo descomprimimos. Después de la descompresión de premake, obtendremos un premake5.exe, cópielo en nuestra descompresión en el directorio SOIL2. Si el lector obtiene SOIL2 de la dirección de descarga de CSDN que proporcioné, lo compilé y puedo usarlo directamente. Si se descarga del sitio web oficial, necesitamos compilarlo.
Descarga el Catálogo SOIL2Obtenga el paquete comprimido de premake y descomprímalo para obtener el siguiente directorio.Copie
El directorio donde se descomprime el paquete comprimido premakepremake5.exe en el directorio SOIL2 después de que lo descomprimamos, es decir,
D:\OpenGL\installPKG\SOIL2-1.3.0debajo y luego.
Directorio SOIL2 después de agregar premake5.exeLuego ejecute la línea de comando CMD bajo SOIL2-1.3.0: Ingrese el comando: premake5 vs2022
inserte la descripción de la imagen aquí注意,vs2022是我的visual studio的版本,具体的版本根据安装的版本来定
Después de ejecutar el comando anterior, se generará un directorio make bajo SOIL2-1.3.0
El directorio SOIL2 después de ejecutar el comando premakeLuego ingresamos al directorio make->windwos:
inserte la descripción de la imagen aquíuse Visal Studio para abrir la imagen de arriba Archivos marcados con cuadros rojos.
inserte la descripción de la imagen aquíDespués de abrir el archivo anterior, como se muestra en la figura, hacemos clic con el botón derecho del mouse y seleccionamos Generar en el menú emergente. Una vez completada la generación, cierre Vsual Studio. En este momento, habrá una librería adicional en el Directorio SOIL2-1.3.0, como se muestra
a continuación. A continuación, copiaremos todas las bibliotecas de lib en el directorio lib del directorio OpenGLTemplate que creamos anteriormente. Luego regrese al directorio SOIL2 y copie todos los directorios src->SOIL2 al directorio include bajo el directorio OpenGLTemplate. De esta manera, nuestra biblioteca de carga de texturas de imágenes SOIL2 está integrada.

到这里,我们对比下我们之前给到的OpenGLTemplate的文件目录图发现,还差一个glew32.dll文件需要放到OpenGLTemplate目录下,没有 这个库我们是无法运行OpenGL的代码的,这个库位于我们解压后的Glew目录下,我们找到解压的Glew目录,然后在其bin->Release->x64下找到这个库
inserte la descripción de la imagen aquíCópielo en el directorio OpenGLTemplate y nuestra biblioteca estará lista. A continuación hacemos una plantilla de inicio de proyecto OpenGL

4. Use Visual Studio para hacer una plantilla de proyecto OpenGL

4.1 Configuración de plantillas

Abra nuestro Visual Studio, luego cree un nuevo proyecto vacío de C ++ y
inserte la descripción de la imagen aquíábralo después de configurar el nombre. Por ejemplo, aquí lo llamamos OpenGLTemplate, y luego lo abrimos.
inserte la descripción de la imagen aquíPrimero configuramos la referencia de la biblioteca en modo Depuración.
Encontramos el proyecto-> properties para abrir la interfaz de configuración de propiedades, y luego configure la ruta de inclusión en nuestro directorio OpenGLTemplate anterior al "directorio de inclusión" marcado en la figura a continuación.
inserte la descripción de la imagen aquíinserte la descripción de la imagen aquíLuego, todavía encontramos "Linker -> General" en el panel de configuración de propiedades de Visual Studio y configuramos el directorio lib en el directorio OpenGLTemplate que preparamos antes aquí

inserte la descripción de la imagen aquíLuego, también agregamos glfw3.lib, glew32.lib, soil2-debug.lib, opengl32.lib en la biblioteca en el directorio OpenGLTemplate en "Linker -> Entrada -> Agregar dependencias" (ya debería ser parte de WindowsSDK Sí, no no importa si no lo configura, pero es mejor configurarlo
inserte la descripción de la imagen aquípara el seguro) Guárdelo después de la configuración y luego cambie al modo de lanzamiento, repita la operación y configúrelo nuevamente, por lo que no entraré en detalles aquí.
inserte la descripción de la imagen aquí

4.2 Exportación de plantillas

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquíDespués de hacer clic en Finalizar, cuando volvamos a crear un nuevo proyecto, encontraremos una plantilla de proyecto adicional, como se muestra a continuación:
inserte la descripción de la imagen aquíPodemos crear un proyecto OpenGL haciendo clic en la plantilla que definimos.

5. Prueba el entorno OpenGL

Primero, haga clic derecho en el directorio del archivo fuente del proyecto para crear un nuevo archivo cpp: FirstOpenGLDemo.cpp
inserte la descripción de la imagen aquíCódigo de entrada:

#include<GL/glew.h>
#include<GLFW/glfw3.h>
#include<iostream>

using namespace std;

void init(GLFWwindow* window) {
    
    

}

void display(GLFWwindow* window, double currentTime) {
    
    
	glClearColor(1.0, 0.0, 0.0, 1.0);
	glClear(GL_COLOR_BUFFER_BIT);
}

int main(void) {
    
    
	if (!glfwInit()) {
    
    
		exit(EXIT_FAILURE);
	}
		glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
		glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
		GLFWwindow* window = glfwCreateWindow(600, 600, "OpenGl-Demo", NULL, NULL);
		glfwMakeContextCurrent(window);
		if (glewInit() != GLEW_OK) {
    
     exit(EXIT_FAILURE); }
		glfwSwapInterval(1);
		init(window);

		while (!glfwWindowShouldClose(window)) {
    
    
			display(window, glfwGetTime());
			glfwSwapBuffers(window);
			glfwPollEvents();
		}

		glfwDestroyWindow(window);
		glfwTerminate();
		exit(EXIT_SUCCESS);
}

En este momento, encontramos que las bibliotecas relevantes se pueden referenciar con éxito, pero no se pueden ejecutar, y se informará el siguiente error: En este momento
inserte la descripción de la imagen aquí, necesitamos colocar la biblioteca de enlaces dinámicos glew32.dll que colocamos en OpenGLTemplate directorio, en el directorio de nuestro proyecto bajo el directorio con el mismo nombre.

inserte la descripción de la imagen aquíEn este momento, ejecutamos el código nuevamente y encontraremos que la operación es exitosa.
inserte la descripción de la imagen aquíNuestro código anterior simplemente muestra un fondo rojo Hasta ahora, la configuración del entorno de desarrollo OpenGL se ha completado.

Resumir

Este artículo presenta principalmente el entorno de desarrollo OpenGL basado en Visual Studio 2022 en Windows 10, presenta principalmente la configuración e integración de la biblioteca de administración de ventanas GLFW, la biblioteca de extensión OpenGL GLEW, la biblioteca matemática OpenGL GLM y la biblioteca de carga de texturas de imágenes SOIL2, y finalmente personaliza una plantilla de proyecto de Visual Studio y finalmente prueba nuestro entorno configurado con una demostración de prueba Es una pena que glew32.dll deba copiarse manualmente en el directorio especificado del proyecto, de lo contrario, el programa OpenGL no se puede ejecutar. Si los lectores tienen una manera mejor y más conveniente aquí, bienvenidos a comunicarse en el área de comentarios.

Supongo que te gusta

Origin blog.csdn.net/zxj2589/article/details/130467844
Recomendado
Clasificación