Graphics Reference
In-Depth Information
single static library that an application can link to, and attempts to provide a flexible system
that can be used to explore what is possible with Direct3D. Hieroglyph 3 was made an open
source project in February, 2010. This was done in part to provide an open way to demon-
strate the use of various parts of Direct3D, as well as to give beginners a quick and easy
way to see how an application works. Jack Hoxley and Matt Pettineo have both contributed
to the library and sample programs throughout the development of this topic as well.
In addition, computer graphics topics often provide their sample code in a custom-
ized library that is delivered with the topic. The same library is rarely used across more
than one topic, and thus users must always acquaint themselves with whatever library is
being used by the topic they are currently reading. While this is not a terrible situation
(after all, having at least some source code to work from is better than none...) it would be
better to have continuity across multiple projects with the same library. Since Hieroglyph 3
is an open project, it can be reused over and over and will be available as the basis for
future topics as well.
Again, this has been done in the hope that it will provide a better learning experience
for the reader, which is the ultimate motivation for writing this topic in the first place!
Key Features
The library is intended to provide a simple and efficient way to use the various features of
Direct3D 11 to try out new rendering techniques. As mentioned above, the Hieroglyph 3
library is based on Direct3D 11. While there are many individual components and features
that make up its feature set, this section will briefly describe the most important and visible
features.
In general, the library provides two major sets of functionality. The first is support
for application development, including an extensible base application class, along with
many of the individual features that an application needs to use such as an event system, a
mechanism for receiving Win32 messages, high precision timing classes, math and geom-
etry classes, among many others. In general, the concept is to make the application writing
process less work-intensive, so that programmers can spend more time developing render-
ing algorithms.
The second portion of the library is entirely concerned with defining a scene and
rendering it in a customizable way. This includes the definition of the objects that make up
a 3D scene and how to combine them into a scene-graph-based representation. Each ren-
derable object can be configured to have customizable geometry, as well as a configurable
material. These are then used to represent the object in any rendering of the scene, and are
hence the primary inputs into the rendering system.
The rendering library is essentially built around the concept of using the geometry
and material classes to provide input to the rendering pipeline (as geometry) and to the
Search WWH ::




Custom Search