![]() |
Как дебажить AGAL
Вот произвел ты какие-то действия, например, в вершинной программе:
Код AS3:
Может кто знает какие-то ide или способы для дебага шейдерных программ, их же не возможно писать, не зная что там в итоге получается. |
скаут
|
Цитата:
|
Дебажить шейдеры невозможно никакие ни агал ни другие, если ты имеешь в виду трассировку. В скауте можно вроде только посмотреть результат работы.
Ошибки можно вывести в оутпут: context3D.enableErrorChecking = true;. |
Вложений: 1
И все же, трассировать шейдеры возможно.
Утилита PIX из Microsoft DirectX SDK для Windows. В ней можно сделать захват программы и затем детально рассмотреть лог её выполнения, вместе со всеми шейдерными вычислениями. Вот посмотрите, как на каждой строчке выполнения флешовой вершинной программы, можно посмотреть все текущие значения в регистрах: Вложение 29294 Просто невероятно, то что надо! Раздизассемблированный код шейдера немного отличается от первоначального вида, но разобраться можно. Вот вводная статья по PIX Тулзу качать здесь. После установки, она появиться в папке utils с именем PIX for Windows.exe СлаваRa, В скауте можно так-же дебажить шейдеры? |
Цитата:
Добавлено через 12 минут лучше не заморачивайся, пиши шейдеры в RenderMonkey на HLSL(или просто найди любой шейдер в нете и открой в рендерманки), тамже превращай их в D3DAssembler(это делается одной кнопкой), выучи этот ассемблер на сайте майкрасофта про него всё есть и переписывай его в AGAL, это не сложно, AGAL и D3DAssembler очень похожи. То, что сверху в твоём скрине и есть d3dAssembler. Отличается от AGAL не сильно: ввод и вывод параматров немного по другому, буквы переменных, констант и остального - другие, например "r" в d3d это "v" в агале. Больше нет отличий серьёзных. Только в d3d есть циклы в агале нет( и ещё в d3d есть по моему 3 инструкции которых нет в agal, но их можно имитировать, они всего лишь совокупность нескольких инструкций в одной. Отлично то, что для d3dassembler есть программы в которых удобно разрабатывать шейдеры, в рендерманки есть даже режим художника в котором не нужно знать языки шейдеров, чтоб сделать шейдер. |
В программе сохраняется лог для каждого кадра. Можно спокойно и не спеша, поэтапно проанализировать рендер любого кадра, любого меша, любого пиксела.
Sintesis, Спасибо, наверное, я так и сделаю. |
Цитата:
|
Sintesis,
Воспользовался твоим советом, скачал RenderMonkey, писать на высокоуровневом HLSL в 500 раз удобнее. И уроков полно, всё не нарадуюсь. Программа невероятно классная, ещё бы компилятор, чтоб прямиком в AGAL и совсем бы как в сказке было :) |
| Часовой пояс GMT +4, время: 12:59. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.