8.3.3. Простые геометрические фигуры
Для отладки вычислений с текстурами можно выполнить рендеринг простого большого прямоугольника с идентичными матрицами модели, вида и проекции и посмотреть, что получится. Применяя в виде текстуры простое изображение, например цветные прямоугольники или плавный переход цвета, можно легко определить, что идет не так в операциях текстурирования.
8.4. Средства разработки шейдеров В будущем появятся гораздо более мощные средства разработки шейдеров, чем существуют сейчас. В этом разделе описаны средства, доступные во время написания этой книги.
8.4.1. кепс!егМопкеу
С тех пор как появились программируемые графические процессоры, стало понятно, что, кроме разработки собственно кода для шейдеров, следует обращать внимание и на другие моменты. Шейдеры могут быть настраиваемыми до такой степени, что могут работать так, как от них ожидается, только в простых случаях.
Разработка шейдера
Исходный код шейдера, текстуры, геометрические фигуры, начальные значения uniform-переменных - все это важные составные части качественного шейдера. Чтобы помочь разработчикам преуспеть, нужно обеспечить их средствами для распознавания, модификации и поддержки всех основных элементов шейдера.
Еще один фактор, который нужно учитывать при разработке шейдеров, - это то, что обычно код шейдера и код приложения пишут разные разработчики. Зачастую дизайн текстур делает вообще художник, и он же принимает участие иди даже контролирует процесс разработки шейдера. Сотрудничество художника и разработчика игровых приложений является существенным влияющим фактором, и это тоже должно учитываться при создании инструментов разработки.
Комплексная среда для разработки (IDE) позволяет разработчикам и художникам разрабатывать шейдеры и экспериментировать с ними вне приложения. Это уменьшает сложность задач, стоящих перед разработчиком, и стимулирует быструю разработку интерфейса и процедуры экспериментирования. Законченные шейдеры - интеллектуальная собственность, и ее сопровождение, кросс -платформенность и легкость внедрения на различных платформах очень важны для получения компанией-разработчиком максимальной выгоды. IDE должно работать со всеми элементами законченного шейдера: управлять ими, совместно использовать, инкапсулировать и экспортировать.