2016-03-28 10 views
0

S'il vous plaît se référer à la documentation suivante pour cette question: BabylonJS JSON File FormatQuel est le but des vecteurs normaux au format de fichier .babylon? (Pour une utilisation dans BabylonJS Modélisation 3D)

Dans un noeud « vertexData », les sommets, les vecteurs normaux, et des années uv sont déclarées pour la construction d'objets 3D. Voir le noeud "geometry" suivant comme dans le fichier .babylon en exemple au bas de la page de documentation.

"geometries": { 
    "boxes": [{ 
     "id": "BoxPrimitive", 
     "size": 2, 
     "canBeRegenerated": true, 
     "tags": "Box Primitive Cube CanBeRegenerated" 
    }], 
    "vertexData": [{ 
     "id": "CubeGeometry", 
     "updatable": false, 
     "positions": [ 1, -1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, 1, 1, 1, 1, -1, 1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, -1, -1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1], 
     "normals": [0.5773, -0.5773, 0.5773, 0.5773, -0.5773, -0.5773, -0.5773, -0.5773, 0.5773, 0.5773, 0.5773, 0.5773, -0.5773, 0.5773, 0.5773, 0.5773, 0.5773, -0.5773, 0.5773, 0.5773, 0.5773, 0.5773, -0.5773, -0.5773, 0.5773, -0.5773, -0.5773, 0.5773, 0.5773, -0.5773, -0.5773, -0.5773, -0.5773, -0.5773, -0.5773, -0.5773, -0.5773, 0.5773, -0.5773, -0.5773, -0.5773, 0.5773, 0.5773, 0.5773, 0.5773, 0.5773, -0.5773, 0.5773, -0.5773, 0.5773, 0.5773, -0.5773, -0.5773, -0.5773, -0.5773, 0.5773, -0.5773, 0.5773, 0.5773, 0.5773, 0.5773, 0.5773, -0.5773, 0.5773, -0.5773, -0.5773, 0.5773, 0.5773, -0.5773, -0.5773, 0.5773, -0.5773, -0.5773, 0.5773, 0.5773, -0.5773, -0.5773, 0.5773, 0.5773, -0.5773, 0.5773, -0.5773, -0.5773, 0.5773, -0.5773, 0.5773, 0.5773], 
     "uvs": [0.5, 0.5, 0.5, 0, 0, 0.5, 0.5, 1, 0, 1, 0.5, 0.5, 0.5, 1, 0, 0.5, 0.5, 0.5, 0.5, 1, 0, 0.5, 0.5, 0.5, 0.5, 1, 1, 0.5, 0.5, 0.5, 0.5, 0, 0, 0.5, 0, 0, 0, 0.5, 0.5, 1, 0, 1, 0, 0.5, 0.5, 1, 0, 1, 1, 1, 1, 0.5, 0.5, 0, 0, 0, 0, 0.5], 
     "indices": [0, 1, 2, 3, 4, 5, 0, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1, 17, 2, 4, 18, 5, 19, 20, 21, 22, 23, 10, 12, 24, 25, 26, 27, 28] 
    }] 
} 

Dans ce but, il y a 29 (souvent redondantes) sommets, déclarés comme des groupes de 3 flotteurs dans « positions », qui sont ensuite disposées par « indices » qui sont des groupes de trois entiers qui représentent des triangles dessinés par reliant le sommet "position" référencé.

Chaque sommet "de position" a un vecteur normal déclaré qui est simplement le vecteur de position normalisé pour un vecteur unitaire. Quel est le but de ceci? Pourquoi est-ce inclus? Et les modèles 3D peuvent-ils être générés sans cela?

De plus, qu'est-ce que "uv's". Chaque sommet a une paire de 2 uv. Qu'est-ce que cela signifie?

+0

Cette réponse peut vous aider: http://stackoverflow.com/a/25483486/1479630 – kolenda

+0

Il est dans l'éclairage. Ça a du sens. Je voudrais savoir ce que le champ UV fait aussi bien. –

Répondre

0

Les champs UV sont appelés Texture Coordinates et ils indiquent la partie de la texture que vous souhaitez utiliser sur votre maillage.

U et V valeurs sont comme X et Y positions dans votre image 2D. En fait, ils ont été appelés U/V au lieu de X/Y juste pour éviter les malentendus mais ils représentent le même type de données. Ils sont également normalisés ce qui signifie que la valeur 0 est "débutant" et 1 signifie "fin" (quelle que soit la résolution de votre texture - vous pouvez donc redimensionner la texture sans casser votre rendu). Lorsque vous créez un triangle, vous avez essentiellement 3 sommets et chacun d'entre eux a ses propres valeurs,. Si vous marquez ces valeurs comme X/Y dans votre image 2D, vous obtiendrez un triangle utilisant la même partie de texture que votre rendu.

Voici une autre réponse à ce sujet: https://stackoverflow.com/a/21909471/1479630