#0 

28-01-2011 19:57:27

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

Vous êtes nombreux à avoir utilisé ce procédé, je propose donc de débattre sur les différents systèmes que l'on pourrait implémenter.
Faites part de votre expérience, afin qu'on se mette d'accord sur une intégration propre et rétrocompatible si possible.

Hors ligne


#1 

28-01-2011 20:49:31

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

Personnellement pour le moment je passe par une formule dérivé du système de terrain qu'avait utilisé Copland.

Terrain splatting, 4 textures, avec texture de détail, plus une de lightmaping, possibilité d'éclairage directionnel + fog.
Le système FRUSTUM_BOX permet en plus la mise sur pieds d'une infinité de zones (dans la limite de la
mémoire disponible évidement).


Voilà pour ce qui me concerne.


Force et sagesse...

Hors ligne


#2 

28-01-2011 21:25:38

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

Merci bien, Je ne connait pas tout ça wink
Dans ce cas il vaut peut être mieux discuter du système de moteur de terrain dans sa globalité. mais là je ne peut pas vous aider si ce n'est par des tests.

Hors ligne


#3 

28-01-2011 21:35:41

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

Oui, perso dès que j'aurais un peu de temps, je posterais un code ce qui permettra de voir de quoi il s'agit (avec un zip pour tester)


Force et sagesse...

Hors ligne


#4 

28-01-2011 21:47:14

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

ok, ok, je vais déjà aller voir le code de copland de mon coté, ça me fera patienter wink

Hors ligne


#5 

29-01-2011 16:22:51

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

Allez les gars, sortez vos codes que je les améliores; ils vont pas s'améliorer tout seul !
Un code sur deux à déjà été améliorer par Nico !!!!
Pour l'autre, ce n'est quiune question de temps...


































ps:c'est un sketch hein..... j'espère que vous l'avez vu wink

Hors ligne


#6 

29-01-2011 16:54:16

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

T'es impatient smile

Même si j'ai pas trop le temps ce WE, je posterais le code promis dans la semaines wink


Force et sagesse...

Hors ligne


#7 

29-01-2011 17:42:59

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

Et ouai j'suis super impatient sad bon ça me laisse le temps d'en apprendre un peu plus sur le fonctionnement...

Hors ligne


#8 

29-01-2011 20:03:17

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

perso j'ai ça comme terrain http://www.mediafire.com/?r8ur660jt71k6tn, bon par contre c'est pas full perf étant donner que je tire ça directement de mon 'engine' du coup y a les superflux physique entre autre
sinon:

+plutot rapid
+création du terrain 'dynamic'
+utilise un buffer pour stocker les donner ( heightmap )
+possibiliter de crée le terrain par algorithme ( utilise une fonction de type float algo(int x, int y) ... )
+découpe l'heightmap en sous partie
+les sous partie sont utiliser pour crée des meshs
+chaque mesh est indépendant et peut être reconstruit
+possibiliter futur de décharger le terrain par parti donc du paging ( c'est l'histoire de 20 ligne )
+light plus que correct ( enfin quand on utilise 4texture on voie vite que les perf dégringole )
+frustum culling pour les sous parties
+possibiliter d'avoir un terrain rectangulaire ( enfin c'est un découpage pour avoir des ous partie de type 2^N, le reste étant aussi découper dans se sans, se qui fait qu'un petit partie peut être plane a cause du dépasement )

