-
Notifications
You must be signed in to change notification settings - Fork 14
Implement DeepCCompress node #23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Good thoughts, thanks. I hadn't considered percentage reduction, but was considering an option for clamping sample count, so you could specify no more than 20 samples for example. Percentage reduction over a threshold might be good, too - reduce 50% any samples over 20, say. |
i started a bit to look into the logic. the total sample count is doable and all good. so defining a number of samples are doable, but the issue i am having, is that some samples are empty in all channels. however, the new total sample count is correct. just the wrong/empty values. so far i have 3 options in mind to reduce samples:
however, one thing I want to keep is the original very front and very back sample. to the entire "depth" is kept. only samples in between those shall be removed IMHO. what i dont understand TBH is Merge by z-depth threshold - the obvious case |
"Merge by z-depth threshold" is something like, "merge samples which are closer together than .1 units". So if you had samples like:
With merge threshold set to .1, you'd get something like:
Basically, in pseudo-code:
|
And in my conception, you would get "thick" samples out, where the new samples front is the first samples front, and its back is the furthest sample's back. But that may or may not be the ideal way to do it. |
The reason I say that's the "obvious" case, is 1) that's how renderers handle aggregating deep samples (Mantra I know for sure does it like this, pretty sure others do too) and 2) it will keep the sort of spatial distribution of the samples in a sensible way. If there's three "clusters" of samples, there will still be three "clusters" out, so long as the clusters are further apart than the threshold. Solves cases where the threshold wasn't set correctly in the renderer, and so your hard-surface render has like 600 samples per pixel, all within .0001 units of each other. |
that makes a lot of sense i have to admit. |
Is there any code related to this plugin, as i need to implement similar functionality to speed up my Deep Nodes. If not I was thinking of just creating lots of helper functions in a separate file that can be shared between plugins. |
I see this is planned in the README \o/
We have one internally and it has proven very useful - it has two modes:
We had also discussed some other features which would have been useful at times:
The text was updated successfully, but these errors were encountered: