#0 

04-03-2007 22:11:31

maitrelame12545
Membre
Date d'inscription: 28-11-2006
Messages: 51

Bojour.

J'aimerais garder l'idee d'une map en niveau de gris, mais le probleme est que je ne sais pas comment en faire une immense !
J'avais demarer sous maya une map mais le temps de travail est incroyablement long et de plus c'est tres difficile de faire les details.
Sans parler de la taille en go de la map.

Donc je cherche comment faire une map immense.
Soit faire une tres grosse image ou essayer d'assembler plusieur images.

Par la meme occasion.
est-ce que le code suivant me donne la position de la camera en (x,y,z)

Code:

            str += "X: ";
            str += camera->getAbsolutePosition().X;
            str += "Y: ";
            str += camera->getAbsolutePosition().Y;
            str += "Z: ";
            str += camera->getAbsolutePosition().Z;

Merci !

See you


Codeur elewendyl

Hors ligne


#1 

05-03-2007 09:11:31

khayyam
Membre
Date d'inscription: 04-03-2007
Messages: 25
Site web

Salut,

Une map en niveau de gris, c'est pas top, tu en dis bien toi-même les inconvéniants.
Pour faire une map immense, une solution serait de la gérer en level of details, pour augmenter le nombre de polygones là où est pointée la caméra et vers les zones proches de la caméra. Il faut donc se baser sur un mesh comportant plusieurs sous meshs, mais ça c'est un travail de moteur 3D.

Et non, ton code ne te donne pas la position de la caméra. L'opérateur +=(float) n'est pas défini pour l'objet string.

Hors ligne


#2 

05-03-2007 09:56:23

katsankat
Membre
Date d'inscription: 24-02-2007
Messages: 43

Salut,
Map immense? Une très grande image, ça ne marchera pas (limité à 65635 vertices) et serait long à charger.

Essayes de changer le scale du terrain dans le tuto 12 "terrain":

Code:

terrain->setScale(core::vector3df(2048, 256, 2048));

Mais ça dépend de ton jeu et du niveau de détail dont tu as besoin. J'obtiens des choses intéressantes (http://irrlicht.sourceforge.net/phpBB2/ … hp?t=19428)

En ce moment je bosse sur la génération procédurale (Perlin, Fractal, Diamond square), ce qui a un avantage certain pour une mosaîque de nodes évoquée par Kayyam (d'ailleurs il faudra que je pense à mesurer le temps pris par ces algorithmes pour les comprarer, lol) Et surtout pas de bitmap stocké sur le disque: un secteur de 7 kilomètres carrés en est réduit à une dizaine d'octets ...

Dernière modification par katsankat (05-03-2007 10:00:58)

Hors ligne


#3 

06-03-2007 00:48:36

maitrelame12545
Membre
Date d'inscription: 28-11-2006
Messages: 51

Alors comment faire finalement pour gerer le level of detail ?

Ou l'apprendre ?

Par la meme occasion quelqu'un pourrait me dire comment prendre la position d'une node en X,Y,Z.

Merci

a+

Dernière modification par maitrelame12545 (06-03-2007 01:09:18)


Codeur elewendyl

Hors ligne


#4 

06-03-2007 09:01:21

khayyam
Membre
Date d'inscription: 04-03-2007
Messages: 25
Site web

Pour de la doc sur le level of details, google 'terrain LOD' et c'est bon
Par contre pour l'utiliser ... si irrlicht ne le gère pas, tu n'y arriveras pas. C'est une opération que doit faire le moteur 3D, s'il ne la fait pas, tant pis.

Et pour avoir les positions x,y,z d'un node, il faut faire getAbsolutePosition ()
c'est juste que tu ne peux pas directement mettre des flottants dans une string wink

Hors ligne


#5 

06-03-2007 16:06:22

maitrelame12545
Membre
Date d'inscription: 28-11-2006
Messages: 51

Merci !

AUpire si c'est pas gerer jutiliserais opengl ou directx


Codeur elewendyl

Hors ligne


#6 

06-03-2007 18:28:52

izguit
Administrateur
Lieu: 127.0.0.1
Date d'inscription: 14-09-2006
Messages: 306
Site web

ou solution "à la mano" :
Tu génères une heightmap géante (toshop powaaa par exemple) tu la découpes et tu te fais une classe qui gère le rendu ou non des zones (un peu comme des chunks géants) qui sont adjacentes à la caméra. 'fin moi je ferais comme ca après .... wink Tu peux y ajouter une optimisation pas trop complexe comme un frustum culling à 180° (voir le post de not' Coco national sur son système de terrain smile ) et ca devrait bien tourner.
plouf


Athlon 64 3000+ // 1Go RAM // Geforce 6600GT 128Mo
Turion 64 X2 // 1Go RAM // ATI X1250

Hors ligne


#7 

07-03-2007 03:06:26

maitrelame12545
Membre
Date d'inscription: 28-11-2006
Messages: 51

...
Ok...
Et ne francais ca donne quoi ? lol
Bon je voix a peu pres ce que tu veux dire sauf pour le frustum culling 180*.
Je pense que je vais faire une fonction pour gerer ca avec OpenGl ou sinon des carte generer en direct via le serveur mais bon fo attendre la fibre optique !

A+


Codeur elewendyl

Hors ligne


#8 

07-03-2007 11:29:30

izguit
Administrateur
Lieu: 127.0.0.1
Date d'inscription: 14-09-2006
Messages: 306
Site web

maitrelame12545 :

...
Ok...
Et ne francais ca donne quoi ? lol
Bon je voix a peu pres ce que tu veux dire sauf pour le frustum culling 180*.


Le frustum culling c'est l'élimination du rendu des polys en dehors du champ de vision. En général c'est utilisé avec un système de quadtree, il faut déterminer si une zone est dans le champ de vision, si oui on découpe cette zone en 4 et on refait le calcul, pour bien avoir seulement les polys visibles de rendus. Mais vu la puissance des cg actuelles ca peut devenir aussi long de tester si une zone doit etre rendue que de faire un rendu sans se poser de question. Donc tu peux faire le rendu des polys qui sont devant la caméra (d'où frustum à 180°) ca fait un frustum sans gros calcul donc ca doit théoriquement bien fonctionner. (je t'invite fortement à google-iser sur le sujet)

maitrelame12545 :

Je pense que je vais faire une fonction pour gerer ca avec OpenGl ou sinon des carte generer en direct via le serveur mais bon fo attendre la fibre optique !


smile Plein de threads, un serveur X/joueur par thread, un méga serveur qui calcule tout le rendu, ouais si on veut, ca peut donner un supreme commander qui peu fonctionner avec un 386SX smile


Athlon 64 3000+ // 1Go RAM // Geforce 6600GT 128Mo
Turion 64 X2 // 1Go RAM // ATI X1250

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
96 invités en ligne
Aucun membre connecté
RSS Feed