-bug pour texturer ( je bosse dessus, dans l'optique d'assigner une matrice de texture sur chaque terrain pour pas plomber la mémoire en découpant la dite texture )
-la rotation marche correctement que sous l'angle Y, je ne me suis pas pencher sur les autres ( probleme lier a cause du multi-mesh )
-utilisation abusive de la mémoire ( a mon gous, raison: utilisation d'un buffer de type float, redécouper pour les sous parties, utilise donc 2x mémoire nécessaire, enfin en feusant en sorte que les sous partie acceder directement au buffer originel sa devrait le faire )
-chargment plutot lent
-j'ai pas fait d'algo pour redimentionner le buffer, j'ai estimer qu'un chargement de l'heightmap coupler avec un scale du mesh sufisais ...

baser sur l'example 24 SMeshHandling

edit: key >> w(wireframe), b(voir les boudingbox des sous parties), n(voir les normales), t(transparence...)
ps: dsl j'est pas le temp de me relire

Dernière modification par Magun (29-01-2011 20:14:11)

Hors ligne


#9 

29-01-2011 21:03:14

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

Cela a l'air sympa wink

Par contre, à l'execution j'ai un ecran tout blanc, avec un message d'erreur dans la console:

Could not open file of texture: monde/scenes/textures/effect/electric-ball.png


et ce 6 fois.

puis

Overflow in AAB, object removed from simulation...


wink


Voilà.


Force et sagesse...

Hors ligne


#10 

29-01-2011 21:11:40

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

cool magun, je vais voir ça wink

Hors ligne


#11 

29-01-2011 21:41:38

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

heu non, pas cool ya pas de code, ça sert à quoi ? lol

Hors ligne


#12 

29-01-2011 23:21:24

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

Could not open file of texture: monde/scenes/textures/effect/electric-ball.png


navré j'est aumis se fichier, il n'est pas très important, c'est pour les billoards qui indique les position des 6 light

Overflow in AAB, object removed from simulation...


un bug de ma physique ou bullet, il semblerais que le/la boundingbox du terrain soit trop important pour un btHeightfieldShape, je bosse dessus mais rien a voir avec le terrain wink

Cela a l'air sympa wink


merci wink

heu non, pas cool ya pas de code, ça sert à quoi ? lol


c'est pour motrer les performance du machin, si le moteur de tmyke ou de ce cher copland savère plus intéressant, je ne distriburais pas les sources, bien entendue dans le cas contraire ou si l'on me demande je n'y voie pas d'objection, je pensse qu'il y a sufisament de moteur de terrain pour irrlicht 'opensource', par conséquent je ne suis pas désireux de voir mon code utiliser par M.kikoolol sa me ferais mal au coeur wink

Hors ligne


#13 

29-01-2011 23:35:45

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

HAHA je le connaissait pas ce monsieur wink
Bein le terrain de copland n'est pas optimisé, il a fait surtout ça pour faire un exemple je pense, là je suis en train de regarder le code de ikam qui à l'air déjà plus travaillé.(basé sur copland wink )
Donc faut faut comparé avec vos terrain comme tu dit, mais avec un exe on va pas aller bien loin.... d'ailleur il marche po sad

Hors ligne


#14 

30-01-2011 09:36:36

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

il marche pas ?
pourtant tmyke ne semble pas avoir eux de problème ...
il retourne une erreur, ou qu'elle que chose ?

Hors ligne


#15 

30-01-2011 10:43:48

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

tmyke :

Cela a l'air sympa wink


mais je disais aussi:

tmyke :

Par contre, à l'execution j'ai un ecran tout blanc...


wink


Force et sagesse...

Hors ligne


#16 

30-01-2011 11:15:15

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

Bon, voici mes modestes travaux pour le moment.

Terrain, fractionné en sous-cellules. 8 textures de travail ( un canal alphamap, 4 pour le splatting, 1 pour le detail et une pour le lightmap)
Shader dans le code, pour DX et OGL, gestion LightDirectionnal et Fog.

Bon, voilà, le code est encore brouillon, rien n'est figé, en terme d'optimisation chez moi c'est un poil sous le moteur natif (tout dépend ou est
l'observateur). Mes media sont pas top, mais avec des media approprié et un fichier lightmap, le rendu est vraiment pas mal.
Et c'est ici ICI

Code source + exe + media wink


Force et sagesse...

Hors ligne


#17 

30-01-2011 12:52:29

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

youpi, je vais voir ça wink

ps MAgun: je vois un cube avec index partagés on dirai, c'est tout sad

Hors ligne


#18 

30-01-2011 13:48:15

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

Bon je vous félicite pour votre boulot les gars,
Mais à cause de mon manque de connaissance, je ne revelerai que les défauts que j'apperçoi, donc désolé pour les compliments, on verra plus tard wink (soyez fort)
exemple: code d'irrlicht repris en masse:

Code c++ :


//Take from the irrlicht source code
void CTerrainSceneNode::calculateNormals ( scene::SMeshBufferLightMap* pMeshBuffer, s32 Size)
{
    s32 count;
    core::vector3df a, b, c, t;

    for (s32 x=0; x<Size; ++x)
        for (s32 z=0; z<Size; ++z)
        {
            count = 0;
            core::vector3df normal;

            // top left
            if (x>0 && z>0)
            {
                a = pMeshBuffer->Vertices[(x-1)*Size+z-1].Pos;
                b = pMeshBuffer->Vertices[(x-1)*Size+z].Pos;
                c = pMeshBuffer->Vertices[x*Size+z].Pos;
                b -= a;
                c -= a;
                t = b.crossProduct ( c );
                t.normalize ( );
                normal += t;


La première optimisation que je voit, c'est éradiquer tout les calculs inutiles, selon moi un calcul ne devrait être effectué qu'une seule fois*, je propose donc qu'on perde quelques octets de ram pour stocker les résultats dans une pseudo mémoire cache, afin de gagner beaucoup de cpu wink
Bon ça je parie que tu l'a déjà fait Magun ? allez fait voir ton code.... smile
Je vais effectuer des tests... à tout à l'heure.

*Je met une étoile pour désextremiser le sens, au cas ou on me ferait un procès wink

Hors ligne


#19 

30-01-2011 14:19:56

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

bien soite ....
http://www.mediafire.com/?2d9875j3aom5a56

j'ai (re)tester ton moteur tmyke, avec 129k polygone j'ai environ 190fps...
perso j'ai 131k polygone pour ... 340fps, mais j'ai pas de shader dessus smile

Hors ligne


#20 

30-01-2011 14:40:44

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

En effet, la gestion de la géométrie avec la solution que j'ai adopté est perfectible, elle prend vraiment son sens que lorsque l'on est près du terrain.
La gestion des shader sous Irrlicht n'aide pas non plus, et ralentit aussi un poil le code, après mon terrain travaille aussi avec 8 textures, ce qui
peut finir d'expliquer des performances en retrait...


PAr contre, je viens de re-loader ton package Magun, désolé mais je n'ai que cela qui s'affiche:


Force et sagesse...

Hors ligne


#21 

30-01-2011 14:56:27

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

Super Magun wink
Pour les fps, c'est un peu trop vague les comparaisons sad Je pense qu'on ferait mieux de se concentrer sur un noyau solide d'abord !?

Hors ligne


#22 

30-01-2011 15:15:27

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

vraiment bizard ....... aucun soucis particulier cher moi, et ceux sur 3 de mais pc ... je ne compile pourtant pas en debug.
d'après se que je voie il n'est carément pas rendue, donc dernier test en m'étant directement le render dans le main while, peut-être OnRegistreSceneNode qui merdouille ? ... hmm

http://www.mediafire.com/?w5drod7dhom1b5l

Hors ligne


#23 

30-01-2011 15:21:30

nico
Webmaster
Date d'inscription: 07-08-2009
Messages: 563
Corrections: 9

bizarre, moi il marche l'exe de Magun.

Hors ligne


#24 

30-01-2011 15:29:41

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

Bon, c'est meiux avec le dernière download, j'ai ça.
Pas de textures apparement , c'est volontaire ?

Au vue de ton code il semble qu'elle ne soient pas chargées...


Force et sagesse...

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
882 membres
1429 sujets
11119 messages
Dernier membre inscrit: LiseBuisson96
17 invités en ligne
Aucun membre connecté
RSS Feed