 |
2008-12-31
Link
Happy New Year!
Changes of this week:
- Added access to collision contacts of Players.
- Fixed minor bug in UnigineScript with namespaces and user-defined classes.
- Refactored Actor system.
- LightSpot performance optimization.
- User classes in UnigineScript can be stored as keys in maps.
- Character class divided into Character, CharacterParticipant, and CharacterNpc.
- Fixed missing Windows SDK issue in install.py script.
- Updated reference manual (Console, UnigineScript library).
Current Unigine codebase statistics:
engine 6611 Kb 672 files 237312 lines
shaders 1148 Kb 288 files 41467 lines
scripts 162 Kb 15 files 5862 lines
editor 1221 Kb 96 files 42125 lines
tools 765 Kb 61 files 27704 lines
app main 62 Kb 28 files 2238 lines
app samples 238 Kb 62 files 9871 lines
build system 39 Kb 29 files 1770 lines
build scripts 59 Kb 91 files 1736 lines
docs scripts 30 Kb 7 files 963 lines
total 10339 Kb 1349 files 371048 lines
Happy New Year!
2008-12-23
Link
Cinematic DoF and fast lights
Programmer news:
- Dedicated shaders for non-shadowed surfaces, huge speedup on high quality shader profile.
- Severe renaming of shader constants due to refactoring.
- Added set of functions for access to packed files (engine.filesystem.getNumUngPackageFiles and others).
- Per-node storing of properties and materials (use this feature carefully with materials because it can affect performance).
- More verbose scripts parser: filename for #warning and #error, added __FILE__ and __LINE__ defines, more informative asserts and breakpoints.
- Fixed PSD saving code.
- More samples with lights.
Artist news:
- New LightSpot object: very fast omni light without shadows, which can group by 4 sources and render at once.
- Adjustable diffuse scale for all light sources.
- Independent LOD system for lights, there are three new parameters: light distance (after this distance light starts fading), shadow distance (after this distance shadow starts fading), fade distance.
- The same LOD model for particle systems with visible and fade distances.
- Corrected ambient color calculation for water.
- LightCube R.I.P., LightOmni now can be modulated by a cubemap, if needed.
- ObjectMeshMorph support removed.
- Fixed lack of accuracy in color dialog (HSV colorspace).
- Adjustable background color of the scene (useful for blue/green screen composing systems).
-
Bokeh filter, available in DirectX10 and OpenGL with geometry shaders (it can be turned on by "render_dof 2 && render_restart" console command).
Bokeh filter is disscussed in blogs for a while, for example in Vincent Scheib's one, "Beautiful Pixels".
Here are examples of Bokeh filter usage in Unigine:
 |
 |
| Ordinary DoF |
Bokeh filter |
 |
 |
| Ordinary DoF |
Bokeh filter |
That's how multiple LightSpots can improve a look of the scene, where it's hard to use that many LightOmni:
 |
 |
| LightSpot disabled |
LightSpot enabled |
 |
 |
