Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Pixel Bender/AGAL

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.03.2013, 13:22
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 1  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
По умолчанию Перевести D3D Assembly в AGAL

Помогите перевести код из D3D Assembly в AGAL. Шейдер изначально написан на HLSL, затем конвертирован в D3D Assembly:
Код:
//
// Generated by Microsoft (R) HLSL Shader Compiler 9.22.949.2248
//
// Parameters:
//
//   float2 map;
//   float2 offset;
//   float2 rate;
//   float resolution;
//   float2 velacity;
//
//
// Registers:
//
//   Name         Reg   Size
//   ------------ ----- ----
//   resolution   c0       1
//   rate         c1       1
//   offset       c2       1
//   velacity     c3       1
//   map          c4       1
//

    vs_2_0
    def c5, 0.0199999996, 1, 0.00200000009, -1
    def c6, 0, 1, 0, 0
    dcl_position v0
    dcl_texcoord v1
    mul r0.xy, c3, c3
    add r0.x, r0.y, r0.x
    rsq r0.x, r0.x
    rcp r0.y, r0.x
    mul r0.xz, r0.x, c3.xyyw
    mad r0.w, r0.y, c5.x, c5.y
    mad r0.y, r0.y, -c5.z, c5.y
    mul r0.y, r0.y, -v0.y
    mul r0.w, r0.w, v0.x
    mul r1.xy, r0.xzzw, r0.w
    mad r0.z, r0.y, -r0.z, r1.x
    mad r0.w, r0.y, r0.x, r1.y
    mul r0.xy, r0.zwzw, c1
    rcp r0.z, c4.x
    rcp r0.w, c4.y
    mul r0.zw, r0, c2.xyxy
    add r0.zw, r0, r0
    mad r0.xy, r0, c0.x, r0.zwzw
    add oPos.xy, r0, c5.w
    mov oPos.zw, c6.xyxy
    mov oT0.xy, v1

// approximately 21 instruction slots used
Вот что получилось у меня в AGAL:
Код AS3:
			"mov vt7, vc3\n" + // не дает производить действия над 2 константами
			"mul vt0.xy, vc3, vt7\n" +
			"add vt0.x, vt0.y, vt0.x\n" +
			"rsq vt0.x, vt0.x\n" +
			"rcp vt0.y, vt0.x\n" +
			"mul vt0.xz, vt0.x, vc3.xyyw\n" +
 
			//"mad vt0.w, vt0.y, vc6.x, vc6.y\n" +
			"mul vt0.w, vt0.y, vc6.x\n" +
			"add vt0.w, vt0.w, vc6.y\n" +
 
			//"mad vt0.y, vt0.y, -vc6.z, vc6.y\n" +
			"mul vt0.y, vt0.y, -vc6.z\n" +
			"add vt0.y, vt0.y, vc6.y\n" +
 
			"mul vt0.yw, vt0, va0.xyzx\n" +
			"mul vt1.xy, vt0.xzzw, vt0.w\n" +
 
			//"mad vt0.z, vt0.y, -vt0.z, vt1.x\n" +
			"mul vt0.z, vt0.y, -vt0.z\n" +
			"add vt0.z, vt0.z, vt1.x\n" +
 
			//"mad vt0.w, vt0.y, vt0.x, vt1.y\n" +
			"mul vt0.w, vt0.y, vt0.x\n" +
			"add vt0.w, vt0.w, vt1.y\n" +
 
			"mul vt0.xy, vt0.zwzw, vc1\n" +
			"mov vt7, vc4\n" +
			"rcp vt0.z, vt7.x\n" +
			"rcp vt0.w, vt7.y\n" +
			"mul vt0.zw, vt0, vc2.xyxy\n" +
			"add vt0.zw, vt0, vt0\n" +
 
			//"mad vt0.xy, vt0, vc0.x, vt0.zwzw\n" +
			"mul vt0.xy, vt0, vc0.x\n" +
			"add vt0.xy, vt0.xy, vt0.zwzw\n" +
 
			"add op.xy, vt0, vc6.w\n" +
			"mov op.zw, vc5.xy\n" +
			"mov v1, va1\n" + // На эти не обращайте внимание, просто нужны что-бы код скомпилировался
			"mov v0, vc8\n"
Наверное, я не правильно преобразовал операций mad, изначально в виде:
Код AS3:
"mad vt0.xy, vt0, vc0.x, vt0.zwzw\n" +
в это:
Код AS3:
"mul vt0.xy, vt0, vc0.x\n" +
"add vt0.xy, vt0.xy, vt0.zwzw\n" +
__________________
Дети не должны знать о своих родителях

Старый 03.04.2013, 14:18
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 2  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Привет. Может припоздал немного...
Преобразовал правильно. Вот это неправильно:
Код AS3:
"mul vt0.y, vt0.y, -vc6.z\n"
Знак минус игнорируется вроде.

Старый 03.04.2013, 14:35
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 3  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
ясна спс
__________________
Дети не должны знать о своих родителях

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:30.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:30.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.