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


Re: hARMful engine
OverdOzed
Inscrit:
19/03/2016 15:30
De Belgique
Post(s): 1637
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): 2548
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
_________________
Venez tester notre projet de Blender Clan 2.0 + Tchat (en cours de développement) !
Pourquoi ? Retrouver un forum fonctionnel.
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 2548
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
_________________
Venez tester notre projet de Blender Clan 2.0 + Tchat (en cours de développement) !
Pourquoi ? Retrouver un forum fonctionnel.
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 2548
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
_________________
Venez tester notre projet de Blender Clan 2.0 + Tchat (en cours de développement) !
Pourquoi ? Retrouver un forum fonctionnel.
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
19/03/2016 15:30
De Belgique
Post(s): 1637
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): 2548
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
_________________
Venez tester notre projet de Blender Clan 2.0 + Tchat (en cours de développement) !
Pourquoi ? Retrouver un forum fonctionnel.
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 2548
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
_________________
Venez tester notre projet de Blender Clan 2.0 + Tchat (en cours de développement) !
Pourquoi ? Retrouver un forum fonctionnel.
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
23/02/2006 18:10
De Alpes-Maritimes
Post(s): 2548
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
_________________
Venez tester notre projet de Blender Clan 2.0 + Tchat (en cours de développement) !
Pourquoi ? Retrouver un forum fonctionnel.
Créer un fichier PDF de la contribution Imprimer


Re: hARMful engine
OverdOzed
Inscrit:
19/03/2016 15:30
De Belgique
Post(s): 1637
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): 2548
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
_________________
Venez tester notre projet de Blender Clan 2.0 + Tchat (en cours de développement) !
Pourquoi ? Retrouver un forum fonctionnel.
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 La mare aux canards    [1][2] 10 97 Aujourd'hui 17:45:24
Rimpotche 
The Blender Clan 'tchat Benchmark EEVEE    [1][2][3] 24 727 Aujourd'hui 14:37:08
Bibi09 
[WIP] et travaux terminés Différents rendus 2.91 9 131 Aujourd'hui 12:05:20
Bibi09 
Questions & Réponses Render Layers qui n'apparaissent pas    [1][2] 10 100 Aujourd'hui 11:02:12
HarDrive 
Questions & Réponses Problème perso qui bouge des 2 côtés qu'avec 1 coté de l'armature et pas de l'autre    [1][2] 12 1881 Hier 15:14:53
Rimpotche 
The Blender Clan 'tchat Avenir du blender clan    [1][2][3]...[13] 123 8009 Hier 11:39:51
Bibi09 
Hors Sujet !! Nouveau tutoriel : Animation labiale simplifiée 2.9 3 68 Hier 10:07:35
moonboots 
Questions & Réponses [résolu] Problème avec les addons 2 76 Hier 09:42:19
Lamoyse 
Questions & Réponses SCAN 3D - Carrière - animation 6 82 Hier 07:23:48
Versatil 
Questions & Réponses [résolu] Texture Image en noir dans le rendu 3 265 23/09 15:10:30
Horemheb 
Moteur de jeu GameBlender et alternatives [non résolu] Cs (vaisseau)    [1][2][3]...[47] 467 140064 23/09 13:20:39
sbkodama 
Questions & Réponses [non résolu] Move to collection 8 107 22/09 21:15:48
JaAlVir657 
Questions & Réponses Boids, boids, boids...    [1][2] 18 327 22/09 20:53:24
JaAlVir657 
Python & Plugins [WIP] Transportation Add-on pour Blender 5 311 22/09 20:12:35
ferrari6 
[WIP] et travaux terminés Blender 2.9 les outils du sculpte 0 57 22/09 19:51:11
meltingman 
[WIP] et travaux terminés [WIP] Kanata et personnage secret coucours Blender 3D France    [1][2][3] 25 344 22/09 19:19:34
meltingman 
Questions & Réponses [non résolu] Simulation Tissu Temps Reel    [1][2] 14 242 22/09 16:57:22
ThierryT 
[WIP] et travaux terminés [WIP] Teeny Tiny - Story    [1][2][3]...[10] 99 7610 21/09 16:28:45
meltingman 
Le coin des geeks gain de fluidité viewport entre ryzen 3900X et 3950X    [1][2][3] 27 584 21/09 12:12:59
papillon 
Le coin des geeks Ralentissement du chargement de Blender 8 192 20/09 17:43:54
Rimpotche 

Qui est en ligne
84 utilisateur(s) en ligne (dont 56 sur Forums)

Membre(s): 1
Invité(s): 83


ebrain, plus...
Nouveaux membres
RoccoMathe 25/9/2020
KaySkertch 25/9/2020
TerraWoodr 25/9/2020
Dacia4412 25/9/2020
KazukoKula 25/9/2020
DouglasKea 25/9/2020
GennieSly 25/9/2020
FranklinCh 25/9/2020
ArielleHed 25/9/2020
RollandFar 25/9/2020
Dernier Ajout
mirages-preview~0.jpg

Evènements à venir
Nov 18
Anniversaire de RichDeg
Dec 29
Anniversaire d'ebrain
Jan 9
BUG de Lyon
plus 264 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