В настоящее время я борюсь с фреймбуфером в своей 2D-игре C++/OpenGL и не вижу своих проблем. Он не сохраняет некоторые из моих текстур и не может быть правильно обновлен, и я не могу найти причину.
Чтобы облегчить выбор текстур, я изображаю все свои текстуры в виде текстуру кадрового буфера и сохраняем там идентификатор и значения цвета каждой текстуры. Поэтому я создал этот класс фреймбуфера:
Я использую эти функции в цикле рендеринга, чтобы иметь возможность перемещать текстуры, добавлять и удалять их, сохраняя при этом фактические значения.
Если я пытаюсь создать другую текстуру, например, фоновая текстура, вне функции OnlyGameUpdate(), фреймбуфер не сохранит ее, и ее нельзя увидеть в текстуре фреймбуфера, но мне действительно нужно, чтобы она могла хранить фоновую текстуру. Если я загружаю изображение вне функции, а затем добавляю его в SceneTextures в классе сцены, оно работает нормально.
как только я изменю сцену или область просмотра и мне нужно будет очистить текстуры фреймбуфера с помощью:
В настоящее время я борюсь с фреймбуфером в своей 2D-игре C++/OpenGL и не вижу своих проблем. Он не сохраняет некоторые из моих текстур и не может быть правильно обновлен, и я не могу найти причину. Чтобы облегчить выбор текстур, я изображаю все свои текстуры в виде текстуру кадрового буфера и сохраняем там идентификатор и значения цвета каждой текстуры. Поэтому я создал этот класс фреймбуфера: [code]void Framebuffer::Awake() { glm::vec2 windowSize = GlobalHelper::GetCurrentWindowSize(); glm::vec4 viewportSize = GlobalHelper::GetViewportSize(); glGenFramebuffers(1, &FBO); glBindFramebuffer(GL_FRAMEBUFFER, FBO);
void Framebuffer::Unbind() { glBindFramebuffer(GL_FRAMEBUFFER, 0); } [/code] Я использую эти функции в цикле рендеринга, чтобы иметь возможность перемещать текстуры, добавлять и удалять их, сохраняя при этом фактические значения. [code]colorBuffer = Framebuffer(); colorBuffer.Awake(); while(!glfwWindowShouldClose(window)) {
GetTexturePerMouseClick(&startMenuScene); colorBuffer.Unbind(); [/code] [code]void Scene::OnlyGameUpdate() { for (const auto& x : sceneTextures) { BatchRenderer::DrawQuad({x.position.x, x.position.y, 0.0f}, 0.0f + x.rotation, {x.scale * (float)x.imageWidth, x.scale * (float)x.imageHeight}, x.ID, x.color, 0.0f, x.ID); } } [/code] У меня сейчас с этим несколько проблем. [list] [*]Если я пытаюсь создать другую текстуру, например, фоновая текстура, вне функции OnlyGameUpdate(), фреймбуфер не сохранит ее, и ее нельзя увидеть в текстуре фреймбуфера, но мне действительно нужно, чтобы она могла хранить фоновую текстуру. Если я загружаю изображение вне функции, а затем добавляю его в SceneTextures в классе сцены, оно работает нормально.
[*] как только я изменю сцену или область просмотра и мне нужно будет очистить текстуры фреймбуфера с помощью: [code]glClearTexImage(IDAttachment, 0, GL_RED_INTEGER, GL_INT, &defaultValue); glClearTexImage(colorAttachment, 0, GL_RGBA, GL_FLOAT, &defaultColor); [/code] ...значения по умолчанию остаются неизменными навсегда и не могут быть заполнены заново.
[/list] Я понятия не имею, что происходит, кто-нибудь видит здесь логическую ошибку или что-то явно не так?
Я пытаюсь анимировать видео, визуализированное с использованием представления текстуры, анимация работает нормально, но когда я масштабирую текстуру до другого размера, медиаплеер не масштабируется в соответствии с размером текстуры, видео всегда...
Когда я пытаюсь создать фреймбуфер для кубической карты, я получаю следующую ошибку: Фреймбуфер не завершен:
Чтобы опубликовать этот пост, меня просят быть более конкретным. Но я не знаю, что еще сказать. Вопрос ясен. Я просто заполняю эти строки,...
Средой является Java 11 на Raspberry Pi 3B+ с сенсорным экраном 3,5 дюйма. Программа осуществляет запись непосредственно в кадровый буфер с помощью поддержки JavaFrameBuffer JNI Томаса Уэлша.
Все работает так, как ожидалось, за исключением того,...
В настоящее время я работаю над программой на C++, используя OpenXR и OpenGL. Мне удалось визуализировать в VR все, что я хотел.
У меня есть один фреймбуфер на каждый глаз, а затем еще 3 для слоев (перекрестие/меню), которые отображаются при разных...