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

Итак, вот описание результата, который нужно получить.

□ Простой источник света.

□ Характеристики рассеянного и отраженного света.

□ Шаблон кирпичной стены, основывающийся на пространственных координатах объекта, где координата л'обозначает измерение кирпичей по горизонтали, а координата у - измерение по вертикали,

Пример простого шейдера

□ Каждый следующий ряд кирпичей сдвинут относительно предыдущего на половину ширины кирпича.

□ Возможность задавать цвет кирпичей, промежутков между ними, расстояния между кирпичами по горизонтали и вертикали, соотношение горизонтального расстояния и длины кирпича, соотношение вертикального расстояния и высоты кирпича.

Геометрические параметры кирпичей (рис. 6,1) - некоторые размеры и их соотношения с другими параметрами - будут храниться в определенных разработчиком итгогт-переменных типа чес2. Ширина кирпича по горизонтали, включая промежуток между кирпичами, будет обозначаться ВпскБтге.х. Высота кирпича, включая промежуток, будет обозначаться ВпскБтге.у. Эти две величины целесообразно сохранять в пространственных координатах объекта. Чтобы определить размеры (высоту и ширину) кирпича без промежутков, необходимо знать процентное соотношение общих размеров из Вп скЭт ге и размеров кирпича. Это соотношение хранится в ВпскРс! , х для горизонтальных размеров и в БпскРгд: .у для вертикальных размеров. Последние две величины должны входить в диапазон [0,1 ]. И наконец, цвет кирпича и промежутков представлен переменными ВП скСо! ог и Могт.агСо1 ог.


⇐ Предыдущая| |Следующая ⇒