Я хотел бы создать эффект каркаса с помощью программы шейдера, написанной на AGAL для Stage3D.
Я искал в Google и понимаю, что могу определить, насколько близко пиксель находится к краю треугольника, используя барицентрические координаты (BC), переданные в программу фрагмента через программу вершин, затем раскрасьте ее соответствующим образом, если она достаточно близка.
Я не понимаю, какой метод использовать для передачи этой информации в программу шейдера. У меня есть простой пример с кубом, 8 вершинами и индексным буфером для рисования треугольников между ними.
Если бы я поместил BC в буфер вершин, это не имело бы смысла, поскольку они должны были бы быть разными в зависимости от того, какой треугольник визуализируется; например Vetex1 может потребоваться (1,0,0) при рендеринге с помощью Vetex2 и Vetex3, но другое значение при рендеринге с помощью Vetex5 и Vetex6. Возможно, я не совсем понимаю метод.
Нужно ли мне дублировать позиции вершин и добавлять дополнительные данные в буфер вершин, делая по существу 3 вершины на треугольник и утроив количество вершин? Всегда ли я даю вершине значение (1,0,0), (0,1,0) или (0,0,1) или это просто пример? Я не слишком усложняю это и есть ли более простой способ сделать каркас с помощью шейдеров и Stage3d?
Надеюсь, это полностью объясняет мои проблемы. Мы очень ценим ответы, спасибо!