2010-10-20 15 views
0

Je fais un choix de rayons pour trouver le nœud de scène sur lequel pointe mon curseur. Tous ces nœuds de scène sont des cubes de taille égale. J'ai le coup position de scenenode, la position de l'intersection de rayons et le triangle que le nœud/maillage qui ont été touchés. Ce que je veux faire est d'attacher un nouveau bloc à la face du bloc Scenenode qui a été frappé. Je veux que cela fonctionne comme une grille 3D dans le style MineCraft. Je ne veux pas de code, juste quelques conseils et astuces pour savoir comment je peux créer correctement le nouveau bloc à la bonne position.Attatchment de blocs dans la grille 3D

Si quelqu'un est intéressé ou veut/besoin de savoir, j'utilise Irrlicht 1.7.1.

Répondre

1

Si vous connaissez le triangle que votre rayon croise, vous pouvez calculer le vecteur normal pour ce triangle et placer un nouveau bloc à positionOfHitBlock + normal. Par exemple, les triangles formant la face gauche d'un bloc auront une normale de (-1.0,0.0,0.0), donc vous voudrez placer un bloc plus loin vers la gauche.

+0

Merci. Pour une raison ou une autre, mon vecteur normal avait une taille de centaines, c'est-à-dire (-100,0, 0,0, 0,0). La taille de mes blocs est de 10, donc newPos = hitBlockPos + (triangleNormal/10) a bien fonctionné. – EClaesson