PDA

View Full Version : Can you try my new engine?



MarcoAltomonte
12-17-2004, 01:58 AM
Hi everybody!
I'm developing a little 3d engine in OpenGl. I'd like you to try it (a few minutes!) and send me some feedback.
My e-mail is MarcoAltomonte@hotmail.it

Download page: http://www.webalice.it/altomonte (3 MB)

These are some functionality:
Portals (Automatic sector generaion from human-placed portals)
Per pixel lighting (GLSL + Blinn + Ambient)
ShadowVolumes (2 sided)
Skeletal Animation (SSE)
Static Lights optimizations (Smallest set of lighted surfaces, optimized zfail shadows)

I think a 3d card with GLSL will be cabable to running the engine.
The map I included in this first realease is very simple (I'm not a very good level-designer!), but
I tried the Engine on VERY large sectorialised maps and framerate is ok.
If you are interested in helping me on map creation (I use GtkRadiant), send me an e-mail!
Thanks to all! Bye!

MickeyMouse
12-17-2004, 02:40 AM
When I run Engine.exe it exits immediately without any error and Log.txt is empty.
My card is ATI Radeon 9600 Pro.

Cheers!

Chuck0
12-17-2004, 03:25 AM
Same here on a radeon9700pro

MarcoAltomonte
12-17-2004, 03:41 AM
Thanks.I forgot to use log file... i uploaded a new version (on the html page there is a new link to http://www.webalice.it/altomonte/EngineExe.zip ).

Jan
12-17-2004, 03:47 AM
Log Started
No Hardware support for GL_EXT_stencil_two_side
Log ended

Radeon 9600XT

RAMman
12-17-2004, 04:08 AM
If you want to support a wider range of hardware, you could do something like this:



#ifdef GL_ATI_separate_stencil
if (GLEW_ATI_separate_stencil)
{
//Setup stencil and render
}
else
#endif

#ifdef GL_EXT_stencil_two_side
if (GLEW_EXT_stencil_two_side)
{
//Setup stencil and render
}
else
#endif
{
//Fallback to render if no two sided HW.
//Render regularly with two passes.
}
#endif

MarcoAltomonte
12-17-2004, 04:13 AM
I upload a new version with normal shadow volume render. Thanks for the Ati renderpath, i will try it later!

knackered
12-17-2004, 04:18 AM
That's a compile time check - you should use a runtime check.

Jan
12-17-2004, 05:49 AM
Log Started
No Hardware support for GL_EXT_stencil_two_side
No Hardware support for glDepthBoundsEXT
Cannot compile Shaders/Light.glsl shader
Log ended

Radeon 9600XT

RAMman
12-17-2004, 07:03 AM
Ups. did not really think there :)
When you distribute only the exe file, it would be better to do a runtime check like Knackered suggest. Sorry :)

knackered
12-17-2004, 09:35 AM
You've made a rod for your own back here, MarcoAltomonte.

sBibi
12-17-2004, 09:42 AM
works quite well, > 1030 fps when looking at some walls, 500 in the main room, goes up to 800-900 in some places.

something _really_ annoying is your mouse control.
it seems like you tryed to do time based mouse movement. you shouldn't multiply the mouse offsets by the frame time, this will make it fps dependent, it's not like normal movements, mouse offsets are absolute in time.
the result here is that the sensitivity is horribly slow... and slows down even more when the fps goes up...

pleopard
12-17-2004, 02:28 PM
ATI FireGL X1 AGP Pro


Log Started
OpenGl System: Found Hardware Support for 'GL_ARB_texture_compression' Extension
OpenGl System: Found Hardware Support for 'GL_WIN_swap_hint' Extension
OpenGl System: Found Hardware Support for 'GL_ARB_occlusion_query' Extension
OpenGl System: Found Hardware Support for 'GL_ATI_separate_stencil' Extension
Cannot compile Shaders/Light.glsl shader
Log ended

MarcoAltomonte
12-18-2004, 02:02 AM
I uploaded a new version with support for Ati_Separate (Does it work?). GLSL Ati Compiling Problems are probably gone because i change some datatypes (vec/hvec/fvec).
Thanks everybody for the very fast feedback!