| LightSpot disabled |
LightSpot enabled |
Resulting image quality of LightSpot + lightmaps mixture is very good for night modes, especially taking into the account nice performance (the screenshot is taken from an unnounced Unigine-based game, developing by our content department):
We're also pleased to note that two more game developers have joined our crew, Alexey "FadeToBlack" Egorov (developer) and Stanislav "brrrrr" Zagniy (3D artist), welcome aboard!
They shipped a funny game "Sumotoha" recently and now are working on our internal projects.
2008-12-10
Link
New sound system is completed
Programmer news:
- OpenAL-based (with EFX extensions) sound module is done.
- Sound renderer can handle virtually unlimited number of sound sources with occlusion and supports single and multiple reverberation zones.
- More robust loading of WAV files.
- Updated sound samples.
- Shader constants s_ilight_radius and s_ilight_shadow_radius are renamed into s_light_iradius and s_light_shadow_iradius.
- Render speedup due to more effective shader caching.
- Fixed rare flickering of transparent surfaces.
- Fixed bug with recursive call of script functions through C++ API.
- Added support of operator== and operator!= for user classes in UnigineScript.
- Added data/core/scripts/math.h to simplify 3D math works.
- New character system with adjustable camera presets, see data/core/scripts/character.h and "actor_04" sample.
- Updated reference manual.
Artist news:
- Faster and better Depth of Field implementation, you'll have to re-adjust settings a little.
- Box occluders.
- New random type of particle emitters.
- Visualization of sounds and reverberation zones.
- Independent tuning of specular power and specular scale for light sources.
- Even more settings in scattering, independent adjusting of ray/mie colors.
- Added color scale for reflections.
New version of OpenAL works well in Linux finally, so it's the right time to introduce our new sound system.
There is also a pretty nice software implementation of OpenAL, which supports EFX extensions with a single reverberation zone.
By the way, recently AMD has issued a Unigine-related press-release: "Momentum for Microsoft(R) DirectX(R) 10.1 Grows with Major Game Titles, Next-Generation 3D Game Engines, and Windows(R) 7 API".
There is also an interesting press-release regarding a Unigine-based project: First production stage of "Magus ex Machina" is completed:
PS: We have introduced a more affordable pricing scheme prior to January 1, 2009: indie developers can get a binary license starting with $4990 (or even just $1985 per month during 3 months). Take a look at "Licensing & Prices" page for more info.
Moreover, full licenses are now with lifetime updates access.
PPS: Here is a photo of our new development studio's hall (yesterday TV reporters were here, so now one can see a story about Unigine via local TV network):
2008-11-26
Link
Optimizations and very verbose scripts
Recent changes:
- Instancing of skinned and dynamic meshes.
- Much faster stereo rendering due to shadows optimization.
- Terrain speedup.
- Alpha-channel of specular textures is no longer responsible for reflections, it modulates specular power (glossiness) now.
- Square brush in TerrainEditor.
- Manager has been renamed to RenderManager.
- Adjustable number of splits for WorldLights.
- Fixed material preview bug.
- Fixed flickering of water reflections.
- Added initial angle and velocity scale for particles.
- Visualization of occulsion query primitives in UnigineEditor.
- Added terrain sample with unique texturing (terrain_01).
- Intersection masks, engine.world.getIntersection() functions get a mask as third parameter.
- New order of arguments for initialization: Engine::init(UNIGINE_VERSION,argc,argv,project,password), where 'password' is a password for encrypted file packs.
- Script and shader preprocessor accepts only angle brackets for #include directive.
- Warnings on unused variables and arrays in scripts.
- More verbose script interpreter output on errors, including file name and line number.
Some notes on instancing follows.
There is a pool for 64 bones drawn in once, so there is a huge speedup on skinned meshes with simple skeletons.
Cloned ObjectMeshDymamic are also instanced, they are drawn by 32 in a batch.
Plus there are some performance improvements in instancing of static meshes.
Here are pics for today, particle-based fountains from our unannounced game:
2008-11-05
Link
Tropics 1.1, auxiliary buffer, NULL render
There is an updated version of Tropics demo 1.1 available now, main changes are performanse boost, added procedural grass and support of DirectX 10.1 multisampling features.
Our web-server is experiencing heavy overload due to the fact, so please be patient while downloading the demo.
Recent changes:
- New Auxiliary buffer (RGBA8) for different effects (e.g. you can store some object's masks there), it can be accessed from a postprocessing shader.
- Fixed HDR bug with some rare configurations.
- Pixel Shader Model 3.0 support is required now, so minimal supported hardware is ATI Radeon X1xxx / NVIDIA GeForce 6xxx from now on.
- No more is*Available() functions in the render.
- New console variable d3d10_render_use_alpha_test_level_1 for DirectX 10.1 AA.
- 2D_Array textures are supported by Image class now.
- Fixed terrain tool crashes on heavy meshes.
- Fixed terrain seams.
- Terrain speedup.
- Restored clipmap material with unique material for the terrain (see below).
- A new format of the terrain palette without borders, "palette" tool R.I.P.
- Fixed too dark clouds in DirectX 10.
- Correct detection of NVIDIA GTX 2xx series.
- NULL render, which doesn't render anything (useful for server purposes).
- New Terminal class to work with a text console.
- Removed FMOD and xaudio2 support.
- Translucence flag is splitted into two options for casting and receiving (it allows to avoid biases adjusting).
- Fixed translucency in shadowed regions.
- A function for setting composite material, default one is render_composite.
- Foliage noise is reverted back on low shader profile.
- Fixed enabling of disabled NodeRef's after reloading of a world.
- Access to the list of filesystem's files.
Due to multiple requests we've got back old terrain material (with unique mapping) in addition to a new one, so now one can choose between them.
Thus now there are two different materials available (if there is a mask, so it's a splattering material, if there is a diffuse clipmap, but no mask, so it's a climpaped one).
|
|
|
 |
|