netlib.narod.ru | < Назад | Оглавление | Далее > |
Вы скоро поймете, что изучение шейдеров — не чисто бумажная работа; для того чтобы задача была выполнена необходимы инструменты. В этом разделе я представлю вам инструментальные средства, которые вы должны будете использовать во время работы с книгой чтобы выполнить упражнения или реализовать свои творческие замыслы.
Эта замечательная утилита была разработана ATI Technologies для разработки шейдеров с помощью графического пользовательского интерфейса с использованием преимуществ, предоставляемых возможностями DirectX 9.0. Утилита предоставляет пользователю возможность собирать шейдеры из базовых блоков, не имея глубоких познаний о программировании или API трехмерной графики. На рис. 1.3 показано как выглядит окно программы RenderMonkey при работе с шейдером.
Рис. 1.3. Окно программы RenderMonkey
Из-за его мощи и гибкости, я использую RenderMonkey в качестве основного инструмента разработки шейдеров на протяжении всей книги. По этой же причине я включил в книгу главу 3, «RenderMonkey версии 1.5», которая ближе познакомит вас с этим замечательным инструментом.
Microsoft разработала простое, но мощное инструментальное средство, являющееся частью DirectX SDK. Эта утилита, показанная на рис. 1.4, может выполнять большинство базовых операций с текстурами. Вот некоторые из ее возможностей:
Поддержка вычислений с 32-разрядными числами с плавающей запятой.
Изменение формата текстур.
Создание кубических и объемных текстур.
Экспортирование текстур в файлы формата Microsoft .DDS.
Рис. 1.4. Окно программы Microsoft Texture Tool
Поскольку файлы .DDS — это основной формат, используемый RenderMonkey, данная утилита будет вам требоваться время от времени, особенно для преобразования текстур, если вы используете графический редактор не поддерживающий .DDS. Кроме того, поскольку большинство графических редакторов не поддерживает специальные виды текстур, такие как кубические и объемные, данный инструмент будет полезен, когда вам потребуется создавать такие типы текстур.
Photoshop — это коммерческая программа редактирования изображений, разработанная Adobe Software. Для нее NVIDIA разработала подключаемый модуль, который позволяет непосредственно работать с файлами .DDS. Хотя сам Photoshop может показаться немного дорогим, если вы серьезно занимаетесь обработкой изображений, приобрести его необходимо. Подключаемый модуль NVIDIA позволяет выполнить множество операций с файлами .DDS, в том числе:
Импорт и экспорт файлов .DDS.
Автоматическая генерация уровней детализации.
Вы можете экспортировать ваши файлы .DDS в любой стандартный формат DirectX, включая сжатые текстуры, такие как DXTC.
Экспорт и импорт кубических текстур с разверткой изображения.
Поддержка переформатирования изображения при экспорте. Это включает изменение размеров, применение фильтров и смену формата цвета.
Генерация карт нормалей на основании карт высот, что полезно при наложении рельефа.
На рис. 1.5 изображено диалоговое окно, которое отображается при вызове подключаемого модуля NVIDIA. Обратите внимание на возможности, предоставляемые этой утилитой. Подключаемый модуль NVIDIA для Photoshop есть на прилагаемом к книге диске. Ознакомительную версию Adobe Photoshop можно загрузить с сайта Adobe www.adobe.com.
Рис. 1.5. Диалоговое окно подключаемого модуля NVIDIA для Photoshop
Помимо редактирования текстур, вы должны уметь редактировать геометрию. RenderMonkey поддерживает работу с файлами форматов .3DS и .X, в которые можно экспортировать данные из программы 3D Studio Max от Discreet. 3D Studio Max — это коммерческий (и довольно дорогой) пакет трехмерного моделирования, используемый большинством разработчиков видеоигр из-за его простоты и гибкости. На рис. 1.6 показана программа 3DS Max в действии с загруженной сценой.
Рис. 1.6. Окно программы 3D Studio Max
Поскольку игровое сообщество постоянно требовало выпуска доступного редактора трехмерных моделей, который позволил бы им самостоятельно модифицировать игры, в Discreet разработали Gmax — свободно распространяемую версию 3DS Max с ограниченной функциональностью. Хотя у GMax меньше возможностей, чем у его большого брата, он является хорошей отправной точкой и позволяет выполнить большую часть работ по созданию собственной геометрии. Вы можете загрузить GMax с сайта Discreet www.discreet.com.
В этой книге вам не придется создавать собственные геометрические объекты; вы можете использовать любые доступные примеры моделей. С другой стороны, если вы серьезно относитесь к созданию собственных шейдеров и геометрии, то должны рассмотреть вопрос о приобретении 3DS Max и научиться работать с этим редактором.
В состав DirectX 9.0 SDK Microsoft включила утилиту с названием Effect Edit, которая подобна RenderMonkey в том смысле, что предоставляет среду разработки для редактирования шейдеров. Этот инструмент базируется на разработанном Microsoft формате .FX, являющимся расширением высокоуровневого языка программирования шейдеров и позволяющим разработчикам задавать многочисленные техники и режимы визуализации, используемые при формировании изображения. Как видно на рис. 1.7, интерфейс Effect Edit более аскетичный, по сравнению с RenderMonkey, и подходит для более профессиональных разработчиков DirectX. Из-за того, что работать с RenderMonkey проще, она выбрана в качестве основного инструментального средства для этой книги. Хотя мы и не будем использовать редактор эффектов Microsoft, я упоминаю об этой утилите, чтобы вы знали, что она есть.
Рис. 1.7. Утилита Microsoft Effect Editor с загруженным примером шейдера
Поскольку язык Microsoft HLSL нацелен на DirectX SDK, его применение ограничено платформой Windows; он не является кросс-платформенным решением для высокоуровневой разработки шейдеров. NVIDIA отреагировала на нехватку кросс-платформенных средств разработки, создав при поддержке Microsoft язык программирования шейдеров Cg. В своей основе Cg совместим с HLSL, и программы шейдеров могут быть легко преобразованы из одной формы в другую. Главное преимущество Cg — его независимость от API визуализации, что позволяет использовать его как с DirectX, так и с OpenGL.
Вместе с языком программирования шейдеров Cg был выпущен и набор инструментов Cg Toolkit. Он включает компилятор Cg, компоненты времени выполнения, документацию и множество примеров шейдеров с которыми разработчики могут экспериментировать. Также в набор инструментов включен браузер Cg, который служит в качестве простой среды разработки шейдеров. Однако в этой книге мы не будем использовать этот набор инструментов, поскольку он нацелен скорее на разработку программного обеспечения, а не на разработку шейдеров.
Если вы хотите познакомиться с Cg Toolkit, загрузите его с сайта NVIDIA www.NVIDIA.com.
netlib.narod.ru | < Назад | Оглавление | Далее > |