MarcoAltomonte
12-18-2004, 02:07 AM
Can you also try HiQuality mode? You have to put the var "Video_HiFiPhong" to 1 (it's in Profiles/CommonConfig.ini).

RAMman
12-18-2004, 04:53 AM
Still not compiling :

Log Started
OpenGl System: Found Hardware Support for 'GL_WIN_swap_hint' Extension
OpenGl System: Found Hardware Support for 'GL_ARB_occlusion_query' Extension
OpenGl System: Found Hardware Support for 'GL_ATI_separate_stencil' Extension
Cannot compile Shaders/Light.glsl shader
Log ended

Same thing with the HQ mode....

ATI Radeon 9800 XT.

MarcoAltomonte
12-18-2004, 05:57 AM
I upload a little patch. It has only more intensive glsl logging.

RAMman
12-18-2004, 06:07 AM
Log Started
OpenGl System: Found Hardware Support for 'GL_WIN_swap_hint' Extension
OpenGl System: Found Hardware Support for 'GL_ARB_occlusion_query' Extension
OpenGl System: Found Hardware Support for 'GL_ATI_separate_stencil' Extension
OpenGl System: Start compilation of 'Shaders/Light.glsl' shader
OpenGl System: Log of compiling process for 'Shaders/Light.glsl' shader: ERROR: 0:8: 'hvec3' : Reserved word.
ERROR: 0:8: 'hvec3' : syntax error parse error

OpenGl System: Cannot compile VertexShader for 'Shaders/Light.glsl' shader
OpenGl System: Start compilation of 'Shaders/Shadow_Ati.glsl' shader
OpenGl System: Successful compilation of VertexShader for 'Shaders/Shadow_Ati.glsl' shader
OpenGl System: Log of compiling process for 'Shaders/Shadow_Ati.glsl' shader: ERROR: 0:4: 'fvec4' : Reserved word.
ERROR: 0:4: 'fvec4' : syntax error parse error

OpenGl System: Cannot compile FragmentShader for 'Shaders/Shadow_Ati.glsl' shader
Log ended

Still a Radeon 9800 XT :-)

These are basically the same errors as I got, when I ran your shader through the GLSL compiler of RenderMonkey.....

MarcoAltomonte
12-18-2004, 08:07 AM
ThankYou RAMman, you give me something to do in weekend! I'll probably have to read again glslang specs!

unreal
12-18-2004, 08:36 AM
Very good Engine my friend... very good work! It work fine at my machine.
AMD 2500+, GeForce6800(latest drivers) and windows server 2003.
I get three errors on mussing textures. but i have no problem runing the engine.
I notice something.. the fps of the engine is very high! And it has very good graphics! you have done very good optimizations. I have seen other engines with almost the same graphics (some better some worst) and they have not so many fps! :)

MarcoAltomonte
12-18-2004, 08:58 AM
ThankYou Unreal!
Now I have to make it works on Ati!

Someone knows if they can (and how) use half or fixed data types?

MarcoAltomonte
12-19-2004, 01:13 AM
Ok...There's a new little patch. I changed some shaders (If they work now, it means Ati compiler is a bit stupid!)

Jan
12-19-2004, 01:56 AM
Hi there

Now the engine starts and shows me a grey window. After 10 seconds it crashes. Log is as follows:

Log Started
OpenGl System: Found Hardware Support for 'GL_WIN_swap_hint' Extension
OpenGl System: Found Hardware Support for 'GL_ARB_occlusion_query' Extension
OpenGl System: Found Hardware Support for 'GL_ATI_separate_stencil' Extension
OpenGl System: Start compilation of 'Shaders/LightHQ.glsl' shader
OpenGl System: Successful compilation of VertexShader for 'Shaders/LightHQ.glsl' shader
OpenGl System: Successful compilation of FragmentShader for 'Shaders/LightHQ.glsl' shader
OpenGl System: End compilation of 'Shaders/LightHQ.glsl' shader
OpenGl System: Start compilation of 'Shaders/Shadow_Ati.glsl' shader
OpenGl System: Successful compilation of VertexShader for 'Shaders/Shadow_Ati.glsl' shader
OpenGl System: Successful compilation of FragmentShader for 'Shaders/Shadow_Ati.glsl' shader
OpenGl System: End compilation of 'Shaders/Shadow_Ati.glsl' shader
Texture System: Cannot load texture ANIMATdds
Texture System: Cannot load texture Animazione.dds
Texture System: Cannot load texture textures/legno_s.dds

Still on a Radeon 9600XT.

Would really like to see your engine.

Jan.

EDIT: I think it crashes not at loading time, but at rendering the first frame, because i can see the titlebar change to some text about FPS and "press F2 for dynamic lights".

bobvodka
12-19-2004, 05:01 AM
Originally posted by MarcoAltomonte:
Ok...There's a new little patch. I changed some shaders (If they work now, it means Ati compiler is a bit stupid!)No, if it works now it means you arent following the spec by using hvec in your Light shaders, which isnt part of the 1.00 OR 1.10 spec for GLSL (I've just checked the basic types in the 1.10 spec), regardless of if it works on an NV card or not.

It works now because you've changed some code so instead of loading Light.glsl you are loading LightHQ.glsl on ATI cards which dont have the rouge data type in it.

So, before complaing about a stupid compiler check the spec to see if you are wrong, because in this instance you most CERTAINLY are (and this is another good reason why unconforming behaviour needs to be explicatly asked for and not just given... although i dont hold out much hope there tbh..)

SirKnight
12-19-2004, 05:54 PM
Works great on my GeForce 6800 GT. The FPS went from around 120 to 300+. My log file did say it couldn't load the same textures as what Jan posted though. I'm guessing that's what's supposed to happen. :D

-SirKnight

MarcoAltomonte
12-20-2004, 02:39 AM
To bobvodka:
I said it's a bit stupid (but i'd have said a bit strict! I'm Italian, forgive the little mistake).
My problem wasn't with hvec,fvec (I read the last part of glspec) but with int/float!
In fact I write something like; X=clamp(Y, 0, 1).
For Nvidia Compiler it's ok, for Ati one it results in an error and I have to turn it in: X=clamp(Y, 0.0, 1.0).
Ok? However, I was joking.

To SirKnight and others:
With the next realease I'll correct legno_s.dds texture. For animXXX instead, i will have to better material parser (longer work!).

Now I'm tring to correct the bugs in Ati renderpath. I uploaded a new executable (for ATI test only!) in www.webalice.it/EngineLog.zip (http://www.webalice.it/EngineLog.zip) with extensive logging. Thanks to all for help me!

knackered
12-20-2004, 02:54 AM
I gave it a go. Worked fine on this quadroFX1000.
You have lots of aliasing artifacts, and you need to work on a better mipmapping technique as the transitions are a bit obvious and sudden.
Your scene doesn't have much geometry in it, so I'm unsure why unreal is complimenting your framerate...seems a bit low for me considering the scene being drawn.
About the projected texture - am I right in thinking this is a dynamic texture being rendered in a hidden pass? If it is, it would have been nice to be able to walk around that hidden scene to make sure people know how clever you're being.
It's a good effort though.

supagu
12-22-2004, 01:45 AM
Log Started
OpenGl System: Found Hardware Support for 'GL_WIN_swap_hint' Extension
OpenGl System: Found Hardware Support for 'GL_ARB_occlusion_query' Extension
OpenGl System: Found Hardware Support for 'GL_ATI_separate_stencil' Extension
OpenGl System: Start compilation of 'Shaders/LightHQ.glsl' shader
OpenGl System: Successful compilation of VertexShader for 'Shaders/LightHQ.glsl' shader
OpenGl System: Successful compilation of FragmentShader for 'Shaders/LightHQ.glsl' shader
OpenGl System: End compilation of 'Shaders/LightHQ.glsl' shader
OpenGl System: Start compilation of 'Shaders/Shadow_Ati.glsl' shader
OpenGl System: Successful compilation of VertexShader for 'Shaders/Shadow_Ati.glsl' shader
OpenGl System: Successful compilation of FragmentShader for 'Shaders/Shadow_Ati.glsl' shader
OpenGl System: End compilation of 'Shaders/Shadow_Ati.glsl' shader
Texture System: Cannot load texture ANIMATdds
Texture System: Cannot load texture Animazione.dds
Texture System: Cannot load texture textures/legno_s.dds

got a white window so i killed it as it was taking 2 long to load.

radeon 9600xt

MarcoAltomonte
12-22-2004, 04:27 AM
Hi everybody. I didn't posted anythings for days 'cause server loging problems. Now I uploaded a new version with a new map (UAC Maintenace Deptartment
Version 1.0
Author: Eric Stenborg
eric@stenborg.us
http://www.stenborg.us/doom3maps). Unfortunately I can't upload copyrighted texture so I use one of the old ones...
I also uploaded a extensive logging exec www.webalice.it/altomonte/EngineLog.exe (http://www.webalice.it/altomonte/EngineLog.exe)
After 18 loading phases it display only the 3 visible lights, create a screenshot and exit with a big log. Try It!

Jan
12-22-2004, 05:45 AM
Ahem, did i miss something?

I downloaded your new app and started it.

I can only see "Loading phase 17/18" and "Loading phase 18/18", then it crashes and the log-file is completely blank.

Did i have to download the level seperately? The link doesnīt work.

Jan.

skynet
12-22-2004, 07:16 AM
Same here...
Debug-Exe produces this log:

Log Started
OpenGl System: Found Hardware Support for 'GL_WIN_swap_hint' Extension
OpenGl System: Found Hardware Support for 'GL_ARB_occlusion_query' Extension
OpenGl System: Found Hardware Support for 'GL_EXT_stencil_two_side' Extension
OpenGl System: Found Hardware Support for 'GL_NV_depth_clamp' Extension
OpenGl System: Found Hardware Support for 'GL_EXT_depth_bounds_test' Extension
OpenGl System: Start compilation of 'Shaders/Light.glsl' shader
OpenGl System: Successful compilation of VertexShader for 'Shaders/Light.glsl' shader
OpenGl System: Successful compilation of FragmentShader for 'Shaders/Light.glsl' shader
OpenGl System: End compilation of 'Shaders/Light.glsl' shader
OpenGl System: Start compilation of 'Shaders/Shadow.glsl' shader
OpenGl System: Successful compilation of VertexShader for 'Shaders/Shadow.glsl' shader
OpenGl System: Successful compilation of FragmentShader for 'Shaders/Shadow.glsl' shader
OpenGl System: End compilation of 'Shaders/Shadow.glsl' shader
1
2
3
Cannot complete reading material file Materials/materials.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Log ended

MarcoAltomonte
12-23-2004, 12:21 AM
The Log file is completely blank because you execute the standard exec. I included another NEW exec in www.webalice.it/altomonte/EngineLog.zip (http://www.webalice.it/altomonte/EngineLog.zip) with extensive logging for find ati renderpath bugs.("Materials/materials." bug corrected too, on DEBUG).
Does the app crashes or does it only quits?

Thanks everyone!

skynet
12-23-2004, 12:56 AM
Its still not working. This time the app quits after loading for some time:


(...lots of other surf stuff before...)
surf 117
surf 118
surf 119
surf 120
surf 121
surf 122
vblock
vbblock id:0 v:17562 size:280992
vbblock id:0 v:65512 size:1048192
ibblock
ibblock id:0 i:0 size:0
OpenGl System: Cannot Lock IndexBuffer.
Cannot complete map loading
quit1
quit2
quit3
Log ended Iīm using a GF6800GT, if thats any help to you.

MarcoAltomonte
12-23-2004, 03:42 AM
To SkyNet:
Thank you!I will try to fix it soon!

MarcoAltomonte
12-23-2004, 04:28 AM
I've post a new release and a new logger.
I hope that was tha LAST specific-renderpath bug!

Happy Christmas, everyone!

GPSnoopy
12-23-2004, 05:07 AM
Couldn't try it on Linux. :(

What would be great is to have the source too.
Otherwise I fail a bit to see the purpose of posting your engine on your website.

M/\dm/\n
12-26-2004, 01:46 AM
I dont see any textures and ther's a horrible z-fighting all over the place - windowed (can't get to full screen). Aparent open spaces without color clears too.
Log - empty

Thats from 1 min testing... 6800GT FW66.93

knackered
12-26-2004, 08:03 AM
You must be doing something wrong, madman. Is your computer plugged in?

M/\dm/\n
12-26-2004, 11:29 AM
Not funny, computer is OK, everything runs fine doom3, hl2, etc... My own shaders are ok too...
http://lapas.dau.lv/salitis/1.jpg //z-fighting
http://lapas.dau.lv/salitis/2.jpg //color clears on unfilled areas
I'll try to clean drivers, but I allways uninstall and erase everything from them...

MarcoAltomonte
12-26-2004, 12:00 PM
ZFighting is caused by lack of correct material specs. No ColorBuffer clears are ok(I do ambient pass first).You can see the external part of the world (so the mirroring effect) because of the lack of models (use for show an higher geometry complexity).

SirKnight
12-26-2004, 06:20 PM
I get the same as madman. Perhaps my computer isn't plugged in after all and I have the toaster oven plugged in instead?

-SirKnight

Twixn
12-27-2004, 01:39 PM
Looks like mine isnt plugged in either, i get the same thing... GF FX 5900 XT, 66.93

MarcoAltomonte
12-31-2004, 01:45 AM
I've uploaded a new version. It works "correctly" on NVIDIAs and on ATIs.

Lurker_pas
01-02-2005, 05:44 AM
Works perfectly now:)
Just one funny thing:
When I look at the animation (AulaD) from 2-3 metres I get ~500 fps; when I go back few metres I get 150-200 fps(Radeon 9800). When I look at the floor I get 80-100 fps. Then, when I look at the ceiling (~45 degrees up, from over the desk) I get ~990 fps. Is your floor shader so expensive? I'm just wondering what could be the cause of such performace hit(x3-8) with (relatively, on my eye:) so little geometry...

Forgive me, I am just curious:)

Jan
01-02-2005, 02:35 PM
Well, it WORKS now, but not perfectly well :-(

There are absolutely no textures at all. Is this expected? Do i have to have Doom 3 to get those textures, or are they supposed to be in the package?

Well that is one point, now to the technical stuff.

You seem to have problems with the portals. They get visible much too late, so that i can see the typical artifacts when nothing gets rendered. I donīt see shadows for everything. Some stuff seems to cast shadows, but the railing for example doesnīt.

I get z-fighting in some areas, but i think you know that already.

Well, it does run smoothly, but with no textures that doesnīt mean anything. Also you donīt use specular lighting, do you? Couldnīt find any.

I think, that most bugs come from the problems with ATI cards.

Anyway, two thumbs up! I think you will get the rest working, too. Itīs definitely looking promising.

Jan.

supagu
01-02-2005, 10:45 PM
do you use light maps? are these stored in your level?

MarcoAltomonte
01-03-2005, 01:38 AM
I wrote that It works but in practice there's a "little" problem with static shadows and Ati:Shadows will look wrong 'cause lack of NV_CLAMP (or similar, so I must write a specific glsl code.Am I right?)

I use tha same lighting shader for everything: the performance change is probably due to the bigger overlapping light regions (used for scissoring).

Ok,there are no textures at all,you're right. If you have some Doom3 textures you can put them in Base dir. Materials specs won't load properly 'cause I decided to use a little different grammar (probably I bad idea but I can change it very fast...).

I know that some surface doesn't cast shadows: these surfs are lwo models (I implemented lwo loading in some days, as fast as possible to show them in my thesis). So I have to spend some time on those.

I know the problems with portals, I have corrected the problem with another function but i will use it only with Collision Detection.

Damn! You're right! There are no specular textures so the sw use the null one (black like Doom3 specs). I will change it, thank you!

I don't use lightmaps: only realtime calculations of atten,diffuse,specular. Shadow Algorithim is ShadowVolumes. I implemented a compiler to do portals/sectors, to find the smallest set of lighted surfs and to precompute limited static shadows (which are stored in the file).

I'll try to correct all these problems (but I think I 'll go on holidays for some days! Finally!). Thanks everyone for help! And... Have a nice year!

supagu
01-03-2005, 03:43 PM
no light maps? how do you get the funkey light shapes? they look like ovals.

also how do you have so many lights, i thought the limit was 8, or are you adding more via shader?

SirKnight
01-03-2005, 04:27 PM
also how do you have so many lights, i thought the limit was 8, or are you adding more via shader?
He's not using OpenGL's built in vertex lighting lighting. Even then you can get around the 8 limit by multi pass. What's done when doing per pixel lighting using shaders is you loop through all visible lights and render the visible geometry for each visible light. Although you could write a single shader that handled multiple lights at once. Either way.

-SirKnight

cochondinde
01-12-2005, 11:59 AM
Wahoo, you have lot of Fps. I only have 18-24fps on my computer with a geforce 5600 :/. Il really dont understand.... If someone can explain...

Marco81bs
01-20-2005, 08:54 AM
Hi!Probably i'm a bit late... So:I tested the prog with a geforcefx 5900 and an ati9700. Probably your card has less power... However I change the software (and the map)a lot of times: some posts refer to less complex scenes (try the second map, look at Profiles/CommonConfig.ini).
I also put another test version www.webalice.it/altomonte/EngineTemp.zip (http://www.webalice.it/altomonte/EngineTemp.zip) .
I won't probably post any updates in the next weeks ('cause university...).
Bye!

Zengar
01-20-2005, 12:16 PM
Similar problem to madman and sirknight...

I don't see any textures(and log says it can't load like 100 of them)