2012-02-05 2 views
0

Использование Molehill с Flash Я хочу создать шейдер vertiex, чтобы одно преобразование сетки в другое, я видел, что это возможно с Flare. Однако я не уверен, что это использовало Stage3D , Может ли кто-нибудь дать мне какие-либо указания в использовании шейдеров в AGAL относительно того, как это можно сделать. СпасибоМорфинг в MoleHill с использованием вершинного шейдера

ответ

0

Следующая версия пиксельного гида должна поддерживать создание трехмерных вершин и фрагментарных шейдеров. Предварительный релиз должен быть available here

2

(может быть, слишком поздно)

морфинга является «просто» линейная интерполяция между 2 набора позиций.

Предполагая, что у вас есть первый vertexBuffer VA0, представляющий источник и второй vertexbuffer VA1, представляющий ваши адресаты. Вы можете хранить их во временных регистрах:

"mov vt0 va0    \n" +//temp var, will hold the result 
"mov vt1 va0    \n" +//start position 
"mov vt2 va1    \n" +//destination 

, то вам необходимо значение T, что вы можете передать в качестве константы, как это:

context.setProgramConstantsFromVector(Context3DProgramType.VERTEX, id, constant); 

если вы передаете что-то вроде

Vector.<Number>([ T, 0,0, 1 ]) 

с 0 < = T < = 1 в качестве константы и поместить его на id 0, следующий код преобразует (линейно inpterpolate) выходные позиции от исходного положения до конца p osition.

//lerp 
"sub vt0 vt2 vt1   \n" + 
"mul vt0 vt0 vc0.x   \n" + 
"add vt0 vt0 va1   \n" + 

то вам нужно спроектировать VT0, чтобы получить правильный выход.

+0

Блестящий, Это точно, что мне нужно знать. – ColinDavies

Смежные вопросы