bpy.context.object #objecte actualment seleccionat
En general, per exportar un mesh, necessitem la següent informació:
- Vertexos
- Posició
- Normals
- Coordenades de textura
- Pesos (d'animació)
- Cares
- Apuntadors a 3 vertexos
Per poder construir, hem de donar unes quantes voltes a les dades de Blender, ja que no estan en l'ordre que ens agradaria.
*------------------------------------------------*
| Objecte |
+------------------------------------------------+
| - data: |
| *------------------------------------------* |
| | Mesh | |
| +------------------------------------------+ |
| | - faces: Array de: | |
| | *------------------------------------* | |
| | | MeshFace | | |
| | +------------------------------------+ | |
| | | - vertices: Array de 3 o 4 ints | | |
| | | que indiquen els vertexos | | |
| | | corresponents | | |
| | | | | |
| | | - material_index: index al material| | |
| | | de la cara. | | |
| | | | | || | | - normal: normal a la cara | | |
| | *------------------------------------* | |
| | | |
| | - vertices: Array de: | |
| | *------------------------------------* | |
| | | MeshVertex | | |
| | +------------------------------------+ | |
| | | - co: Array de 3 floats indicant | | |
| | | les coordenades | | |
| | | | | |
| | | - groups: Array de: | | |
| | | *------------------------------* | | |
| | | | VertexGroupElement | | | |
| | | +------------------------------+ | | |
| | | | - weight: pes de l'os | | | |
| | | | | | | |
| | | | - group: index del grup | | | |
| | | *------------------------------* | | |
| | | | | |
| | *------------------------------------* | |
| | | |
| | - uv_textures: Mapa de | |
| | *------------------------------------* | |
| | | MeshTextureFaceLayer | | |
| | +------------------------------------+ | |
| | | - name | | |
| | | | | |
| | | - data: Array on cada element | | |
| | | correspon a una cara | | |
| | | *------------------------------* | | |
| | | | MeshTextureFace | | | |
| | | +------------------------------+ | | |
| | | | - uv1: coordenades del 1r | | | |
| | | | vertex | | | |
| | | | | | | |
| | | | - uv2: coordenades del 2n | | | |
| | | | vertex | | | |
| | | | | | | |
| | | | - uv3: coordenades del 3r | | | |
| | | | vertex | | | |
| | | | | | | |
| | | | - uv4: coordenades del 4rt | | | |
| | | | vertex | | | |
| | | *------------------------------* | | |
| | | | | |
| | *------------------------------------* | |
| | | |
| | - materials: array de materials (dades | |
| | apuntades per separat) | |
| *------------------------------------------* |
| |
| - vertex_groups: Array de: |
| *------------------------------------------* |
| | VertexGroup | |
| +------------------------------------------+ |
| | - name: nom del grup (de l'ós que | |
| | influencia) | |
| *------------------------------------------* |
| |
*------------------------------------------------*
Ara que ja tenim informació de les malles, per definir el material necessitem:
- Paràmetres d'especular
- Paràmetres de paral·lax
- Alpha blended
- Textures
- Nom
- Tipus
*------------------------------------------------*
| Material |
+------------------------------------------------+
| - specular_intensity |
| |
| - specular_hardness: (potència especular) |
| |
| - texture_slots: Mapa de: |
| *------------------------------------------* |
| | MaterialTextureSlot | |
| +------------------------------------------+ |
| | - use_map_alpha: si utilitza l'alpha | |
| | | |
| | - use_map_color_diffuse: textura | |
| | d'albedo (color) | |
| | | |
| | - use_map_normal: mapa de normals | |
| | | |
| | - use_map_displacement: mapa d'alçades | |
| | | |
| | - texture.image: (la textura ha de tenir | |
| | el tipus correcte) | |
| | *------------------------------------* | |
| | | Image | | |
| | +------------------------------------+ | |
| | | - name | | |
| | | | | |
| | | - filepath_raw: fitxer on es | | |
| | | guarda la imatge | | |
| | | | | |
| | | - save(): guarda la imatge | | |
| | *------------------------------------* | |
| | | |
| *------------------------------------------* |
| |
*------------------------------------------------*