Historique des modifications - Message

Message #1009

Sujet: Discussion sur les Scenes Nodes [Grass / Tree]


Type Date Auteur Contenu
Création du message 07-01-2007 20:52:13 Jerry Kan
je copie colle la discussion sur les scene node irrlicht que nous avons eu a la suite du tuto 3DS max :


"Willikus" Ecris:

Une question : ya t'il un moyen de rendre une telle scène sans avoir un fichier 3d de 450.000 polys dans un programme ? (un peu comme oblivion)

"Jerry Kan" Ecris:

[quote=Willikus]Sympa l'herbe !
Une question : ya t'il un moyen de rendre une telle scène sans avoir un fichier 3d de 450.000 polys dans un programme ? (un peu comme oblivion)

jamais joué a oblivion,
mais il y a une grass scene node sur le forum irrlicht officiel (en anglais)
on peut parametrer pas mal de choses pour pas trop faire soufrir les performances, comme la densité de l'herbe, la distance a laquelle est affichée, la force du vent dans l'herbe et la période (d'oscillation des herbe)

avec tout les parametres au max je tombe quand meme a 12 fps, mais en restant raisonnable ca me fait du 70/100 fps

c'est disponible ici : http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=10762&highlight=grass

il y a aussi une tree scene node dont le rendu et les fonctionnalités sont renversantes, on peut a volonter augmenter / diminuer le diametre des branche, la quantité de ramifications, le nombre de feuilles, le style de l'abre, et chaque fois l'arbre généré est différent, c'est dispo la :
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=10909&highlight=grass[/quote]

Copland Ecris:

Hello,le TreeSceneNode est pas mal mais hélas ça s'arrete là, ça génère des arbres vraiment pas optimisé niveau polygones, donc je ne vous le conseille pas si vous voulez faire des forets big_smile.Sinon le grassSceneNode je le trouve pas mal du tout smile.

Willikus Ecris:

Même si la on s'éloigne du sujet, (et c'est le but des forums smile)

Ok, j'abuse, j'ai pas lus tout le code... mais pour aider un pauvre programmeur un peu nul a perdre trop de temps :

  • Les fichiers joints :

  • CGrassPatchSceneNode.h
  • CGrassPatchSceneNode.cpp
  • CWindGenerator.h
  • IWindGenerator.h


Doivent ils êtres modifiés pour les appliquer a son programme (zone d'effet, puissance du vent, textures, ... a ce que j'ai compris c'est depuis le main mais ...).

Sinon, c'est très sympa (Oblivion a un truc comme ça, sans doutes un peu plus optimiser et moins dense)

Le tree generator, un peu moins bien (temps de génération des arbres variables, parfois très long !)

Le "grassnode" utilisent il la carte graphique ou le CPU ?
Parce que j'ai une bonne carte graphique et j'arrive pas a le tourné a fond ?!

Enfin, c'est pas important...


Pour ce post de plus en plus HS, je ne vous force en rien a répondre smile surtout qu'avec un peu de temps, j'aurais sans doute pu y répondre.

Aranoth Ecris:

Le mieux que tu puisses faire est regarder l'exemple fournis avec le GrassSceneNode, tout y est bien commenté et expliqué.

Le "grassnode" utilisent il la carte graphique ou le CPU ?
Parce que j'ai une bonne carte graphique et j'arrive pas a le tourné a fond ?!

L'affichage utilise le GPU, mais la gestion de l'herbe doit être du ressort du CPU.

Willikus Ecris:

oki et merci pour ces 2 infos

Jerry Kan Ecris:

[quote=Willikus]Même si la on s'éloigne du sujet

c'est sur, ..


Willikus Ecris:

Doivent ils êtres modifiés pour les appliquer a son programme (zone d'effet, puissance du vent, textures, ... a ce que j'ai compris c'est depuis le main mais ...).

euh ben non, tout ce que tu peux vouloir faire est gérable depuis le main, si tu as lancé l'exemple, tu as pu constater que l'on peut regler ces parametres avec les touches du clavier

et dans le main.cpp tu trouve la fonction qui récupere les evènements claviers ( bool OnEvent(SEvent event) )
et dedans, tu trouve pour chaque touche les appels qui vont bien,

en pratique :
scene::IWindGenerator *wind ;
scene::CGrassPatchSceneNode single_grass; 

wind = scene::createWindGenerator( 30.0f, 3.0f );
single_grass = new scene::CGrassPatchSceneNode(false, smgr->getRootSceneNode(), smgr, -1, core::vector3d<s32>(x,0,z), "grass", heightMap, textureMap, grassMap, terrain, wind);;

single_grass->setMaxDensity(Grass[n]->getMaxDensity()- 50);
single_grass->setDrawDistance(Grass[n]->getDrawDistance()- 50.0f);

wind->setRegularity(2);
wind->setStrength (3);

Willikus Ecris:

Le "grassnode" utilisent il la carte graphique ou le CPU ?
Parce que j'ai une bonne carte graphique et j'arrive pas a le tourné a fond ?!

a priori tout utilise la carte graphique du moment que tu as lancé le driver irrlicht dans un mode non software,
maintenant, ce n'est pas un shader qui réalise cet effet, donc forcément plus ya de polygones et de transparence, plus ca rame[/quote]
voila qui est fait, si vous etes motivés on peut aussi se retaper la conversation en repostant chacun dans le meme ordre big_smile

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
160 invités en ligne
membre en ligne: -
RSS Feed