Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by John van der Burg, posted on September 10, 2000

Image Description, by John van der Burg

Here is a collection small screenshots which I grabbed during the development of a new lighting system in Oxygen3D. The new system supports hardware accelerated dynamic lighting using omni/spot/directional lights, and also static raytraced lightmaps with also support for omni/spot/directional lights, and last but not least a very cool radiosity system which can also be combined with the above mentioned light types.

Lights can be placed inside 3DSMax, and also you can setup the radiosity values per material. The materials have an energy value, which tells how much energy it emits. Also you can let the material be self-energizing or not. On this way you can create cool radioactive looking objects :)

Another nice thing is that you can fly around during the lightmap generation. Inside the modelviewer you can start the generation (you can choose between raytraced lightmaps or radiosity), and then the system starts generating the lightmaps. You can see the lightmaps being updated while you fly around. And if things go too slow you can simply pause the generator, so you can fly around very smooth and look for possible things you want to change. This is very usefull while doing radiosity lightmaps, because it can take a very long time.

MysticGD hired Marco Kögler to code the lightmap system. So credits go to him mainly! I'm currently working on a PVS system, which should speed up the radiosity calculations a lot.

Some much cooler screenshots coming very soon. We're currently building some nice test scenes. Not just a few boxes/spheres/cylinders :)

p.s. we have some big news coming up... more info soon.

- John

Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.
Mark Friedenbach

September 10, 2000, 01:41 AM

18 screen shots and a logo..

wow. guess that sets a new record.

Daniel Palomo van Es

September 10, 2000, 03:53 AM

very nifty!!!! 8)


September 10, 2000, 07:57 AM

are you using lightmaps per polygon or per object?


September 10, 2000, 08:04 AM

That is some seriously Nice lighting, Well done.

Luke Hodorowicz

September 10, 2000, 09:31 AM

Very nice looking. Keep it up.

Whats the ratio of lightmap sample to world space? Looks pretty low, especially in the upper left image.



September 10, 2000, 09:43 AM


MiniLightmaps are created per-polygon and combined into larger lightmaps which are later used for the generation.


The upper left shot was from a very early test :). The sampling ratio is configurable ... I can't remember what exactly was used in that one. Probably 32 or 16 square units per sampling point.

- MK42

John van der Burg

September 10, 2000, 11:52 AM

And also keep in mind that some shots (like the second one, next to the upper right one) contain bugs.
For example that shot was actually to show some bugs :) (when you look close you see dark edges on the polygon edges).

But all these probs have been solved now (almost all)
And like I mentioned, we are currently building some test scenes to take advantage of the radiosity on a godo way, so expect some much nicer shots soon :)

Timothy Barnes

September 10, 2000, 12:58 PM

Oh man. That's some awesome lighting.


September 10, 2000, 03:17 PM

Ooh. Normally I'm disdainful of lightmapping because it seems like such a cop-out to me (yes, I'm aware that almost every modern engine uses lightmapping), but DAMN that looks nice. Too bad it's not dynamic though. ;)

I wish 3DRealms/Remedy would finally release Max Payne. Supposedly they have some sort of pseudodynamic pseudo-radiosity thing going on, and I'd like to see it in action. It probably requires static visibility though, which also seems like a cop-out...

(Yes, I believe everything should be realtime, or at least non-static. I liked Midnight's KAGE when it had the cheesy but completely-dynamic hard shadows, rather than the nice-looking but completely-static/lightmapped soft shadows. I like to think that cool underlying technology will eventually lead to stuff which looks as good as completely-precalculated cheats. That is why I am developing Solace with that in mind...)


September 10, 2000, 05:26 PM

Are you sure they are not raytraced?? ;)

fluffy: Have a look at 3DMark2000, it uses the Max Payne engine.


September 10, 2000, 07:03 PM

