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


Re: hARMful engine
OverdOzed
Inscrit:
19/03/2016 15:30
De Belgique
Post(s): 2022
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/2020 17:34
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 3183
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/2020 17:55
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 3183
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/2020 09:54
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 3183
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/2020 01:12
Créer un fichier PDF de la contribution Imprimer


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

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


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 3183
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/2020 00:39
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 3183
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/2020 19:16
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 3183
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/2020 12:28
Créer un fichier PDF de la contribution Imprimer


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

Contribution le : 18/04/2020 16: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): 3183
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/2020 23:22
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
Hors Sujet !! Buy (50 Pieces) New Samsung Galaxy Z Fold4 256GB Unlocked $64,950 Website: www.brianelectronics.com 0 122 Aujourd'hui 14:19:42
emailychang01 
Hors Sujet !! Buy (50 Pieces) Apple iPad Pro 11-Inches 2021 2TB Wifi + Cellular $84,950 0 22 Hier 16:07:53
emailychang01 
Hors Sujet !! Buy (50 Pieces) New Original Unlocked Apple iPhone 13 5G 512GB $34,950 0 37 09/08 14:54:39
emailychang01 
Hors Sujet !! les tutos de Moonboots    [1][2][3]...[30] 297 43900 09/08 14:22:04
debutant 
Questions & Réponses Problème alpha sur le rendu 3 76 09/08 13:27:37
debutant 
Hors Sujet !! Buy (30 Pieces) LG - 55-inch Class C2 Series OLED evo 4K UHD Smart webOS TV (2022) $44,970 0 60 08/08 13:58:45
emailychang01 
Hors Sujet !! Buy(30 Pcs) Package Fujifilm-X-S10 Mirrorless Camera $30,570 Website: www.brianelectronics.com 0 74 07/08 15:23:19
emailychang01 
The Blender Clan 'tchat Avenir du blender clan    [1][2][3]...[42] 419 62507 07/08 14:27:41
ArnaudT 
Hors Sujet !! Buy (10 Pieces) Sony - FE 70-200mm F2.8 GM OSS II Full-Frame Telephoto Zoom G Master Lens $24,990 1 83595 06/08 17:16:33
moonboots 
The Blender Clan 'tchat Enfin ! depuis 20 ans :) 2 207 06/08 15:06:57
stefff285 
Hors Sujet !! Buy(50 Pcs) Optoma CinemaX P2 Home Theater Projector $94,950 Website: www.brianelectronics.com 0 22966 05/08 15:34:27
emailychang01 
Hors Sujet !! Buy (50 Pieces) Samsung Galaxy Tab S8+ 8GB 12.4-inch display Original Wi-Fi Only 128GB $22,500 0 18386 04/08 16:14:48
emailychang01 
Hors Sujet !! Buy(50 Pcs) Mac Studio (2022) M1 Ultra 64GB 1TB SSD $174,950 0 145 03/08 17:10:34
emailychang01 
Questions & Réponses problème sur la texture voulue 3 320 03/08 01:56:09
meltingman 
Hors Sujet !! Buy (50 Pcs) HP ENVY 2-in-1 15-ch i7 16GB 512GB SSD $29,950 0 228 02/08 16:29:43
emailychang01 
Hors Sujet !! Buy (30 Pieces) Plustek - SmartOffice PS3180U Document Scanner - White $15,870 0 199 01/08 17:03:39
emailychang01 
Hors Sujet !! Buy (30 Pieces) Apple iPad Air 10.9-inch (2022) 256GB Wi-Fi + Cellular 17,970 0 189 30/07 15:52:56
emailychang01 
Questions & Réponses Visit Our Website 0 215 30/07 06:16:18
NREKatheri 
The Blender Clan 'tchat Bangalore Service 0 189 30/07 06:13:14
NREKatheri 
The Blender Clan 'tchat Blender Tribu, un nouveau forum 9 1572 29/07 19:04:59
lucky 

Qui est en ligne
149 utilisateur(s) en ligne (dont 71 sur Forums)

Membre(s): 0
Invité(s): 149


plus...
Nouveaux membres
Bernie35T 11/8/2022
EKPOtilia 11/8/2022
GrettaSano 11/8/2022
Chana09A01 11/8/2022
TravisBrew 11/8/2022
KraigWater 11/8/2022
LaurenceCr 11/8/2022
ArturoDown 11/8/2022
AshleighPa 11/8/2022
JennyGorma 11/8/2022
Dernier Ajout
2020-09-24.jpg

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