[Programmation] - NearlyRealEngine

Discussion dans 'Hors sujet' créé par Solasis, 21 Novembre 2017.

  1. Solasis

    Solasis Informaticien en devenir

    Alors après quelques heures à optimiser des petites choses et autres voici le résultat
    Je n'ai toujours pas fini d'optimiser car ils me restent encore certains aspect à améliorer

    Donc avant l'optimisation on avais :
    5 Fps pour 1 million de cube
    [​IMG]
    Maintenant :
    5 Fps ... pour 10 million de cube !
    [​IMG]

    Bien évidemment il n'y aucun effet graphique ni autre pour l'instant mais cela montre que l'optimisation marche bel et bien :)

    La plus grosse optimisation porte sur la montagne de donnés qui étaient envoyé via le bus de donnée vers la GPU
    La seconde portait sur le transfert des données avant l'envoie lui même.

    Ils ne me restent qu'à améliorer la gestion des éventements qui laissent à désirer je trouve en terme de performance, et quelques revue de code rapide et je serais bon.
    Zaryen, Gwynyam et tyazze aiment ça.
  2. Pikayoda

    Pikayoda L'hybride de l'espace !

    On est d'accord pour dire que jamais au monde, autant d'entités ne s'afficheront à l'écran ou seront même présente en même temps ?

    Je trouve ça dingue perso.
  3. Solasis

    Solasis Informaticien en devenir

    Bien évidemment que non ^^
    10 Millions de cube représente environ 36 Millions de points affichés en même temps, et ce sont des petites entités. Il n'y a pas encore d'optimisation qui réduise la charge d'affichage et encore moins d'effet graphique qui vont réduire ce nombre

    Mais voilà sa me permet de voir la puissance de mon optimisation.
    En terme de ms/frame, on est passé de ~8ms/frame à ~0.5ms/frame (Pour 10'000 cubes, ce qui est plus représentatif de ce qui y'aura à l'écran), ce qui est ... énorme ^^
  4. Solasis

    Solasis Informaticien en devenir

    Et voilà !
    Lumière, PBR, SkyBox, Normal Mapping, SSAO, ... tous est remis ^^
    [​IMG]

    De même que le chargement de modèle :
    [​IMG]

    Et tout cela d'une simplicité énorme par rapport à l'ancien moteur !
    Il ne reste plus que les mondes à remettre et j'aurais rattraper ce que j'avais déjà fait, mais la chose intéressante c'est que j'ai 15000+ lignes de code en moins avec le nouveau moteur ! :)
    Une sacré optimisation ;)
  5. MaelstromX9

    MaelstromX9 Ingénieur Steampunk

    Ne parle pas d'optimisation, tu va déclenché le syndrome poste traumatique de tout ceux qui ont jouer sur starmade assez longtemps :confused:.
    Et puis tu avais a faire le penseur hein xD

    Good job sinon, il est bien avancé du coup maintenant non? En tout cas, il en a l'air. Tu nous fais rêver nous pauvre incultes de l'informatique, qui somme heureux quand notre "tant que" fonctionne sans faire crash tout l’algorithme.
    Zaryen aime ça.
  6. Tipuik

    Tipuik Buildeur fou Archiviste

    opti... Opti... OPTI... OPTIIIII!!!!! Blblblblblblblblblblbl

    *part en courant en caleçon, un entonnoir sur la tête*
  7. Solasis

    Solasis Informaticien en devenir

    Du coup il est bien avancé ouais ^^ Là je m'attaque à la reconstruction des mondes voxels :)
  8. Solasis

    Solasis Informaticien en devenir

    Me revoilà ! Après une dizaine de jours, j'ai bien avancé sur le moteur :
    Premièrement : J'ai rajouté l'algorithme de génération des chunks :
    [​IMG]

    Deuxièmement : J'ai retravailler le générateur de monde :
    [​IMG]
    Qui n'est plus le même qu'avant, et je le trouve plus sympathique !

    Et enfin un truc que je n'arrivais plus à faire marcher dans l'ancien moteur : Les Ombres Dynamiques ! [​IMG]
    Mon petit ordinateur en souffre un peu car là il y a SSAO + Shadow, ce qui donne 3 rendu de la géométrie ce qui est un peu lourds, mais je vais optimiser tous ça sous peu.

    En tout cas je suis sacrément content d'avoir pu les rajouter, de plus avec une grande facilité :)
    La suite va donc porté sur des optimisations, et ensuite je pense partir sur les interactions avec le monde
  9. Solasis

    Solasis Informaticien en devenir

    Alors ! Une bonne semaine de travail pour pas grand grand chose, je suis resté bloqué sur un bug pour un petit moment !
    Mais bref, désormais les effets graphiques sont désormais désactivables in-game !

    La technique est simple, chaque effets graphiques est stockés dans son fichiers (pour les shaders), et des variantes des shaders sont créer en ajoutant ou non cette effets (Pas de SSAO, Pas d'ombres, ...), ce qui est bien c'est que chaque shaders tire désormais leur code de fichiers séparés me permettant d'avoir plein de shaders ayant la même fonction via 1 seul fichier, ce qui est plus facile à maintenir !
    Il ne reste qu'à switch la variante du shader au cours de l'exécution, c'est donc totalement transparent ! :)
    MaelstromX9, Pikayoda et tyazze aiment ça.
  10. Solasis

    Solasis Informaticien en devenir

    Coucou tous le monde ! Une petite semaine de travail en plus !
    J'ai pas mal optimisé le code existant, j'ai notamment revue une grosse partie du module OpenGL, le résultat est net, +20fps ^^
    Mais ce n'était qu'une première optimisation, elle me permet surtout de pouvoir tester mon moteur avec tous les effets actifs sur mon petit pc.

    Après avoir fais ces changements, j'ai mis à jour la documentation :
    [​IMG]

    Un peu près 200 classes, pour ~35 000 lignes de code (Doc comprises) !
    Je suis actuellement en train de refaire les diagrammes UML de mes modules, histoire de les tenir à jour !

    Pour la suite je vais sois voir pour une dernière optimisation OpenGL, une que je n'ai jamais testé pour cela que sa me tente bien, sois voir pour bosser sur les mondes !

    Je vais essayer de vous développer un petit jeu pour Noël :)
    J'ai mis à jour le premier post, il datait un peu ^^
    Pikayoda aime ça.
  11. falco708

    falco708 Wonderbolt

    Coucou Solasis ravis de voir que ton projet avance bien tu as énormément de courage de continuer à développer un gros truc comme ça, je pense que j'aurais abandonné ou me serais lassé en quelques jours :)
    Hâte de voir ton petit truc de Noël je serais heureux de te donner les perfs que j'obtiens sur mon pc si jamais tu es curieux de savoir ce que ton moteur donne selon les gpu.
    Solasis aime ça.
  12. thepecnocrat

    thepecnocrat médiateur a la retraite

    Du coup j'avais totalement oublié de te dire mais il y a un des "Graal" de la rendue basé physique qui est sortit sur internet en accès libre (par les auteurs hein, c'est pas illégal du tout^^). Il est très bien expliqué et très bien détaillé tant au niveaux des différentes implémentation que de la physique qui est derrière. Et ce allant jusqu'à la techno plus ou moins actuelle.

    Il y a pas que du temps réèl par contre, c'est principalement pas du temps réel d'ailleur, alors fais gaf à ce que t'implémente ^^

    http://www.pbr-book.org/3ed-2018/contents.html

    PS : Ah et ils ont aussi un gitHub: https://github.com/mmp/pbrt-v3/
  13. Solasis

    Solasis Informaticien en devenir

    Super sympa, faut que je m'y intéresse quand j'améliorerais le rendu graphique
    Pour l'instant je garde ce que j'ai, ce qui n'est pas trop mal ^^

    Là j'suis plutôt partis sur les fonctionnalités lié au monde

Partager cette page