Muutke küpsiste eelistusi

E-raamat: Core Blender Development: Understanding the Essential Source Code

  • Formaat: PDF+DRM
  • Ilmumisaeg: 11-Dec-2020
  • Kirjastus: APress
  • Keel: eng
  • ISBN-13: 9781484264157
  • Formaat - PDF+DRM
  • Hind: 67,91 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: PDF+DRM
  • Ilmumisaeg: 11-Dec-2020
  • Kirjastus: APress
  • Keel: eng
  • ISBN-13: 9781484264157

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

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.
About the Author vii
Chapter 1 Intro to the "Core" Blender Source Code 1(24)
The Blender Project
1(3)
Official Documentation
2(1)
Communication Channels
3(1)
The Blender Source Tree
4(5)
The Blender CMake Build System
9(6)
The Basics
9(3)
Module Build Options
12(3)
A Representative Code Example
15(8)
Geometric Modeling and Operators
15(6)
Blender's Event Loop
21(2)
Road Map for the Remainder of the Book
23(2)
What Will Not Be Covered
23(1)
What Will Be Covered
24(1)
Chapter 2 Blender "DNA" and Serialization 25(30)
Blend File Overview
25(6)
What Does the Blend File Contain?
25(1)
Using the BlendFileReader.py Script
26(5)
A Closer Look at the makesdna Module
31(3)
Blend File Loading Trace in Core Blender: A First Encounter
34(20)
The struct bContext and struct Main Types
34(4)
Initialization of SDNA, Global, and the windowmanager
38(3)
From the Kernel to the Loader
41(4)
Reading the In-Memory startup.blend File
45(9)
Summary
54(1)
Chapter 3 ghost: Soul of the windowmanager Module 55(28)
The Generic Handy Operating System Toolkit (ghost)
56(21)
Overview
56(2)
Initialization
58(1)
Header Files
59(15)
Minimal OpenGL Program Written in C Using ghost
74(3)
windowManager Revisit
77(5)
windowManager's ghost-Related Files
77(2)
ghost Initialization and Event Registration
79(3)
Summary
82(1)
Chapter 4 The blenlib and blenkernel Modules 83(28)
Overview of blenlib
84(17)
Google Test
85(1)
Running Tests
86(1)
blenlib's Unit Tests
87(2)
blenlib's API
89(12)
Overview of blenkernel
101(8)
DNA Types and blenkernel
103(2)
blenkernel API Examples
105(4)
Summary
109(2)
Chapter 5 Blender's Embedded Python 111(26)
The Blender python Module
111(3)
Source Files and Directories
112(1)
The python module API
113(1)
Extending and Embedding Python
114(5)
Adding Python Extensions
115(4)
The mathutils Extension Module
119(16)
Implementation of the mathutils.Vector Class
121(1)
VectorObject
122(1)
Adding Methods to vector_Type
123(1)
Vector_new()'s Implementation
124(5)
Vector_normalize()'s Implementation
129(1)
Other mathutils.Vector Methods
130(2)
Submodules in mathutils
132(3)
Summary
135(2)
Chapter 6 Blender "RNA" and the Data API 137(36)
The Blender makesrna Module
138(19)
Runtime vs. Non-runtime Code
138(1)
Repository "RNA" Code
139(16)
Generated "RNA" Code
155(2)
Setting Blender "DNA" Using "RNA"
157(11)
wmOperatorType
157(1)
Adding a Light
158(10)
The python Module and Blender "RNA"
168(3)
Summary
171(2)
Chapter 7 The editors Module, Operators, and Event System 173(34)
Editors
173(9)
Directory Layout and Files
174(3)
Editor Structs: The "Space" Types
177(3)
Editor Registration
180(2)
windowmanager Revisit: Windows, "Screens," "Areas," and "Regions"
182(7)
Blender's Operators
189(15)
The Operator Structs: wmOperatorType and wmOperator
190(3)
The exec and poll Callbacks
193(2)
Operator Registration
195(2)
Event Distribution
197(7)
Summary
204(3)
Chapter 8 Editor Creation 207
Drawing Editors from WM_main()
207(5)
Adding a Custom Editor
212(18)
Editor Registration
216(5)
Editor Regions
221(4)
Operator Registration and Definition
225(2)
Header Buttons
227(2)
File Changes for the Tutorial Editor
229(1)
The User Interface API
230(6)
Headers
231(3)
The UI_* API Implementation Files
234(2)
Summary
236
Index
239
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.