2014-11-18 3 views
-1

Я вызвал glEnable с GL_MULTISAMPLE и использовал «образец в цвете vec4» в качестве входного вектора в моем шейдере фрагмента, но мультисэмплинг все еще выключен. Что я делаю неправильно? Есть ли какие-то части, которые мне не хватает?Многозадачность OpenGL не работает?

p.s. Я читаю официальное руководство по программированию OpenGL (версия 4.3).

Edit: некоторый код:

пиксельный шейдер выглядит следующим образом:

#version 430 
sample in vec4 color; 
out vec4 outputColor; 

void main() 
{ 
    outputColor = color; 
} 

И в моем приложении я называю glEnable (GL_MULTISAMPLE). Сразу после этого я создаю простой куб, который вращается, и он явно не сглаживается.

+1

Вы должны лучше уточнить свой вопрос. Также добавьте код, который вы попробовали. – Aleksandar

+0

Вы код не подходит к тому, что вы описали: шейдер в ... должен быть образцом ... – BDL

+0

Да, плохо, я использую образец, и он все еще не работает – Pilpel

ответ

4

Вы должны выбрать pixelformat для своего окна, которое фактически поддерживает мультисэмплинг. Без этого включение мультисэмплинга в OpenGL не влияет.

+0

Я использую freeglut. Как выбрать формат пикселя для окна? Я уже называю glutInitDisplayMode (... | GLUT_MULTISAMPLE). – Pilpel

+0

См. Также раздел * Render-to-Window * в [Multisampling] (https://www.khronos.org/opengl/wiki/Multisampling). – zwcloud

Смежные вопросы