Skip to content

PES_2_4

Francisco Zavala edited this page Sep 7, 2024 · 2 revisions

Función para leer el código fuente de un shader desde un archivo:

std::string readShaderSource(const char *filePath); Esta función lee el contenido del archivo especificado por filePath y devuelve el código fuente del shader como una cadena de caracteres.

  • Parámetros:

  • filePath: Una cadena de caracteres que representa la ruta del archivo que contiene el código fuente del shader.

  • Retorno:

Devuelve una std::string que contiene el código fuente del shader.

  • Descripción detallada:

  • Primero, se inicializa una cadena content vacía para almacenar el contenido del archivo.

  • Se intenta abrir el archivo utilizando std::ifstream en modo de entrada (std::ios::in).

  • Si no se puede abrir el archivo, se imprime un mensaje de error y se devuelve una cadena vacía.

  • Se lee el archivo línea por línea utilizando getline y se va acumulando el contenido en la cadena content, añadiendo un salto de línea al final de cada línea.

  • Finalmente, se cierra el archivo y se devuelve el contenido leído.

Función para crear un programa de shader:

GLuint createShaderProgram(); Esta función crea un programa de shader, compilando y vinculando un shader de vértices y un shader de fragmentos, y devuelve el identificador del programa.

  • Retorno:

Devuelve un GLuint que es el identificador del programa de shader creado.

  • Descripción detallada:

-Se leen los códigos fuente de los shaders de vértices y fragmentos desde los archivos ./vertex_shader4.glsl y ./fragment_shader4.glsl utilizando la función readShaderSource.

  • Se obtienen las cadenas de caracteres (const char*) a partir de los contenidos leídos.

  • Se crean los shaders de vértices y fragmentos utilizando glCreateShader.

  • Se establece el código fuente de los shaders utilizando glShaderSource.

  • Se compilan los shaders utilizando glCompileShader.

  • Se verifica si hubo errores de compilación y, de ser así, se imprimen los logs de errores utilizando checkOpenGLError y printShaderLog.

  • Se crea un programa de shader utilizando glCreateProgram.

  • Se adjuntan los shaders al programa utilizando glAttachShader.

  • Se vincula el programa utilizando glLinkProgram.

  • Se verifica si hubo errores de vinculación y, de ser así, se imprimen los logs de errores utilizando checkOpenGLError y printProgramLog.

  • Finalmente, se devuelve el identificador del programa de shader.

program_2_6

Clone this wiki locally