-
Pour le rendu, une vidéo de quelques secondes de ce que ça donne: http://uptobox.com/kqgbq8gb59oo
Avec une lumière moins aggressive: http://uptobox.com/4ydq3eo5mj4s
Un sol réfléchissant (couleur 0, 51, 51), trois sphères réfléchissantes et une transparente.
Merci pour les pistes, je vous donnerais du neuf dans les prochains jours au fur et à mesure des améliorations. :)
-
J'ai changé le drag & drop, pour déplacer l'objet "en direct" et non plus au relâchement de la souris: http://uptobox.com/ejzlnuvdcm6b
On voit bien la latence que cela induit, mais le résultat n'est pas si mauvais. :)
Edit: une des fonction est appelée 2.6 millions de fois pour un rendu, c'est elle qui "bouffe" le plus de temps. A l'intérieur rien de très gourmand. Mais comme disait Coluche: "Un p'tit peu par un p'tit peu ça fait un gros peu". :D
Edit': Je pense que je vais devoir utiliser le gpu en parallèle pour avoir des temps plus décents, étant donné que le GPU est à priori très efficace pour ce qui est des traitements parrallèles. OpenCL a l'air d'être pas mal pour ça. Vous en pensez quoi? Ca pourrait à priori diviser le temps d'exécution par [1..10].
-
Hum ca doit surement aider, mais rendu la pourquoi ne pas utiliser opengl (qui utilise le gpu pour toi)?
-
En effet.
Mon objectif est d'essayer de faire du temps réel sans bibliothèque ou framework externe, ce serait violer cet objectif. :) Je vais chercher ce qu'il est possible de faire soi-même et comment il est possible de le faire.
Edit: Java 8 contiendra openCL en natif? ici et là Mhhh, dans ce cas, je peux l'utiliser sans violer mon objectif. :p
-
La fonction qui est appelée 2.6 millions de fois, elle contient quoi ?
-
Elle calcule, pour chaque objet, si le rayon en cours touche un des objets.
400*400 (nombres de pixels) * nombre de rayons envoyés par pixel (pour la précision) = ça monte très vite. :)
-
en gros pour ton rendu du fait un genre de raytracing soft et tu trouve étrange que ca soit long ? ^^
Je crois que c'est une méthode de rendu connue pour être longue (même optimisé sur un gros processeur) !
Du coup effectivement, openCL peu te sauver du temps, mais ça risque d’être difficile d'arriver a 60fps
-
Oui c'est du ray tracing (je l'ai marqué dans le premier post), je ne trouve rien bizarre, je cherche seulement à le rendre temps réel. :) Si possible ~15-20 fps, donc ~50 ms par image
-
hum bonne chance, du coup tu m'a donner envie de tester le raytracing, ca tombe bien c'est la fin de semaine :aie: de quoi passer un bon we!
La sans le code ca va être dur pour nous de te donner d'autre pistes ;) bonne chance !