Project FL


It’s a rendering engine made by myself that runs independent of the game and the toolset.

I’m using a fly-mode camera, using WASD to move and the mouse to change the view direction (like a first-person shooter).


It looks good but also shows how very basic the OC areas are.



I don’t see any grass. Is that just because of the distance fade?


Grass not implemented yet.


Neat. The vanilla water system does have its own share of weirdness. Probably the most well known issue is that the water turns black if more than 6 lights affect it. One that’s more obscure is that the game and the toolset will crash upon area load if that area contains more than 16 water tiles with each water surface having a unique height. Setting the smoothness of the water too high in the toolset also causes the water shininess to look quite ugly - if you want to do something like a smooth reflective interior floor, there’s pretty much no good way to remove the shininess as the usage of water specular maps got patched out.
Water reflections have a couple issues too. Placeables reflected in water have incorrect lighting (in the reflection itself) and character reflections get broken if there’s a speedtree model present in area. Water reflections during nighttime and in areas with a custom skydome model tend to be less glitchy. Not exactly a common issue but If you try shaping the water as you would shape the terrain through the Watermill plugin, reflections will no longer work correctly.


I implemented grass in my engine and I think that here SSAO makes a good improvement. Here a screenshot of original NWN2:

And here a screenshot of my engine with SSAO enabled:


Dang, that does look good.


Yeah, that’s starting to look positively North Arizonan (springtime). Nicely done!


I’m curious to see how the SSAO looks when applied to creatures in the game. Can you tell us if that will work? Thanks.


I partially implemented creature rendering very recently. They are rigged and animated. There is still missing things like equipment, tail, wings, effects.

Without SSAO:

With SSAO:

In this screenshot I’m also showing recent implemented features: atmosphere and fog, which I plan to improve.


Thanks. The differences are pretty subtle, but the necks and sleeves look better.


WAY better.


Looks great!


Two aspects of Project FL can be distinguished:

  1. How much rendering could be improved using existing assets that are made for the NWN2 engine?
  2. How much rendering could be improved by making new assets that exploit the improved features of my engine?

In this post, I’m going to talk about the first aspect, since I’m researching how to improve the rendering of existing assets.

Improving the rendering of existing assets isn’t an easy subject. It’s not that you just use a more modern engine and they look more realistic instantly. Even they could look worse or different as intended by the artist. The assets were made carefully by artist to look good in an engine. With physically-based assets this is less of a problem, because the assets represents real physical values, so replacing a physically-based engine by another one is more consistent. But the vanilla assets aren’t physically-based…

The matter is that I’m not sure how an existing asset is going to look with a rendering technique if I don’t try it. My idea is to make offline renderings with Blender, in particular using the material node editor, to rapidly experiment with different techniques. So I’m going to create a test scene in Blender using vanilla assets and try to achieve the best possible rendering. Then, I’ll have two references:

  1. The lowest rendering reference: rendering of an original NWN2 area.
  2. The highest rendering reference: rendering generated with Blender.

The highest rendering reference will make evident the upper bound of my project: what I can’t get with an offline rendering, I’m not going to get in real-time.


Unless you foresee a large influx of assets converted from another game system happening, it seems most likely that the current group of mdb-format stock models and mods will be all that you’ll have to work with. A number of the assets I’ve ported over have been labelled PBR-ready, but I just end up converting them to standard NWN2 format.


It’s difficult to foresee, but considering that a) the community is small, b) I think few are modelers, and c) my project would be to be finished first, then what will happen in the future is too much speculation.

On the other hand, existing assets are already here, so I think that improving the rendering of exisiting assets would be the greatest win, while, at the same time, an improved engine opens the future for more modern assets.


I built a part of an area in Blender using the NWN2 assets and light colors as is, since the goal is to find how to improve the render of existing assets without any modification.

The original area is the following:

This is the built area rendered in Blender using the Cycles renderer:

The area rendered in Blender is yellowish for the following reason: point lights in NWN2 have a light radius, as in practically all game engines, so to limit the number of lights affecting a point. In the Cycles renderer, however, the light rays go indefinitely far bouncing all around the place until they are completely absorbed (as in real life) or the max bouncing limit is reached.

How much do you think the area rendered in Blender improves the original? Apart from the shadows, I don’t think it improves much.


I think the extended shadows greatly improve the depth of objects that lie outside the game engine’s light radii. The bunk beds, for example. But you can probably get a similar effect by fiddling with the light radii and increasing the shadows in the game engine.


I’m a graphics layman (and not a GREAT builder, either), but I’ll be honest: I consider it an enormous improvement…


@FreshLook: I was curious if you are going to experiment with depth of field?