Я кодирую простой трассировщик лучей на C ++, используя sfml для рисования выходных изображений. Проблема с процессором заключалась в скорости, поэтому я решил использовать шейдеры, чтобы немного ускорить все.
Я новичок в GLSL. В учебнике написано, что вы можете передать некоторые переменные своему шейдеру, используя shader.setParameter("myvar", 5.f)
. Затем написано, что « перегрузки setParameter поддерживают все типы, предоставляемые SFML »
Хорошо, поэтому я могу передать float, vec2, vec3, vec4, et c.
Вопрос: могу ли я каким-то образом передать свой собственный класс в форме шейдера?
Проблема в том, что на данный момент мне нужно загрузить Scene
(класс, представляющий объекты ' позиции и объекты для трассировки лучей) в процессе шейдера каждого пикселя, и я полагаю, что это может сильно замедлить все.