Geometry instancing in Oblivion

Post » Sun Feb 06, 2011 6:25 am

Anyone know if its supported in Oblivion/Gamebryo Engine? If not, maybe its possible somehow to switch it on? Because it will really enchance perfomance alot.
http://en.wikipedia.org/wiki/Geometry_instancing
User avatar
Steve Smith
 
Posts: 3540
Joined: Sat Jun 30, 2007 10:47 am

Post » Sun Feb 06, 2011 12:10 am

I think Oblivion uses Gamebryo 2.0.1.1 (look into the exe file)

If (geometry instancing = gpu instancing) then ...

2005: Gamebryo 2.0 https://pulse.emergent.net/lofiversion/index.php/t2538.html
2005: Gamebryo 2.1 https://pulse.emergent.net/lofiversion/index.php/t2536.html
2006: Gamebryo 2.2 https://pulse.emergent.net/lofiversion/index.php/t2532.html
2007: Gamebryo 2.3 https://pulse.emergent.net/lofiversion/index.php/t2527.html
2007: Gamebryo 2.4 https://pulse.emergent.net/lofiversion/index.php/t2526.html ...* Enables GPU instancing....
2008: Gamebryo 2.5 https://pulse.emergent.net/lofiversion/index.php/t2509.html http://www.devmaster.net/news/index.php?storyid=2075 ...- GPU instancing ...

I think there is no support, but I am not sure :shrug:
User avatar
Vicki Blondie
 
Posts: 3408
Joined: Fri Jun 16, 2006 5:33 am

Post » Sat Feb 05, 2011 10:03 pm

afaik gpu instancing like geometry instancing, that is taken care of by the gpu.

I don't actually know what oblivion does in this regard. I wouldn't be surprised either way. :shrug:
User avatar
Farrah Lee
 
Posts: 3488
Joined: Fri Aug 17, 2007 10:32 pm

Post » Sun Feb 06, 2011 7:51 am

Yep, GPU instancing is geometry instancing. Thanks for detailed engine info. And yes, looks like its not supported by Oblivion. I made a test in forest with enabled and disabled GI and there was no difference in fps.
User avatar
Racheal Robertson
 
Posts: 3370
Joined: Thu Aug 16, 2007 6:03 pm

Post » Sat Feb 05, 2011 7:45 pm

though i don't think it matters to your test, but trees might be a special case. I have a suspicion that speedtree, actually does it's own built in instancing for trees. Just a thought.
User avatar
XPidgex Jefferson
 
Posts: 3398
Joined: Fri Sep 08, 2006 4:39 pm

Post » Sun Feb 06, 2011 2:55 am

Could be. I'll do another test later just by adding lot of identical meshes in room and check if there will be any fps difference with GI on/off.
User avatar
naome duncan
 
Posts: 3459
Joined: Tue Feb 06, 2007 12:36 am

Post » Sat Feb 05, 2011 7:26 pm

Many of my portable dimension house mods heavily re-use meshes in the way described here. Geometry instancing or not, they do seem to run smoother than you would expect given the massive amount of meshes being used. http://www.tesnexus.com/downloads/images/14074-1-1196296594.jpg
User avatar
Bird
 
Posts: 3492
Joined: Fri Nov 30, 2007 12:45 am

Post » Sat Feb 05, 2011 9:50 pm

