Войти
ПрограммированиеФорумГрафика

OpenGL 4.x (70 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 169 70 71 7283 Следующая »
#1035
17:44, 16 июня 2016

Andrey
> Play Station Shading Language
Sony таки сделали свой шейдерный язык, интересно.


#1036
21:55, 28 июня 2016

https://developer.nvidia.com/new-pascal-opengl-extensions-have-ar… VdkpOaWhrPSJ9

Завезли расширений для pascal архитектуры.

#1037
22:26, 28 июня 2016

HolyDel
> the "yzw" coordinates for secondary position are also obtained from the "gl_Position" and writes to "gl_SecondaryPositionNV.yzw" are ignored.
А если мне надо моделировать косоглазие?)

#1038
21:43, 23 окт. 2016

Либо я косячу, или драйвер надо мной издевается. Есть функция, сверху старый вариант, снизу новый.
При использовании DSA варианта, все корректно, при использовании старого - ни разу.

  
void GLFBO::BlitDepth(int SCR_WIDTH, int SCR_HEIGHT)
  {
#if 0
    glBindFramebuffer(GL_READ_FRAMEBUFFER, fboid);

    glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); // Write to default framebuffer

    glBlitFramebuffer(
      0, 0, SCR_WIDTH, SCR_HEIGHT, 0, 0, SCR_WIDTH, SCR_HEIGHT, GL_DEPTH_BUFFER_BIT, GL_NEAREST
      );
#else
    //opengl 4.5 equal
    // older version is bugged
    glBlitNamedFramebuffer(fboid, 0, 0, 0, SCR_WIDTH, SCR_HEIGHT, 0, 0, SCR_WIDTH, SCR_HEIGHT, GL_DEPTH_BUFFER_BIT, GL_NEAREST);
#endif
  }

Ну и результаты:
Корректный

Некорректный

Может я чего-то не понимаю? Или все таки косяк драйвера?

NV

#1039
21:48, 23 окт. 2016

NickGastovski
> Либо я косячу, или драйвер надо мной издевается. Есть функция, сверху старый
> вариант, снизу новый.
Держи, думаю так заработает:

void GLFBO::BlitDepth(int SCR_WIDTH, int SCR_HEIGHT)
  {
#if 0
    glBindFramebuffer(GL_READ_FRAMEBUFFER, fboid);

    glReadBuffer(GL_COLOR_ATTACHMENT0); // либо glReadBuffer(GL_COLOR_ATTACHMENT0 + index);

    glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); // Write to default framebuffer

    glBlitFramebuffer(
      0, 0, SCR_WIDTH, SCR_HEIGHT, 0, 0, SCR_WIDTH, SCR_HEIGHT, GL_DEPTH_BUFFER_BIT, GL_NEAREST
      );
#else
    //opengl 4.5 equal
    // older version is bugged
    glBlitNamedFramebuffer(fboid, 0, 0, 0, SCR_WIDTH, SCR_HEIGHT, 0, 0, SCR_WIDTH, SCR_HEIGHT, GL_DEPTH_BUFFER_BIT, GL_NEAREST);
#endif
  }
#1040
21:54, 23 окт. 2016

MrShoor, спасибо, но кажется я пробовал уже эту функцию(glReadBuffer)
Сейчас проверю

#1041
21:57, 23 окт. 2016

NickGastovski
Хотя вот сейчас смотрю, скорее всего это не glReadBuffer виноват. Где-то в другом месте у тебя ошибка.

#1042
21:59, 23 окт. 2016

MrShoor, я посмотрел, с твоим вариантом, у меня результат такой же.
с 0 индексом, получаю текстуру позиций(скрин сверху), если увеличивать индекс, черный экран и The required buffer is missing.
Т.Е не в этом дело.

#1043
22:06, 23 окт. 2016

NickGastovski
У тебя явно в другом месте ошибка.
А вообще чтобы 1 в 1 было надо делать так:

void GLFBO::BlitDepth(int SCR_WIDTH, int SCR_HEIGHT)
  {
#if 0
    GLuint oldDrawFramebuffer;
    GLuint oldReadFramebuffer;
    glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &oldDrawFramebuffer);
    glGetIntegerv(GL_READ_FRAMEBUFFER_BINDING, &oldReadFramebuffer);
    glBindFramebuffer(GL_READ_FRAMEBUFFER, fboid);

    glReadBuffer(GL_COLOR_ATTACHMENT0); // либо glReadBuffer(GL_COLOR_ATTACHMENT0 + index);

    glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); // Write to default framebuffer

    glBlitFramebuffer(
      0, 0, SCR_WIDTH, SCR_HEIGHT, 0, 0, SCR_WIDTH, SCR_HEIGHT, GL_DEPTH_BUFFER_BIT, GL_NEAREST
      );
    glBindFramebuffer(GL_DRAW_FRAMEBUFFER, oldDrawFramebuffer);
    glBindFramebuffer(GL_READ_FRAMEBUFFER, oldReadFramebuffer);
#else
    //opengl 4.5 equal
    // older version is bugged
    glBlitNamedFramebuffer(fboid, 0, 0, 0, SCR_WIDTH, SCR_HEIGHT, 0, 0, SCR_WIDTH, SCR_HEIGHT, GL_DEPTH_BUFFER_BIT, GL_NEAREST);
#endif
  }
#1044
(Правка: 22:23) 22:12, 23 окт. 2016

MrShoor, нет, ошибка здесь оказалась. Ты оказался прав, спасибо.
И судя по всему ошибка заключалась именно в восстановлении старого FBO(без необходимости glReadBuffer).

Edit(после поста ниже): Да-да, заработало, вполне возможно.
MrShoor, спасибо, косяк оказался у меня.

#1045
22:13, 23 окт. 2016

Если кстати с кодом, который я дал выше - заработает, то значит ты при рендере не устанавливаешь корректно фреймбуфер.

#1046
(Правка: 11:15) 11:10, 24 окт. 2016

Andrey
> > MDI уже попробовал ?
> еще не добрался.

Когда же ? Вся твоя крутизна сводится к загрузке констант за 1 вызов ? Когда же сурьёзными вещами будешь заниматься ? Хотя бы тесселяцией :)

#1047
0:15, 14 дек. 2016

https://www.opengl.org/registry/specs/KHR/no_error.txt
Кто-нибудь пробовал расширение? Дает прирост производительности?

#1048
13:47, 21 фев. 2017
#pragma optionNV(inline all)
#pragma optionNV(unroll all)
Попробовал эти оптимизации включить, разницы особо не заметил, а на сложных шейдерах время компиляции сильно выросло, один раз вызвало внутреннюю ошибку компилятора, сейчас намертво повисло.
Их уже не тестируют что ли?
#1049
14:18, 7 июня 2017

https://khronos.org/registry/OpenGL/extensions/EXT/EXT_external_objects.txt

вулкан подкрался незаметно :)

Страницы: 169 70 71 7283 Следующая »
ПрограммированиеФорумГрафика