Programování grafických aplikací (BI-PGA), Přednáška č. 2
3D grafika - Blender: Úvod, metodika, využití
jazyka Python
Jiří Chludil
Fakulta informačních technologií
České vysoké učení technické v Praze
https://courses.fit.cvut.cz/BI-PGA/
ZS 2024/2025
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 1 / 57
Historie rozšiřování aplikací pomocí pluginů
3D Studio
1990 - Verze 1 - 3D Studio pod OS MS-DOS
1996 - Verze 1 - 3D Studio Max pod OS windows
2005 - Akvizice Autodeskem
2007-16 - Verze 2008-2017
2006 - podpora pluginů
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 3 / 57
Historie rozšiřování aplikací pomocí pluginů
Blender I
1994 - Verze 1.0 - začal vývoj ve studiu NeoGeo
1999 - Verze 1.6x - release pro Windows, PPC
2000 - Verze 2.1 - podpora Pythonu
2001 - Verze 2.2x - release pro MacOs
2002 - Verze 2.25 - vydán jako Open Source
2008 - Verze 2.48 - Python skripty
2009-11 - Verze 2.5x - Python API
2012 - Verze 2.5x - Python API (upgrade)
2013 - Verze 2.5x - Python API (nodes. mesh tools)
2016 - Verze 2.80 - Změny na API (bez zpětné kompatibility)
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 4 / 57
Co je třeba řešit u zásuvných modulů
Typ modulu
Nastavení prostředků (konfigurace)
Registrace
Uživatelské rozhraní modulu
Použité matematické a grafické funkce
API rozšiřované aplikace
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 6 / 57
Typy modulů u Blenderu I
Vytváření geometrie a objektů
▶Geometrie (Mesh)
▶Křivky
▶Objekty
▶Generování složitějších struktur
Manipulace s objekty
▶Modifikátory
▶Generování
▶Deformace
▶Simulace
Import/Export
▶Formáty
▶API
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 7 / 57
Typy modulů u Blenderu II
Materiály a textury
▶Materiály
▶Mapování
▶Textury
Systém
▶3D zobrazení
▶Text editor
▶Témata
Rendering
▶Renderer
▶Node
Animace
Game engine
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 8 / 57
Co je třeba řešit u zásuvných modulů
Typ modulu
Nastavení prostředků (konfigurace)
Registrace
Uživatelské rozhraní modulu
Použité matematické a grafické funkce
API rozšiřované aplikace
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 9 / 57
Co je třeba řešit u zásuvných modulů
Typ modulu
Nastavení prostředků (konfigurace)
Registrace
Uživatelské rozhraní modulu
Použité matematické a grafické funkce
API rozšiřované aplikace
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 11 / 57
Co je třeba řešit u zásuvných modulů
Typ modulu
Nastavení prostředků (konfigurace)
Registrace
Uživatelské rozhraní modulu
Použité matematické a grafické funkce
API rozšiřované aplikace
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 14 / 57
Co je třeba řešit u zásuvných modulů
Typ modulu
Nastavení prostředků (konfigurace)
Registrace
Uživatelské rozhraní modulu
Použité matematické a grafické funkce
API rozšiřované aplikace
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 24 / 57
Použité matematické a grafické funkce
math
mathutils
▶Matematické typy (vektor, matice, barva, atd)
▶Operace nad vektory a maticemi (rotace, determinat, atd.)
▶interpolátory
▶stromové struktury
SciPy
NumPy
Ostatní
request
json
time
random
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 25 / 57
Co je třeba řešit u zásuvných modulů
Typ modulu
Nastavení prostředků (konfigurace)
Registrace
Uživatelské rozhraní modulu
Použité matematické a grafické funkce
API rozšiřované aplikace
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 26 / 57
API rozšiřované aplikace
Context Access (bpy.context)
▶režimy Blenderu a informace o scéně
▶informace o výbětu
▶nastavení Blenderu
Data Access (bpy.data)
▶přístup k datům
▶bpy.data.meshes["Cube"]
Operators (bpy.ops)
▶volání funkcí blenderu
▶bpy.ops.mesh.subdivide(number_cuts=3, smoothness=0.5)
Types (bpy.types)
▶struktury elementů scény
▶konstanty
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 27 / 57
Vytváření geometrie a objektů - Geometrie (Mesh)
Základem je objekt Mesh
Základní getry
▶vertices, edges, loops polygons, skin_vertices
▶total_vert_sel, total_edge_sel, total_face_sel
▶is_editmode
▶shape_keys
Vytvoření
▶from_pydata
Manipulace
▶transform
Validace a aktualizace
▶validate
▶update
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 34 / 57
Vytváření geometrie a objektů - Objekty
Základem je objekt Object
Vytvoření a mazání
▶add, add_named
▶duplicate, duplicate_move_linked
▶join, join_shapes
▶delete
Střed
▶origin_clear, origin_set
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 46 / 57
Import a Export
Základem je práce se souborem a získání nastavení z GUI Blenderu
Serializace
▶Vytvoření obsahu ve formě objektu
▶formátovače (json.dumps, repr)
Práce se souborem, nastavení GUI Blenderu
▶definice atributu (selected_only, format, extensions)
▶open, write, read
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 51 / 57
Materiály a textury - Mapování, Textury
Vhodné řešení je využít Cycles, vše jsou uzly
Texture
▶new, copy, paste, ..
▶node_tree
▶node (location, color, label ...)
▶NodeLinks (new, remove, clear)
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 55 / 57
Co bychom po dnešku měli znát
Témata probraná na dnešní přednášce:
Základní struktory Blender API
Funkce podporující různé typy modulů
Základy UI
Chludil (FIT) BI-PGA, Přednáška č. 2 ZS 2024/2025 57 / 57