Blog! Team! Forum! About Apricot! Press! Gallery! Development! Yo Frankie! Apricot Open Game Project mee!
May 14
New stuff, and meet Mandy
icon1 blengine | icon2 Screenshots | icon4 05 14th, 2008

After reconsidering the level design we settled on the more practical and beneficial approach to split up that massive terrain into a set of 5 ‘islands’, each of them themed, and, perhaps one for the community. Here are some basic level shots of the first island in blender. We’ll have some in-game screenshots posted soon. The ground textures are not splatted yet, just blocked in. You’ll hear more about this later, because there’s actually a lot of exciting information to share.

There’s also Mandy, the latest addition to the Apricot cast. Fur is something still to be worked out, so no texture for now. We have big plans for Mandy.

screen4 screen4 screen4 screen4

icon3 25 Comments!

Apr 26

Lighting things is pretty well covered in Crystal Space* right now; multiple lights can be rendered in one pass, and materials can have the usual assortment of properties such as normal maps, specularity maps etc. giving shiny visuals. However, for a truly convincing environment you also need shadows.

Crystal Space actually supported stencil shadows for a while, but they’re not with out issues: the algorithm inherently can’t support any transparent textures, and extra care must be taken by the artists to produce “closed” models, otherwise the shadows will mess up. Also, the Crystal Space implementation has some issues: they need some effort to set up and animated meshes are not supported.

Thus I implemented shadow map support. Without going into too much technical details, they can support binary transparency (aka alpha test), don’t need special care for the models (just throw anything at them and it’ll look as it should), and due simpler implementation, they work on animated meshes in Crystal Space. Within the render manager framework they can easily be utilized by either using a stock render manager with shadow support or some lines of code in custom render managers.

Now some screenshots on how they look in that well-known small test level:

Shadows test, distant
Shadows test, from a distance

Shadows test, close-up Shadows test, close-up Shadows test, close-up
Some close-ups

Shadows also work on somewhat larger levels:

Shadows on large WIP level
(Ignore the missing textures etc. Focus on the shadows 😉

Some implementation details: Parallel-Split Shadow Maps on top of a plain normal shadow mapping. (You can see the shadow maps displayed for debugging purposes in the lower left corner of the shots.) The”soft” shadows you see are actually provided by the NVidia hardware – so real soft shadows is still something left to be done.

* Well, render manager branch.

icon3 30 Comments!

Mar 29

Here a few words what I’ve been doing (less) recently. In the general, I worked on the render manager, and more specifically, I did some work on the postprocessing system.

Using post processing is quite simple, even for Crystal Space. In the implementation of a render manager, you need some boilerplate to declare and setup the manager:

// A class member for the manager
CS::RenderManager::PostEffectManager postEffects;
// Initialization
postEffects.Initialize (objectReg);

That’s it, you’re ready to add post processing effects.
(Note: While I’m talking about setting up post processing effects from code throughout this article, I’m aware that for practical purposes there should be a way to set things up from some sort of configuration file. Be patient.)

Now a simple example for postprocessing. But even before that, as a simple reminder, the “baseline” image without effects:

This is just a shot from the miniscule graphics prototype level shown before, nothing new here.

Read the rest of this entry »

icon3 19 Comments!

Next Entries »