Framebuffer: Начало

Framebuffer: Начало

Я забиндил
framebuffer.bindFramebuffer(false);
GL11.glBindTexture(GL_TEXTURE_2D, 0);
GL11.glColor4f(0f, 1f,0f,1f);
drawQuad();
mc.getFramebuffer().bindFramebuffer(false);
 

CumingSoon

Местный стендапер
1,634
12
269
Тебе не фбо биндить надо, а его текстуру, в которую он рисует
 
7,099
324
1,510
Чтобы переключиться назад на фреймбуфер майна че нужно сделать кроме mc.getFramebuffer().bindFramebuffer(false)?
Если сделать только это, то все съезжает в верхний правый угол.
1.12.2, TileEntityItemStackRenderer
1606183607498.png
 
7,099
324
1,510
А можно выложить финальный код проекта из урока?
 
К сожалению он скорее всего уже канул в лету. По идее то что под последним спойлером и спойлером с шейдером это и есть весь код. Там только шейдер в правильную папочку закинуть и эвент хандлер зарегать
 
4,045
63
645
Ловлю странный баг на 1.16.5.
Делаю всё как в туторе (чуть сложнее, с собственными наворотами, но структура та же), в итоге моя картинка появляется в игре не сразу а спустя 0-30 сек. после начала игры...
Что может быть причиной?
В 1.16.5 рендер вынесен в отдельный поток. Может ли это быть причиной?
Хотя проверки я уже сделал везде, где мог.
 
1,195
31
183
Тоже решил попробовать ся в ФБО. Словил неприятный баг - после рендера моего ФБО и бинда майновского ФБО, слетал напрочь рендер после.
Все из-за кода:

Java:
GL11.glPushMatrix(); //сохраняем матрицу
    //далее нам надо очистить все трансформации
    //чтобы наш квадрат был ровно под размер экрана
    GL11.glMatrixMode(GL_PROJECTION); //матрица проекций
    GL11.glLoadIdentity(); //очистить!
    GL11.glMatrixMode(GL_MODELVIEW); //матрица трансформаций
    GL11.glLoadIdentity(); //очистить!
    drawQuad(); //нарисовать квадрат
GL11.glPopMatrix();

Делать нужно вот так:

Java:
GL11.glMatrixMode(GL_MODELVIEW);
GL11.glPushMatrix();
GL11.glLoadIdentity();
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glPushMatrix();
GL11.glLoadIdentity();
GL11.glBindTexture(GL_TEXTURE_2D, customFramebuffer.framebufferTexture);
drawQuad(); //рисуем наш квад на экран
GL11.glPopMatrix();
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glPopMatrix();

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