Сцена OpenGL не отображается? ⇐ C++
-
Гость
Сцена OpenGL не отображается?
Мне нужно создать лампу с шестом и подставкой в OpenGL. Мне нужно использовать как минимум две примитивные формы и разные цвета для каждой вершины объекта.
По какой-то причине ничего не отображается. Что в этом плохого?
Вот мой исходный код:
#include #include #include #include #include #include #include const char* vertexShaderSource = R"( #версия 330 ядра макет (расположение = 0) в vec3 aPos; единая модель mat4; из vec4 vertexColor; пустая функция() { gl_Position = модель * vec4(aPos, 1.0); vertexColor = vec4(1.0, 1.0, 0.0, 1.0); // Желтый цвет лампы } )"; const char* фрагментShaderSource = R"( #версия 330 ядра в vec4 vertexColor; из vec4 FragColor; пустая функция() { FragColor = цвет вершины; } )"; const intSphereSegments = 32; // Количество горизонтальных сегментов const intSphereRings = 16; // Количество вертикальных колец const floatSphereRadius = 0.2f; const float полюсHeight = 1.5f; const float полюсРадиус = 0,025f; const int полюсSegments = 20; const float baseHeight = 0.1f; const float baseRadius = 0,3f; const int baseSegments = 30; const floatshadeRadius = 0,4f; const float shapeHeight = 0.2f; const float pi = glm::pi(); void createSphere(std::vector& vertices, std::vector& indexes, float radius, glm::vec4 color) { const float pi = glm::pi(); const float twoPi = 2.0f * pi; const float phiStep = pi / static_cast(sphereRings); const float thetaStep = twoPi / static_cast(sphereSegments); for (int Ring = 0; Ring
Мне нужно создать лампу с шестом и подставкой в OpenGL. Мне нужно использовать как минимум две примитивные формы и разные цвета для каждой вершины объекта.
По какой-то причине ничего не отображается. Что в этом плохого?
Вот мой исходный код:
#include #include #include #include #include #include #include const char* vertexShaderSource = R"( #версия 330 ядра макет (расположение = 0) в vec3 aPos; единая модель mat4; из vec4 vertexColor; пустая функция() { gl_Position = модель * vec4(aPos, 1.0); vertexColor = vec4(1.0, 1.0, 0.0, 1.0); // Желтый цвет лампы } )"; const char* фрагментShaderSource = R"( #версия 330 ядра в vec4 vertexColor; из vec4 FragColor; пустая функция() { FragColor = цвет вершины; } )"; const intSphereSegments = 32; // Количество горизонтальных сегментов const intSphereRings = 16; // Количество вертикальных колец const floatSphereRadius = 0.2f; const float полюсHeight = 1.5f; const float полюсРадиус = 0,025f; const int полюсSegments = 20; const float baseHeight = 0.1f; const float baseRadius = 0,3f; const int baseSegments = 30; const floatshadeRadius = 0,4f; const float shapeHeight = 0.2f; const float pi = glm::pi(); void createSphere(std::vector& vertices, std::vector& indexes, float radius, glm::vec4 color) { const float pi = glm::pi(); const float twoPi = 2.0f * pi; const float phiStep = pi / static_cast(sphereRings); const float thetaStep = twoPi / static_cast(sphereSegments); for (int Ring = 0; Ring
Мобильная версия