Ақпарат

E60032 2 мысық коды


E60032 2 мысық коды:0x5a : 0x00000000 | 0x00000001

Бұл жағдайда ол ештеңені өзгертпейді.

A:

Сіз glFramebufferTexture2D деп мүлдем шақырмайсыз, бұл сіз шақырған функция болса да, сіз көрсеткен қайтару мәні GL_FRAMEBUFFER болып табылады, ол glReadPixels және ұқсас функциялар қайтаратын бірдей қайтару мәні болып табылады.

Сіздің функцияңызда glFramebufferTexture2D қоңырауы жоқ:

GLuint FBO[1],

glGenFramebuffers(1, FBO),

//glGenFramebuffers(1, &,FBO),

glGenFramebuffers(1, &,FBO),

glBindFramebuffer(GL_DRAW_FRAMEBUFFER, FBO[0]),

glBindFramebuffer(GL_READ_FRAMEBUFFER, 0),

glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0),

//glBindFramebuffer(GL_READ_FRAMEBUFFER, FBO[0]),

glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex, 0),

//glFramebufferTexture2D(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex, 0),

Мұнда сіз glFramebufferTexture2D деп атайсыз:

glGenTextures(1, &,tex),

glBindTexture(GL_TEXTURE_2D, tex),

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, _ені, _биіктігі, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL),

glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, tex, 0),

A:

Бұл мәселе (рамка буферінің нысанының бүлінуі) OpenGL 4.3 және одан жоғары нұсқаларында келесі жолдармен түзетілді:

https://github.com/KhronosGroup/OpenGL-Registry/issues/1287

Менде OpenGL 3.2 және GeForce 5200-де ұқсас мәселе болды, оны мен жарияланған шешіммен шеше аламын.

A:

Мәселе фрейм буферінің нысаны басқа фрейм буферін байланыстыруға әрекеттенген кезде байланыстырылатын фрейм буферінің нысандарының тізімінен жойылған сияқты.

Байланыстыру индексін қалпына келтіру керек, содан кейін bind agn.

glBindFramebuffer() құжаттамасында айтылған

GL_READ_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER және GL_FRAMEBUFFER әрқашан фрейм буферін байланыстыру үшін мәтінмәнді көрсететін соңғы аргументпен бірге қолданылуы керек. Көрсетілген мәтінмән NULL болса, GL_DRAW_FRAMEBUFFER қабылданады және GL_DRAW_FRAMEBUFFER көрсетілмесе, GL_READ_FRAMEBUFFER қабылданады.

Сіз кадр буферінің нысанын жасайсыз, содан кейін оны келесімен байланыстырасыз:

// 0 фрейм буферін байланыстыру

glBindFramebuffer(GL_DRAW_FRAMEBUFFER, framebufferId),

содан кейін 2 фрейм буферін байланыстыруға тырысасыз:

// Фреймбуферді байланыстыру 2

glBindFramebuffer(GL_READ_FRAMEBUFFER, framebufferId),

Өзгерісті көрсету үшін framebufferId жаңартуыңыз керек, содан кейін оны agn байланыстырыңыз.

Фреймбуферді бірнеше рет байланыстырсаңыз, соңғы байланыстыру тиімді түрде "жабысқақ" болады және кем дегенде GL_INVALID_FRAMEBUFFER_OPERATION болатын байланыстыру орын алғанша пайдаланылады.

Фрейм буферінің индексі фрейм буферінің нысан массивінің ығысуы ғана.

Бірдей кадр буферін бірнеше рет байланыстырғыңыз келсе, индексті көбейтіңіз.


Бейнені қараңыз: КОД КОД КОД ИИИИИИИИИИИИИИИИИИИИИИИИИ КОД! (Қаңтар 2022).

Video, Sitemap-Video, Sitemap-Videos