Цитата:
Сообщение от 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 труда не составит.
ТС, если всё-таки напишешь данный эффект на агал, то прошу поделиться результатом в данной ветке.
