Menu

#425 Xonotic Octrees

current stable SDK
open
nobody
None
6
2013-11-26
2013-11-24
No

I have a ~50K triangle quake bsp map i'm loading and it runs at 70 FPS regardless of whether i'm out in space or have the entire map in my view, also regardless of whether I use the regular sceneNode or the octree version....

As a side note, irrlicht doesn't handle xonotic map files out of the box... the shader/texture name rules are slightly different than cononical quake3 style so irrlicht is a little broken ...

I've fixed it to the point all diffuse show up (nothing was showing up at all before) -- but lightmaps aren't applied.

My main concern is the low framerate though..

Also, the "culled" variable always shows 0 unless i fly outside the maps bounds and look out, then it shows 1.

I've attached my mutilated diff "patch" which allows xonotic maps to render

1 Attachments
out

Discussion

  • Ztatik Light

    Ztatik Light - 2013-11-25

    Does this maybe have something to do with it?

    // the additional mesh can be quite huge and is unoptimized
    const scene::IMesh * const additional_mesh = mesh->getMesh(quake3::E_Q3_MESH_ITEMS);

    Is there any fix for this?

     
  • Ztatik Light

    Ztatik Light - 2013-11-25

    Hm, so I just found this at the bottom of CQuake3ShaderScene.cpp

    setAutomaticCulling( scene::EAC_OFF );

    commenting that out makes it behave "somewhat" better. If I stare out to space, it goes from 70 to 100 FPS... and if i fly beyond the map bounds and look out its 500+... but that's not much good...

    I guess this is probably as good as it gets? The whole octree system is just for frustum culling, and not actual occlusion... which means if you're staring at a wall that goes through to the other side of the map, your FPS is shot.

    There's really no actual occlusion culling like what's done in quake or similar? They use a combination of the BSP architecture and precomputed PVS to limit renders tris to just what's visible.

    I think that would be a major win for irrlicht, over, ie, OGRE, or even other more fully-featured engines panda3d, horde3d, etc.

    Does anyone know of a decent way to do this with existing irrlicht "plugin" code or similar?

    Thanks

     
  • Ztatik Light

    Ztatik Light - 2013-11-26

    highly suggest a core dev port over PVS from lightfeather into irrlicht - and also fix up xonotic map support :>

     

Log in to post a comment.

MongoDB Logo MongoDB