Back to the Vavoom Forum Archives


Forum

Lightmapping and performance

Thu, 02 Feb 2006 04:21:55

etko

I am investigating inner workings of 2.5D engines. So far I understand basic working of Doom and Build, I have analyzed wireframe Polymost (OpenGL accelerated Build renderer) renderings. From what I saw I concluded that Build / Polymost is working quite differently from Doom ports. It seem to split screen to polygon stripes which are kinda "raytraced". Anyway performance of that thing is simply awesome I am getting over 200 fps with high resolution models in jfDuke. The problem with Polymost is that you cannot look straight down only cca 80 degrees. However OGL Doom accelerated ports do not have this limitation. I wanted to ask how they do rendering? From Doom ports fastest for me is jDoom for now. It can pull about 80-90 fps at 1600x1200@32bit. Vavoom has very interestng feature and that is lightmapping, but the engine performs very poorly on this hardware. Max I've got is 60 fps and in fight it usually falls down to 27-17 fps. I wated to ask too how this light mapping is implemented. Are walls and door split into "patches" like in Quake engines? If yes how big are those patches and how static lightning is calculated? And why is the performance so poor? Quake 3 pulls 90 fps at same resolution and reaches limiter, but Vavoom seems to have limiter at 60 fps and even then how can it fall down to 17 fps, there is not so much happening(no interpolation etc) compared to jDoom, Build, or Quake 3.
Thu, 02 Feb 2006 18:46:39

Janis Legzdinsh

Static light is implemented like in Quake, lights are calculated with raytracing which is not very optimal way to do this. Patch size is 240x240. There are many things that are not implemented in very efficient way. The whole static lighting was implemeted just to make it work. And it heavily relies on VIS data and renders everything that potentially can be seen.
Fri, 03 Feb 2006 14:48:34

Firebrand

So, this lightning system might need some rewrite? What could need to be revised for this? EDIT: Wouldn't there be a way to use the same parts of code from Quake2 or Quake3 engines?
Fri, 03 Feb 2006 19:16:47

Janis Legzdinsh

Yes, Quake 2/3 code definately can and probably will be used. But there's one big difference - in Quake lightmap data is precalculated by utility while in Vavoom calculated in engine.
Sat, 04 Feb 2006 01:17:57

Firebrand

So maybe the solution could be to create some utility to calculate the lightmaps?

Back to the Vavoom Forum Archives