Idea-> camera = gpu /openCL/ KDTRee center
Data = all meshes as gpu KD tree + a worldTransform on a gpu accelerated KDTree
the camera looks up all faces within a radius (because it’s cheap)
and if you localize the faces to the camera a cone is very easy
Zdistance can be used and abs(x)+(ZDistmultiplier) and abs(y)+(ZDistmultiplier)
Then from these a index is used to look up the actual face or not, during this time you Z sort
then you rasterize. (I don’t know enough about culling)
Note this is just a half baked idea*
Good try to develop your idea further.
Faces are only z-sorted when you use semi-transparency. These sort is expensive, therefore it should be used with caution.
Please be aware that z-sorting is not deterministic. This means it does not always has a result. (Relatively fast) z-sorting can easily lead to incorrect results.
Solid faces can be rendered in any order when using z-Buffer (which provides the correct z-order per pixel).
Faces within the camera frustum are already calculated in a fast way (this is the core of any 3D render engine).
yeah using BVH apparently now?
I suggest to check the sources.
You need to stop thinking of algorithms as master solutions. Though they are useful (for obvious reasons), they have their benefits and draw backs for each application, and it’s not as simple as just taking the most performance for one case and “adding it” to another solution. For example a kdtree is good for nearest neighbour searching, but not so useful for rendering.
Sent from my SM-G920F using Tapatalk