En aquest tema, aprendrem a aplicar textures als nostres models 3D a Blender. Les textures són imatges que es col·loquen sobre la superfície d'un model per donar-li un aspecte més detallat i realista. Aquest procés és essencial per a la creació de models que semblin convincents en entorns 3D.

  1. Introducció a les Textures

Què és una textura?

Una textura és una imatge 2D que es projecta sobre la superfície d'un model 3D. Les textures poden ser utilitzades per simular diferents materials com fusta, metall, pedra, etc.

Tipus de textures

  • Difusa (Albedo): Defineix el color base de la superfície.
  • Normal: Afegeix detalls de relleu sense augmentar la complexitat geomètrica.
  • Especular: Controla la brillantor i reflexió de la superfície.
  • Rugositat: Defineix la suavitat o rugositat de la superfície.
  • Desplaçament: Modifica la geometria del model per crear relleus reals.

  1. Preparació del Model

UV Mapping

Abans d'aplicar una textura, és important tenir un bon mapeig UV. El mapeig UV és el procés de desplegar la superfície 3D d'un model en un pla 2D per aplicar-hi textures.

Passos per fer UV Mapping:

  1. Selecciona el model en Mode Objecte.
  2. Canvia a Mode Edita (Tab).
  3. Selecciona totes les cares (A).
  4. Obre l'Editor UV (Shift + F10).
  5. Desplega les UVs (U) i selecciona una opció de desplegament (per exemple, "Unwrap").

  1. Aplicació de Textures

Pas 1: Crear un Material

  1. Selecciona el model en Mode Objecte.
  2. A la pestanya de Materials (icona de bola), fes clic a "Nou" per crear un nou material.

Pas 2: Afegir una Textura Difusa

  1. Amb el material seleccionat, obre l'Editor de Shaders (Shift + F3).
  2. Afegeix un node "Image Texture" (Shift + A > Texture > Image Texture).
  3. Connecta la sortida del node "Image Texture" a l'entrada "Base Color" del node "Principled BSDF".
  4. Fes clic a "Open" al node "Image Texture" i selecciona la imatge de la textura.
# Exemple de nodes en Python
import bpy

# Crear un nou material
material = bpy.data.materials.new(name="TexturedMaterial")
material.use_nodes = True
nodes = material.node_tree.nodes

# Afegir un node de textura d'imatge
texture_node = nodes.new(type='ShaderNodeTexImage')
texture_node.image = bpy.data.images.load("path/to/your/texture.jpg")

# Connectar el node de textura al Principled BSDF
bsdf = nodes.get("Principled BSDF")
material.node_tree.links.new(texture_node.outputs['Color'], bsdf.inputs['Base Color'])

# Assignar el material al model
obj = bpy.context.active_object
if obj.data.materials:
    obj.data.materials[0] = material
else:
    obj.data.materials.append(material)

Pas 3: Afegir Textures Addicionals

Per afegir textures normals, especulars, de rugositat, etc., segueix els mateixos passos que per la textura difusa, però connecta'ls a les entrades corresponents del node "Principled BSDF".

  1. Visualització de les Textures

Mode de Vista de Material

Per veure les textures aplicades al model:

  1. Canvia al Mode de Vista de Material (Z > Material Preview).

Renderització

Per veure el resultat final amb totes les textures aplicades, renderitza la teva escena (F12).

Exercici Pràctic

Objectiu

Aplicar una textura difusa i una textura normal a un cub.

Passos

  1. Crea un nou projecte i afegeix un cub (Shift + A > Mesh > Cube).
  2. Desplega les UVs del cub.
  3. Crea un nou material i afegeix una textura difusa.
  4. Afegeix una textura normal i connecta-la al node "Principled BSDF".
  5. Visualitza el resultat en el Mode de Vista de Material.

Solució

import bpy

# Crear un nou projecte
bpy.ops.wm.read_factory_settings(use_empty=True)

# Afegir un cub
bpy.ops.mesh.primitive_cube_add()

# Seleccionar el cub
obj = bpy.context.active_object

# Desplegar les UVs
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.uv.unwrap()
bpy.ops.object.mode_set(mode='OBJECT')

# Crear un nou material
material = bpy.data.materials.new(name="TexturedMaterial")
material.use_nodes = True
nodes = material.node_tree.nodes

# Afegir una textura difusa
diffuse_node = nodes.new(type='ShaderNodeTexImage')
diffuse_node.image = bpy.data.images.load("path/to/your/diffuse_texture.jpg")
bsdf = nodes.get("Principled BSDF")
material.node_tree.links.new(diffuse_node.outputs['Color'], bsdf.inputs['Base Color'])

# Afegir una textura normal
normal_node = nodes.new(type='ShaderNodeTexImage')
normal_node.image = bpy.data.images.load("path/to/your/normal_texture.jpg")
normal_map_node = nodes.new(type='ShaderNodeNormalMap')
material.node_tree.links.new(normal_node.outputs['Color'], normal_map_node.inputs['Color'])
material.node_tree.links.new(normal_map_node.outputs['Normal'], bsdf.inputs['Normal'])

# Assignar el material al cub
if obj.data.materials:
    obj.data.materials[0] = material
else:
    obj.data.materials.append(material)

Conclusió

En aquest tema, hem après a aplicar textures als nostres models 3D a Blender. Hem cobert des de la preparació del model amb UV Mapping fins a la creació de materials i l'aplicació de textures difuses i normals. Aquestes habilitats són essencials per donar vida als teus models i fer-los més realistes. En el proper tema, explorarem la il·luminació i com configurar una escena per a la renderització.

Curs de Blender: De Principiant a Avançat

Mòdul 1: Introducció a Blender

Mòdul 2: Tècniques Bàsiques de Modelatge

Mòdul 3: Tècniques Avançades de Modelatge

Mòdul 4: Materials i Texturització

Mòdul 5: Il·luminació i Renderització

Mòdul 6: Conceptes Bàsics d'Animació

Mòdul 7: Tècniques Avançades d'Animació

Mòdul 8: Composició i Postprocessament

Mòdul 9: Tècniques Avançades i Consells

Mòdul 10: Aprenentatge Basat en Projectes

© Copyright 2024. Tots els drets reservats