Core Blender Development - Hollister Brad E. | Libro Apress 12/2020 -

home libri books ebook dvd e film top ten sconti 0 Carrello

Torna Indietro

hollister brad e. - core blender development

Core Blender Development Understanding the Essential Source Code

Disponibilità: Normalmente disponibile in 15 giorni
A causa di problematiche nell'approvvigionamento legate alla Brexit sono possibili ritardi nelle consegne.

44,98 €
42,73 €

Questo prodotto usufruisce delle SPEDIZIONI GRATIS
selezionando l'opzione Corriere Veloce in fase di ordine.

Pagabile anche con 18App Bonus Cultura e Carta del Docente

Facebook Twitter Aggiungi commento

Spese Gratis


Lingua: Inglese


Pubblicazione: 12/2020
Edizione: 1st ed.


Learn the essential source code of Blender and its unique build system. This book provides the inner workings of the Blender C-based source code, and will be indispensable for those wanting to contribute to this important open-source project.

Blender is an open-source 3D modeling and rendering software package used in the production of assets for animated projects, 3D printing, games, and even scientific visualization. This book goes in depth and discusses the primary modules related to the GUI and the geometric modeling work. You'll start by learning how to reverse engineer geometric operators, and from there move on to the main features of the source code and how to apply them. When done, you'll have the necessary foundation for exploration in other modules of the Blender source code. 

Lack of software engineering knowledge, such as experience with large cross-platform code base, remains insurmountable for many new developers. While the Blender site includes much useful information, it is not detailed enough. Core Blender Development breaks down the barriers to entry for open-source development in 3-D modeling. 

What You’ll Learn
  • Find the code for various functions and editors in Blender
  • Track down bugs, and contribute new functionality to the Blender code base
  • Examine the .blend file and how it stores Blender state
  • Understand the Blender core code base beyond the community website documentation
  • Review the explicit code traces and source files of descriptions of the code base
Who This Book Is For

Primarily for novice to intermediate level developers and programmers with an interest in Blender, graphics, and visualization, who likely don’t have experience of reverse engineering a large code base.


Chapter 1. A First Encounter with Blender’s Source Code
Chapter goal: To outline the Blender source tree, and provide an execution trace of how Blender registers geometric manipulation operators, and the execution of a few of the associated callbacks.
• The Blender Project
o Discusses where Blender source code is hosted and how developers can find help online.
• The Blender Source Tree
o Listing of the modules included in Blender, and what each module does
• The Blender CMake Build System
o How Blender makes uses of the CMake build system, and how various modules can be included or excluded from a build
• Some High-Level Geometric Modelling Tools & Their Operators
o Discusses how operators are registered in the C code
o Describes where primitive creation and geometric editing operators are registered and how to determine their callbacks
• The Model-View-Controller Architecture of Blender
o Explains the rationale for the general architecture of Blender and its history
• Roadmap for the Remaining Book
o What is “core” Blender?
What this book covers and what it does not cover

Chapter 2. The Blend File Format
Chapter goal: Explains the persistent data model and related data structures of the .blend file
• What Does the .blend File Contain?
o High-level description & purpose of the .blend file
• Byte Layout of the .blend File
• Backwards Compatibility of the .blend File
• Blender DNA and the Data Model
o Shows how the contents of the .blend file map to DNA (data structures) and the data model and internal API
• The Dependency Graph

Chapter 3. GHOST and the Main Event Loop
Chapter goal: Dissects the global host module (GHOST) and points out the high-level main event loop in the window manager module
• Blender’s cross-platform support for multiple windowing and operating systems: gHOST
o Overview of the source files in the gHOST module
• Trace of the Initialization Routines
• GHOST and the Event Loop
• Differences Between Linux, MS Windows, and MacOS builds

Chapter 4. BlendLib & Utilities
Chapter goal: Discusses the suite of functions provided by the internal utilities libraries of Blender
• The Math Utilities
o Explanation of the math utilities used throughout core Blender
• The File Utilities
• The global context and blendlib

Chapter 5. Blender Embedded Python Engine
Chapter goal: Describes the connection between Python API and the internal compiled code of the embedded (extended) interpreter
• How Python is Embedded in a C Program
o Preliminaries on embedded Python
• How Blender Embeds Python
o UI dependencies
o Associated source files & important module (externally linked) functions
o Startup and initialization
• The Data API & RNA generated code

Chapter 6. Blender User Interface Components
Chapter goal: Describes the internal graphical user-interface of Blender and how Blender uses OpenGL to draw and manage its custom UI
• Internal UI API
o Describes Windows, Other UI Elements, and Events
• How to construct simple UI Elements in C.
• Hierarchy of UI Elements.
• Trace of Window Updates and Drawing in C code

Chapter 7. BMesh Data Structure and the bmesh Module
Chapter goal: Describes the bmesh data structure and how the associated geometric operators update its data.
• BMesh Design
o How BMesh stores geometry data?
o How BMesh updates data?
o How BMesh is linked to Python scripting modules via RNA (Data API)?
o Trace of a Hypothetical BMesh update with the following operators
Knife Cut
• Associated source code (modules and files) of bmesh
• How BMesh is serialized in the .blend file?
• Associated DNA structures and BMesh

Chapter 8. Adding a Custom Editor Module
Chapter goal: A details set of steps to add a new module to the Blender code base. Provides both an all C-code implementation of an editor, and then an implementation that uses Python to produce the same GUI components. The parallel views further reinforce the material from Chapters 5 & 6.
• A Basic Window in C
o Adding operators and buttons in C
• Adding Operators and Buttons in Python
o How these UI elements map to C functions in core Blender
• Adding Source Files for a New Editor
o CMake additions for proper system build with a new module (editor)

Chapter 9. Beyond Core Blender Development
Chapter goal: Suggests approaches to reverse engineering and developing non-Core Blender
• Modifiers and Other Editors
• Cycles Rendering
• Physics Simulation


Brad Hollister holds a PhD from the University of California Santa Cruz in computer science, and has extensive software development experience both professionally and in the areas of open source, including BRL-CAD, VTK, and SCIRun. His research includes scientific visualization, virtual reality simulation for training, and computer graphics. Dr. Hollister is also faculty adviser for the Open Source Mozilla Campus Club at the California State University Dominguez Hills.

i libri che interessano a chi ha i tuoi gusti

Altre Informazioni



Condizione: Nuovo
Dimensioni: 235 x 155 mm Ø 454 gr
Formato: Brossura
Illustration Notes:8 Illustrations, black and white
Pagine Arabe: 244
Pagine Romane: vii

Utilizziamo i cookie di profilazione, anche di terze parti, per migliorare la navigazione, per fornire servizi e proporti pubblicità in linea con le tue preferenze. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie clicca qui. Chiudendo questo banner o proseguendo nella navigazione acconsenti all’uso dei cookie.