Wasn't the Max Payne engine originally a benchmark program? I can't remember much, but VNU labs and rememdy entertainment got between the sheets to make some sort of benchmark that I think was used in the magazine Personal Computer World. Anyone know what the hell im talking about?


September 10, 2000, 08:42 PM


I think you might be thinking of Final Reality.



September 10, 2000, 11:43 PM

iCodeSuk's kind of on the right track. It's the Max Payne engine which is used in 3DMark. And yes, Remedy were also the folks who did Final Reality. Skaven was unamused when I told him what I thought of it. ;)

richard: yes, I know, but it didn't seem to do anything with realtime radiosity or any sort of dynamic lighting effect at all. At least, not that I recall. (The only time I've actually seen it I was staring at it in a monitor in a computer shop in Hong Kong. :) Maybe when my DSL's installed in a few days I'll have to download it and watch it for myself...

Timothy Barnes

September 11, 2000, 12:36 AM

Well, for explosions, Max Payne uses Volumetric effects.


September 11, 2000, 12:49 AM

Actually, I don't think they have dynamic radiosity (or even pseudo radiosity). They only ever claimed they had realtime radiosity. Which could just mean it is precalculated and lightmapped. In none of the screenshots of the engine have I actually seen characters with shadows (especially not soft ones).

Bemmu Sepponen

September 11, 2000, 02:21 AM

I was in a session where Remedy was showing off Max Payne's technology, but that was a year ago.
Even then it looked really neat. They mainly showed their editor, which was either really easy to
use or they had just been using it for too long, seemed nice to use. I can't really recall what they
said about lighting then, but I think someone in the audience asked that the guy using the editor
move some light into a different position. To this the guy said that it could be done, but that the
calculations would take too long so he wasn't going to do it then. He said that in their office they
have all their computers in a network where all of them can participate in the lighting calculations.

Other than that, they showed off some Max Payne level where Max had taken some drugs, and
was experiencing hallucinations. It looked very interesting, it had impossible geometry such that
when you walked into the same hallway from two different corridors, you would actually arrive at
a different place. Stuff like that. Audience oohs and aahs. They also showed the then new
3DMark 2000 when we said pretty pretty pretty please with sugar on top. But that you can check
out yourselves now since it's already released.


September 11, 2000, 03:07 AM

Very impressive.
Now ill have to reconsider using lightmaps ;)
...please have a lightmap contest with source code releases :)


September 11, 2000, 05:31 AM

Hi John,

How did you cure your dark lightmap edges problem? The only way I've managed to get rid of that is A) to continue to process lightmap pixels beyond the edge of the polygon you're creating the lightmap for. B) post process the lightmap texture to colour pixels that were not contained within the polygon.

Does that make sense?
Solution (A) now lightens the edges in some cases (some solution!)

What solution did you come up with?



September 11, 2000, 06:58 AM


Unfortunately, there is no real 'solution' to the problem, only a few ways to sidestep it. I also started a thread over on concerning this and related problems. We tried several things. In the first iteration of the system we repeated colors across the edges. This produces seams at coplanar polygon edges due to bilinear filtering ... not nice. So, we decided to go with oversampling, i.e. your solution A. A bunch of heuristics are used to decide whether the oversampled pixel should actually be lit or not. For a rundown of possibilities please check out the thread on the gamedev forum (sorry Kurt, but the FlipCode forum was down too much).

Oh, you can find the thread here:

Hope this helps a bit,

- MK42

Tom Mertens

September 11, 2000, 11:02 AM

are you using...
* hemicube sampling?
* hierarchical methods?
* uniformly sized lumels?

how long does it take to process that castle (upper right) with radiosity?


September 11, 2000, 01:25 PM

Ah, good point. Marketing-speak at it again...

Kinda like how toaster waffles usually say something like "With real blueberry bits!" But there's no real blueberry anywhere in the waffle - their justification is that "blueberry bit" is a term for "blue-colored sugar." :/

This thread contains 21 messages.
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.