Рендер предметов в майя (MRenderItem
) затягиваются шейдерами (MShaderInstance
), которые содержат фрагменты (части шейдера GPU), которые скомпилированы в один большой шейдер непосредственно перед рисованием. MShaderInstance
позволяет добавлять свои собственные фрагменты, объявляя их сначала через xml.
Мой вопрос, как я могу вставить геометрический шейдер в MShaderInstance
?
Я знаю, что они поддерживаются, так как схема XML имеет элемент geometryShader
, но нет примеров того, как определить собственное.
Например, у меня есть этот простой геометрический шейдер, просто для тестирования, который на самом деле даже ничего не генерирует:
layout (points) in;
layout (points) out;
layout (max_vertices = 1) out;
void main()
{
gl_Position = gl_in[0].gl_Position;
}
Соответствующие методы MShaderInstance
являются addOutputFragment
а также addInputFragment
, Ни один из них не работает в моем случае (оба возвращают код ошибки).
Я также не могу найти никаких примеров этого конкретного случая (геом шейдеров) в SDK.
Любая помощь приветствуется.
Задача ещё не решена.
Других решений пока нет …