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

Не работают Стенсил буфер и сглаживание одновременно

#0
18:56, 4 июня 2010

Если я включаю сглаживание с помощью расширения ARB_multisample, как рассказано в NeHe,
то перестает работать буффер трафарета.
Связано это с тем что в функцию

SetPixelFormat( hDC, nPixelFormat, @pfd )

в обычном режиме передается 9 (у меня)
а при режиме сглаживания -  32...

Как это разрулить? Может кто сталкивался?

#1
19:42, 4 июня 2010

Сглаживание фактически рендерит в буфер бóльшего размера, затем уменьшает.
Может его этот факт смущает.
Может надо стенсил создавать пропорционально больше?

#2
19:45, 4 июня 2010

kvakvs
> Может надо стенсил создавать пропорционально больше?
32 битный ? :)

#3
19:46, 4 июня 2010

Kasjan
> Если я включаю сглаживание с помощью расширения ARB_multisample,
ты почитай про ARB_multisample, что там про stencil пишут ?

#4
20:03, 4 июня 2010

Ура! разобрался. Там атрибуты надо было правильно заполнить
(они видимо каким-то макаром заменяют формат пикселя)

  int iAttributes[] = {
    WGL_DRAW_TO_WINDOW_ARB,GL_TRUE, // Истинна, если формат пикселя может быть использован в окне
    WGL_SUPPORT_OPENGL_ARB,GL_TRUE, // Истинна, если поддерживается OpenGL
    WGL_ACCELERATION_ARB,WGL_FULL_ACCELERATION_ARB, // Полная аппаратная поддержка
    WGL_COLOR_BITS_ARB,24,          // Цветность
    WGL_ALPHA_BITS_ARB,8,          // Размерность альфа-канала
    WGL_DEPTH_BITS_ARB,16,          // Глубина буфера глубины
    WGL_STENCIL_BITS_ARB,1,        // Глубина буфера шаблона
    WGL_DOUBLE_BUFFER_ARB,GL_TRUE,  // Истина, если используется двойная буферизация
    WGL_SAMPLE_BUFFERS_ARB,GL_TRUE, // Что мы и хотим
    WGL_SAMPLES_ARB, 4 ,            // проверка на 4x тип
    0,0};

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

Тема в архиве.