Rendu de boîtes de collision
-
Je crois que la couleur de la tesselation ne se fait pas de cette manière, regarde s’il n’y a pas une méthode dans la classe Tesselator pour ça
-
t.setColorRGBA(rouge, vert, bleu, alpha) il me semble.
-
C’est inutile, (en premier lieu), ça ne change rien à mon problème (je viens de tester).
-
Au pire tu peux utiliser de l’openGL simple
-
Il me semble qu’il faut prendre en compte le fait que les coordonnées ne sont pas à partir du point (0,0,0) mais à partir de la position de la caméra.
-
@SCAREX :
Déjà testé.@jglrxavpok :
Ah oui, j’étais pas au courant de ça x) maintenant je vais tester ^^
Donc, en gros, la position des rendus OpenGL se fait en fonction de celle du joueur ? Ou ais-je mal compris ?
Non parce que là, quand je bouge, le carré que j’utilise pour tester ne bouge pas, il est juste proche du rendu d’un mob spawner et sa position n’a aucun rapport avec autre chose…
Et pourquoi dans ce cas ça fonctionne avec les mob spawners ? -
Le rendu tesselator utilise les coordonnées de l’écran alors que l’openGL utilise son propre système de coordonnées, donc à mon avis utiliser l’openGL de base est plus simple
-
Scarex, ça dépend quand tu l’utilises, il n’utilise que le repère courrant
-
Non OpenGL, ça ne change rien, sinon c’est quoi cette histoire de repère courant ? Je pourrais essayer de me débrouiller avec ça… (Parce qu’en plus si le joueur est le centre du repère, il suffit juste de mesurer la distance et d’appliquer une translation).
Nouveau code (OpenGL) :
GL11.glBegin(GL11.GL_LINE_STRIP); { // Floor GL11.glVertex3d(entity.posX, entity.posY, entity.posZ); GL11.glVertex3d(entity.posX + delta_x, entity.posY, entity.posZ); GL11.glVertex3d(entity.posX + delta_x, entity.posY, entity.posZ); GL11.glVertex3d(entity.posX + delta_x, entity.posY, entity.posZ + delta_z); GL11.glVertex3d(entity.posX + delta_x, entity.posY, entity.posZ + delta_z); GL11.glVertex3d(entity.posX, entity.posY, entity.posZ + delta_z); GL11.glVertex3d(entity.posX, entity.posY, entity.posZ + delta_z); GL11.glVertex3d(entity.posX, entity.posY, entity.posZ); // Top GL11.glVertex3d(entity.posX, entity.posY + delta_y, entity.posZ); GL11.glVertex3d(entity.posX + delta_x, entity.posY + delta_y, entity.posZ); GL11.glVertex3d(entity.posX + delta_x, entity.posY + delta_y, entity.posZ); GL11.glVertex3d(entity.posX + delta_x, entity.posY + delta_y, entity.posZ + delta_z); GL11.glVertex3d(entity.posX + delta_x, entity.posY + delta_y, entity.posZ + delta_z); GL11.glVertex3d(entity.posX, entity.posY + delta_y, entity.posZ + delta_z); GL11.glVertex3d(entity.posX, entity.posY + delta_y, entity.posZ + delta_z); GL11.glVertex3d(entity.posX, entity.posY + delta_y, entity.posZ); // Heights GL11.glVertex3d(entity.posX, entity.posY, entity.posZ); GL11.glVertex3d(entity.posX, entity.posY + delta_y, entity.posZ); GL11.glVertex3d(entity.posX + delta_x, entity.posY, entity.posZ); GL11.glVertex3d(entity.posX + delta_x, entity.posY + delta_y, entity.posZ); GL11.glVertex3d(entity.posX + delta_x, entity.posY, entity.posZ + delta_z); GL11.glVertex3d(entity.posX + delta_x, entity.posY + delta_y, entity.posZ + delta_z); GL11.glVertex3d(entity.posX, entity.posY, entity.posZ + delta_z); GL11.glVertex3d(entity.posX, entity.posY + delta_y, entity.posZ + delta_z); } GL11.glEnd();Et un petit screen au passage :

-
Je suis en train de me demander si la translation pour avoir la position de l’entité ne se ferrait pas avant l’event… Il faudrait vérifier ça dans la classe qui envoie cet évent (cherche les appels au constructeur de l’event pour ça, c’est sera plus simple).
De plus, pourrais-tu envoyer une image avec plusieurs boîtes affichées ?
Sent from my GT-I9195I using Tapatalk
-
Des screens :
Boîtes flottantes (quand on s’en approche, elles disparaissent) :

Boîte fonctionnelle (c’est-à-dire que les mob spawners) :

Pour le rendu, l’event que j’utilise actuellement est le Pre, et j’ai testé une translation sans succès. L’utile serait de connaître l’origine du repère dont tu m’as parlé avant…
(Je vais quand même continuer à chercher en arrière-plan)