Эмуляция GLSL-плоского классификатора в GLSL 120 - PullRequest
3 голосов
/ 15 марта 2012

Я хочу эмулировать плоскую штриховку в шейдере GLSL. Обычно я делаю это, передавая нормаль с квалификатором flat для предотвращения интерполяции в фрагментном шейдере Однако flat недоступно для GLSL 120.

Как я могу эмулировать его, не дублируя данные вершин? (Это не преждевременная оптимизация, скорее посмертное.)

Ответы [ 2 ]

2 голосов
/ 15 марта 2012

Вы не можете точно эмулировать flat без прямой аппаратной поддержки (вероятно, как указано в поддержке GLSL 1.30+). Предыдущие версии предлагают только все или ничего: либо все атрибуты интерполированы, либо нет. Вот что делает glShadeModel.

1 голос
/ 15 марта 2012

Передайте одинаковую нормаль для каждой вершины треугольника.

Или посмотрите, влияет ли glShadeModel(GL_FLAT) на встроенный атрибут gl_Normal.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...