Physical model
For simulation of motion and of solids' interaction as well as of their systems (with rigid and limp connections, with dynamic changeability of system topology), as well as of nonsolid bodies (jelly-like bodies and such bodies as plants, trees, water surface, etc), and, in addition, of fabrics and hair, a mathematical model based upon Verle's integration algorithm is used.
Physical bodies and systems are represented as a set of material points with linkages applied to them (both intrinsic to the systems and bodies, and dynamical ones, for example, collision, rubbing, etc). At the same time, only points' positions in different moments of time are memorized; the speeds are not, they result from these positions.
Such scheme is quite a coherent one, since in case a connection system was not represented accurately enough at the current step, next step will result in a more precise solution, particularly if the system works for quiescent state.
Integrated architecture
The engine makes possible combining different open spaces and enclosed spaces. This feature, essential for up-to-date engine, can be realized in different ways. Due to the unique system of cutting off the invisible areas, and original design of ground surface, you can simultaneously see both an entrance to a huge cave, and the land up to skyline.
Realistic lighting
The engine (the first and the only) supports visual accommodation. This means that, if you look at a bright object, pupils contract, and you begin to see color shades on bright surfaces being unable to discern them looking at dark surfaces.
This automatically causes so-called "glaring effect" (darkening of the picture, when looking at bright light). This simplifies level-designers' work, since they no longer need to manually add scattered light in darkened rooms). Moreover, this effect noticeably strengthens emotional strain, when going through "dark localities" in the game.
Physics of systems
It's quite a necessary attribute for an up-to-date game. The engine supports the systems, which behave exactly according to the physics laws, such as chains, suspension bridges, etc. Walking on a suspension bridge, the character would swing it, and may even fall down because of the oscillation, if incautious.
Simulation of clothes
The engine provides a possibility to simulate clothes with a great productivity. You can dress dozens of characters simultaneously, and the clothes would realistically flap in the wind and behave according to characters' movements, with no repetitions.
Simulation of hair
The engine supports possibility of simulation of hair. Even though this is quite a difficult task, the effect (even considering the main character only) exceeds all expectations.
Life-like Death Animation
This oxymoron is an accepted definition, which means that a defunct character falls absolutely naturally, according to the physics laws. E.g., if the character catches a packet, one would be thrown by the bullet, hit his elbow on the cupboard, roll over and fall down the stairs, without hitting his nose on the handrail.
Life-like Life Animation
This is a unique technology, which was realized in real-time never before. The thing is that a character does not follow scheduled animation (even if it uses inverting kinematics and motion flow). He tends to follow it, making certain muscular efforts, as long as it's possible. Nevertheless, animation continues operating in normal mode until the differences become considerable, and only after that animation blending is executed.
Advanced shaders
The engine uses quite an advanced system of materials, based on compilation of shaders in the instruction of abstract SIMD-machine, where one instruction is equal to one pass. This allows using same shaders on different video cards at higher operating speed. The point is that classical scheme consists in creation of different branches of code for different facilities, and/or in using of a generalized model, which is not always effective. The old approach quite often results in decreasing of productivity, and in deterioration of picture's quality, in addition becoming time-consuming for programmers and animators.
Three-dimensional texturization
The engine provides a possibility to use both 'solid', and 'surface' 3D textures. This allows to considerably improve quality of the picture, and save time for animators/texturizers. The point is that three-dimensional textures do not require creation of mapping, which is necessary for other objects. For example, it is extremely difficult to create mapping for a grotto or a cave, avoiding visible butting when overlaying monochromatic-noisy textures. Habitual trick (creation of polygons with semi-transparent textures) is both slow and inconvenient.
LOD for objects
The engine supports several LOD extents for objects, both fixed (created by a modeler), and automatic (between fixed ones). This helps to secure smoothness in LOD switching, and at the same time increases productivity.
Visibility-to-horizon
Thanks to the so-called 'texture-based simplification,' system, and the 'LOD' automatic generation for ground surface, you can see the whole land up to skyline, of excellent quality.
This means, that if looking at the town on the mountain from a distance you were at the moment, seen as a white point, you would see it exactly the same. As you approach the town, the point would grow, "becoming" a town, quite smoothly, without any "jump cuts".
Procedural textures
The engine allows adjusting and using of procedural textures. Procedural textures allow creating beautiful animating textures with no repetitions, and with unlimited number frames, at a very low cost. Furthermore, such textures can be used for creation of texture's interactivity (ripples caused by a stone thrown to the water).
Advanced technology of scissoring of invisible objects
The engine realizes a powerful system of scissoring of invisible objects. It's based on so-called DSG (Dynamic Scene Graph), a natural extension of portal system, perfected by occluders. Together they provide all DSG advantages: non-Euclidean visibility (through portals), automatic support of interoperationality (i.e. a single declaration of graph junction: there are mirrors and portals, which means that mirrors are visible through portals and vice versa); this is also a good way to scissor invisible objects in open spaces, when the classical algorithm fails. That means, if a man hides behind the tree, he would not be pictured.
Layered fog
Layered fog has been a must-have feature for today's engines. Dagor supports not only layered fog, but also 3D fog in general, in a quite arbitrary form. At the same time, its design is rather valid, unlike "fake" (semi-transparent polygons at the contour) style. Volumetric ventilators' shadows; man's volumetric shadow in the shadow of the ventilator, etc. Unfortunately, arbitrarily formed fog (unlike layered one) is quite an expensive effect, and that's why simple 'layered fog' is used along with and separately from it.
Glow
This is a spectacular effect, which simulates a real biological mechanism. The point is that when eye looks at bright light, the shape of the source of light become "blurred", forming an indistinct bright spot. At that, this spot "obstructs" visibility of the objects, which are actually closer to the eye, than is the source.
Dagor realizes this effect the same as it's done in non-real-time renderers (3DS MAX, Maya, etc). At the same time, productivity depends on complexity of the scene only linearly, and doesn't depend on number of the luminous objects! This means, that having a picture of better (than when using a classical algorithm) quality, there'll be no matter whether all pixels would shine, or just the only one, since this wouldn't affect productivity.
In today's engines, this effect is usually simulated with the help of a special lens flare, which represents a stain. This approach however cannot reproduce an event accurately. Furthermore, the classical algorithm increases processing time consumption, according to polynomial dependence on complexity of the scene at best (since it requires ray tracing), and on number of the luminous objects; but for all that capabilities of recently developed video cards are not used.
Particle systems
A rich particle system is realized in the engine. Traditional scheme, where a programmer develops each system, is extended in the engine by possibility to create new (or improve the existing) particle systems in a script, while preserving a potentiality for this to be set by an animator. Due to that fact, in each particular case (in this torch, in that waterfall, etc), the animator will be able to see exactly what one wants, without overloading the general system with extra retrofitting (which also results in productivity slowdown), and the programmers with attempts to create The Most General Particle System.
Water
The engine realizes 2 types of waters: "calm" and "rough". Both types have refraction (not just clarity!), reflections, ripples, and waves. Reflectance, refraction coefficient, and dissipation factor are not constant, and are calculated according to viewing angle.
'Rough' water differs from 'calm' in presence of foam at surface, and in more accurate calculation of refraction coefficient (as water surface in this case is not glassy at all).
Procedural trees
In a game with open spaces, beautiful trees are extremely important thing. However, now it's clear that a wood should be both beautiful, and thick. The classical technique, i.e. manual creation of models, is not only a time-consuming one, but also is inappropriate in terms of productivity. The engine has adjustable, but at the same time completely generated trees, and this fact allows automatic creation of LODs for them without any "jumps". This not only improves the flora appearance, but also saves animators and level-designers lots of time.
Procedural herbage
Some herbage is an essential detail of the landscape for games, which have open-spaces simulations. There's a capability to create and adjust really lush grass, which at the same time is visible up to horizon. Such herbage is interactive too, since it waves in the wind, and bends after explosions.
Generated ground
The engine provides possibility to create 10x10 kilometers maps, and even bigger (up to 60x60 kilometers), thanks to the fact that on the disk (in addition, there is a small cache for visible areas in the memory) not geometry is saved, but ancillary information enough for its reconstruction. At the same time, possibilities for a level-designer do not decrease.
Projective lighting
Today it is a must-have feature for any engine. The engine not only supports this technology, but also, thanks to the shaders mechanism, it requires no extra efforts for realization, working with any materials; it works once and for all.
Light-mapping lighting
The engine supports light-mapping lighting, dynamical lightmaps, refined lightmaps (projective lighting). Besides, the lightmaps themselves are computed by one of the tools, using radiosity, into energetical maps, which are transformed in exact lighting, depending on the pupil's condition (visual accommodation).
Editor
Landscapes in Dagor Engine are created with the help of a special generator, which has detailed multilevel tool settings. Landscape types are adjusted separately for each landscape, global relief creation, humidity, and etc., for the detection of combination of landscape types. Besides, manual correction of each landscape is possible, first at generation level, and then manually in detail. This allows creating realistic levels of open spaces maximally effectively.
Harmonious combinations with "natural" enclosed spaces (caves, etc.), which are not changeable by means of the editor, but are compatible with the landscapes, allow creating sophisticated complex locations.
Plugins
3DMax Plug-in
Dagor Engine supports importing from the widespread 3DS Max package. The objects are imported along with materials, settings, parameters, mapping channels, different Skin type modifiers for creation of bone deformation. Lights, cameras, splines for different effects, and helpers used, are also from Max. Even though the Dagor Engine editor has a multitude of tools for creating and modifying of objects, these packages nevertheless can be easily used simultaneously, thus enriching potentialities for modelers and designers. It'll be no problem to import/export objects from one package to another, working with each one separately if needed.
Maya Plug-in
Dagor Engine supports importing from popular package Maya, versions 4.0 and 4.5. It completely corresponds to exporting process from Max.
Support of different packages (Max, Maya) allows modelers working with the package they prefer.
|