Hi everyone,

Today we introduce a video of one of the first result following our buy-out by the Optis Group. The application presented bellow was a shared development between Optis and SimplySim for the Laval Virtual tradeshow (which took place at the beginning of April).

The demo is a prototype of a headlamp simulator. The goal of this application is to test and validate car headlamps before production. The Simulator is build on top of the SimplyCube simulation engine and integrates Optis realistic rendering for light and materials, to guarantee that the simulator can be used to take actual production decision on headlamps (in the video bellow, notice the “false color” mode that gives accurate information on the level of lightning of each point in the environment).

The simulator is built around a driving loop that present different situation that can be interesting to test headlamps: different road materials, street lightning (thanks to the simplycube deferred shading technology we have about 200 dynamic light sources in the environment), reflective street furniture, tunnel, bumpers, countryside and city, end of day or night…

Several model of headlamp have been modeled with the ability to easily change between the headlamp model, and set low beam / high beam mode (there is no limit on the number of different headlamp we can test in the application). All the light models, and all the materials used in the environment have been developed by Optis and are based on real measurement with the OMS devices. This technology, also developed by Optis, studies how light behave on a material to guarantee a simulation as accurate as it can be.

In the video above the Simulator runs on a standard PC, with a nice screen and a game interface for controls, however the SimplyCube is fully compatible with more advanced displays (multi-screens, stereo) and controls (full support of VRPN) so this application could be easily deployed in a more immersive virtual reality system.

Finally, you’ll also notice in the video that the headlamp move as the car turns, for this prototype we have modeled a very simple adaptive headlamp simulation, but thanks to the SimplyCube everything is made so that the simulator could be plugged to a real adaptive headlamp control system.

We’re proud to present you the first result of our new collaboration, and we have to thank the Optis team as it was a real pleasure to work together on this first project. Other projects are in progress we’ll showcase them here as soon as we can.

I hope you enjoyed this post. Get notified of future posts by subscribing to our RSS Feed or following us on Twitter.

Today we introduce a new video about the technical capacities of the SimplyCube 3D engine. To benchmark our engine, we’ve asked our graphic designers to create a scene that would require all the real-time 3D techniques available in the SimplyCube. The video bellow is the result of this project.

Let me give you a bit more details on this video and the 3D techniques available in the SimplyCube and seen in this video:

Deferred Shading

The deferred shading technique enables you to have as many dynamic light sources as you want in a real time 3D application. In fact deferred shading is a way to render the 3D scene (the usual way is called “forward shading”, in the SimplyCube both are available). With the “forward shading” you can render up to 6 lights in a scene, here using “deferred shading” we have more than 500 light sources in the scene, with little to no effect on the performance.

Volumetric lighting

Volumetric lighting is a technique that gives more relief to a light source, by showing beams of light shinning threw the environment. This technique (used in the video above for the projectors of the helicoters or the fire inside the barrels) can also be used to show the sunbeams for example in an indoor environment or even the dust in a room.

Volumetric Lighting

The scene with (right) and without (left) volumetric lighting

Global illumination

Another important lighting technique used here: global illumination enables indirect lighting. This means that any object in the environment reflects a part of the light that it receives to all the objects nearby. The lighting of the scene is therefore a lot closer to reality.

Screen Space Ambient Occlusion

Ambient occlusion is a shading technique used to add realism to models by taking into account the attenuation of light due to occlusion (corners of a room, irregularity of meshes …). A lot of 3D engines need baked ambient occlusion maps (generated by authoring tools). Here we use screen space techniques which allow ambient occlusion to be fully dynamic with absolutely no pre-computations.

Ambient Occlusion

A view of the ambient occlusion generated (right)

Gamma correctness

One of the most important things if you want realistic rendering is to manage lighting as close to reality as possible. But the nonlinear properties of almost all capture and display devices make it hard to achieve (the picture you take with your camera and you display on your LCD screen necessarily has biased color curves). To correct this behavior, the SimplyCube automatically rectifies the gamma of input textures and render target to perform lighting in linear space resulting in a more realistic rendering.

Gamma correctness

A view of the scene with (right) and without (left) the gamma correction

Glow, distorter, color correction, depth of field…

As you see in the video a lot of other 3D techniques are used in this environment, each one should deserve an entire blog post just to explain what it is and how it can be used. For example we’ve used the “Glow” technique to enhance the neon effects on the sign in the street, we’ve used “Distorters” to simulate the heat wave coming from the fire and thus distorting the image, and we’ve used “color correction” to change the whole ambiance of the scene by adjusting the colors (high/medium/low tones, hue, saturation and contrast).

Physics

It’s also important to note that this scene is not only graphic, it also use physics. Any object that you see moving in the environment is subject to the laws of physics, and can collide with other objects. Several physics engine can be used indifferently (the choice of the physics engine is made at runtime) with the SimplyCube. Here we’re using Nvidia PhysX.

Curves and Controllers

An easy way to create movements in a scene (moving objects, camera scrolling) is to define curves and attach objects to it. That’s exactly what we did for this demo:
- The camera is moving along a curve, looking at another curve
- The helicopters and other flying objects are following their own curve
- We even have procedurally generated curves for the background cars running on the highway

Hardware configuration

Finally a few words on the hardware configuration used to render this scene in real-time 3D. For this video the scene was running on a Core2 Duo E7600, 4GoRam, GeForce 260GTX at ~21Fps. Of course the SimplyCube can be used with lower (or upper) hardware configurations, depending on the complexity of the scene.

I hope you enjoyed this post. Get notified of future posts by subscribing to our RSS Feed or following us on Twitter.