Le Dredi du codeur

Bon, comme j’ai beaucoup donné mon avis de manière impopulaire apparemment dernièrement, je vais vous montrer quand même ce que ça donne mon raytracer temps réel (pour ceux qui ça intéresse, et ceux qui ont participé aux 2/3 posts que j’ai fais sur la question).

)

  • ombre de tout sur tout bien évidemment
  • gestion des texture & du speculaire
  • reflection (1 niveau)
  • refraction

sur lesquels se greffent des effets speciaux divers aux pixelshaders, comme :

  • profondeur de champs
  • bloom
  • blur
  • bruit video
  • distortion video
  • et bien d’autres encore

Y’a pleins de nouvelles features à venir qui vont se greffer dessus, et surtout des tas et des tas d’optimisations encore. A noter que je ne suis pas seul à développer ce raytracer, on est 2, l’autre s’appelle NastyBoy, membre de Syndrome pour ceux qui connaissent.

Voila, je mettrais d’autres screenshots un beau jour pour montrer les autres features que j’ai énoncées la, si ça vous interesse. Sinon tant pis

Eh ben, c’est du super boulot. J’ai hâte de le voir tourner.

Au fait, quelles versions de vertex et pixel shader sont nécessaires ?

Ouaip, le resultat a l’air sympa, meme si les images sont super troubles… T’aurais pas un peu force sur le blur?

Niveau codage, tu utilises du cg? Si oui, tu as regarde les fonctions reflect, refract et difract? Elles sont presentees avec un petit test dans le SDK NVidia… (FP30 minimum)

dis moi, pour faire le flou de profondeur de champ, les textures aléatoires, la radiosité, les caustiques, et tout et tout, tu as puisé tes informations/algos/skeutuveu où?

Bravo Tuo, et vivement une petite release :P)

Tiens, ia du coder qui va à la SOTA ce weekend ?

