#0 

31-03-2008 13:17:14

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Voici mon premier petit travail avec Irrlicht. J'ai tenté d'adapter une partie du mon moteur de terrain.
Pour cela, j'ai fait appel à des fonctions 100% Irrlicht, même si cela m'a fait perdre pas mal en
optimisation. Ceci dit, cela tourne finalement pas trop mal. Avec les réglages adaptés, on s'en sort plutôt
pas mal. A titre d'exemple, l'exe tel quel fournis, tourne au dessus de 100 fps sur un de mes petit
portable plutot modeste au regard des critaires actuel (ATI 9700 Mobility + Pentium 1.6 Ghz)

Voila, à vous de tester, de critiquer et de soumettre pour améliorer le truc. En sachant
déjà que:
- l'archive contient un exe, pas besoin de compiler pour voir ce que cela donne,
- Touche ESC pour sortir,
- Touche S pour changer le type de Rendu des Material des Quads,
- Touche T pour le test de la fonction de re-texturation,
- touche de directions pour deplacer la camera, qui est asservie  à la hauteur de terrain.

et que:
- je découvre Irrlicht, je tâtonne encore, donc il y a certainement des choses à  dire quand à mon
  code et mon approche,
- le code est plus volumineux que par exemple celui de Copland pour son moteur.
- le calcul des normales par la fonction native d'Irrlicht n'applique pas vraiment de  smoothing,
  donc il va falloir que je ponde une routine maison.

c'est ici: http://www.IrrDream.fr/_files/irrDreamTerrain0_1_1.zip

Je vais voir pour améliorer, et faire un test en incorporant cette fois un code 100% directX9c, pour
voir ce que cela apporte en terme de vitesse (même si du coups on perd le coté universelle de code
dans ce cas).

Dernière modification par tmyke (08-06-2008 09:56:51)


Force et sagesse...

Hors ligne


#1 

31-03-2008 18:44:15

Copland
Modérateur
Lieu: ZarbiLand
Date d'inscription: 22-09-2006
Messages: 657
Site web

C'est pas mal du tout et il charge les grande heightmaps ce qui est un bon point.
Par contre niveau performance, 246 fps max sur ma bécane...


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#2 

01-04-2008 07:45:46

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

A titre de comparaison, et si j'enlève le lutin et son ombre qui bouffe du fps, avec un terrain de
1024 tiles et de 8192 de taille, je tourne à en moyenne 1200 fps avec DX9 et 520 avec OGL, sur
ma machine principale (en signature), et je reste a plus de 270 fps sur ma vieille ATI 9700 pro avec
DX9 et au dessus de 300 avec OGL.

Ceci dit, c'est améliorable, je pense, je vais pinailler mon code pour cela wink


Force et sagesse...

Hors ligne


#3 

01-04-2008 12:49:33

gp2mv3
Abonné
Date d'inscription: 27-06-2007
Messages: 103
Site web

J'aime vraiment bien, je voulais me lancer dans un gestionnaire de terrain et je n'avais aucune idée de comment faire.
Je vais m'inspirer de la structure du tien si ça ne te dérange pas.


Mon projet sous Irrlicht : RoM : Rebuilding on Mars
N'hésitez pas à y faire un tour wink

Hors ligne


#4 

01-04-2008 12:54:57

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Non, pas de soucis bien sûr.
D'ailleurs si mon code est un peu confus parfois, n'hésite pas à demander, je m'efforcerais  d'expliquer les points obscures.
Et ce code est en plus très certainement largement améliorable   wink

Dernière modification par tmyke (01-04-2008 12:55:35)


Force et sagesse...

Hors ligne


#5 

01-04-2008 17:43:07

Copland
Modérateur
Lieu: ZarbiLand
Date d'inscription: 22-09-2006
Messages: 657
Site web

Heu y'a un hic, pourquoi ça rame comme ça chez moi ? neutral
Je suis sous vista et j'ai rencontré des soucis avec vista et irrlicht au niveau perfs, vais le recompiler en SVN pour voir si ça marche mieux.


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#6 

01-04-2008 21:33:09

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Copland :

