Lijsterbeslaan 3
B-2940 Stabroek, Belgium
IBAN: BE78 9794 3692 5286
KBO: 0314.595.348
VAT: BE 0 881.023.185
ID:  Pass:    [ Not logged in. ]

Moving along
Pandemonium Pyromasaur 3D Framework Renault Megane Mégane coupe coupé 3DS spline Model A few weeks have gone by and it's time for another update. I've modelled one of my own cars for the occasion, which as you can see is a Renault Mégane coupe. Although unfinished, the model is as authentic as possible and is spline modelled in Autodesk 3D Studio. It is not for sale.

What have we been doing these last few weeks? Well, there's 2 things that primarily stand out and that is on one hand the sound systems which have been vastly rewritten to support audio streams (MPEG or just plain PCM waveforms), and on the other hand a rudimentary particle system based vegetation mechanism has been designed from scratch. Particle system for now, but we are envisioning it in a much bigger way. These are just some steps towards that vision. The streaming audio systems now implement callbacks which allow data such as Fast Fourier Transformed spectral analysis to be passed to the host program, allowing for some very nice audiovisual possibilities.

Again, the model in the screenshot is an in-house built spline model. There are no decent models around for the Renault Mégane so I designed it myself. With regards to the mesh drawing code and pixel shaders, there have been some major improvements in the reflection mapping shaders. Reflections are now perspectively correct and do not move with the camera as they used to. This was a very critical flaw which has been eliminated and adds an enormous amount of realism to the scenes. Reflections were already looking good in shots but looked a bit bizarre at runtime. Now they just look awesome non stop.

Dave Driesen, Founder and CEO

More advancements and improvements
Pandemonium Pyromasaur 3D Framework Cizeta Moroder V16T 3DS Model Another long dev cycle has passed and so many things have happened again, the most important changes being on the model import/export modules, terrain engine and shadow mapping techniques. I wanted to finish the dev cycle with a screenshot of at least those 3 primary developments but in the end decided that I couldn't get an angle right that would properly include everything I wanted, so I just made a nice looking composition that would show a little bit of everything instead.

Note the way the mountains on the right (which, granted, are offscreen) are casting their shadow onto the center model, and despite the darkness of the shot it is possible to see the model itself also casting its shadow on the ground to the left. These shadows are nice and soft and authentic to the model. Another thing which you can see in the shot if you look closely, is the fact that the model as well as the terrain are also self-shadowing; they are casting truly authentic shadows onto themselves.

The model is an in-house spline modelled Cizeta Moroder V16T. I was dead set on obtaining a model for this legendary piece of automotive history and, although we don't have a specific theme set for this project, decided that we should just develop it ourselves. The improvements to the mesh importing system now allow us to import models with full vertex/face normal information or even 3D studio smoothing groups which are processed with lightning speed.

Dave Driesen, Founder and CEO

New layered procedural visual effects

A lot of work has been going on behind the scenes as we work towards exposing the framework core and inherently the windowmanager/interface to third party developers and the end users. An excellent example of this is the recent development of realtime procedural visual effects generation and rendering.

Thanks to the efforts of the dev teams we are now able to generate visually stunning graphical content on-the-fly using simple scriptable instructions, create graphical layers and perform manipulations such as geometry rendering, applying layer styles, bump mapping, bevelling, glowing, blurring, displacing, cropping and padding. Layers can then be bound and sent to the graphics card for displaying, they can be mapped onto existing geometry as textures, they can be stored for later use, or even written to disk in popular file formats, to be used for external purposes.

The image above depicts the transition and assemblage of several layers of graphics into our studio logo. Remember, we are not using Photoshop here, all this is done in code. First truetype text goes through an anti-aliased rasterisation process and is colorized to dark red. From this layer we then generate an outer glow and a normal map which is bumped into the original image. The previously rendered glow is then superimposed and a dropshadow is rendered under the logo. In conclusion, several ornamental lines are drawn underneath the result as it is combined to become a floater which is to be displayed at runtime, which you can see in the shot below. All these effects were accomplished using code written by our own developers, without use of any external libraries or third party tools. Kudos!

Low cost car parking opportunities!
Too much work is going on behind the scenes without a lot to show for it on the outside, so I just want to post a fun shot of the new underwater caustics we've coded into the pixel shaders today.

Aside from that, many objects have been exposed to the scripting system to allow developers to easily perform tasks such as load and display textures, models, sounds, scripts, stuff like that. We are also providing callbacks for several important tasks such as creation and destruction of objects and we have exposed many aspects of the window manager as well.

Scripts can now freely create mobs, attach artificial intelligence logics to them, enable or disable them, move them around in the universe and many many more nifty things.

Anyway what I wanted to show in this shot is the ability to have caustics cast on any object submerged in water. the caustic effect is combined with other effects in the pixel shaders and rendered in one pass. some things are off in the screenshot, for example there is no fog between the camera and the automobile shown. This is because the car is draw after the terrain rendering pass and fog was not enabled at that moment. So it's not a bug but a consequence of me taking the shot without any preparation, on a whim. Still, the picture does the framework justice I think and I'm very happy with the result because it really.. Shines.

Dave Driesen, Founder and CEO

Framework Overview

A detailed overview of the framework as it enters into Q3 2008.

Note the intensive use of threads to offload processing time to the available processors and the precise and efficient way in which system devices as well as OS and desktop are being hooked to achieve a top-level event driven application structure while maintaining a harmonious balance with the system, OS, and the users.

All elements in the chart depict mechanisms which are internal to the application. Hooks, window manager, network interfaces, artificial intelligence, renderers, sound systems, everything has been coded in-house for full portability.

The framework has recently passed the 10.000 build mark, we are now at build 10481

Change to geometry loading code
Geometry loading code has been taken out-of-core and is now running on its own thread. The main thread is still running fluently, even on single core machines. Texture loading is inherent to the geometry loader so this has also moved out of core, as far as geometry concerns. The penalty for texture loading is negligible so although planned, there is no pressure to move this from the main thread at this time.

Support has been added for several additional image file formats, and texture fonts are now created on the fly using runtime and on-demand rasterization of vector fonts. Moreover, we have designed automatic and dynamic source code generation algorithms which provide services for embedding numerous types of binary data into application executables. During runtime, applications can keep track of which files or resources they need, and our utilities will use intelligent logic to embed frequently used data during the next build.This is accomplished in a platform independent way and libraries are provided to access these embedded resources at runtime using equally platform independent methods. These are pretty bleeding-edge techniques and we are very proud to have accomplished this feat.

With the move to vector fonts also came the need for runtime dropshadow generation, font loading and font smoothing. We have achieved this using runtime glyph rendering to display lists, which is pretty much the ideal way of going about things. Glyph width is stored within the font to facilitate string width calculation in pixels, and dropshadows are rendered onto the glyph textures using oldskool bicubic blurring techniques with temporal decay, somewhat equivalent to a versatile convolution.

These pages are the intellectual property of the Pandemonium crew.
Welcome to - Antwerp based development studio providing development and administration services. Developers and maintainers of the Pyromasaur 3D framework.