I added about 1200 identical statues in room - overall ~10 mil polys. Lagging hard, no matter if geometry instancing enabled or not. If engine had GI support, those 500 statues were rendered like one and there would be no fps drop at all (actually i'm not sure about this). But theres no difference in fps with enabled and disabled GI, and it must be, so its not supported.
User avatar
Monika Krzyzak
 
Posts: 3471
Joined: Fri Oct 13, 2006 11:29 pm

Post » Sun Feb 06, 2011 9:34 am

Anyone can check how instancing works in this demo.
http://www.humus.name/3D/Instancing.zip
Hit 1-5 on keyboard to see different methods. 5 - no instancing. 2nd method works fastest for me.

Another interesting instancing demo.
http://www.humus.name/3D/Domino.zip
User avatar
Camden Unglesbee
 
Posts: 3467
Joined: Wed Aug 15, 2007 8:30 am

Post » Sun Feb 06, 2011 5:07 am

I added about 1200 identical statues in room - overall ~10 mil polys. Lagging hard, no matter if geometry instancing enabled or not. If engine had GI support, those 500 statues were rendered like one and there would be no fps drop at all (actually i'm not sure about this).

instancing or no, you will still be rendering 10 mil poly on screen. what instancing is supposed to do, is make all those 500 statues on 1 draw call. it won't make 500 statues as efficient as simply drawing 1 statue. it just draws them all as if it was one big 10 mil object, instead of 500 smaller ones. draw calls are quite expensive in themselves though.

another thing relating to draw calls, and efficient modelling technique, what I reckon happens, for example 1 nif with 25 mesh objects, total vert count say 5000. this makes 25 draw calls. a nif at 25000 verts, as 1 mesh object will probably be, smaller in nif file size, and actually render much faster. By quite a bit too I imagine. I die a little bit every time i see 10 completely unnecessary mesh objects in 1 nif.

Anyway I couldn't say, but it does seem unlikely at this point that this type of instancing is implemented. Probably the only person who might actually know is Saiden.
User avatar
Sarah Unwin
 
Posts: 3413
Joined: Tue Aug 01, 2006 10:31 pm

Post » Sun Feb 06, 2011 12:35 am

Geometry instancing, dynamic lod, http://www.gamedev.net/reference/articles/article1212.asp could boost the game to light speed and would become possible to make few times more detalized locations without fps drop and yeah, realtime shadows on static objects too. Culling (as well as dynamic lod, both are been available since 2000) is actually supported in Gamebryo 2.0, no idea why Beth ignored it. I have an idea of course... In console even exist command for culling - ToggleOcclusion (tocc) - toggle occlusion query for geometry, but its buggy as hell of course and not working at all as supposed to.
User avatar
Damned_Queen
 
Posts: 3425
Joined: Fri Apr 20, 2007 5:18 pm

Post » Sun Feb 06, 2011 3:36 am

Personally, I can't help but wonder whether stuff like that could be hacked into Oblivion. I mean, we already have OBGE (although that's mainly for shaders) and a few OBSE plugins that modify the way the game works (OSR, anyone?), so it's possible, if nothing else.
User avatar
Roy Harris
 
Posts: 3463
Joined: Tue Sep 11, 2007 8:58 pm

Post » Sat Feb 05, 2011 9:14 pm

although that's mainly for shaders

Hardware geometry instancing is based on vertex shaders actually.
User avatar
Cash n Class
 
Posts: 3430
Joined: Wed Jun 28, 2006 10:01 am

Post » Sun Feb 06, 2011 5:55 am

actually Cell-based occlusion culling is quite heavily used in fallout3 interiors/worldspaces. you can actually look at Beth's implementation of it on their official GECK tutorials on youtube. It's basically the same as the gamebryo implementation.

view frustum culling is in, this why you get slowdown actually looking at a particularly heavy object/scene, and if you turn the camera away, it speeds up.

but i don't think backface culling is, you can just check this for yourself in wireframe mode.

It also has a 2 stage dynamic LOD system for distant terrain rendering, afaik this is again their own implementation.< it is not very good in oblivion, and the algorithm is more advanced in F3. also objects have a dynamic LOD system. And there is the bone LOD system, though i don't recall seeing that used in oblivion ever. I'm pretty sure it works in the engine though

Hardware geometry instancing is based on vertex shaders actually.

afaik speedtree instancing isn't vertex shader dependent, or you only need a gfx card that supports shader model 2 or something. i do have a feeling it's implemented, but who knows.
User avatar
Francesca
 
Posts: 3485
Joined: Thu Jun 22, 2006 5:26 pm

Post » Sat Feb 05, 2011 7:49 pm

but i don't think backface culling is, you can just check this for yourself in wireframe mode.

I know it since spring of 2006. :)

actually Cell-based occlusion culling is quite heavily used in fallout3 interiors/worldspaces. you can actually look at Beth's implementation of it on their official GECK tutorials on youtube

Thats good news. Then TES5 must be a quite good (but very late) tech improvement over TES4/3. Its just bizzare when I watch on wall in interior, dont see anything else, but engine is still rendering everything in FOV, which is not good for perfomance at all.

i do have a feeling it's implemented, but who knows.

I think the same, because it works fairly well with decent amount of trees in some places, its easy to check if just change them all to nif mesh with same amount of polys.

Still no instancing in Fallout 3?
User avatar
Jennifer Munroe
 
Posts: 3411
Joined: Sun Aug 26, 2007 12:57 am


Return to IV - Oblivion