...Je suis sous vista et j'ai rencontré des soucis avec vista et irrlicht au niveau perfs, ...


As tu le même problème en fullscreen, ou tu rencontre de soucis de vitesse qu'en mode fenêtrée ?
C'est assez étrange dans la mesure ou ton matériel est relativement proche du miens...

Dernière modification par tmyke (01-04-2008 22:27:54)


Force et sagesse...

Hors ligne


#7 

02-04-2008 02:12:57

Copland
Modérateur
Lieu: ZarbiLand
Date d'inscription: 22-09-2006
Messages: 657
Site web

Bon j'ai recompilé avec la SVN qui marche parfaitement chez moi et je n'ai vu aucune amélioration, j'ai viré le nain et désactivé les stencil et j'ai 343/362 fps, j'ai tenté en mode plein écran 800*600,1024*768 et ça ne change rien au performance ou à peine.
Si t'a une idée de ce que je peux tenter d'autre.


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#8 

02-04-2008 18:35:08

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Cela semble varier pas mal d'une machine à l'autre, visiblement. Et pas seulement le moteur de Terrain, mais les prog Irrlicht d'une façon générale.
J'ai fait un petit Bench avec quelques samples du package d'Irrlicht, je mettrait le Bench en ligne dans la soirée ainsi
que les résultats pour 3 de mes machines, pour faire des comparatif wink

Pour ce qui te concerne, pas d'idée plus que cela. Je dirais aussi, que vue que tous les mesh sont centralisé en mémoire systeme, la vitesse de rendu est donc lié à la vitesse de dialogue entre la carte video et la RAM system, donc des qualité de ta carte mère et de ses périphérique directes (gestion PCI Express, qualité de la RAM, etc...)

Dernière modification par tmyke (02-04-2008 18:38:23)


Force et sagesse...

Hors ligne


#9 

02-04-2008 20:39:08

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Bon, comme promis, j'ai codé vite fais un petit bench, qui n'est rien d'autre
que la compilation des 3 samples bien connu du monde Irrlicht, et un dernier
avec le moteur de Terrain. C'est ici:

http://www.IrrDream.fr/_files/IrrBench_v1.zip


