Connexion
Menu Principal
Recherche
Menu secondaire
Image Aléatoire
rochersbc.jpg
Publicité
Formation Blender ElephormBlender 3d Elephorm


     




(1) 2 »


Gestion nombreuses herbes
OverdOzed
Inscrit:
27/12/2012 00:15
Post(s): 386
Salut à tous.

Actuellement, en train de faire une grande map je me heurte à un problème de performance concernant l'herbe.

J'ai à peu près 2 000 objets représentant de l'herbe ayant chacun 48 vertices (plusieurs touffes à chaque fois)
Il s'agit de la même géométrie et du même material dupliqués avec une texture 1024px.
Ils sont tous animés avec des shapes keys pour représenter une légère brise. Ils ont donc une ligne de brique logique.
Ils sont tous évidemment en no collision en ce qui concerne la physique.
Je n'utilise pas le clipping de la caméra.

Voilà la situation :D

Désormais et étant donné que la perf en prend un coup à cause de tout ces petits vertices qui gigotent, je souhaite trouver des astuces pour alléger sans altérer l'aspect graphique.

J'ai pensé à un script pour virer toutes ces lignes de briques logiques. Du style, si tel objet à cette propriété, exécuter tel animation. Je devrais donc leur mettre à tous cette propriété. Je me demande si je pourrais pas identifier autre chose comme le material ce qui m'eviterais d'ajoutais une property. J'aurais besoin de votre avis.

Sinon j'ai aussi pensé à réunir toutes mes herbes en un mesh unique. Ce qui fonctionne car l'animation en shape key est sauvegardée mais le problème c'est que je ne pourrais plus y toucher ensuite. Je pourrais plus en ajouter à moins de refaire à chaque fois l'animation pour chaque herbes ajoutées. Là aussi j'ai besoin d'avis.

Autre idée, faire en sorte que l'animation des herbes ne démarrent qu'à partir d'une certaine distance ou carrément ne les faire apparaitrent qu'à partir de cette certaine distance.

Bref, je cherche des solutions et des astuces pour gérer ce problème en évitant les trucs bateaux du genre, faut supprimer tu en as de trop

Contribution le : 07/09/2017 10:35
_________________
Blog ; http://anarchie-jeu.over-blog.com
Créer un fichier PDF de la contribution Imprimer


Re: Gestion nombreuses herbes
OverdOzed
Inscrit:
18/02/2015 21:28
De Bruxelles
Post(s): 350
Tu devrais chercher sur youtube: j'avais vu une vidéo qui expliquait comment faire de l'herbe non pas à partir d'un mesh mais d'une image, que tu places sur un plan, que tu dupliques et tourne pour otenir deux plans à 90°. L'image est sur fond transparent(canal alpha etc), donc tu ne vois pas un rectangle mais juste l'herbe, et ce, de toutes les directions. Pour l'animer, par contre, cela impliquera de transformer ton image en animation.

Contribution le : 07/09/2017 11:13
Créer un fichier PDF de la contribution Imprimer


Re: Gestion nombreuses herbes
Fou Furieux du Clan
Inscrit:
25/01/2012 13:24
Post(s): 192
Hello,
Dans le même esprit, tu peux utiliser les plans d'herbe comme évoqué par Melo, y mettre le point de pivot a la base et juste jouer sur la déformation du mesh via shape key ou autre (je ne suis pas du tout au fait des faisabilités du blendergame)

Aussi pour encore économiser en poly/texture, les plans peuvent être utilisés en billboard (orienté vers la caméra en gros), c'est old school mais sur l'herbe lointaine ça suffit largement

Enfin, la texture en 1024 me semble un peu grande pour un brin d'herbe, a voir si tu ne peux pas utiliser de mipmap pour optimiser tout ça (c'est peut être déjà ce que tu fais)

Sinon un coup de tondeuse a gazon et hop :P

Contribution le : 07/09/2017 11:53
Créer un fichier PDF de la contribution Imprimer


Re: Gestion nombreuses herbes
OverdOzed
Inscrit:
27/12/2012 00:15
Post(s): 386
J'utilise en effet des plans avec de l'alpha et de la transparence pour l'herbe. Quand je dis 48 vertices il s'agit de 12 fois 4 vertices (les plans)

L'animation est faite avec les shape keys et le pivot est bien au niveau de la base. Par contre je n'utilise pas le billboard.

En fait, le problème n'est pas vraiment à ce niveau mais plutôt dans la gestion massive d'herbes. Mon environnement est assez grand à vrai dire.

