IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Projets Discussion :

Mon devblog, mon wiki, mes sites webs, etc.


Sujet :

Projets

  1. #101
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    C'est ce site là qui m'a permis de faire un moteur de rendu en raytracing .
    Les explications sont très bien documenté pour comprendre comment faire, il suffit juste que tu l'applique sur tes shader, et je pense que tu auras un meilleurs rendu que ce que tu as actuellement, avec de meilleurs FPS si tu suis mes conseils pour la gestion des lumières.

    Je voulais savoir, sans tes shader pour les lumière tu tourne à combien de FPS?

  2. #102
    Invité
    Invité(e)
    Par défaut
    C'est ce site là qui m'a permis de faire un moteur de rendu en raytracing .
    Les explications sont très bien documenté pour comprendre comment faire, il suffit juste que tu l'applique sur tes shader, et je pense que tu auras un meilleurs rendu que ce que tu as actuellement, avec de meilleurs FPS si tu suis mes conseils pour la gestion des lumières.
    Le raytracing est trop coûteux pour un jeux non ? :/
    Pour la réflexion je préfère faire un rendu de ce qui se trouve derrière la caméra, et ensuite je reflète ce qui se trouve derrière la caméra en fonction de l'indice de réfraction du matériel. (Exactement comme je l'ai fais pour le normal mapping en calculant les normales des surfaces qui sont devant la caméra)

    Et je suis sûr que je peux arriver au même résultat sans que ça consomme de trop.

    Je doute qu'avec un raytracing on puisse arrivé à 20 FPS sur l'article il précise que il faut minimum une demi-heure pour le rendu. :/

    Je voulais savoir, sans tes shader pour les lumière tu tourne à combien de FPS?
    60 sans shaders, 15-20 avec shader. (Mais je dois encore optimiser quelque points)

  3. #103
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Ok donc c'est bien tes shader qui pompe tout le proc, il faudrait vraiment que tu modifies ton système de lumière pour revenir à un taux correct de FPS :/.

    Concernant le raytracing, tu peux X3-terran conflict, leur moteur est complètement en raytracing. C'est faisable de faire un bon moteur de rendu en raytracing, mais il faut faire beaucoup d'optim et avoir une très bonne conception dès le départ.

    ça demande aussi des connaissance très poussées en info pour les quaternion et les quad-tree pour optimiser le rendu .

    C'est dur à faire, mais pas impossible . Par contre en raytracing, tu ne peux pas avoir de calcul qui se fait sur une CG, tout est fait sur le processeur . Et les performances dépendent pas de la complexité des objets mais du nombre d'objet de ta scène. C'est une approche complètement différente des moteur type openGL .

  4. #104
    Invité
    Invité(e)
    Par défaut
    Erf, ça m'a l'air un peu chaud à faire tout ça pour arriver à un même résultat sans bouffer les perfs. :/

    Mais je ne suis pas sûr que le problème viennent des shaders, car, lorsque je n'utilise pas de shader, je n'ai que 40 voir 50 FPS. (Je viens de m'en rendre compte maintenant)

    Normalement je devrais arriver à 20 FPS mini avec les shaders et 60 sans les shaders.

    Je pense que je vais donc stoppé l'ajout de fonctionnalités pour me concentrer sur les optimisations que je pourrai encore faire et ça devrait aller.

    PS : j'utilise une grille auto-redimentionnable et pas un quadtree, et mon monde est infini. (Et sa taille peut changer donc, je ne peux pas définir de quadtree. :/)

    Par exemple, je peux décider d'afficher les 8 terrains autour du terrains courant, en les stockant dans un cache, et je change le cache lorsque je passe sur un autre terrain, le taille du monde change, ça me permet de gérer un grand nombre de triangles sans bouffer les perfs. (Le CPU ou la RAM)

  5. #105
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Une grille sera plus lente à la recherche qu'un quadtree, car tu seras obligé de parcourir le tableau entier.
    Par ordre d'optimisation:
    _ Rien
    _ Grille
    _ Quadtree
    _ hashtab



    L'idéal, pour les performance et la simplicité du code est d'utiliser des quadtree enchainés .

  6. #106
    Invité
    Invité(e)
    Par défaut
    Une grille sera plus lente à la recherche qu'un quadtree, car tu seras obligé de parcourir le tableau entier.
    Par ordre d'optimisation:
    Non, je ne parcours pas le tableau en entier, je ne parcours que les cellules du tableaux qui sont dans la caméra.

    Pour cela je récupère la cellule du monde qui se trouve en coordonnée fenêtre 0, 0, puis celle qui a pour coordonnée fenêtre 0, 50, et ainsi de suite jusqu'à arriver à la taille de la fenêtre.

  7. #107
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Je pense que ça fonctionne quand tu as une caméra qui est sur le meme alignement que ta grille (donc vu du dessus), mais quand tu as une caméra qui n'est pas calé sur ta grille? Genre vu horizontal au sol, tu vas faire comment?

    à moins que tu prévois qu'un moteur vu du dessus?

  8. #108
    Invité
    Invité(e)
    Par défaut
    Non, j'ai un projet en vue du dessus, et un autre projet en vue 3D. (vue de face)

    Ce soir je mettrai quelques screenshots de ce que ça rend pour l'instant, bon, il me reste encore la réfraction et la disfraction à faire en reflétant ce qui est derrière la caméra sur les objets situés devant la caméra ainsi que la déformation de la normal avec une bumpmap que je passerai au matériel.
    Mais pour tout le reste, j'ai terminé.

    Donc, les entités pourront avoir :

    -Une matrice de projection des ombres : celle-ci sera utilisé pour orienté, redimensionner et centrer les objet vers la lumière avant de dessiner les ombres dans le stencil buffer.
    -Un indice de réfraction. (quantité de couleur de la texture reflétée qui est la scene filmée de derrière)
    -Un indice de disfraction. (déformation de la texture reflétée)
    -Une bump map. (déformation de la normal map via une texture externes en fonction du relief de la texture externe, car pour le moment je ne gère les normales que pour le relief de la scene)
    -Et les informations pour l'intensité et la puissance de la composante spéculaire bien sûr.

    Et je crois que c'est à peu prêt tout, pour avoir des rendu réaliste du moins..., dans la formule que tu m'a donnée et d'après l'article que j'ai lu.

  9. #109
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Ouaip, c'est a peu près ça hormis la matrice des ombre, un objet n'a pas à s'en occuper, c'est le rayon de lumière qui se chargera de généré les ombres, quand il y a un obstacle entre le pixel de ta texture visé et la lumière . Normalement openGL s'en occupe tout seul .

    Mais pour le reste, c'est exactement ça, sachant que tes bump map et compagnies doivent être traitées par le shader .

  10. #110
    Invité
    Invité(e)
    Par défaut
    Il faudrait que je regarde de ce côté là pour détecter lorsque il y a un obstacle entre la lumière et le rayon, car pour le moment le rayon n'est autre que un rayon partant du centre de la lumière vers le fragment (pour les lumière ponctuelles) ou bien un rayon partant dans une direction. (pour les lumières directionnelles)

    Mais je n'ai pas encore trouvé comment détecter si il y a un obstacle entre le rayon et la lumière, donc, je ne fais rien d'autre que de déplacer la caméra à la position de la lumière, et de détecter si il y a une collision dans le zbuffer, si oui, ça veut dire qu'il y a un obstacle entre le rayon et la lumière, donc, je noirci le pixel sur la shadow map, sinon, je laisse le pixel en blanc puis je dessine la shadow map en blend multiply sur la scene.

  11. #111
    Membre émérite
    Avatar de skeud
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 1 091
    Points : 2 724
    Points
    2 724
    Billets dans le blog
    1
    Par défaut
    Normalement, opengl le fait tout seule via la gestion des light shadow. Donc tu ne devrais rien avoir a faire :/.

  12. #112
    Membre éprouvé Avatar de maeiky
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2013
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 201
    Points : 976
    Points
    976
    Par défaut
    Excuser mon peu de connaissance en ombres 3D, mais il me semble que c'est une des choses les plus difficiles à intégrer? Ça ne semble pas se faire tout seul??

    http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/


    D'après ce que je comprend il faut faire un rendu différent pour chacune des lumières, ça me semble très coûteux point de vue performance.

  13. #113
    Invité
    Invité(e)
    Par défaut
    C'est pour ça que je ne compte rendre seulement les ombres avec une seule lumière (le soleil par exemple) et faire une transformation sur les ombres lorsque c'est une autre lumière qui éclaire l'objet la nuit par exemple.

  14. #114
    Invité
    Invité(e)
    Par défaut
    Suite aux problèmes avec le GPU, j'ai noté les idées principales sur papier pour le rendu avec le CPU, maintenant, il faudra trouver une techno qui me permet de faire du traitement d'image par pixel rapidement au niveau du CPU!

    https://lolilolightdevblog.wordpress...ng-motivation/

  15. #115
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 137
    Points
    23 137
    Par défaut
    Citation Envoyé par Lolilolight Voir le message
    il faudra trouver une techno qui me permet de faire du traitement d'image par pixel rapidement au niveau du CPU!
    Je ne suis pas vraiment intervenu ces derniers temps mais là tu me choques.

    Je penses que tu ne saisies pas vraiment la différence matérielle entre un CPU et un GPU.
    Travailler sur des images pixel par pixel sur CPU avec des contraintes de temps aussi importantes, c'est du suicide .

    C'est comme un CPU dernier cri à 1GHz à bien plus de 100€, ne fait pas le poids face à un FPGA à 1MHz (~1€ ?) pour certaines applications.
    GPU a beaucoup de cœurs (plus de 200?) "simples" optimisés pour, entre autre, les MAC (additions de multiplications) en gros faire des traitements d'images/TNS,…
    Contrairement à un CPU qui a des cœurs plus complexes optimisés pour les conditions/boucles (prédiction au branchement, etc…), en gros pour faire tourner des OS.

    Traiter des images sur CPU de la sorte, c'est tout aussi efficace que de faire tourner un OS sur GPU.


    Bon je reste assez vague, mais je pense que tu pars dans la mauvaise direction.

  16. #116
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 397
    Points : 698
    Points
    698
    Par défaut
    En gros, tu veux faire des course de F1, mais comme une F1 c'est compliqué à utiliser et à entretenir, tu vas utiliser ta veille R5 bien robuste... et tu espères être compétitif avec cela

    Remarque, si t'arrives a faire un moteur de jeux qui arrive à tourner correctement en raytracing, cela justifie que le moteur soit payant. Mais comme il y a des gens plus compétents que toi qui bossent sur le raytracing et n'arrivent pas à un tel moteur de jeux, j'ai des doutes sur le résultat

  17. #117
    Invité
    Invité(e)
    Par défaut
    Oui, non, en fait, je pense que je vais charger une image mémoire en fonctions des données sur les sommets que je vais afficher dans les composants, une sorte de pipeline mais avec le CPU.

    Exactement comme le lien sur le ratracing que tu m'as passé.

    Je pense que je n'aurai même pas besoin, de découper les polygones ainsi, je stocke tout dans des buffers et je fais les if côté CPU ainsi le problème est réglé au niveau des if dans le GPU.

  18. #118
    Invité
    Invité(e)
    Par défaut
    Mise à jour de l'article qui montre le vrai problème avec le GPU, et ou j'ai effectué une première approche en revoyant ma solution avec le CPU, qui en fin de compte, ne differt pas beaucoup de la solution avec le GPU hormis le fait que je dois faire la rasterisation moi même.

    Je sens que ça va être super chouette galère.

  19. #119
    Invité
    Invité(e)
    Par défaut
    Et voilà, j'ai pu effectué un rendu avec le cpu. (Je n'utilise opengl que pour afficher la framebuffer)

    https://lolilolightdevblog.wordpress...ng-motivation/

    Je vais maintenant essayer de plaquer une texture dessus, et après d'appliquer un raytracing, il parait que ça donne de super rendus!

  20. #120
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Où peut-on trouver un pointeur vers vos créations ?
    Vous dites être développeur de jeux vidéos, mais je ne vois pas de liens menant à vos œuvres !!
    Ou alors vous êtes encore en phase de conception ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/12/2014, 12h19
  2. Impossible d'acceder à un de mes sites web
    Par torrgovin dans le forum Réseau
    Réponses: 4
    Dernier message: 07/01/2014, 10h04
  3. comment bloquer mes sites web
    Par webamies dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 05/07/2012, 12h49
  4. Connaitre l'etat de mes site web
    Par G4uthier dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 12/07/2010, 11h52
  5. Communication entre mon appli et un site web
    Par Neilos dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/05/2005, 08h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo