Referaat_Juri_Snezkov_IF06 - Tallinna Ülikool

plainspecialSoftware and s/w Development

Dec 14, 2013 (3 years and 9 months ago)

86 views

Tallinna
Ü
likool


Informaatika instituut














Juri Sne
ž
kov


3D modelleerimise programm

³
K
-
3D
´


Referaat
























Tallinn 2008


K
-
3D is the free
-
as
-
in
-
freedom 3D modeling, animation, and rendering system for GNU / Linux,
Posix, and Win
32 operating systems. K
-
3D features a robust, object
-
oriented plugin architecture,
designed to scale to the needs of professional artists, and is designed from
-
the
-
ground
-
up to
generate motion
-
picture
-
quality animation using

RenderMan
-
compliant render engi
nes.
K
-
3D
programmers

strongly recommend the

Aqsis

render engine for use with K
-
3D.

K
-
3D's innovative interactive tutorial system will introduce you to basic use of the program.
New tutorials can easily be recorded and shared with the rest of the community
.

K
-
3D allows you to create and edit documents in multiple realtime OpenGL solid, shaded,
texture
-
mapped views. You can even model, animate, and interact with animations while they
play back for maximum productivity
.

Original author Tim Shead began work on

what became K
-
3D 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 K
-
3D. Fin
ally, in 1999 Tim opted to release K
-
3D under the free
-
as
-
in
-
freedom GNU General Public Licence, which led to K
-
3D's slogan: "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. K
-
3D benefits from the contributions of volunteers from
around the world and all walks of life.

K
-
3D will run on any computer, but a hardware accelerated OpenGL graphic board is highly
recommended.

R
ecommended system:



CPU:

400Mhz



RAM:

256 MB



Vide
o:

A good OpenGl card



Hard Disk

:

About 150mb of disk space should be more than enough. (if you are going
to compile it you will need between 0.5
-
2Gb depending on the options)

Also take in count that most of the K
-
3D documentation is online. So you will pr
obably need a
internet connection.

Volunteers have built K
-
3D on nearly any platform you ca
n imagine, including Linux, Mac
OSX, Windows, BSD Unix, and Solaris. Often, this work take
s the form of a one
-
off "stunt"
that
doesn't get maintained. In more practi
cal terms, normal day
-
to
-
day K
-
3D development takes
place on Linux, Mac OSX, and Windows XP. Beginning with K
-
3D 0.7 we provide binary
installers for Mac OSX and Windows, and source
-
code for all other platforms. Various Free
Software operating system distr
ibutions build K
-
3D from source and provide
binary packages
for their users
.

There is a list of platforms on the official k
-
3D web page that look like this:


Platforms



GNU / Linux (stable).



Win32 (stable).



MacOSX (unstable).



BSD (untested).



Solaris (untest
ed).


For rendering, K
-
3D currently supports output through the Pixar Renderman Interface, a
professional industry standard interface between modelers and renderers. The output would
typically be sent to one of the several render engines that K
-
3D supports
, includ
ing Aqsis and
BMRT
. K
-
3D could also be used with Pixar's Photorealistic Renderman, or any other Renderman
Interface compliant engine. K
-
3D's modular, flexible architecture should encourage authors to
develop links to other rendering engines
-

POVRa
y would be a natural first candidate. A plugin
module supporting the Yafray engine ships with K
-
3D.

Since the afore
-
mentioned render engines are standalone executables, K
-
3D 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 network
rendering.

K
-
3D documents are stored using a s
imple, flexible, easy
-
to
-
understand XML markup. This
makes the files robust, easily compressed, and easily interchangeable in a variety of interesting
ways. K
-
3D supports XML through SDPXML, a C++ XML parser. For document loading, an
instance of the sdp
XML
Document

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.

Main features of K
-
3D:



Licensed under the GNU General Public License (GPL).



Record interactive tutorials and macros.



Unlimited undos / redos.



Create and edit documents in multiple realtime OpenGL solid, shaded, texture
-
mapped views.



Scripting interface supports K3
DScript and Python, with an open API for other scripting
languages.



Model, animate, and interact with animations while they play back for maximum productivity.



