After much work over the last couple of evenings I now have a very basic renderer working. I decided against the Doom 3 type (forward) renderer and went for deferred shading type. Partly because they are not that difficult to do (apparently), and partly because they can handle lots of lights with not much reduction in framerate - and the lighting is generated in real-time.
The BSP is still not optimized at all, but the deferred renderer can generate any scene and light it with 6 test lights and it only drops a couple of frames per second compared to the earlier lightmap renderer..!
In the new screenshots below the framerate is low as I have not sorted the lights into the BSP leaves yet, so I'm just processing every light in the map even if they are not visible.
There is no occlusion, shadows, or transparent surfaces yet, but as I mention its only been a couple of nights work, and that included going through every texture in the SR1 map and making a normal map. You can see the difference normal maps make when rendering in the bottom screenshot. Compare the texture with the orange arrow which has a normal map, to those around it that dont. All surfaces have medium reflectivity so they have a wet or plastic look about them. Not so good on bricks but looks good on windows...
Since the Kingpin lighting model is for lightmaps, it doesnt look like its going to translate well into a new renderer unless the existing lights are made over-bright (some maps are really dark), or someone recompiles the maps with the lights configured for a new lighting model (any volunteers to do SR1?)
I forgot to mention that emissive surfaces are not functional yet either. This should make a big difference to most scenes when I have implemented them.
Anyway, check out the screenshots below. As usual, click for hi-res.
Skid Row map 1 Steel Town map 2 K9 Car Park Steel Town map 2
|