Bon, puisque Tuo a ouvert la voie, j’en profite pour glisser quelques screenshots de mon petit projet perso à moi (Tuo, si tu veux que je vire ce post de ce thread, n’hésite pas à me le faire savoir). Bon, il s’agit d’un bête moteur 3D temps réel (PC DX9 et Xbox DX8) comme il en existe des tonnes. Il est encore trés peu avancé (j’ai malheureusement trés peu de temps à lui accordé. Il utilise les vertex shader 1.1 et pixel shader 1.3 pour le rendu et le skinning. Le plugin 3dsmax permet d’exporter les meshes, bones, matériaux, physique, etc…


 


 <
Ce message a été édité par Sebastien le 23/01/2004

Mon vendredi de codeur :

 TableAjoute(EnrCompta,0+TAB+B_COMPTA:BTRVStruct[[26 sur 10]]+TAB+B_COMPTA:BTRVStruct[[12 sur 8]]+TAB+B_COMPTA:BTRVStruct[[36 sur 20]]+TAB+B_COMPTA:BTRVStruct[[68 sur 11]]+TAB+""+TAB+TAB+B_COMPTA:BTRVPointeur)

Forcément, c’est tout de suite moins impressionnant

Très joli tout ça sinon, courage pour finir !

Sebastien : pas de soucis, faut mettre tout ce qu’on veut dans ce thread, des zoulies nimages aux bouts de code qui aident tout le monde

Pour répondre aux questions :

  • j’utilise uniquement les vertex et pixel shaders version 1.1, comme ça je suis compatible avec toutes les cartes de classe DX8… je pourrais faire du PS2.0 mais bon, faire du 1.1 ça rajoute du challenge
  • pour coder les effets PS/VS, je n’utilises ni CG ni HLSL, mais directement l’assembleur PS/VS (j’aime l’assembleur )
  • pour les exemples refraction/reflection de nvidia, je m’en cogne, je fais du raytracing, pas du poly, ça change TOUT
  • j’ai en effet forcé un peu sur la profondeur de champs pour qu’elle ressorte bien, ceci dit elle est totalement configurable (plan focal + valeur d’hyperfocal)
  • pour ces algos, j’ai trouvé ça… dans ma tête Homemade quoi.

Et enfin pour finir… je ne serais pas à la SOTA ce weekend à cause de mes finances qui ne le permettent clairement pas (c’est pour ça que je release ces images, parce que l’intro ne sera pas présentée à la SOTA, de toute façon on ne l’a pas finie vu qu’on n’y va pas )

Voili voila. De nombreuses features prévues pour l’avenir de ce raytracer realtime (octree, jusqu’à 4 textures à la fois, CSG mieux finie, peut être heightfield raytrace et pleins d’autres choses encore, y’a tout un domaine à inspecter la !)

[quote]- j’utilise uniquement les vertex et pixel shaders version 1.1, comme ça je suis compatible avec toutes les cartes de classe DX8… je pourrais faire du PS2.0 mais bon, faire du 1.1 ça rajoute du challenge .

Jolies images en effet, que ce soit pour Tuo ou même Sebastien, bravo !

Par contre persone n’a dit : quelle machine pour que ça tourne décemment tout ça ?

Tu parles d’un raytracer temps reel donc je suppose que l’ on peut esperer voir des video voir ce qu’il donne ? Ou ce n’est pas encore au point ?

Pour ma part je vais commencer a utiliser nos bonnes veuilles CG pour faire du calcul bourrin (ARB_fragment rulez) Parce que faire du parrelle sur une multi proc CGI (128 proc) c’est trop HUGE pour moi mais si je peux prendre la bete en photo ca trainera un Vendredi

Koubiak, always in jet lag et sans accent glop meme combat

[quote]Mon vendredi de codeur :

 TableAjoute(EnrCompta,0+TAB+B_COMPTA:BTRVStruct[[26 sur 10]]+TAB+B_COMPTA:BTRVStruct[[12 sur 8]]+TAB+B_COMPTA:BTRVStruct[[36 sur 20]]+TAB+B_COMPTA:BTRVStruct[[68 sur 11]]+TAB+""+TAB+TAB+B_COMPTA:BTRVPointeur)

Forcément, c’est tout de suite moins impressionnant

Très joli tout ça sinon, courage pour finir ![/quote]Windev ?? lol

Oui, et surtout, c’est de la compta

[quote]Jolies images en effet, que ce soit pour Tuo ou même Sebastien, bravo !
Par contre persone n’a dit : quelle machine pour que ça tourne décemment tout ça ?[/quote]Ben pour le moment, vu que le moteur n’affiche que des models, tout depend de la complexité de celui-ci. Le principal étant d’avoir une carte qui supporte les vertex et pixel shader. Donc, une bonne GeForce 3 ou Radeon 8500 fait parfaitement l’affaire. Attention, ça marche pas sur GeForce 4 MX ou GeForce 4 Go (y a pas de pixel shader sur ces cartes). Pour le processeur, un PIII 800 ou equivalent suffit amplement et ajouter 256 Mo de Ram pour Windows .

Pour répondre à vos quelques questions en quelques mots :

  • pour faire tourner le raytracer, il suffit d’un PC avec une carte graphique compatible PS/VS 1.1 (pour les effets spéciaux & tout ) et d’un processeur. Le processeur doit être le plus puissant possible et supporter le SSE NastyBoy a un PIII 900 (eh oui), moi un Athlon 2500+, les performances dépendent ENORMEMENT de la scène et du point de vue. Contrairement à la 3D “classique”, un raytracer ne calcule vraiment que ce qu’il voit, donc les perfs ne dépendent que de la vue que l’on a. Sur le 2ème screenshot on voit que ça tourne à 39 FPS par exemple, avec 9 spheres, 1 cube et 1 plan. Cela dit, suivant le point de vue, cette même scène pourra tourner entre 30 et 100 FPS sur mon PC. Bref, c’est pas aussi simple que pour la 3D classique

  • pour la video, c’est possible, si je m’en donne la peine Le truc c’est qu’actuellement je n’ai aucune scène intéressante en fait… Juste des bouts de choses par ci par la, des primitives en pagaille. Mais bon, ça fonctionne sans soucis, tu peux charger une scène et te balader dedans avec clavier/souris…

Clasouillle alors

Y a projet de faire tourner ca sous OpenGl/Glut ?

Parce que ca a l’air vraiment rigolo votre truc

Koubiiak

Non, aucun projet de faire tourner ça sous OpenGL, il s’agit en fait d’un raytracer purement optimisé pour Direct3D, tant niveau performances que niveau taille de code. Eh oui, il s’agit de faire une intro 64ko au final, donc l’objectif est le meilleur compromis taille/vitesse…

Et non ce ne sera pas de l’open source

La question etait pas que ce soit de l’open source mais que je puisse le faire tourner sur ma machine :stuck_out_tongue:

Donc y a pas d’espoir de faire migrer ton jolie code zut moi qui avait rien a faire aujourd’hui ^^

Koubiiak

Tu n’as pas DirectX ? Ah, tu dois être sous linux ou macos ou quelque chose sur lequel il n’y a pas d’opengl…

On songera à faire une version “portable deluxe” (mais pas en 64ko) quand on aura finit le développement initial déjà Je dis “on” parce qu’on est deux comme je le disais précédemment (je veux pas qu’on croit que je prends tout le crédit de ce raytracer )

Bref, ton point de vue est intéressant, penser aux personnes n’ayant pas de DirectX 8 disponible… Je le marque sur la todo list