Monde à la "Minecraft" v2

Généralités sur la programmation 3D
kelebrindae
Messages : 579
Inscription : ven. 11/mai/2007 15:21

Re: Monde à la "Minecraft" v2

Message par kelebrindae »

@G-Rom : Elle a l'air très bien, cette lib réseau! Je télécharge, pour plus tard.

J'ai mis à jour le ZIP avec une version un peu plus évoluée: les collisions sont gérées, on peut creuser, et choisir la "graine" de génération du monde. De plus, le monde est sauvegardé: si vous entrez la même graine la fois d'après, vous retrouvez le monde dans l'état où vous l'avez laissé. Je voulais ajouter la possibilité de construire, mais je n'ai pas encore eu le temps...

[EDIT]
J'oubliais: j'ai un petit souci avec la géométrie statique.
Quand on crée le groupe de géométrie statique, on doit indiquer sa taille. Mais curieusement, pour l'instant, je ne m'en étais pas préoccupé: j'avais mis 16x16x16 et ça marchait même si les coordonnées des vertex étaient en dehors de cette taille... :? Par exemple, pour le chunk de coordonnées [10,10,10], les vertex se situent entre [160,160,160] et [176,176,176] (les chunks font 16 de côté, par défaut); pourtant Ogre n'y voyait aucun inconvénient.
Mais quand on arrive à des chunks lointains, genre [2000,10,2000], Ogre plante en disant:

Code : Tout sélectionner

OGRE EXCEPTION(2:InvalidParametersException): Point out of bounds in StaticGeometry::getRegionIndexes at OgreStaticGeometry.cpp (line 215)
Bon, je peux comprendre: bien que l'entity mesure 16x16x16, elle est ajoutée dans le groupe aux coordonnées [2000x16,10x16,2000x16], donc, vu qu'on ne peut pas indiquer d'origine pour le groupe, entre le point [0,0,0] et le point le plus éloigné de l'entity, la taille du groupe de géométrie est bien plus grande que 16x16x16...
Ok, donc quand je crée le groupe de géométrie statique, j'indique comme taille les coordonnées "réelles" du vertex le plus éloigné.
Mais je rencontre alors un problème bizarre: quand je vais voir un chunk encore plus loin, genre [25000,10,25000], la géométrie statique se met à "tremblotter" comme si elle ne savait pas exactement où elle était :( (imprécision due à des valeurs élevées?).
Pour voir ça, à la ligne 1677, remplacez:

Code : Tout sélectionner

 player\xChunk = 2500: player\yChunk = 35: player\zChunk = 2500
par

Code : Tout sélectionner

 player\xChunk = 25000: player\yChunk = 35: player\zChunk = 25000
et entrez une "graine" encore inutilisée => en regardant autour de vous, vous devriez constater que les cubes ont la bougeotte...

Quelqu'un a une explication?
Les idées sont le souvenir de choses qui ne se sont pas encore produites.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: Monde à la "Minecraft" v2

Message par comtois »

Concernant la géométrie statique, je ne me suis pas trop plongé dedans, donc pour l'instant je ne peux pas te répondre.
J'ai vu qu'il existe des notions de 'régions', faudra que je regarde à l'occasion à quoi ça sert et comment les utiliser.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
kelebrindae
Messages : 579
Inscription : ven. 11/mai/2007 15:21

Re: Monde à la "Minecraft" v2

Message par kelebrindae »

J'ai lu la doc d'Ogre dont tu as donné le lien. Pour "setOrigin", il est dit que il n'est généralement pas nécessaire de changer l'origine de la géométrie statique car le réglage par défaut permet de gérer un monde de 1024 x [taille de régions]. Or, la taille des régions (est-ce cela que l'on indique avec les paramètres de "BuildStaticGeometry"?) est fixée par défaut de 1000x1000x1000. Donc, on devrait pouvoir aller assez loin sans que ça plante, normalement, tant qu'on indique une taille de 1000x1000x1000 au moment du "Build"... (à vérifier)

Sinon, je crois que le "tremblement" constaté aux coordonnées élevées (ex: 25000) ne vient pas de la géométrie statique, finalement. En effet, j'ai remarqué que la "boîte de sélection" affichée pour savoir quel bloc on va miner tremblotait aussi lors des mouvements de caméra; Or, c'est une entity ordinaire (pas statique).
=> du coup, je soupçonne la caméra. Il faut que j'essaye avec un cas plus simple, en plaçant simplement des objets et la caméra à des coordonnées > 25000...

Enfin, une petite preview:
Image
La construction arrive... :wink:
Les idées sont le souvenir de choses qui ne se sont pas encore produites.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: Monde à la "Minecraft" v2

Message par comtois »

C'est beau :)

Pour info :
- l'origine est placée à la moitié des dimensions que tu indiques dans CreateStaticGeometry() , alors que par défaut c'est 0,0,0, faudrait peut-être laisser la valeur par défaut ? Et donner la possibilité de modifier l'origine si besoin ?
- la taille d'une région correspond effectivement aux paramètres largeur ,hauteur et profondeur de CreateStaticGeometry().
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
kelebrindae
Messages : 579
Inscription : ven. 11/mai/2007 15:21

Re: Monde à la "Minecraft" v2

Message par kelebrindae »

D'après la doc, Ogre conseille plutôt de ne pas y toucher (c'est-à-dire de la laisser à 0,0,0), mais là, je ne suis sûr de rien...

Sinon, j'ai mis en ligne le zip incluant la possibilité de construire (avec pas beaucoup de matériaux pour l'instant, mais c'est déjà ça):
http://keleb.free.fr/codecorner/downloa ... clone2.zip
Les idées sont le souvenir de choses qui ne se sont pas encore produites.
kelebrindae
Messages : 579
Inscription : ven. 11/mai/2007 15:21

Re: Monde à la "Minecraft" v2

Message par kelebrindae »

Allez, encore une petite mise à jour pour rajouter de l'herbe et des fleurs :mrgreen: (ce n'est pas encore très beau, mais le principe de base est là). Le zip a été mis à jour.
Par contre, j'ai été obligé de désactiver le mipmapping, car ça me causait des problème avec les textures transparentes: une bordure noire toute moche apparaissait et je ne suis pas arrivé à m'en défaire autrement...

