Современные цвета OpenGL - PullRequest
       3

Современные цвета OpenGL

1 голос
/ 06 сентября 2010

Я заметил, что старый код имеет входы GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR и т. Д. С glMaterialfv.Как они заменяются в современном коде GLSL?

Например, если библиотека импорта моделей (Assimp) дает прямые значения для таких категорий цветов, могут ли они по-прежнему использоваться напрямую (в базовом контексте)?

1 Ответ

2 голосов
/ 06 сентября 2010

Да, по крайней мере, вроде (хотя, конечно, в современном коде вы выполняете большую часть этих вычислений в шейдерах).

Одна типичная возможность - использовать uniform s для вашего окружающего цвета (s), положение (а) освещения, положение глаз и т. д. Затем настройте пару varying s, которые будут использоваться для передачи диффузного и зеркального цвета из вашего вершинного шейдера в ваш фрагментный шейдер.Ваш вершинный шейдер вычисляет значения для этих varying s на основе входных данных uniform.

Затем фрагментный шейдер получает (например) текстуру и varying s, упомянутые выше, и объединяет их вместе (наряду с любыми другими входными данными, которые вам могут потребоваться), чтобы получить окончательный цвет для фрагмента (который он назначает gl_FragColor).

...