Highly
-
evolved architecture allows complete extensibility at runtime through third
-
party
p
lugins.



Animated geometric procedural effects.



Powerful control
-
spline based animation in a uniform interface.



Uses the Pixar Renderman Interface to render motion
-
picture
-
quality images with a wide
variety of rendering engines.



Supports Renderm
an Subdivision Mesh output.



Background rendering and batch rendering.



Written in ANSI C++, and GTK+.


Modelling in K
-
3D:



Powerful scene graph

Procedural Modeling

with complete modeling history.



Selection: Objects, meshes, faces, edges, patched, curve
s, point groups, points.



Geometry types: Polygon, NURBS, subdivision, blobby.



3D Primitives: Cone, circle, cushion, cylinder, disk, grid, paraboloid, polyhedron, sphere,
torus.



Boolean modeling operations (using GTS library).



Text: FreeType2 support.



Insta
ntiation: Create duplicates without adding gemometry to the scene.


Animation in K
-
3D:



Visualization Pipeline

allows arbitrary dataflow
-

any object property can be connected to
any other compatible property.



Animate any value.



Unlimited number of animatio
n channels.



Bezier curve channels.



Animate modeling operations.

Scripting in K
-
3D:



Python

engine (preferred engine for new script development).



K3DScript engine (minimal scripting engine for tutorials / macros).



Support for alternate script engine

plugins and environments.


K
-
3D supported formats:



Geometry Formats: Wavefront OBJ, GTS and a raw format are fully supported, other
ones are optional and depend on PLIB installation.
Experimental plugins include OpenFX,
OFF, RIB and X formats.



Image Forma
ts:



JPEG (all platforms).



PNG (all platforms).



TIFF (all platforms).



OpenEXR (requires optional OpenEXR plugin).



BMP (requires optional ImageMagick plugin).



SUN (requires optional ImageMagick plugin).


K
-
3D and Blender comparison:

In a nutshell, Blender ha
s a more complete feature set than K
-
3D at the moment, while K
-
3D has
the more ambitious, long
-
term
-
scalable architecture. It is accepted by many that the Blender
sources need a complete redesign and rewrite. On the other hand, the K
-
3D sources often recei
ve
praise for their good design and "everything is a plugin" philosophy. So while K
-
3D is lacking
many important features, we feel that we have an unbeatable foundation upon which to build.
Some highlights:



K
-
3D's Next Generation User Interface uses GTK2 t
o provide a graphical user interface
that will integrate well with the user's desktop on all platforms. Because everything in K
-
3D
is a plugin, including the user interface, specialized alternative user interfaces can be
substituted for the default, if des
ired.



While comprehensive undo/redo support is a recent addition to Blender, it has been
designed into K
-
3D from the start. Not only does K
-
3D support unlimited undo/redo of any
user interaction, including scripts,
K
-
3D coders

have recently added hierarchical undo/redo,
which allows the artist to jump back
-
and
-
forth among multiple "branches" of modifications
to their scene.



Blender has a built
-
in render engine, and poor support for integrating third
-
party render
engines such as

Aqsis. Because everything in K
-
3D is a plugin, including render engines,
lights, and materials, any render engine can be integrated with K
-
3D as well as any other.



K
-
3D is a procedural modeler, meaning that we store the entire history of user
modification
s that go into creating a model. That means that the user can go back into the
"history" of a model and make changes, and seeing how those changes affect subsequent
steps in the history. K
-
3D's

Visualization Pipeline

does for 3D graphics what tools like
GS
treamer do for audio
-

plugins can be combined in unusual and interesting ways to create
new effects.



K
-
3D has been written from
-
the
-
ground
-
up to support the

RenderMan
standard, used by
professionals to create feature
-
length computer animation.

This is

my
sample

of using K
-
3D.
In schematic view it looks like this:


After rendering
I

had this picture:


I have made some more pictures to show more details of using different 3D
modeling

functions.
Using opacity to improve appearance of water:


Using mesh del
ete function to make
windows on a solid wall:


Used sources:

1.

http://www.k
-
3d.org/wiki/FAQ

-

frequently asked questions about K
-
3D

2.

http://www.k
-
3d.org/wiki/Featur
es

-

different features of K
-
3D