Я выполняю задание по солнечной системе. Я продолжаю сталкиваться с одной и той же проблемой: что бы я ни делал, я не могу отобразить необходимые сферы. Например, я должен визуализировать сферу земли и солнца, но сфера вообще не отображается.
Мой код выглядит следующим образом:
fshader:
#version 150
uniform vec4 color;
out vec4 fColor;
void main() {
fColor = color;
}
vshader:
#version 150
in vec4 vPosition;
uniform mat4 trans;
void main()
{
gl_Position = trans * vPosition;
}
Основной код:
#include
#include
#include "Angel.h"
#include
#include "Sphere.h"
#include
#include
void framebuffer_size_callback(GLFWwindow* window, int width, int height);
void processInput(GLFWwindow* window);
GLuint vPosition;
GLuint fColor;
GLuint transformationAttrib;
GLuint projectionAttrib;
// settings
const unsigned int SCR_WIDTH = 1366;//800;1366
const unsigned int SCR_HEIGHT = 768;// 600; 768
Sphere sphere1(0.5f);
Sphere sphere2(0.5f);
GLuint vbo1;
GLuint ibo1;
GLuint vbo2;
GLuint ibo2;
#define BUFFER_OFFSET(offset) ((void*)(offset))
int Index = 0;
void init(void) {
glGenBuffers(1, &vbo1);
glBindBuffer(GL_ARRAY_BUFFER, vbo1);
glBufferData(GL_ARRAY_BUFFER, sphere1.getInterleavedVertexSize(), sphere1.getInterleavedVertices(), GL_STATIC_DRAW);
glGenBuffers(1, &ibo1);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo1);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sphere1.getIndexSize(), sphere1.getIndices(), GL_STATIC_DRAW);
glGenBuffers(1, &vbo2);
glBindBuffer(GL_ARRAY_BUFFER, vbo2);
glBufferData(GL_ARRAY_BUFFER, sphere2.getInterleavedVertexSize(), sphere2.getInterleavedVertices(), GL_STATIC_DRAW);
glGenBuffers(1, &ibo2);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo2);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sphere2.getIndexSize(), sphere2.getIndices(), GL_STATIC_DRAW);
GLuint program = InitShader("vshader.glsl", "fshader.glsl");
glUseProgram(program);
vPosition = glGetAttribLocation(program, "vPosition");
transformationAttrib = glGetUniformLocation(program, "trans");
projectionAttrib = glGetUniformLocation(program, "Projection");
fColor = glGetUniformLocation(program, "color");
glEnable(GL_DEPTH_TEST);
glClearColor(1.0, 0.0, 0.0, 1.0);
}
int main()
{
std::cout
Подробнее здесь: https://stackoverflow.com/questions/798 ... -to-render
Создаю солнечную систему в OpenGL, но не могу отобразить сферу ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1762459051
Anonymous
Я выполняю задание по солнечной системе. Я продолжаю сталкиваться с одной и той же проблемой: что бы я ни делал, я не могу отобразить необходимые сферы. Например, я должен визуализировать сферу земли и солнца, но сфера вообще не отображается.
Мой код выглядит следующим образом:
fshader:
#version 150
uniform vec4 color;
out vec4 fColor;
void main() {
fColor = color;
}
vshader:
#version 150
in vec4 vPosition;
uniform mat4 trans;
void main()
{
gl_Position = trans * vPosition;
}
Основной код:
#include
#include
#include "Angel.h"
#include
#include "Sphere.h"
#include
#include
void framebuffer_size_callback(GLFWwindow* window, int width, int height);
void processInput(GLFWwindow* window);
GLuint vPosition;
GLuint fColor;
GLuint transformationAttrib;
GLuint projectionAttrib;
// settings
const unsigned int SCR_WIDTH = 1366;//800;1366
const unsigned int SCR_HEIGHT = 768;// 600; 768
Sphere sphere1(0.5f);
Sphere sphere2(0.5f);
GLuint vbo1;
GLuint ibo1;
GLuint vbo2;
GLuint ibo2;
#define BUFFER_OFFSET(offset) ((void*)(offset))
int Index = 0;
void init(void) {
glGenBuffers(1, &vbo1);
glBindBuffer(GL_ARRAY_BUFFER, vbo1);
glBufferData(GL_ARRAY_BUFFER, sphere1.getInterleavedVertexSize(), sphere1.getInterleavedVertices(), GL_STATIC_DRAW);
glGenBuffers(1, &ibo1);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo1);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sphere1.getIndexSize(), sphere1.getIndices(), GL_STATIC_DRAW);
glGenBuffers(1, &vbo2);
glBindBuffer(GL_ARRAY_BUFFER, vbo2);
glBufferData(GL_ARRAY_BUFFER, sphere2.getInterleavedVertexSize(), sphere2.getInterleavedVertices(), GL_STATIC_DRAW);
glGenBuffers(1, &ibo2);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo2);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sphere2.getIndexSize(), sphere2.getIndices(), GL_STATIC_DRAW);
GLuint program = InitShader("vshader.glsl", "fshader.glsl");
glUseProgram(program);
vPosition = glGetAttribLocation(program, "vPosition");
transformationAttrib = glGetUniformLocation(program, "trans");
projectionAttrib = glGetUniformLocation(program, "Projection");
fColor = glGetUniformLocation(program, "color");
glEnable(GL_DEPTH_TEST);
glClearColor(1.0, 0.0, 0.0, 1.0);
}
int main()
{
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79811719/creating-a-solar-system-in-opengl-but-cant-seem-to-get-my-sphere-to-render[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия