« 1 2 3 4 (5) 6 7 8 9 »


Re: hARMful engine
OverdOzed
Inscrit:
19/03/2016 15:30
De Belgique
Post(s): 1621
Ah mais je ne remets pas en cause tes choix. Mais comme je ne m'y connais pas du tout dans tout ça, je voulais juste comprendre pourquoi

Donc, si je comprends bien, toutes ces histoire de shaders concerne en particulier la lumière et l'ombrage. Je comprends, par tes explications, que l'on cherche à optimiser, pour pouvoir utiliser un "couteau suisse" portable plutôt qu'une "boîte à outils" bien lourde et encombrante.

De façon imagée, bien sûr . Mais le principe de voir les choses simples est bien .

Donc, en réalité, les deux choses importantes, et la base de tout rendu, sont la forme (de l'objet) et la lumière (appliquée dessus + les textures) ?

On se rapproche à de la prestidigitation

Contribution le : 03/04 17:34:32
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 2387
La base d'une image 3D, ce sont des maths car ce sont les seules choses que sait faire un ordinateur.

Mais oui, pour résumer ce que tu dis :
- la forme de l'objet, c'est de la géométrie et donc un pan des maths ;
- la lumière, c'est de la physique (laquelle n'est presque rien sans maths).

C'est dingue de voir que ces trucs qui nous ont bien fait ch*** à l'école soient aussi belles maintenant !

Contribution le : 03/04 17:55:22
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 2387
Je suis toujours sur les ombres mais ça devrait aller sur la fin !

J'ai encore amélioré les ombres pour qu'elles soient plus robustes (= qu'il n'y ait pas de bugs !). Je prépare une vidéo pour ça mais il me reste encore un dernier détail à régler.

En attendant, voici une capture d'écran car le souci à fixer ne se produit qu'en bougeant la caméra.

Contribution le : 06/04 09:54:45
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 2387
Je reviens avec le lien de la vidéo. J'ai pas encore pu corriger tous les bugs mais les plus gros sont partis ! Et bien sûr la qualité du rendu s'est grandement améliorée avec le filtrage sur les ombres.


https://www.youtube.com/watch?v=BIaklMRR1RQ

Contribution le : 08/04 01:12:26
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
19/03/2016 15:30
De Belgique
Post(s): 1621
Rien à dire, c'est cool

Contribution le : 08/04 08:08:18
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 2387
Je voulais te remercier mais ça me semblait être du spam de juste écrire "Merci".

Alors j'en profite pour dire que j'ai fait un changement assez important dans la façon de coder un programme avec le moteur. Je n'avais pas pensé aux répercussions mais ce changement majeur m'a fait monter le niveau de version afin de souligner l'impact (et le côté "incompatible" de l'ancien code).
Je m'attaque donc aux optimisations plutôt qu'au matériaux PBR comme prévu. Je préfère changer les plans car ce changement va invalider tout programme réalisé avec le moteur. Ce serait bête de coder plus de choses et de devoir les modifier ensuite... En particulier, je pensais intégrer officiellement une caméra de type "fly cam" comme dans la dernière vidéo où j'ai bidouillé grossièrement.

On passe donc à la v2.0 pour la prochaine release !


Dans la v1.0, le scene tree est constitué d'entités. Ces entités comportent des composants (mesh, lumière, caméra, matériaux, ...) et une matrice de transformation locale. C'est la transformation qui posait le gros souci !

