Я прочитал 8-й редактор OpenGL Readbook. Но я не могу создать пример из главы 3 «Пример команд рисования». Авторы использовали в примере собственную библиотеку vmath.h
. Но это не работает. Они забыли добавить библиотечную функцию «vmath::translation(GLfloat, GLfloat, GLfloat);
», хотя использовали ее. А авторы использовали собственную библиотеку «vapp.h
», что меня смущает. Там много макросов, с помощью которых определяется класс. Я действительно смущен. Я использовал вместо своей библиотеки библиотеку «Eigen» для линейной алгебры.
Here is my code on GitHub
Я скомпилировал и запустил эту программу. Это работает. Но я вижу черное окно, но я должен увидеть четыре треугольника. Что я сделал не так? P.S. Я переделал программу авторов, используя для матриц и вершин «Собственную библиотеку». Я видел только черный экран. Зачем?! Here is code on GitHub У меня есть два шейдеры:
вершинных шейдеров:
Ошибка в примере OpenGL Redbook, глава 3
#version 400 core
uniform mat4 model_matrix;
uniform mat4 projection_matrix;
layout (location = 0) in vec4 position;
layout (location = 1) in vec4 color;
out vec4 vs_fs_color;
void main(void)
{
vs_fs_color = color;
gl_Position = projection_matrix * (model_matrix * position);
}
И пиксельный шейдер:
#version 400 core
in vec4 vs_fs_color;
layout (location = 0) out vec4 color;
void main(void)
{
color = vs_fs_color;
}
Я точно Используйте эти шейдеры. Here is what I should see.
This is original project(MSVC++)
This is a include files(including vapp.h
and vapp.h
)
Появляется ошибкой. Функция 'translate', а не' translation'. – keltar