Contribution le : 07/09/2017 12:28
_________________
Blog ; http://anarchie-jeu.over-blog.com
Créer un fichier PDF de la contribution Imprimer


Re: Gestion nombreuses herbes
OverdOzed
Inscrit:
27/12/2012 00:15
Post(s): 386

Contribution le : 07/09/2017 12:35
_________________
Blog ; http://anarchie-jeu.over-blog.com
Créer un fichier PDF de la contribution Imprimer


Re: Gestion nombreuses herbes
Fou Furieux du Clan
Inscrit:
25/01/2012 13:24
Post(s): 192
Dans un temps reculé (ça date de la 2.48, c'est dire !) on utilisait des instances pour faire des brin d'herbe, ça permettait de gagner en performances sur les petites machines
En gros on fonctionnait un peu comme les systèmes de particules, on crée l'objet de référence et on place des empty la ou on veut faire apparaître de l'herbe

Je ne sais pas si ça peut t'aider mais ça reste une piste

Contribution le : 07/09/2017 14:04
Créer un fichier PDF de la contribution Imprimer


Re: Gestion nombreuses herbes
OverdOzed
Inscrit:
19/03/2016 16:30
De Belgique
Post(s): 1389
Personnellement, le mieux que je puisse conseiller, c'est de faire des groupements de plusieurs mesh en un seul objet (arbre, plantes, etc.) et ensuite leur mettre un LOD.

J'ai fais générer une grille qui me sert de canevas pour séparer ces différents groupe, c'est super pratique.

Ce qui m’inquiète, c'est le process animation: tu devra, à mon avis, les désactiver selon la distance. Je ne pense pas que tu puisse filtrer par matériaux tes objets pour python.

Si on rajoutes les shapekeys + les armatures là ou ton personnage se trouve, la question est: "ce sera fluide ou pas" ?

Pour le rendu final, j'ai deux scènes: la première contient tout mes objets "finaux" et la deuxième est une instance de tout ces objets finaux (il y a juste la camera et l'empty pour ajouter mon personnage).

Contribution le : 07/09/2017 14:18
_________________
Mon projet jeu vidéo
Mes tutos
Créer un fichier PDF de la contribution Imprimer


Re: Gestion nombreuses herbes
OverdOzed
Inscrit:
27/12/2012 00:15
Post(s): 386
Sziuny, en fait j'utilise UPBGE et il propose une option pour des instances afin d'économiser en ressource. Ce qui est bien utile.

Ok Redstar. J'ai observé les derniers jeux récemment sortie (FF15, Star Océan 5..) les herbes sont gérées dynamiquement dans les decors larges. Elles disparaissent selon la distance à première vue.

Sinon c'est une bonne idées de faire un système de grille en regroupant différents objets et en ajoutant des LOD.

Dans un premier temps, je vais essayé de faire un script pour que les anims s'arrêtent selon la distance.

Contribution le : 07/09/2017 15:41
_________________
Blog ; http://anarchie-jeu.over-blog.com
Créer un fichier PDF de la contribution Imprimer


Re: Gestion nombreuses herbes
OverdOzed
Inscrit:
27/12/2012 00:15
Post(s): 386
Bon j'ai récupéré mes 60 FPS assez étrangement ou du moins je viens de découvrir la chose.

Ça pourrait vous être utile au cas où.

J'avais créer une animation pour des arbres haut poly avec une armature à plus de 500 os. Elle influait sur beaucoup de branches. J'ai repris le modèle et j'ai low polysé le tout. Le tronc, les branches, le feuillage et l'armature en elle même que j'ai réduit à 6 os.

Dans l'animation en elle même par contre me restais les channels des anciens os qui avait été supprimés et à première vue, surprise, même si les os ont été supprimés cela bouffé les performances en jeu.

Il faut donc supprimer les channels qui ne sont plus utilisés pour gagner en performance

Néanmoins, même si cela tourne sur mon PC j'aimerais optimiser et donc la question principale demeure =)

Contribution le : 07/09/2017 17:29
_________________
Blog ; http://anarchie-jeu.over-blog.com
Créer un fichier PDF de la contribution Imprimer


Re: Gestion nombreuses herbes
Fou Furieux du Clan
Inscrit:
07/04/2013 11:31
Post(s): 143
Salut Anarchy62,