[EDIT] J'ai pu remettre le filtering en "tweakant" un peu le shader; c'est quand même un peu plus joli comme ça.


Par contre, si vous aviez déjà commencé à modifier des mondes, ils ne seront plus compatibles avec cette version; Désolé... :(
(Supprimez les répertoires "SaveXXXXXX" pour vous en débarrasser).
Les idées sont le souvenir de choses qui ne se sont pas encore produites.
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Monde à la "Minecraft" v2

Message par G-Rom »

Ca commence a avoir de la gueule :D
Revois ton système de picking par contre, pas très efficace , et vire cette skybox ! :mrgreen:
kelebrindae
Messages : 579
Inscription : ven. 11/mai/2007 15:21

Re: Monde à la "Minecraft" v2

Message par kelebrindae »

G-Rom a écrit :Revois ton système de picking par contre, pas très efficace
Qu'est-ce que tu entends par "pas très efficace"? Peux-tu me décrire les problèmes que tu rencontres, stp?
Les idées sont le souvenir de choses qui ne se sont pas encore produites.
Fred
Site Admin
Messages : 2805
Inscription : mer. 21/janv./2004 11:03

Re: Monde à la "Minecraft" v2

Message par Fred »

Toujours supers tes projets :)
kelebrindae
Messages : 579
Inscription : ven. 11/mai/2007 15:21

Re: Monde à la "Minecraft" v2

Message par kelebrindae »

Merci!

Encore une petite mise à jour: OpenGL est maintenant supporté, ce qui devrait permettre aux Linuxiens et aux Appleistes de faire tourner le programme. Comme je n'ai ni Mac, ni linuxBox, je serais d'ailleurs assez intéressé de savoir si ça marche... :P

Le shader OpenGL ne marche pas aussi bien que le DirectX (fait à l'arrache, j'arrangerai ça plus tard) et notamment je n'ai pas réussi à faire marcher le brouillard. Si quelqu'un l'a déjà fait, je suis preneur!
Les idées sont le souvenir de choses qui ne se sont pas encore produites.
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Monde à la "Minecraft" v2

Message par G-Rom »

kelebrindae a écrit :
G-Rom a écrit :Revois ton système de picking par contre, pas très efficace
Qu'est-ce que tu entends par "pas très efficace"? Peux-tu me décrire les problèmes que tu rencontres, stp?
Pour construire c'est la galère , au lieu d'afficher une boite affiche un plan semi transparent , c'est plus propre.
La distance de sélection est trop courte & il manque un curseur central ;)
Bon boulot tout de même , manque plus que la création du multi, bon courage :D
Répondre