Глубина рендеринга артефактов - PullRequest
0 голосов
/ 07 декабря 2010

Я рендерил сцену только на глубину в другой кадровый буфер, проблему немного сложно объяснить, но, как вы можете видеть на карте глубины, на самом деле она страдает от сетки, как артефакты.У вас есть идеи, что может быть источником этого?

вот код для создания fb:

    self.shadowTexture = glGenTextures(1);        
    glBindTexture( GL_TEXTURE_2D, self.shadowTexture);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

    glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP );
    glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP );

    glTexImage2D( GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, w, h, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE, None);

    glBindTexture( GL_TEXTURE_2D, 0);
    self.fbo = glGenFramebuffers(1)
    glBindFramebuffer(GL_FRAMEBUFFER_EXT, self.fbo)
    glDrawBuffer(GL_NONE);
    glReadBuffer(GL_NONE);
    glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT,GL_TEXTURE_2D, self.shadowTexture, 0);

alt text

1 Ответ

4 голосов
/ 07 декабря 2010

Скорее всего, ваша проблема связана с тем, что матрица проецирования имеет слишком большое разделение между ближней и дальней плоскостями (это означает, что близкие пиксели испытывают проблемы с точностью с плавающей запятой).Сократите разрыв между двумя плоскостями, и это должно решить ваши проблемы с Z-боем.

...