Si tu utilises le UPBGE regarde du coté de la "Geometry instancing", ça fait gagner pas mal de fps(mais il faut que l'objet soit statique).
voilà deux liens:
https://doc.upbge.org/releases.php?id=0.0.4
https://www.youtube.com/watch?v=RmMOXxTulqQ

Sinon il y a aussi le mesh batching qui fait gagner des fps, si j'ai bien tout compris quand le jeu se lance il regroupe tout les mesh avec
les même matérials en un seul objet.
https://doc.upbge.org/releases.php?id=0.1.4
https://www.youtube.com/watch?v=98G5bQ_JLro

Et pour finir il y a ce shader
https://blenderartists.org/forum/showthread.php?370844-Procedural-Grass-Geometry-Shader-GLSL-4-0-v-3-amp-amp-GLSL-1-5-v-2-AMD-fully-supported!
par contre là je ne sais pas ce qu'il faut, mais il a l'air pas mal.

Voilà je s'espère que ça va t'aider.

Contribution le : 07/09/2017 20:21
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant
(1) 2 »




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
Moteur de jeu GameBlender et alternatives Problème Visual Studio Code dans Armory3D 6 55 Aujourd'hui 00:10:09
Black_Panther 
[WIP] et travaux terminés [WIP] Bataille Navale // Animation 3d    [1][2] 19 593 Hier 17:20:10
Guppy88 
Questions & Réponses [résolu] Duplication de groupe dans Blender 2.8?    [1][2] 10 181 Hier 14:50:51
Fracoris 
Questions & Réponses Tutoriel: La duplication de groupe (vidéo) 0 22 Hier 14:47:35
Fracoris 
Questions & Réponses Aide UV mapping. Détordre le mappage!    [1][2] 11 124 Hier 14:25:23
busanga 
[WIP] et travaux terminés [terminé] VFX Harry Potter 6 189 18/10 21:58:47
moonboots 
Questions & Réponses Où mettre un Tutoriel? 3 103 18/10 21:57:39
moonboots 
Questions & Réponses [non résolu] Scale "mode objet" ne tient pas compte des axes du repère personnalisé    [1][2] 15 271 18/10 13:50:21
paquetdemouchoirs 
Questions & Réponses [WIP] Comment modifier le diamètre d'un cercle    [1][2] 15 262 18/10 13:05:39
busanga 
Questions & Réponses [résolu] Faire apparaître les boutons de la souris sur l'écran ? 4 138 18/10 10:15:42
Fracoris 
The Blender Clan 'tchat Présentation OlivierL. 3 135 17/10 11:58:05
Gilead_Maerlyn 
The Blender Clan 'tchat [Recrutement] 3D artists & animateurs pour jeu de simulation spatiale 3 349 15/10 22:55:21
ThePioneers 
Questions & Réponses Transférer une chevelure 0 106 15/10 13:44:40
Horemheb 
Questions & Réponses [résolu] Ne pas voir une partie d'un objet lors du rendu 9 258 15/10 13:07:02
Horemheb 
Questions & Réponses Blender 2.8 et Unity 4 202 14/10 13:30:42
Hook 
Python & Plugins [résolu] Comparaisons d'un ensemble de valeurs    [1][2] 10 383 14/10 09:31:56
makhaon 
Questions & Réponses [résolu] Rendu avec eevee, scène toujours lumineuse même sans lights. 2 202 12/10 22:17:48
Obaemon 
Questions & Réponses [non résolu] renderman Blender problème de connexion 2 204 12/10 19:18:54
tokoji 
[WIP] et travaux terminés [WIP] Nécromancienne sur sanglier    [1][2][3]...[6] 55 14339 10/10 18:45:51
Gilead_Maerlyn 
Moteur de jeu GameBlender et alternatives [résolu] BGE - son 3D, cône inner angle 1 233 10/10 15:35:54
Redstar 

Qui est en ligne
57 utilisateur(s) en ligne (dont 37 sur Forums)

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


plus...
Nouveaux membres
KellyNewqu 20/10/2019
DeneseNevi 20/10/2019
thecake 18/10/2019
OlivierL 16/10/2019
Obaemon 12/10/2019
ALK-chimiste 12/10/2019
Sinus 12/10/2019
thelight 10/10/2019
thelightoi 10/10/2019
nathanrogee 6/10/2019
Dernier Ajout
Forky-3D-ToyStory BC.png

Evènements à venir
Nov 18
Anniversaire de RichDeg
Dec 29
Anniversaire d'ebrain
Jan 11
BUG de Lyon
plus 278 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2019 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445