Да, по крайней мере, (хотя, конечно, в современном коде вы обрабатываете большую часть этих вычислений в шейдерах).
Одна из типичных возможностей заключается в использовании uniform
s для вашего окружающего цвета (цветов), положения света, положения глаз и т. Д. Затем настройте пару varying
s, которые будут использоваться для рассеивания цветного и зеркального цвет от вашего вершинного шейдера до вашего фрагментарного шейдера. Ваш вершинный шейдер вычисляет значения для этих varying
с на входы uniform
.
Фрагментный шейдер затем получает (например) текстуру и varying
s, упомянутые выше, и объединяет их вместе (вместе с любыми другими входами, которые могут потребоваться) для получения окончательного цвета для фрагмента (который он присваивает gl_FragColor
).
В последнее время изменение устарело. –
@Lela Dax: true, но это не изменяет действительности метода. Это тривиально изменить меняющуюся пару в/из. – Bahbar
Возможно, обновите ответ с помощью ввода/вывода или, по крайней мере, упомяните, что они вытеснили единую/изменяющуюся? – AzP