dijous, 16 de febrer del 2012

Notes sobre Blender (2.61) i Python (Part I)

Útil per poder fer exportadors:

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         | | |
|   |   *------------------------------------* | |
|   |                                          | |
|   *------------------------------------------* |
|                                                |
*------------------------------------------------*

1 comentari: