View Full Version : indoor/outdoor engine.., some feedback please

06-12-2001, 03:28 AM
Hi guys

Can you please give me some benchmark on the performance of the engine ? It's an hybrid quadtree/portal rendering.
I don't have a clue on how the interpolation models behave on another computers because they are linked to the frame rate .,so i would apreciate some feedback.
And, if you think if it would be a playable game in your machine regarding rendering speed.

the link is: http://brunomtc.no.sapo.pt


Tim Stirling
06-12-2001, 08:37 AM
My PC: P3 @600MHz
128MB, 100MHz sdram
TNT2 m64 32MB, latest 12.41 drivers

default settings; 800*600*16 etc.

frame rate outside 40-50FPS
inside 70-80FPS
animation is very choppy on gun.

When inside when near the guy FPS drop < 0.2FPS!!!!! at this point it sometimes also crashes or sets the player position on top on the ground?

Collision detection is a little choppy, sometimes you can walk through parts of walls, pillars, steps etc and sometimes you can look through the walls.

slightly annoying poping with the terrain.

Nice lighting and good looking terrain and sky. Well done, I had an idea like this using portals to link the outside and inside to allow windows and doors etc. Is there any AI, I saw the guy walking about??
Keep up the good work.


06-12-2001, 08:56 AM
Ditto, sometimes the terrain popping was severe. Only other things odd I noticed were some blending errors with the flares. For example, if you stand in a position that puts a flare sufficiently close to the line of sight to one of those particle system torches, the torch become obstructed. Also I could see the background of the flare texture blending with the scene. You can completely cut out the flare background with an alpha test. My machine specs: 700 MHz Duron, TNT 6.50 Det3, 256 MB. Oh also is there a run key? The place is so huge I wanted to run around but could only walk.

06-12-2001, 10:37 PM
I have an Athlon 600MHz, Geforce256 running det6.50 (or something like that), 128 RAM. I ran the demo in 800x600 fullscreen 32bpp, frame rates stayed around 90-100 sometimes getting to 110. One time though there was a sharp jert as i turned very quickly. There are some graphical glitches that can be fixed. All in all well done!

06-13-2001, 01:06 AM
Thnks guys,

Tim Stirling:
I'm having problems getting the animation look good. My problem is that i lock the frame rate at 60 for 800x600, but if the computer runs slower than 60 the interpolation on the models fails completely and gets weird...
Yes, there is some basic AI, just testing some stuff.

Those blending errors happen because i'm not sorting the transparent surfaces before rendering. When i sort them, that effect should be gone. Yes, you can run with the F5 key.., not exactly run, more like hyperspace run http://www.opengl.org/discussion_boards/ubb/smile.gif

Pretty high fps you get., on my Athlon 900 Mhz, with a Geforce2 mx at 800x600x32 i only get around 60.

thanks everyone,


06-13-2001, 03:54 AM
Won't work at all for me, it just displays the loading mesage and then crashes. I have an Athlon @900MHz 256 Meg RAM and a GeForce 2MX with 12.41 drivers running Win2000.

Anonymous Coward
06-13-2001, 04:17 AM
Dont work for me. Crashes when the 'Loading...' message appears.

Pentium 3 600, Geforce 256, Windows 2000, 12.41 drivers, logitech mouse.

06-13-2001, 06:03 AM
Ok, I looked at it again, and those blending errors I was speaking of can be easily fixed by disabling depth writes when drawing the flares and other transparent things. I also noticed a clipping error this time. If you stand too close to a corner inside (e.g. at inside corner at a turn in the hallway), the corner appears to get clipped by the near plane. I would either offset the bounding plane of the walls a bit more, or try pulling in the near plane (and far plane) while inside, and push out the near plane (and far plane) while outside.

[This message has been edited by DFrey (edited 06-13-2001).]

06-13-2001, 07:05 AM
You all seem to have GeForce!

20-30 fps on my Celeron 500, Intel 2mb onboard card.

06-13-2001, 11:32 AM
It crashes on startup (the replacement .exe also).

Win2k SP2 / GeForce2 GTS 64Mb / 256Mb RAM

[This message has been edited by pleopard (edited 06-13-2001).]

06-14-2001, 03:04 AM
Crashes on start on a

Pentium III / 650MHZ / 256MB
Matrox G400 (latest drivers)
W2K Pro (SP1)

I'll try some others configs later.


LG http://www.opengl.org/discussion_boards/ubb/biggrin.gif

Tim Stirling
06-14-2001, 04:21 AM
There is a pattern forming here, all those with win2k have it crash! Just proves my theory that every product that MS release is worse than the previous one. Take DOS, that is far better than windoze, I have a very old version of excel but it some very good graph functions but those have all been removed for excel2K and there are just hundreds of useless 3d pie and bar graphs and charts etc. We need someone with windows me to see if it is the NT side of win2k playing up.

06-14-2001, 04:55 AM
I have Windows ME installed at home, I will check it out late tonight.

06-14-2001, 05:50 AM
Bruno concerning the animation you may look at:

Nice article about FPS independent movement.
Should also be useful for your animation code http://www.opengl.org/discussion_boards/ubb/biggrin.gif

LG http://www.opengl.org/discussion_boards/ubb/biggrin.gif

06-14-2001, 08:38 AM
Tim you are right!

Tested it on a dualboot machine (ME/W2K).
While it worked unter ME it failed under W2k.

Bruno are you using inline assembler? Looks like you use an instruction that is privileged under W2K.

Anyway found the same problems as the former posters http://www.opengl.org/discussion_boards/ubb/smile.gif


P III / 733Mhz / 256 RD-RAM
Geforce 256 DDR
Detonator 6.50 (for ME/W2K)

800x600x32, Sound ON
Outside FPS 70-120 (average 100)
Inside FPS 100-200 (average 130)

Sidenote it runs SLOWER in 16Bit mode (around 10-20 FPS)


LG http://www.opengl.org/discussion_boards/ubb/biggrin.gif

06-14-2001, 09:41 AM
Hi guys..,

Tim , you are absolutely right.., so far no one thas runs it under win2k has sucessefuly run it. Unfortenly i have no ideia why.., and i'm not using inline assembler, everything is in pure C/C++.
I'm runnning under WinME, i think i will have to get win2k to see if i find out what's wrong., or release a exe with a log file..

lgrosshennig.., you say that it's slower in 16 bit mode.., did you disabled the mirrors ?
mirrors require stencil buffer, i don't know about the Geforce 256, but the Geforce2MX
only supports stencil in 32 bit, at 16 bit it runs in software.

thanks everyone...,


06-14-2001, 10:11 AM
Jeezzzzzzzz, my bad...

Looks like I could not see the wood to many trees... ;D

Somehow did not realized about the mirrors. Well yes, got the same FPS as in 32Bit now.

Bruno if you want I will check whats causing the crash if you dont mind.

If you want I can also run it through Intels IPEAK to see if there is anything related to OpenGL that can be optimized.


LG http://www.opengl.org/discussion_boards/ubb/biggrin.gif

06-14-2001, 10:42 AM
P3 800
256 ram
geforce 256
win 98

1024x768 /sound /32bpp /mirrors /coronas /fullscreen

115 fps looking straight up at sky
75 fps looking into the distance outside
45 fps looking at a wall outside
55-80 fps inside
28 fps looking in mirror.
6 fps looking into the yellow floating blob in the smaller outside square building.

the gun started to morph like crazy when i walked into the yellow floating blob thingy in the small square building.

being near the group of guys or the guy inside didn't do anything to the frame rate.

[This message has been edited by grady (edited 06-14-2001).]

06-14-2001, 11:25 AM
bruno, plz could you send me your code sometimes? i try to just compile it under win2k, letz find the possible bug.. i dont know but i think you are in holidays yet, bad, cause if not, you could give it during the holidays..

anyways bruno, you did great job ( yep, i played it, under win2k! http://www.opengl.org/discussion_boards/ubb/wink.gif but i'm friend of him, and i have an other version.. ), cant wait to see a more bugfree version, it looks so good. have nice holidays

06-14-2001, 01:07 PM

guys.., thanks everyone..everyone has been wonderful testing this http://www.opengl.org/discussion_boards/ubb/smile.gif
Tomorrow i will be away for some time ( nice guess dave http://www.opengl.org/discussion_boards/ubb/wink.gif )..,
I'l talk with you guys later..,

take care everyone,


06-15-2001, 01:42 AM
I would you have some small access violation like an array bounds overflow or something, that would cause your program to be evicted in W2K since it is a real OS and has pre-emption. Win9x/ME probably wouldn't even notice.

06-15-2001, 06:55 AM
Yup Harsman is right.

The prgramm trys to read data from a location it should not http://www.opengl.org/discussion_boards/ubb/smile.gif.

Narrowed it down to a function. This function gets called from 13 different location inside the program. Well I dont have the sourcecode, so I'll give you the assembly snipped where its crashing, if you compile the app again (same options, but generate also a assembly listing file) you should have no problems finding it.

Function start:

00408F90 sub esp,8
00408F93 fld dword ptr [esp+0Ch]
00408F97 push esi
00408F98 mov esi,ecx
00408F9A push edi
00408F9B call 0041B318
00408FA0 fld dword ptr [esp+18h]
00408FA4 mov edi,eax
00408FA6 mov dword ptr [esp+8],edi
00408FAA call 0041B318
00408FAF mov edx,dword ptr [esi+98h]
00408FB5 mov esi,dword ptr [esi+9Ch]
00408FBB fild dword ptr [esp+8]
00408FBF mov ecx,edx
00408FC1 mov dword ptr [esp+0Ch],eax
00408FC5 imul ecx,eax
00408FC8 fsubr dword ptr [esp+14h]
00408FCC fild dword ptr [esp+0Ch]
00408FD0 add ecx,edi
00408FD2 inc eax
00408FD3 imul eax,edx
00408FD6 lea ecx,[ecx+ecx*2]
00408FD9 add eax,edi
00408FDB fsubr dword ptr [esp+18h]
00408FDF fld dword ptr [esi+ecx*4+10h]
00408FE3 fld dword ptr ds:[42631Ch]
00408FE9 lea ecx,[esi+ecx*4]
00408FEC lea edx,[eax+eax*2]
00408FEF fsub st,st(2)

Crashes here ---------->>>>>

00408FF1 mov eax,dword ptr [esi+edx*4+4]

00408FF5 lea edx,[esi+edx*4]
00408FF8 mov dword ptr [esp+18h],eax
00408FFC pop edi
00408FFD pop esi
00408FFE fstp dword ptr [esp]
00409002 fld st(2)
00409004 fcomp dword ptr [esp]
00409008 fnstsw ax
0040900A test ah,1
0040900D je 00409022
0040900F fld dword ptr [esp+10h]
00409013 mov ecx,dword ptr [ecx+4]
00409016 fadd st,st(1)
00409018 mov dword ptr [esp+0Ch],ecx
0040901C fsub dword ptr [esp+0Ch]
00409020 jmp 00409031
00409022 fld dword ptr [edx+10h]
00409025 fld dword ptr [esp+10h]
00409029 fadd st,st(2)
0040902B fsub st,st(1)
0040902D fstp dword ptr [esp+0Ch]
00409031 fld dword ptr ds:[42631Ch]
00409037 fsub st,st(4)
00409039 fld st(0)
0040903B fmul dword ptr [esp+0Ch]
0040903F fxch st(3)
00409041 fmul st,st(5)
00409043 faddp st(3),st
00409045 fxch st(2)
00409047 fmul dword ptr [esp]
0040904B fxch st(2)
0040904D fmul dword ptr [esp+10h]
00409051 fxch st(1)
00409053 fmul st,st(4)
00409055 faddp st(1),st
00409057 fmul st,st(2)
00409059 faddp st(1),st
0040905B fstp st(2)
0040905D fstp st(0)
0040905F add esp,8
00409062 ret 8

Function end

Hmmmmm... 6 multiplications and 3 adds at the function end, I wonder what that could be http://www.opengl.org/discussion_boards/ubb/rolleyes.gif

Hope that helps http://www.opengl.org/discussion_boards/ubb/wink.gif

LG http://www.opengl.org/discussion_boards/ubb/biggrin.gif

BTW: If have a W2K version ready let me know and I testdrive it on a GeForce3 http://www.opengl.org/discussion_boards/ubb/smile.gif