2

Does a 3D engine needs to analyse every single object on the map to see if it's gonna be rendered or not. My understanding is that a line from the center of projection to a pixel in the view plan, the engine will find the closest plan that intersect with it, but wouldn't that mean that for each pixel the engine needs to analyse all objects in the map, is there a way to limits the objects analysed.

Thanks for your help.

habibhassani
  • 486
  • 1
  • 6
  • 15

1 Answers1

3

Such procedure are called frustum-culling algorithm.

You can also find more information about it here :-

Beware, what you seek for is not the same as "occlusion culling" (another related link "Most efficient algorithm for mesh-level, optimal occlusion culling? ) ", which is another optimization when an object is totally hidden behind another one.

Note that most game-engine render by object (a pack of many triangles - via draw calls, roughly speaking ), not by tracing each pixel (ray-tracing) as you might understand.

Ray-tracing is too expensive in most real-time application.

Community
  • 1
  • 1
javaLover
  • 6,347
  • 2
  • 22
  • 67
  • thank you very much, but i think you missed what i want, before doing the frustum culling, i need something to limit the object for the frustum culling to be more efficient. like when frustum culling limit the objects to analyse to those inside the frustum volume making occlusion culling faster, i can't just analyse all the object of the map each time i do the frustum culling. – habibhassani May 21 '17 at 14:29
  • 1
    @habibhassani Do you mean an algorithm/data-structure that can take advantages on the assumption : the result (list of objects inside the view) of previous frame and current frame are not so different? If so, the pdf link may probably cover what you want. – javaLover May 21 '17 at 15:54