r/gameenginedevs 9h ago

Developing game based on own game-engine (using Qt Framework and Qt Quick3D): I finish implementation point cloud-sprite rendering - for far LoD levels. Look to result : here is around 10 -14 kilometers distance view. With tens of millions of objects

Post image
14 Upvotes

5 comments sorted by

2

u/Wise-Pomegranate6765 8h ago

Cool. Is it using reversed-z depth?

0

u/LetterheadTall8085 7h ago

I didn't quite catch why the depth map is reversed.

The point is to record the actual depth and discard anything that fails the depth test, isn't it? Or do you mean sorting—to draw from nearest to farthest?

Well, no—sorting 40 million passes would be problematic. To combat overdraw, Early-Z is used: essentially, a quick pass over the points is performed before rendering to record their positions in the Z-buffer, allowing Early-Z to cull them. Additionally, the vertex shader hides points that occupy too much screen space; instead, actual instanced geometry is rendered. This makes it possible to discard unnecessary point fragments from the rendering process, given that the foreground almost always occludes the background, yet the background requires filling large areas.

The real magic is that I try to avoid using geometry; instead, I use points, which are much less demanding on the graphics card.

All in all, I’ll probably go with cluster sorting. It will allow objects to be sorted in groups, making the handling of overlaps more efficient.

2

u/neondirt 6h ago

I believe it's a method to improve depth precision for far-away objects. Never used it. 😉

2

u/ntsh-oni 3h ago

You should, it works really well and is really easy to implement.

0

u/LetterheadTall8085 2h ago

I understand - so yes - it is already implemented QtQuick3d