Если я включаю сглаживание с помощью расширения ARB_multisample, как рассказано в NeHe,
то перестает работать буффер трафарета.
Связано это с тем что в функцию
SetPixelFormat( hDC, nPixelFormat, @pfd )
в обычном режиме передается 9 (у меня)
а при режиме сглаживания - 32...
Как это разрулить? Может кто сталкивался?
Сглаживание фактически рендерит в буфер бóльшего размера, затем уменьшает.
Может его этот факт смущает.
Может надо стенсил создавать пропорционально больше?
kvakvs
> Может надо стенсил создавать пропорционально больше?
32 битный ? :)
Kasjan
> Если я включаю сглаживание с помощью расширения ARB_multisample,
ты почитай про ARB_multisample, что там про stencil пишут ?
Ура! разобрался. Там атрибуты надо было правильно заполнить
(они видимо каким-то макаром заменяют формат пикселя)
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};
Тема в архиве.