#0 

07-01-2007 21:52:13

Jerry Kan
Habitué
Date d'inscription: 21-11-2006
Messages: 265

je copie colle la discussion sur les scene node irrlicht que nous avons eu a la suite du tuto 3DS max :


"Willikus" :

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" :

[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/ … ight=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/ … ight=grass[/quote]

Copland :

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 :

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 :

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 :

oki et merci pour ces 2 infos


Jerry Kan :

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


c'est sur, ..


Willikus :

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 :

Code:

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 :

[i]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

Hors ligne


#1 

08-01-2007 18:41:00

Aranoth
Abonné
Lieu: Toulouse
Date d'inscription: 25-09-2006
Messages: 242
Site web

Merci Jerry Kan^^

a priori tout utilise la carte graphique du moment que tu as lancé le driver irrlicht dans un mode non software,


Je doute que le vent et la gestion du LOD soient pris en charge par le GPU.

Hors ligne


#2 

08-01-2007 19:36:48

Willikus
Abonné
Date d'inscription: 21-10-2006
Messages: 150
Site web

Cela utilise la physique ou autre ???

Parce que théoriquement (peut etres pas avec irrlicht), les nouveau GPU gère la physique a la place du CPU...

PS : Merci pour le recopiage du topic !


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#3 

08-01-2007 19:44:09

Jerry Kan
Habitué
Date d'inscription: 21-11-2006
Messages: 265

Aranoth :

Merci Jerry Kan^^

a priori tout utilise la carte graphique du moment que tu as lancé le driver irrlicht dans un mode non software,


Je doute que le vent et la gestion du LOD soient pris en charge par le GPU.


tout a fait d'accord

Willikus :

Cela utilise la physique ou autre ???

Parce que théoriquement (peut etres pas avec irrlicht), les nouveau GPU gère la physique a la place du CPU...


ce n'est pas de la physique, en fait ce sont de simples cos qui calculent de facon fixe de combien la scene node herbe/feuille doit osciller
parce que si il fallait qu'il y ai vraiment un vent qui passe dans la vallée, ouf

Hors ligne


#4 

10-01-2007 19:03:52

Willikus
Abonné
Date d'inscription: 21-10-2006
Messages: 150
Site web

Bon je me met petit a petit a travaillé sur ce code que je comprend de mieux en mieux... Mais (car il y en a toujours un roll ) la version du programme est 0.14 si je ne me trompe.

J'ai recrée un *.dev et compilé le tout avec 1.2 (sans modif). Quand je lance le exe : Tout marche, mais c'est 0.14 qui est détecté (au lieu de la version 1.2). Bon, pourquoi pas...

Après je tape un retour a la ligne : et la, c'est le drame !

Le exe plante, c'est devenue une version 1.2...
Je change le dll 0.14 par un dll 1.2,

Et la... C'est la catastrophe !

Il le reconnaît mais ne veut pas démarrer la génération du terrain.

Y a t'il des ligne de code devenue obsolete et qui empêche l'exécution normale du programme ?
Autre ?
(Ai je mal interpréter ?!)

Merci de m'aider de votre regard avisé !


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#5 

10-01-2007 20:49:43

Willikus
Abonné
Date d'inscription: 21-10-2006
Messages: 150
Site web

J'ai trouvé la reponse :

Hey Xaron
The far plane shouldn't affect the size of the blades, to change their size, just change the following line in CGrassPatchSceneNode::Create :
Code:

core::dimension2d<f32> size(rand() % 40 +50, rand() % 60 + 50);

as you can see, its currently set to make grass between 50 and 90 wide and 50 and 110 tall. Wider grass provides better coverage, but thinner grass looks better on steep hills or when it is more sparce
hope this helps Smile


Il faut rajouter un ligne dans CGrassPatchSceneNode.cpp :  apres, "CGrassPatchSceneNode::Create" : mettre "core::dimension2d<f32> size(rand() % 40 +50, rand() % 60 + 50);"


Je pense que vous comprenez l'anglais mieux que moi, mais l'experience doit eclairé tout le monde wink


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#6 

10-01-2007 21:12:24

Jerry Kan
Habitué
Date d'inscription: 21-11-2006
Messages: 265

bizarre, moi ca passe sans souci

tu est sur d'avoir pris la derniere version ?

Dernière modification par Jerry Kan (10-01-2007 21:12:49)

Hors ligne


#7 

11-01-2007 18:58:44

Willikus
Abonné
Date d'inscription: 21-10-2006
Messages: 150
Site web

La dernière version ?

Irrlicht : oui !

Grassnode : non, un lien svp smile


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
71 invités en ligne
Aucun membre connecté
RSS Feed