An example and reference model for development of IRRlicht.

Discuss about anything related to the Irrlicht Engine, or read announcements about any significant features or usage changes.
Post Reply
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

An example and reference model for development of IRRlicht.

Post by christianclavet »

HI, Just "fallen" on an 3D engine similar to IRRlicht. This one seem to be really commercial. So we cannot ASK developpers to have the same set of feature as this one (Look incredible for me). But we could be "inspired" by this one in developping the future of IRRlicht. (Some kind of reference model)

Here is the link to it:
http://unigine.com/products/unigine/


Here is a video on youtube on their latest demo:
http://www.youtube.com/watch?v=9F6zSgtRnkE

Water example
Image

Terrain example
Image

Environment example
Image

Physic and editor example:
Image

GUI Example:
Image

Here is a link to download "benchmark" applications made with the engine:
http://unigine.com/download/
Image

Here are some feature that they already implemented:

Render

General
Multiple API render:
Direct3D 9
Direct3D 10
Direct3D 11
OpenGL

Supported video cards:
NVIDIA GeForce GTX 260 - 280 (D10U-xx)
NVIDIA GeForce 9400 - 9800 (G9x)
NVIDIA GeForce 8400 - 8800 (G8x)
NVIDIA GeForce 7100 - 7950 (G7x)
NVIDIA GeForce 6100 - 6800 (NV4x)
ATI Radeon HD 5870 (RV770)
ATI Radeon HD 4350 - HD 4870 (R7xx)
ATI Radeon HD 3430 - HD 3870 (RV620-RV680)
ATI Radeon HD 2350 - HD 2900 (R6xx)
ATI Radeon X1300 - X1950 (R5xx)

Support of GLSL and HLSL shaders
Shader Model 5.0 support (vertex, hull, domain, geometry, pixel and compute shaders)
Hardware tessellation support
DirectCompute support
Performance profiler
Auto detection of GPU capabilities
Performance-critical optimizations for different video cards
Different shader profiles
Support of NVIDIA SLI and AMD CrossFire technologies

Stereo rendering, supported output devices are:
iZ3D stereo monitors
Anaglyph glasses
Any dualscreen stereo system with independent input for each eye
Arbitrary resolution support (including widescreen)
Xinerama support (Linux only)

Lighting
Per-pixel dynamic lighting
SSAO (screen-space ambient occlusion)
Different types of lighting models (Phong, Anisotropic)
Ellipsoid lights with different attenuations
Optimizations: scissors, clip planes
Light maps support
Light scattering
Special light source type based on spherical harmonics

Shadows
PSSM (Parallel Split Shadow Map)
Soft shadows
Translucence
Per-surface shadowing settings
Configurable shadow ambient

Materials
Hierarchy of materials with parameter's inheritance and overloading
Normal mapping
Parallax occlusion mapping
Specular maps
Emission textures
Glow textures with blur
Arbitrary polygon offset
Dynamic transformations of UV coordinates
Alpha testing support
Different blending functions
Special foliage material
Materials with double texture set (tile and detail)
Support of 16bit precision per channel for normal maps
Per-object lighting settings

Special Effects
Particle systems with different types of emitter, forces and animated textures support
Volume light
Volume fog
Dynamic reflections (2D and cubemap)
Fresnel refraction
Volumetric light scattering
Decals
Water with surf zone and caustics
64-bit Color HDR Rendering
Bloom
Adaptive exposure
Glow
Tone mapping
Cross flares
Lens flares
Postprocessing
Refraction
Depth of field
Bokeh filter
Radial blur
Sobel filter
Color transformations (brightness, contrast, saturation, gamma correction)
Low-cost HDR glow
Arbitrary LUT color transformations

--------------------------------------------------------------------------------

Base Objects
Mesh (static geometry)
Dynamic mesh (generated on-the-fly)
Skinned mesh (bone-based animation) with support of animation blending
Dynamic volumetric objects (box, ellipsoid, omni light, projected light)
Terrain
Water (global and local)
Particle system
Billboard
Procedural grass
Lights (world, cubemap, projected, spot)
Decals (omni, orthographic, projected)
3D GUI (plane, mesh-based)
Players (actor, persecutor and spectator)

--------------------------------------------------------------------------------

Scene Management

Data streaming (dynamic data loading in the background)
Object hierarchy
Seamlessly interconnected indor and outdoor scenes
Software occluders
Dynamic tree-based subdividing (outdoor)
Portal rendering (indoor)
Advanced LOD system
Clipmap textures support
Dynamic worlds merging
9 LODs for the terrain with full geomorphing
Full-scene serialization

--------------------------------------------------------------------------------

Physics
Multi-threaded core
Collision detection
Rigid body physics
Particle system physics
Rag doll physics
Vehicle physics
Comprehensive set of geometric primitives
Various joints with destruction support
Motors and springs (linear and angular)
Automatic rag doll generation
Serialization support
Time reverse support

--------------------------------------------------------------------------------

Scripting System
Object-oriented programming
Easy to learn UnigineScript language (similar to C++ in syntax)
Built-in fast 3D mathematics (vectors, matrices and quaternions with all corresponding functions and swizzling support)
Transparent interconnection with external C++ functions and classes
Multi-threading support
Virtual machine with full state saving/restoring
Byte-code compiler (with caching support) and optimizer
Regular expressions support
Built-in debugger
Built-in performance profiler
Well-documented library of built-in functions and classes (more than 3000 functions)

