-
Notifications
You must be signed in to change notification settings - Fork 310
Description
Hello, I am reading your code and wonder why only part of splats is sorted like below.
const partialSorts = [
{
'angleThreshold': 0.55,
'sortFractions': [0.125, 0.33333, 0.75]
},
{
'angleThreshold': 0.65,
'sortFractions': [0.33333, 0.66667]
},
{
'angleThreshold': 0.8,
'sortFractions': [0.5]
}
];
Here is my understanding of it: when a certain angle is rotated, you put sortFractions * totalSplatNum
into a queue according to angle threshold. Then the sort worker gets the num of splats to be sorted from this queue. So in fact the sort worker finishes one sorting during few frames, but not one sorting per frame? I'm not sure if I'm right. BTW, how do you decide which part of splats is going to be sorted if you don't sort all of them?
I only finished my own viewer using GPU radix sort, so I am curious about the magic in your cpu sort since other similar projects in github using cpu sort either run slowly or have visible artifacts during fast view spinning. But your work has a steady and high fps, and I can hardly see artifacts when rotating my view. Thank you for your reply!