En effet le souci de cette structure, c'est que pour le rendu et plein d'autres choses (dont l'éditeur graphique du moteur), c'est pas bon. Il y a plein de cas où j'ai besoin d'un accès à la matrice de transformation globale (world). Pour le rendu seul, je me débrouillais pour calculer ça petit à petit.

Premier souci : à chaque frame, je parcours le scene graph en entier et je refais les mêmes calculs y compris pour les objets qui n'ont pas bougé. Ce manque d'optimisation était tout à fait assumé, passant au second plan. Seulement, j'ai besoin aussi de la matrice world en dehors du rendu !!
La nouvelle façon de faire va améliorer tout ça dans un premier temps, avec un gain de performance qui va avec normalement. Impossible à évaluer pour le moment mais je ferai des benchmarks avant/après.
J'irai ensuite plus loin.

La nouvelle structure inverse les rôles. Le scene tree n'est plus constitué d'entités. Il est constitué de transformations locales. Comme dans Unity, une "transform" est un noeud dans un arbre. Elle a donc accès à son parent direct ET à ses enfants.
La transform possède l'entité qui, elle, possède toujours ses composants.

J'aurais très bien pu ne pas modifier le code et laisser la transform accéder à ses parent/enfants via son entité. Ca faisait quand même un gros détour assez bizarre pour quelque chose de pourtant essentiel au bon fonctionnement du code. Je m'explique.
Une entité a besoin de connaitre ses composants, c'est un fait. Par contre, elle n'a pas énormément d'intérêt à savoir si sa fille a un matériau blanc à pois roses ou une lampe verte.
Une transform par contre a vraiment besoin de connaître sa mère et ses filles. La mère pour lui demander sa matrice world, les filles pour leur dire qu'elle a changé.

Là où ça va apporter un gros bénéfice du coup, c'est que quand une transformation locale change dans l'arbre, ça va se répercuter automatiquement sur ses enfants.
Ainsi, demander la matrice world d'un élément de l'arbre sera beaucoup plus simple et rapide.
C'était un changement indispensable pour la suite du projet.

Contribution le : 10/04 00:39:50
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 2387
Hello,

Attention, y a du lourd. Premier rendu avec matériau PBR. Ca fait classe !

Attendez de voir le résultat avec le matériau par défaut !
https://pasteall.org/media/a/f/afb84430710cb37c67a4d56ddde737ad.png

C'est du classique pour du temps-réel : vecteur de Fresnel (ici approximation de Schlick) et du Cook-Torrance (BRDF / spéculaire). Les termes ne parlent pas forcément mais vous avez pu voir ces noms dans Blender.

Pour simplifier le code, j'ai supprimé les anciens shaders Phong. En gros le PBR permet de faire du Phong si on va voir.

Contribution le : 15/04 19:16:18
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 2387
Hello,

Encore un peu d'améliorations.
Je m'occupe maintenant de charger les différentes textures du matériau PBR (albedo, roughness, metalness, ...) comme pour EEVEE/Unity/UE4 et autres moteurs existants.
C'est un chargement primitif qui cherche dans un dossier précis. Le mieux sera d'avoir une interface graphique pour choisir les fichiers et les organiser comme on le veut.

Je m'attaque maintenant à l'éclairage ambiant à l'aide d'une HDR.
Alors pour l'instant, je ne charge pas du tout d'HDR. J'ai par contre entamé un premier travail qui simplifie grandement l'utilisation d'une cubemap.

Avant, on devait charger les textures de chaque face "séparément" (sous forme de tableau en fait). C'était embêtant quand on avait une cubemap en une seule texture.

Maintenant, le découpage des différentes faces se fait directement par le code, on n'a plus qu'à entrer une seule image pour la cubemap.
Par exemple celle-ci (la disposition des faces est importante par contre) :


Le résultat de tout ceci (PBR et cubemap entière) est ici.
Je précise encore que l'éclairage n'est pas assuré par la cubemap, j'utilise ici une lampe identique au type "Sun" de Blender.



Le but est maintenant de charger une cubemap au format HDR. De là, je pourrai procéder à de l'éclairage via l'image cubemap et les reflets de celle-ci sur les objets. Ca sera sans doute l'occasion de vous montrer les résultats !

Quand ça marchera, je verrai si je peux convertir une HDR en "projection cylindrique équidistante" ("equirectangular" en anglais) vers une cubemap afin de faciliter d'autant le chargement de ces fichiers.

Contribution le : 18/04 12:28:20
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
19/03/2016 15:30
De Belgique
Post(s): 1621
Rien que ça, ça a l'air réaliste !

Contribution le : 18/04 16:32:44
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 2387
Merci Redstar !! J'avais aussi cette impression mais c'est toujours mieux d'avoir un avis extérieur.
Il y a encore quelques trucs que j'ajouterai aux shaders. Je pense par exemple au rendu de peintures de voitures et aux tissus. Il y a aussi tout ce qui est anisotropie comme ça : https://google.github.io/filament/images/material_anisotropic.png .
Google a fait pas mal de documentation pour son projet open-source Filament, c'est une mine d'or !

Juste en passant, j'arrive à charger une HDR et à l'afficher. Je fais pas un nouveau screenshot, on ne voit pas la différence à l'écran. Par contre, l'intérêt se situe dans les données de la HDR pour l'éclairage (ce que ne permet pas un fichier JPEG ou PNG).

Pour l'instant, je ne vais pas me lancer dans la conversion d'une HDR project... machin vers cubemap. Je pense que je ferai ça du côté de l'éditeur car il me semble que la conversion pourrait prendre beaucoup de temps. J'aimerais donc traiter l'image avant de lancer un jeu par exemple.


Ce tabouret est rendu uniquement avec sa texture de couleur, la normalmap et l'équivalent d'une specularmap. Le moteur gère plus de données encore, mais ici je n'en avais pas besoin. Il n'y a que la "height map" que je ne sais pas encore exploiter.

J'utilise un modèle libre de droit issu de Model Haven. Le rendu me semble similaire à celui exposé. Bizarrement, dans Blender il est beaucoup plus brillant donc il faudra que je regarde ce que j'ai mal configuré dans EEVEE.
https://3dmodelhaven.com/model/?c=interior%20design&m=WoodenTable_02

Le site propose encore assez peu de contenu mais il est totalement libre et donc parfait pour publier mon code de démo sur GitHub !
D'ailleurs, j'ai utilisé une des HDR du même site mais convertie en cubemap avec un outil externe.
https://hdrihaven.com/hdri/?c=indoor&h=entrance_hall

J'ai aussi essayé le rendu d'un pistolet qui possède des surfaces métalliques (aux propriétés légèrement différentes) et ça semblait bon. Mais pour l'instant, c'est pas très intéressant à montrer. Il faudra attendre les reflets ! Là aussi, je n'ai pas réussi à avoir un rendu correct avec EEVEE, en utilisant pourtant les mêmes textures...

Contribution le : 18/04 23:22:20
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant
« 1 2 3 4 (5) 6 7 8 9 »




Enregistrer votre réponse
Compte*
Nom   Mot de passe   Authentification
Message:*



[Recherche avancée]



Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
[WIP] et travaux terminés Un cout extrait d'un vidéo clip en préparation 2 41 Aujourd'hui 12:59:03
moonboots 
Mes premières images sous Blender (débutants) Sculpture d'un visage 2 26 Aujourd'hui 12:55:52
moonboots 
Questions & Réponses symétrie et asymétrie 1 18 Aujourd'hui 12:41:28
FoxRock 
Moteur de jeu GameBlender et alternatives [non résolu] Cs (heliport, telecom, dunes)    [1][2][3]...[47] 461 137083 Aujourd'hui 12:30:16
Redstar 
Questions & Réponses [non résolu] Problème de grésillement des textures lors de l’animation 5 126 Hier 23:26:03
Rimpotche 
Moteur de jeu GameBlender et alternatives [WIP] DeadSigns FPS horreur - Première version disponible !    [1][2][3]...[59] 587 99173 Hier 20:20:49
Hook 
[WIP] et travaux terminés [WIP] Teeny Tiny - Story    [1][2][3]...[6] 55 4463 Hier 12:39:46
Bibi09 
Questions & Réponses Rendu 3D à base de STL 0 55 12/08 21:04:04
GuillaumeT 
Questions & Réponses [résolu] cloth: déformation bizzarre au rendu 5 156 12/08 19:08:26
Arielboid 
Questions & Réponses [résolu] Objets invisible dans la camera view 4 88 12/08 15:12:19
Arielboid 
Questions & Réponses Modélisation d'un monument pour casque de réalité virtuelle 3 73 12/08 13:31:08
Hook 
Questions & Réponses Fps blender 8 83 12/08 12:15:25
prometheusx 
Questions & Réponses [résolu] Copier propiétés UV d'une face à une autre 4 93 12/08 10:24:51
Rimpotche 
Questions & Réponses "Mirrorer" un objet et merger les vertices 6 70 11/08 17:29:00
moonboots 
Questions & Réponses [résolu] Diminuer le nombre de faces 3 98 11/08 11:21:18
Horemheb 
Questions & Réponses Comment nettoyer le LNA ? 6 134 11/08 07:45:07
moonboots 
Questions & Réponses Je bloque sur la modélisation de ce verre! Avez-vous une solution? 9 418 10/08 20:57:57
JaAlVir657 
Questions & Réponses Fractal et nombre de vertice 0 58 10/08 20:10:30
kimlicrea 
[WIP] et travaux terminés [WIP] Tutoriel vidéo et création de mon prochain court métrage 5 313 09/08 20:25:01
Meltingman2 
Questions & Réponses switch entre IK/FK 4 96 08/08 18:54:05
prometheusx 

Qui est en ligne
228 utilisateur(s) en ligne (dont 152 sur Forums)

Membre(s): 5
Invité(s): 223


RamonRix62, LeonoraFun, LashawnFre, DiannePre9, ElveraI759, plus...
Nouveaux membres
CortneySou 14/8/2020
LenaOml330 14/8/2020
NildaH327 14/8/2020
JerryHyam 14/8/2020
BuckWood12 14/8/2020
AntwanHerz 14/8/2020
CesarMills 14/8/2020
DoreenHupp 14/8/2020
RamonRix62 14/8/2020
JoniTuck81 14/8/2020
Dernier Ajout
mirages-preview~0.jpg

Evènements à venir
(continuer) - Aou 14
Anniversaire Siskas
Sep 8
Anniversaire de ang
Nov 18
Anniversaire de RichDeg
plus 266 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2020 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445