--------------------------------------------------------------------------------

Graphic User Interface
UI files in XML format
Easy callbacks via UI file
Localization packs support
TTF support
Unicode (UTF8) support
Microsoft IME support for Eastern languages
Video playback (OGG Theora)
Easy skin changing
Transparency
Resizable windows with overlapping support
3D effects
Activation animation
Rich text support
Comprehensive set of widgets, containers and dialogs

--------------------------------------------------------------------------------

Input Devices
PC keyboards
PC mice
Standart PC joysticks
Xbox 360 gamepads
Virion
Competition winner
Posts: 2148
Joined: Mon Dec 18, 2006 5:04 am

Post by Virion »

yeah will need a lot of works to do this. for the eye catching part - shader is very important. I guess we should have some precoded shaders for use?
stefbuet
Competition winner
Posts: 495
Joined: Sun Dec 09, 2007 4:13 pm
Location: france

Post by stefbuet »

Physic and scripting system are not part of a 3D Engine.
Yoran
Site Admin
Posts: 96
Joined: Fri Oct 07, 2005 8:55 am
Location: The Netherlands
Contact:

Post by Yoran »

Agree it looks awesome, but i am guessing it is still about
the shaders and the artists.
Virion
Competition winner
Posts: 2148
Joined: Mon Dec 18, 2006 5:04 am

Post by Virion »

we should combine power and make a demo like this.
calling shader programmers, artists and irrlicht programmers!
stefbuet
Competition winner
Posts: 495
Joined: Sun Dec 09, 2007 4:13 pm
Location: france

Post by stefbuet »

The main problem is that demo with great graphics like this require good quality models and textures, which are weigther than current Irrlicht exemples. So it wouldn't be included in Irrlicht exemples in the SDK...
Virion
Competition winner
Posts: 2148
Joined: Mon Dec 18, 2006 5:04 am

Post by Virion »

that is why i said combine power. i am artist.
sRc
Posts: 431
Joined: Thu Jul 28, 2005 1:44 am
Location: Salt Lake City, Utah
Contact:

Post by sRc »

by your powers combinied, I am Captain Irrlicht!
The Bard sRc

Blog | Twitter
christianclavet
Posts: 1638
Joined: Mon Apr 30, 2007 3:24 am
Location: Montreal, CANADA
Contact:

Post by christianclavet »

stefbuet don't look for the Physic scripting engine and other "sub-systems" that is not part of what IRRlicht is not doing. Look on what IRRlicht could do.

Look at the part that IRRlicht as implemented (particles, collision system, occtrees, input, GUI, rendering, shader support, animation support with bones) (If you look at this IRRlicht already do a lot!!!) And look the features that this one does as a way to improve the current feature set. Look at this engine and see on it examples of improvements that could be done to IRRlicht.

Also stefbluet, I agree with you that theses "benchmark" example should not be given with the SDK as it will be too big to download. They give each BENCHMARK as a separate download. I saw that each benchmark is showing major improvement they made over the engine. Take the last one for example, they show DX11 features as TEssalation is done in DX11. Look that video there from the same demo showing tessalation on/off): http://www.youtube.com/watch?v=bkKtY2G3 ... re=channel

If you look on the "screenshot" of the month I see that we have very capable artists and programmers. One thing that could be done is doing a 3 month project contest for a "Benchmark demo" of IRRlicht that we could vote on.

One thing I remark the most from the engine and IRRlicht is that they have TONS of preset shaders. (Virion, Yoran you nailed it!) One thing I see from that is that it would be nice that IRRlicht add other shaders that could be used in the current material system. (In the long term perhaps even replacing the fixed pipeline functions in materials with shaders)

Also other "preset" shaders could be implemented and we could use them as postprocess in a single function before the "endscene".

Another thing that I find interesting is that their GUI system is rendered over a plane and they can project that plane as a texture. I wonder how their input get the proper button. dialog or slider... Also integrating TTF fonts and unicode in the GUI system would be a major improvement. Hope to see it one day.

I'm sorry if everything I say is innacurate, I know a little bit of theory about this but nothing in the details. I'm just proposing ideas (That's why this thread is called "OPEN DISCUSSION" no?)
Virion
Competition winner
Posts: 2148
Joined: Mon Dec 18, 2006 5:04 am

Post by Virion »

currently some of those you mentioned could have been added to the core but it remains as just add-ons, which sometimes might get outdated as soon as the creator stop maintaining it.

preset shader is a good idea, we can just wrap the shader code into irrlicht material type but of course user can still use their own shader if they want.

i have no idea about the gui at all.
sRc
Posts: 431
Joined: Thu Jul 28, 2005 1:44 am
Location: Salt Lake City, Utah
Contact:

Post by sRc »

far as the floating GUI part is concerned, a while back Niko linked on his blog to a project from one of the Second Life programmers that had developed a RTT build of Firefox, and had shown off running it in Irrlicht as part of his demonstration. might want to dig up that and look at how that was run for how the floating GUI thing works
The Bard sRc

Blog | Twitter
CodeGen
Posts: 13
Joined: Tue Apr 21, 2009 5:12 pm

Post by CodeGen »

What a great engine! It's loads of work... i believe Irrlicht will get all of those cool graphics features in the future. These things should always keep us motivated.
Post Reply