Isometric tile culling batching on 3D world

Started by
1 comment, last by DemonDar 7 years, 9 months ago

Ok assume I want a isometric world (3D with fixed camera that could rotate by fixed angles to allow vision from 4 basic directions), basically I want some way to smartly detect wich parts of my world are occluding the camera view and hide them.

The dummiest idea to achieve that would be: start a floodfill of reachable positions from player positions up to a certain distance, then raycast from camera to those positions are mark as "toBeHided" all touched blocks in between.

This approach is really silly of course and do not keep into account some things:

1) blocks changes every frame or so, basically I cannot batch the world because individual tiles to be hided change continuosly, so I would end or streaming all blocks or drawing individaul blocks (if there's a way to prebake on the fly a world area, that would be better).

2) if there are reachable positions that are too neary and just below the player those will cause to hide also the floor on wich the player is walking (ok here I might just limit the flood fill to the semi-cube in front of player to avoid that)

3) If I enter something that resemble a room, it is preferrable that all the walls of the room become invisible and not just the area around the player ( I always hated those games where the transparent area was simply a circle around player (like fallout 2), that was very disturbing)

5) I prefer to render only visible faces of cubes, and I have also non-cubic tiles as spare decorations.

Advertisement
I just want to make sure, is this what you are essentially trying to accomplish when you say occlusion culling where objects/tiles hidden behind other objects are not rendered (or possibly clipped) within the scene?

http://www.gamasutra.com/features/20050411/Figure5.jpg

Yes, but instead of hiding what is behind, I want to show "the behind" and hide occluders. :)

I figured partially how to implement that:
EDIT: fake allarm, huge rendering artifacts :P

This topic is closed to new replies.

Advertisement