Как выполняется затенение фрагментов OpenGL? - PullRequest
1 голос
/ 08 декабря 2010

Прошу прощения, если это глупый вопрос, но мне трудно разобраться с этим.

У меня есть 3D-объект, который я создал в Maya (и экспортировал в файлы OBJ и MTL), и я создал приложение для просмотра моделей в OGL, чтобы просмотреть его. Если мои предположения верны (и вы знаете, что они говорят о предположениях ...), то, поскольку я не указал свой собственный шейдер GLSL, OGL должен использовать FFP для определения цвета фрагмента для каждого пикселя? Это правильно?

В моем понимании, в FFP должен быть реализован некий шейдер по умолчанию, поскольку он способен отображать зеркальные блики и отражения и т. Д. Может кто-нибудь дать мне некоторую информацию по этому поводу и, возможно, сказать, как это затенение делается?

Я понимаю, что определения материалов используются для установки свойств материалов объектов, но я не уверен, как конечные эффекты света, взаимодействующего с материалом, отображаются в окне OGL, без указания шейдера вручную ( отсюда мое убеждение, что есть какой-то шейдер по умолчанию).

Спасибо

- Крис

1 Ответ

2 голосов
/ 08 декабря 2010

В случае графических процессоров третьего поколения и более поздних все ваши предположения верны.Пока не указан пользовательский шейдер, драйвер предоставляет графическому процессору шейдер по умолчанию, имитирующий FFP.

Шейдер по умолчанию обычно реализует модель освещения Phong, точные детали которой зависят от установленных параметров текстурной среды инапример.

Для более старых поколений графических процессоров конвейер с фиксированными функциями является аппаратным.

...