Je code un simple raytracer en C++ en utilisant SFML pour dessiner des images de sortie. Le problème sur le processeur était la vitesse, donc j'ai décidé d'utiliser des shaders pour accélérer un peu tout
Je débute avec GLSL. Dans le tutoriel, il est écrit que vous pouvez passer certaines variables à votre shader en utilisant shader.setParameter("myvar", 5.f)
. Ensuite, il est indiqué que "les surcharges de setParameter prennent en charge tous les types fournis par SFML"
D'accord, je peux donc passer des float, vec2, vec3, vec4, etc.
La question est: puis-je passer ma propre classe dans les uniforms du shader?
Le problème est que pour le moment, je dois charger la classe Scene
(qui représente les positions des objets et autres choses pour le traçage de rayons) dans chaque processus de shader de pixel, et je suppose que cela peut ralentir considérablement tout.