Voici les résultats sur trois de mes machines: (plus le chiffre est bas, mieux c'est wink )


                                                            (fenetré)D3D9-(pleinEcran)  (fenetré)OpenGL(pleinEcran)
Q6600 2.4Gz +NVidia 8800GTX 768Mo (Vista):    5000   /     5366          |    7000   /      6972
E7200 2.2 Gz + NVidia 7400 256Mo  (Vista)   :   32800   /    29660         |   24800   /     21800
Pentium M 1.7Gz + ATI 9700 pro 128Mo (XP) :   33490   /    30100         |   36740   /     35900


Première conclusion, la première config, très puissante entère sans problèmes les deux autres,
normal, les composant interne (outre la carte video tiptop), comme sur tous les DELL XPS, sont
haut de gamme, ce qui se sent très vite.

Deuxième conclusion, la conf 3 bien que plutôt dépassé, s'en sort bien face à la conf 2 plus
récente et plus moderne. Alors que d'une façon générale, la conf 2 prend facilement le pas sur
la conf 3. A titre d'exemple, COD4 tourne bien sur la conf 2, ce qui n'est pas le cas sur la
conf 3.


Dans les trois cas, les derniers drivers ont été employés.

Dernière modification par tmyke (02-04-2008 20:39:53)


Force et sagesse...

Hors ligne


#10 

03-04-2008 21:06:11

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 907
Corrections: 2
Site web

je pensait a utiliser ton moteur de terrain pour mon projet si cela bien sur ne te pose aucun souci :p
personnellement je ne connait pas dit tout la méthode pour faire un moteur de terrain smile

si par éventualité tu refusait ... je m'en inspirerais wink niveaux structure de class

bon alors sinon pour ton bench résulta j'ai obtenue 76908 Oo avec une ati 9200 se et un proc de 1.6 wink je n'est pas tester sur l'autre pc ( unix )
teste avec un geforce 6600 GS 19700 ( opengl ), 17738 ( D3D9 )

sinon beau travaille wink

Dernière modification par Magun (30-12-2008 05:24:06)

Hors ligne


#11 

03-04-2008 21:14:54

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Magun :

je penssait a utiliser ton moteur de terrain pour mon projet si cela bien sur ne te pose aucun souci :p


pas de soucis pour moi, tu peux employer mon code dans ton projet.
Quand à ta 9200se, il est certains qu'elle doit commencer à avoir du mal dans certaines situation... wink

Dernière modification par tmyke (03-04-2008 21:22:23)


Force et sagesse...

Hors ligne


#12 

03-04-2008 21:37:21

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 907
Corrections: 2
Site web

je t'en remerci smile

j'ai tester sous unix avec wine mais rien ne se passe :-|
domage gaurais bien aimer voir les resultat c'est mon meilleur pc ... snif :p

Hors ligne


#13 

03-04-2008 22:25:19

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Pour le bench, effectivement, l'exe étant pour windows, je ne suis pas surpris du soucis, même avec wine.
Désolé wink


Force et sagesse...

Hors ligne


#14 

03-04-2008 22:28:08

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 907
Corrections: 2
Site web

j'arrivais a faire tourner ragnarok sans soucis au paravans big_smile enfin bon tempis :p
egalement qu'elle que truc sous irrlicht sad

Hors ligne


#15 

05-04-2008 10:24:08

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Comme promis, voici une version spécifique DX9c, avec MeshBuffer. De par le fait, on perd le coté multiplateforme, mais bon, cela peut se révéler utile pour certains. De plus, cela m'a permit de voir un petit peu comment faire cohabiter DX9 et Irrlicht avec du code externe (sans donc avoir à toucher au moteur). Je continuerais sur cette voie peut-etre par la suite. Donc cela doit je pense apporter pour certaines cartes video un plus en terme de vitesse.

Comme pour le premier code, à vous de tester, de critiquer et de soumettre pour améliorer le truc. En sachant
déjà que:
- l'archive contient un exe, pas besoin de compiler pour voir ce que cela donne,
- Touche ESC pour sortir,
- Touche S/D pour changer le type de Rendu des Material des Quads,
- Touche T pour le test de la fonction de re-texturation,
- touche de directions pour deplacer la camera, qui est asservie  à la hauteur de terrain.

c'est ici: http://www.IrrDream.fr/_files/irrDreamTerrainDX.zip

Pour la suite éventuelle, je vous laisse entre les mains de mon comparse de longue date, MorpheusDX, qui m'a bien aidé pour ecrire tous mes codes...
A++ peut-être...

Dernière modification par tmyke (08-06-2008 09:55:57)


Force et sagesse...

Hors ligne


#16 

27-11-2008 21:40:04

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Bon comme promis, voici une mise à jour de mon petit code irrDreamTerrain avec mon propre calcul de frustum culling. Les résultats
en terme d'optimisation sont au rendez-vous, ce qui me rassure quelque part

Petit rappel donc:
- l'archive contient un exe, pas besoin de compiler pour voir ce que cela donne,
- Touche ESC pour sortir,
- Touche S pour changer le type de Rendu des Material des Quads,
- Touche T pour le test de la fonction de re-texturation,
- touche de directions pour déplacer la camera, qui est asservie  à la hauteur de terrain.

c'est toujours ici: http://www.IrrDream.fr/_files/irrDreamTerrain0_1_1.zip

Je vais reprendre le code complet, pour mieux l'adapter, l'optimiser, inclure l'emploi possible de shader, et surtout faire un moteur de terrain complet,
sur lequel je travaille déjà, qui permettra entre-autre la gestion du broulliard, des nuages, lenz-flare, sky, water, etc... ainsi que la gestion par
octree + LOD(code encore perso) des éléments statics, comme tout ce qui est végétation, arbres, et autre objets comme des pierres, ruines, etc...
(plus de 100.000 meshs tout en gardant un très bon fps).

Un projet complet en fait qui se présentera sous la forme d'un petit SDK, avec doc, exemples, et code bien sûr.

Je ne manquerais pas de vous tenir au courant bien sûr..
wink


Force et sagesse...

Hors ligne


#17 

06-12-2008 12:35:24

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025





Mise à jour avec la version 0.1.2 du moteur de terrain. Outre la chasse aux bug, Les ajouts sont:
- gestion du picking,
- gestion des collision avec le terrain
- possibilité de terraforming dynamique.

Le dossier Bin contient les exe, pour ceux qui veulent juste voir à quoi cela ressemble.
Attention, pour l'exemple n°4, il faut une carte video supportant des textures de 4096x4096, sinon il
suffit de redimensionner l'image 'sol110.png' en conséquence (en 2048 voir en 1024).

c'est ici  :

http://www.IrrDream.fr/_files/irrDreamTerrain0_1_2.zip

Je vais songer aussi à faire une petite doc, car le nombre de fonctions commence à être important, donc
cela va se révéler indispensable.

wink


Force et sagesse...

Hors ligne


#18 

06-12-2008 20:18:41

ramis
Membre
Date d'inscription: 27-10-2008
Messages: 92

arf , c'est magnifique tmyke smile
Bien mieux que le truc préintegré --' (2h et demi pour generer un terrain correct avec ma super heightmap personnalisé :p )
Ca fonctionne sous openGL ? :-°

Hors ligne


#19 

07-12-2008 10:31:49

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

ramis :

Ca fonctionne sous openGL ? :-°


Oui bien sûr, je n'emploie que des fonctions liées à Irrlicht, donc tu peux choisir le driver que tu veux wink


Force et sagesse...

Hors ligne


#20 

28-03-2009 20:40:08

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 907
Corrections: 2
Site web

tu aurais pas une petit fonction pour récupéré un IMesh* ? big_smile

Hors ligne


#21 

28-03-2009 21:27:44

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

J'essais de te pondre cela d'ici à demain dans la journée.


Force et sagesse...

Hors ligne


#22 

28-03-2009 21:30:17

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 907
Corrections: 2
Site web

merci smile
très sympa !

Dernière modification par Magun (28-03-2009 21:30:58)

Hors ligne


#23 

29-03-2009 14:27:08

tmyke
Administrateur
Date d'inscription: 24-03-2008
Messages: 1025

Bon, comme promis, une petite réponse suite à ta question ci-dessus.

En fait, je suppose que tu veux connaitre les vertices du terrain pour permettre
de définir le maillage pour ton moteur physique.

En fait, voici comment tu peux arriver à ce résultat sans peine.

Comme tu l'as certainement constaté, le moteur de terrain construit en fait un
certains nombre de Quad (sorte de tile 3D en fait), qui sont affichés ou non
en fonction de leurs visibilités.

Ce sont ces quads qui contiennent les informations de géométrie.
Chaque Quad à en son sein un SMeshBufferLightMap. Ce membre de la classe CQuad est
public, donc accessible.

Pour avoir donc accès à la géométrie, il suffit d'écrire:

nquad->mbuffer->Vertices
nquad->mbuffer->Indices


Pour obtenir tous les quad définit sur un terrain, facile:

Code:

for(int i=0; i<terrain->numQuad; i++)
    CQuadNode *nquad = terrain->GetquadNode(i);

Voilà, en espérant que cela réponde à tes attentes.


Force et sagesse...

Hors ligne


#24 

29-03-2009 15:04:19

Magun
SleekThink Producer
Lieu: Punakha
Date d'inscription: 18-11-2007
Messages: 907
Corrections: 2
Site web

impeccable merci wink
j'avais bien pigé le système des quads, mais quand a leur utilisation, j'ai pas trop approfondie ... ( j'ai pas trop cherché a vrai dire )

bref je m'en vais tester cela smile

[EDIT] :
sa semble marche mise a par la min d'attente pour la récupération de la géométrie, mais il semble y avoir un bug de la physique ...
en debug pas de collision avec le terrain
et sinon l'objet disparais a la rencontre du terrain ... ( du moins le premier a rencontré une collision sur tell point )

Dernière modification par Magun (29-03-2009 17:52:36)

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
881 membres
1426 sujets
11116 messages
Dernier membre inscrit: Bidule
30 invités en ligne
Aucun membre connecté
RSS Feed