
Blender's features include advanced simulation tools such as rigid, realistic body, fluid, cloth and softbody dynamics, modifier-based modeling tools, powerful character animation tools, a node-based material and compositing system and Python for embedded scripting.
Released as free software under the GNU General Public License, Blender is available for a number of operating systems, including Linux, Mac OS X, and Microsoft Windows.
Blender was developed as an in-house application by the Dutch animation studio NeoGeo and Not a Number Technologies (NaN). It was primarily authored by Ton Roosendaal, who had previously written a ray tracer called Traces for Amiga in 1989. The name "Blender" was inspired by a song by Yello, from the album Baby.
Roosendaal founded NaN in June 1998 to further develop and distribute the program. The program was initially distributed as shareware until NaN went bankrupt in 2002.
The creditors agreed to release Blender under the terms of the GNU General Public License, for a one-time payment of €100,000 (US$100,670 at the time). On July 18, 2002, a Blender funding campaign was started by Roosendaal in order to collect donations and on September 7, 2002 it was announced that enough funds had been collected and that the Blender source code would be released. Blender is now Free Software and it is being actively developed under the supervision of the Blender Foundation.
The Blender Foundation initially reserved the right to use dual licensing, so that, in addition to GNU GPL, Blender would have been available also under the "Blender License", which did not require disclosing source code but required payments to the Blender Foundation. However, this option was never exercised and was suspended indefinitely in 2005. Currently, Blender is solely available under GNU GPL.
Blender has a relatively small installation size and runs on several popular computing platforms, including Linux, Mac OS X, and Microsoft Windows, along with FreeBSD, IRIX, NetBSD, OpenBSD and Solaris. Unofficial ports are also available for AmigaOS 4, BeOS, MorphOS , Pocket PC and SkyOS.
Though it is often distributed without documentation or extensive example scenes, the software contains features that are characteristic of high-end modelling software.Among its capabilities are:
- Support for a variety of geometric primitives, including polygon meshes, fast subdivision surface modeling, Bezier curves, NURBS surfaces, metaballs, digital sculpting, and outline fonts.
- Versatile internal rendering capabilities and integration with YafaRay, a Free Software ray tracer.
- Keyframed animation tools including inverse kinematics, armature (skeletal), hook, curve and lattice-based deformations, shape keys (morphing), non-linear animation, constraints, vertex weighting, soft body dynamics including mesh collision detection, LBM fluid dynamics, Bullet rigid body dynamics, particle-based hair, and a particle system with collision detection.
- Modifiers to apply non-destructive effects.
- Python scripting for tool creation and prototyping, game logic, importing and exporting from other formats such as OBJ, FBX, DXF, COLLADA, task automation and custom tools.
- Basic non-linear video/audio editing and compositing capabilities.
- Game Blender, a sub-project, offers interactivity features such as collision detection, dynamics engine, and programmable logic. It also allows the creation of stand-alone, real-time applications ranging from architectural visualization to video game construction.
- A fully-integrated node-based compositor within the rendering pipeline
User interface
Blender has had a reputation as being difficult to learn for users accustomed to other 3D graphics software. Nearly every function has a direct keyboard shortcut and there can be several different shortcuts per key. Since Blender became Free Software, there has been effort to add comprehensive contextual menus as well as make the tool usage more logical and streamlined. There have also been efforts to visually enhance the user interface, with the introduction of color themes, transparent floating widgets, a new and improved object tree overview, and other small improvements (such as a color picker widget).
Blender's user interface incorporates the following concepts:
1.
Editing modes
The two primary modes of work are Object Mode and Edit Mode, which are toggled with the Tab key. Object mode is used to manipulate individual objects as a unit, while Edit mode is used to manipulate the actual object data.
For example, Object Mode can be used to move, scale, and rotate entire polygon meshes, and Edit Mode can be used to manipulate the individual vertices of a single mesh. There are also several other modes, such as Vertex Paint, Weight Paint, and Sculpt Mode. The 2.45 release also had the UV Mapping Mode, but it was merged with the Edit Mode in 2.46 Release Candidate 1.
2. Hotkey utilization
Most of the commands are accessible via hotkeys. Until the 2.x and especially the 2.3x versions, this was in fact the only way to give commands, and this was largely responsible for creating Blender's reputation as a difficult-to-learn program. The new versions have more comprehensive GUI menus.
3. Numeric input
Numeric buttons can be "dragged" to change their value directly without the need to aim at a particular widget, thus saving screen real estate and time. Both sliders and number buttons can be constrained to various step sizes with modifiers like the Ctrl and Shift keys. Python expressions can also be typed directly into number entry fields, allowing mathematical expressions to be used to specify values.
4. Workspace management
The Blender GUI is made up of one or more screens, each of which can be divided into sections and subsections that can be of any type of Blender's views or window-types. Each window-type's own GUI elements can be controlled with the same tools that manipulate 3D view. For example, one can zoom in and out of GUI-buttons in the same way one zooms in and out in the 3D viewport. The GUI viewport and screen layout is fully user-customizable. It is possible to set up the interface for specific tasks such as video editing or UV mapping or texturing by hiding features not utilized for the task.
File format
Blender features an internal filesystem that allows one to pack multiple scenes into a single file (called a ".blend" file).
All of Blender's ".blend" files are forward, backward, and cross-platform compatible with other versions of blender.
Snapshot ".blend" files can be auto-saved periodically by the program, making it easier to survive a program crash.
All scenes, objects, materials, textures, sounds, images, post-production effects for an entire animation can be stored in a single ".blend" file. Data loaded from external sources, such as images and sounds, can also be stored externally and referenced through either an absolute or relative pathname. Likewise, ".blend" files themselves can also be used as libraries of Blender assets.
Interface configurations are retained in the ".blend" files, such that what you save is what you get upon load. This file can be stored as "user defaults" so this screen configuration, as well as all the objects stored in it, is used every time you load blender.
The actual ".blend" file is similar to the EA Interchange File Format, starting with its own header (for example BLENDER_v248) that specifies the version, endianness and pointer size, followed by a collection of binary chunks storing the data blocks, and all the type and struct definitions also known as DNA. Although it is hard to read and convert a ".blend" file to another format using external tools, the readblend utility can do this. Dozens of import/export scripts that run inside Blender itself, accessing the object data via API, make it possible to inter-operate with other 3D tools.
Blender organizes data as various kinds of "data blocks", such as Objects, Meshes, Lamps, Scenes, Materials, Images and so on. An object in Blender consists of multiple data blocks - for example, a polygon mesh has at least an Object and Mesh data block, and usually also a Material. This allows various data blocks to refer to each other; there may be, for example, multiple Objects that refer to the same Mesh, allowing the mesh to be duplicated while only keeping one copy of the mesh data in memory, and allowing subsequent editing of all duplicated meshes at the same time. Data block relationships can also be changed manually. Data blocks can also be referred to in other .blend files, allowing the use of .blend files as reusable object libraries.






No comments:
Post a Comment