Тема: Stage3D Барабан карта
Показать сообщение отдельно
Старый 12.11.2016, 19:07
Bletraut вне форума Посмотреть профиль Отправить личное сообщение для Bletraut Найти все сообщения от Bletraut
  № 19  
Ответить с цитированием
Bletraut
 
Аватар для Bletraut

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 567
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
Цитата:
Сообщение от undefined Посмотреть сообщение
glsl - диалект c,а на флэше, на сколько я знаю, шейдеры пишутся прямиком на асме.Так что имхо придется с нуля писать.
Главное алгоритм и формулы узнать, а на AGAL, то уже будет не проблема это переписать.

Добавлено через 3 часа 0 минут
А, именно, из вершинного шейдера нам нужно вот это

Код AS3:
uniform POS3 CHUNK_ORIGIN;
const float curvature_strength = 100.; //lower means more curved terrain
 
POS4 pos = WORLDVIEWPROJ * POSITION;
vec3 relPos = VIEW_POS - (POSITION.xyz + CHUNK_ORIGIN);
gl_Position = pos+ vec4(0.,-1.,0.,0.)*length(relPos.xz)*length(relPos)/curvature_strength;
Добавлено через 3 часа 10 минут
В этой строке просто вычисляется реальное_расстояние_до_вершины = координаты_камеры - (координаты_вершины + координаты_3д_модели_в_которой_расположена_эта_вершина), очевидно, что модель здесь - Chunk.
Код AS3:
VIEW_POS - (POSITION.xyz + CHUNK_ORIGIN);
Думаю, что записать эти простейшие формулы на AGAL труда не составит.

ТС, если всё-таки напишешь данный эффект на агал, то прошу поделиться результатом в данной ветке.
__________________
Я заклинаю вас действовать иначе.


Последний раз редактировалось Bletraut; 12.11.2016 в 22:09.