1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228
|
<chapter id="GeneralInfo">
<chapterinfo>
<author><firstname>Anders</firstname> <surname>Dahnielson</surname></author>
<author><firstname>Romain</firstname> <surname>Behar</surname></author>
<author><firstname>Timothy</firstname> <othername role="mi">M</othername> <surname>Shead</surname></author>
</chapterinfo>
<title>General Information</title>
<sect1 id="CommonQuestions">
<title>Common Questions</title>
<sect2 id="what_is_k3d">
<title>What is &k3d; ?</title>
<para>
&k3d; is the free-as-in-freedom 3D modeling, animation, and rendering system for
GNU/Linux and Win32. &k3d; features a robust, object-oriented plugin architecture, designed
to scale to the needs of professional artists. &k3d; is designed from-the-ground-up to
generate motion-picture-quality animation using RenderMan-compliant render engines.
We strongly recommend the <ulink url="http://www.aqsis.com">Aqsis</ulink> render engine for use with &k3d;.
</para>
</sect2>
<sect2 id="where_do_i_find_k3d">
<title>Where do I find &k3d; ?</title>
<para>
The current version of &k3d; is always available from <ulink url="http://k3d.sourceforge.net">
http://k3d.sourceforge.net</ulink></para>
</sect2>
<sect2 id="who_wrote_k3d">
<title>Who wrote &k3d; ?</title>
<para>
Original author Tim Shead began work on what became &k3d; in early 1994, on an Amiga computer. At that
time, the program was called Equus-3D, and work was subsequently moved to Win32. The application evolved and was to be
a commercial product. During this period the name was changed to &k3d;. Finally, in 1999 Tim
opted to release K-3D under the free-as-in-freedom GNU General Public Licence, which led to the K-3D motto:
"Seven Degrees of Freedom."
The CVS server and web site were hosted on a home machine, until they moved to the SourceForge platform in 2002.
</para>
</sect2>
<sect2 id="k3d_name">
<title>The name begins with K but it's not a KDE app ?!?</title>
<para>
There's been a lot of fuss with this topic. The application's original name was Equus-3D, later
changed by Tim to &k3d; because the meaning of Equus was lost on too many people, and he was
feeling particulary un-creative that day. At that time, Tim was unaware of the existence of the
KDE project. As it happens the K in KDE may either stand for 'Kool' or nothing, as you wish!
Manuel Bastioni has proposed <acronym>Kinka</acronym>, which stands for 'K-3D Is Not a KDE Application'.
</para>
</sect2>
<sect2 id="k3d_status">
<title>What is the status of &k3d; ?</title>
<para>
Please have a look at the SourceForge page for the latest updates of &k3d;. &k3d; is
a work in progress, actively maintained, and after many early missteps, rapidly maturing.
</para>
<para>
Version 0.2.5.0 was the K-3D project's first-ever stable release branch,
a major milestone in the history of the project, and reflects well on
the efforts of its many contributors.
</para>
</sect2>
<sect2 id="k3d_main_features">
<title>Which are the main features of &k3d; ?</title>
<itemizedlist mark="opencircle">
<listitem><para>Licensed under the GNU General Public License (GPL).</para></listitem>
<listitem><para>Record interactive tutorials and macros.</para></listitem>
<listitem><para>Unlimited undos / redos.</para></listitem>
<listitem><para>Robust clipboard support including Cut, Copy, Paste, and Duplicate.</para></listitem>
<listitem><para>Create and edit documents in multiple realtime OpenGL solid, shaded, texture-mapped views.</para></listitem>
<listitem><para>Scripting interface supports JavaScript, Python and Ruby, with an open API for other scripting languages.</para></listitem>
<listitem><para>Model, animate, and interact with animations while they play back for maximum productivity.</para></listitem>
<listitem><para>Highly-evolved architecture allows complete extensibility at runtime through third-party plugins.</para></listitem>
<listitem><para>Animated geometric procedural effects.</para></listitem>
<listitem><para>Powerful control-spline based animation in a uniform interface.</para></listitem>
<listitem><para>Uses the <ulink url="https://renderman.pixar.com/products/rispec/index.htm">Pixar Renderman Interface</ulink> to render motion-picture-quality images with a wide variety of rendering engines.</para></listitem>
<listitem><para>Supports Renderman Subdivision Mesh output.</para></listitem>
<listitem><para>Background rendering and batch rendering.</para></listitem>
<listitem><para>Written in ANSI C++, and GTK+.</para></listitem>
</itemizedlist>
</sect2>
<sect2 id="k3d_render_engines">
<title>Which rendering engines does &k3d; support ?</title>
<para>
For rendering, &k3d; currently supports output through the <ulink url="https://renderman.pixar.com/products/rispec/index.htm">Pixar Renderman Interface</ulink>, a
professional industry standard interface between modelers and renderers. The output would
typically be sent to one of the several render engines that &k3d; supports, including
<ulink url="http://www.aqsis.com/">Aqsis</ulink> and BMRT (note that the latter is no
longer available).
&k3d; could also be used with Pixar's Photorealistic Renderman, or any other Renderman
Interface compliant engine. &k3d;'s modular, flexible architecture should encourage authors
to develop links to other rendering engines - POVRay would be a natural first candidate.
</para>
<para>
Since the afore-mentioned render engines are standalone executables, &k3d; invokes them
by creating Pixar Renderman Interface Bytestream (RIB) files, before handing them off to
the renderjob and renderframe processes. This has many benefits, including the ability to
continue working with the program while rendering, or to queue multiple rendering jobs,
and (future) network rendering.
</para>
</sect2>
<sect2 id="k3d_documents">
<title>How does K-3D store documents ?</title>
<para>
&k3d; documents are stored using a simple, flexible, easy-to-understand XML markup. This
makes the files robust, easily compressed, and easily interchangeable in a variety of
interesting ways. &k3d; supports XML through SDPXML, a C++ XML parser. For document loading,
an instance of the sdpXmlDocument class is used to load the XML tree into memory, where
XML elements and attributes are extracted on an as-needed basis. Trees can be created /
modified, and written to any stream.
</para>
</sect2>
</sect1>
<sect1 id="TechnicalDetails">
<title>Technical Details</title>
<sect2 id="k3d_development_platform">
<title>What is the primary development platform for &k3d;?</title>
<para>
&k3d; is primarily developed under Linux, but &k3d; is portable to several other platforms.
</para>
</sect2>
<sect2 id="k3d_supported_platform">
<title>What platforms are supported by &k3d; ?</title>
<para>
&k3d; is designed to be portable, and therefore all platforms are supported. However, at
this time, &k3d; is built and tested on GNU/Linux and Microsoft Windows. If you would like
&k3d; ported to your platform please contribute patches to the maintainers or author.
</para>
</sect2>
<sect2 id="k3d_hardware_requirement">
<title>What are the hardware requirements for running &k3d; ?</title>
<para>
&k3d; will run on any computer, but a hardware accelerated OpenGL graphic board is highly
recommanded.
</para>
</sect2>
<sect2 id="k3d_programming_language">
<title>What language is &k3d; written in ?</title>
<para>
&k3d; is written in ANSI C++, with a pseudo- client/server architecture. All of the major
functionality is broken down into libraries of objects that are loaded into the application
at run-time. For example, a light in a 3D scene is an object that is implemented in the
corelib library. As of this writing, there are six libraries: bitmaplib, corelib,
geometrylib, sfxlib, toollib, and videolib. Careful consideration has gone into the design
of a system that supports run-time integration of libraries from third-parties. This is
important as it gives non-technical users the ability to install new or updated features
without recompiling. The interfaces between objects are designed so that objects can be
written using programming languages other than C++.
</para>
<para>
K-3D objects are written using a (very small) subset of the Component Object Model, defined
in the SDPTYPES library.
</para>
</sect2>
<sect2 id="k3d_widget_set">
<title>Which X widget set do you use for the user interface ?</title>
<para>
The &k3d; user interface is built on top of GTK+, the popular X widget set used by the GIMP
and GNOME projects, among many others. By building on top of GTK+, &k3d; can be compiled
without source changes for both GNU/Linux and Win32.
</para>
<para>
&k3d; makes heavy use of the SDPGTK library, which wraps GTK+ using C++ classes. In addition
to making the code more object-oriented and readable, SDPGTK has the ability to load XML
documents in GTKML format to create user interfaces. The GTKML files act as user interface
templates, and are easily edited, allowing fast UI creation, along with end-user customization
and internationalization.
</para>
</sect2>
<sect2 id="k3d_display_api">
<title>What API does &k3d; use for displaying 3D graphics ?</title>
<para>
&k3d; makes extensive use of OpenGL/Mesa in the user interface. This allows the program to
easily benefit from hardware acceleration on the end-user's platform. &k3d; connects to the
OpenGL API through the SDPGL library, which wraps the OpenGL functions so that they can be
traced. When SDPGL_TRACE is defined at build time, all OpenGL calls will be logged to stdout
for analysis.
</para>
</sect2>
<sect2 id="k3d_developer_info">
<title>Where can I find more information about &k3d; system architecture?</title>
<para>
Please consult the &k3d; Developer Guide for more information on system architecture, writing
plugins and how to contribute to the project.
</para>
</sect2>
</sect1>
<sect1 id="Licensing">
<title>Licensing</title>
<sect2 id="k3d_free_software">
<title>Is &k3d; Free Software ?</title>
<para>
&k3d; is released under the GNU General Public License. This license is available from the
Free Software Foundation, <ulink url="http://www.fsf.org">http://www.fsf.org</ulink>, and you should always
receive a copy of this license with your &k3d; distribution. If you did not receive a copy
of this license please contact the current maintainer of &k3d;.
</para>
</sect2>
</sect1>
<sect1 id="AdditionalResources">
<title>Additional Resources</title>
<sect2 id="k3d_mailing_list">
<title>Is there a &k3d; mailing list ?</title>
<para>
Yes, the &k3d; developer mailing list is located on SourceForge at
<ulink url="http://sourceforge.net/mail/?group_id=11113">http://sourceforge.net/mail/?group_id=11113</ulink>
and welcomes both contributing developers and users.
</para>
</sect2>
</sect1>
</chapter>
|