{"product_id":"core-blender-development-9781484264140","title":"Core Blender Development","description":"\u003cb\u003eBook Synopsis\u003c\/b\u003e\u003cbr\u003e\u003cdiv\u003eLearn 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.\u003c\/div\u003e\u003cdiv\u003e\u003cbr\u003e\u003c\/div\u003e\u003cdiv\u003eBlender 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. \u003c\/div\u003e\u003cdiv\u003e\u003cbr\u003e\u003c\/div\u003e\u003cdiv\u003eLack of software engineering knowledge, such as experience with large cross-platform code base, remains insurmountable for m\u003cbr\u003e\u003cbr\u003e\u003cb\u003eTable of Contents\u003c\/b\u003e\u003cbr\u003eChapter 1. A First Encounter with Blender’s Source CodeChapter 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.•\tThe Blender Projecto\tDiscusses where Blender source code is hosted and how developers can find help online.•\tThe Blender Source Treeo\tListing of the modules included in Blender, and what each module does•\tThe Blender CMake Build Systemo\tHow Blender makes uses of the CMake build system, and how various modules can be included or excluded from a build•\tSome High-Level Geometric Modelling Tools \u0026amp; Their Operatorso\tDiscusses how operators are registered in the C codeo\tDescribes where primitive creation and geometric editing operators are registered and how to determine their callbacks•\tThe Model-View-Controller Architecture of Blendero\tExplains the rationale for the general architecture of Blender and its history•\tRoadmap for the Remaining Booko\tWhat is “core” Blender?\tWhat this book covers and what it does not cover\u003cbr\u003eChapter 2. The Blend File FormatChapter goal: Explains the persistent data model and related data structures of the .blend file•\tWhat Does the .blend File Contain?o\tHigh-level description \u0026amp; purpose of the .blend file•\tByte Layout of the .blend File•\tBackwards Compatibility of the .blend File•\tBlender DNA and the Data Modelo\tShows how the contents of the .blend file map to DNA (data structures) and the data model and internal API•\tThe Dependency Graph\u003cbr\u003eChapter 3. GHOST and the Main Event LoopChapter goal: Dissects the global host module (GHOST) and points out the high-level main event loop in the window manager module•\tBlender’s cross-platform support for multiple windowing and operating systems: gHOSTo\tOverview of the source files in the gHOST module•\tTrace of the Initialization Routines•\tGHOST and the Event Loop•\tDifferences Between Linux, MS Windows, and MacOS builds\u003cbr\u003eChapter 4. BlendLib \u0026amp; UtilitiesChapter goal: Discusses the suite of functions provided by the internal utilities libraries of Blender•\tThe Math Utilitieso\tExplanation of the math utilities used throughout core Blender•\tThe File Utilities•\tThe global context and blendlib\u003cbr\u003eChapter 5. Blender Embedded Python EngineChapter goal: Describes the connection between Python API and the internal compiled code of the embedded (extended) interpreter•\tHow Python is Embedded in a C Programo\tPreliminaries on embedded Python•\tHow Blender Embeds Pythono\tUI dependencieso\tAssociated source files \u0026amp; important module (externally linked) functionso\tStartup and initialization•\tThe Data API \u0026amp; RNA generated code\u003cbr\u003eChapter 6. Blender User Interface ComponentsChapter goal: Describes the internal graphical user-interface of Blender and how Blender uses OpenGL to draw and manage its custom UI•\tInternal UI APIo\tDescribes Windows, Other UI Elements, and Events•\tHow to construct simple UI Elements in C.•\tHierarchy of UI Elements.•\tTrace of Window Updates and Drawing in C code\u003cbr\u003eChapter 7. BMesh Data Structure and the bmesh ModuleChapter goal: Describes the bmesh data structure and how the associated geometric operators update its data.•\tBMesh Designo\tHow BMesh stores geometry data?\tvertices\tedges\ttopology\tetc.o\tHow BMesh updates data?o\tHow BMesh is linked to Python scripting modules via RNA (Data API)?o\tTrace of a Hypothetical BMesh update with the following operators\tBevel\tExtrude\tKnife Cut\tetc.•\tAssociated source code (modules and files) of bmesh•\tHow BMesh is serialized in the .blend file?•\tAssociated DNA structures and BMesh\u003cbr\u003eChapter 8. Adding a Custom Editor ModuleChapter 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 \u0026amp; 6.•\tA Basic Window in Co\tAdding operators and buttons in C•\tAdding Operators and Buttons in Pythono\tHow these UI elements map to C functions in core Blender•\tAdding Source Files for a New Editoro\tCMake additions for proper system build with a new module (editor)\u003cbr\u003eChapter 9. Beyond Core Blender DevelopmentChapter goal: Suggests approaches to reverse engineering and developing non-Core Blender•\tModifiers and Other Editors•\tCycles Rendering•\tPhysics Simulation\u003c\/div\u003e","brand":"APress","offers":[{"title":"Default Title","offer_id":51019939807575,"sku":"9781484264140","price":49.49,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0817\/1739\/5799\/files\/9781484264140.jpg?v=1750781814","url":"https:\/\/bookcurl.com\/products\/core-blender-development-9781484264140","provider":"Book Curl","version":"1.0","type":"link"}