Передать позицию фрагментному шейдеру в AGAL

Я пытаюсь попасть в затенение с AGAL. Я настроил полноэкранный четырехугольник для рисования с помощью шейдерных программ, но столкнулся с чем-то необъяснимым.

у меня есть эти вершины

var vertices:Vector.<Number> = Vector.<Number>([

    - 1, - 1, 0, - 1, - 1, 0,
    + 1, - 1, 0, + 1, - 1, 0,
    - 1, + 1, 0, - 1, + 1, 0,
    + 1, + 1, 0, + 1, + 1, 0

]);

Эта пара программ работает

vertexShaderAssembler.assemble(Context3DProgramType.VERTEX,

    "mov op, va0\n" +
    "mov v0, va1"
);

...

fragmentShaderAssembler.assemble(Context3DProgramType.FRAGMENT,

    "mov oc, v0"
);

Однако это не

vertexShaderAssembler.assemble(Context3DProgramType.VERTEX,

    "mov op, va0\n" +
    "mov v0, va0"
);

...

fragmentShaderAssembler.assemble(Context3DProgramType.FRAGMENT,

    "mov oc, v0"
);

Любая подсказка о том, почему я должен передавать одни и те же значения через va1 и почему это не работает, когда вершины имеют только три координаты?


person Róbert László Páli    schedule 29.05.2015    source источник


Ответы (1)


Ошибка проверки или неправильный порядок индексов. Если вы не видите результата на экране. Чтобы обнаружить проблему, установите для свойства enableErrorChecking значение true в объекте context3d. Stage3d начнет выдавать ошибки проверки. Если у вас возникнут дополнительные вопросы о Stage3D, вы можете присоединиться к нашей группе Stage3D на Facebook и быстрее получить ответы.

person Sergey Gonchar    schedule 10.06.2015
comment
Лучше позже, чем никогда: ошибок проверки не было. Я конечно давно перешел. - person Róbert László Páli; 15.08.2016