I couldn’t care less about the excitement of people and the hype around AI. This appears to be a reasonable idea. It is a small part of the rendering pipeline where a neural network could make sense.
But that wasn’t a reasonable idea to begin with. Sure, there was hype, but when you had a closer look at it, it didn’t make sense.
To me, it is not relevant whether there are other ideas around. What matters is that the mentioned idea appears reasonable to me. Sure, if someone had to decide whether resources should be invested, then it would matter.
The issue I am having is that the idea was roasted because the word AI appeared. That’s very ignorant in my opinion. Again, the idea as such makes sense and I don’t see a reason to roast it like that.
To you, sure, but not the other commenters, and you’re not the final word on “what makes sense.” Neither am I or anyone else. “Everyone should agree with this because I think it make sense” is an opinion, not a fact
What I mean by that is, it fulfills the basic requirements to tackle to problem. First of all, you can collect the necessary data, especially, because the input and output are clearly defined. That’s not the case for many problems. Further, it would be quite straight forward to use that data for training, because the input and output appear relatively fixed in size (a few things would need to be done to allow iterative inputs and the output would need to have a fixed distribution size, so some initial experimentation would be needed for sure).
That’s a clear and straight forward path towards how the problem might be tackled, making it reasonable.
Many, many, many ideas that people suggest already fail at this stage. To give a popular example, retopology. There is no obvious way how it could be tackled and as such not an obvious problem to tackle with machine learning.
I am able to give a clear explanation as to why it makes sense in my opinion. I haven’t seen a clear explanation as to why this problem couldn’t be tackled using a neural network.
The input is the incoming light at certain points with their importance. Out of this, a probability distribution is computed (just as Open PGL does it). Now if more samples are needed at that point, this distribution can be used to sample from and the result is then used to update the distribution.
The goal is to get the best possible distribution as quickly as possible, with as few samples as possible.
OIDN in Blender works because it is technically a guided AI (see the pass information) that can be applied in a granular fashion, and in addition scales up well with samples especially if you sharpen the denoise normal pass before you feed it in (yes, it does allow you to do that). I would not use it with just 10 samples on the screen by any means and I would not use it in its most pure form (no passes, just trust it).
AI so far is showing to be at its most useful when it is guided, when it is used as an assistive aid, and when it is used as an accelerator. No pure application here, but combined with traditional R&D and algorithms to produce results and performance that is extremely difficult otherwise. This is where the AI hype went wrong, because it is being praised as the holy grail to everything and the end of everything that came before it.
I’d hate that a chess engine would play the same algorithmic solution everytime… It makes sense a bit of fuzziness! But I’d also hate to have that kind of fuzzyness when I schedule a render job. Two completely different cases.
OpenPGL doesn’t do that. BSDFs do that!
This is what OpenPGL does (almost)! not really the best distribution, but a way to have an “Unbiased Iterative Learning” while rendering any kind of scene.
Now, all this thread, is composed of comments of people that aren’t programmers, don’t understand programming in its practical sense, and don’t know what a computer really does at its core.
Most, are embedded in the idea that a well trained AI would give/produce the best solution for a problem.
This however is a limited point of view… So limited, that they forget that the best Intelligence there is, is from the trained Humans; the ones that battled the problem for all their lives!
(Not us, that’s visibly clear!!)
And all these new render algorithms that we’ve seen emerge since CG is a thing, were created by the most intelligent humans of theirs and ours times.
This blindness is the hype!!!
What we’ve named as AI, should be renamed as weighted multi-layered matrices conforming, because that’s what that is. (Of course, it would not sell the product that well, but this new religion would probably be far less harmfull and noisy)
When a chess engine judges how good a position is, you don’t want fuzziness either. You need an answer that is quite accurate, because if it is not, it ends up exploring irrelevant variations.
Cycles is built using fuzziness, because it randomly samples…
Open PGL needs that information to compute a distribution, because that’s how it helps with the path guiding. It is computing an approximation of the light distribution, based on the already existing samples.
I don’t care what others might have written. Feel free to point me anywhere where I am making this claim.
Just like denoisers, which were also created by those intelligent people.
And when it comes to complicated computations, those intelligent humans never have to use approximations and simplifying assumptions I guess, because of their sheer intelligence?
Implementing a denoiser by hand is very difficult, it it is necessary to make assumptions, simplifications, take shortcuts, because of the complexity of the task. In those kinds of situations, a neural network can work around those limitations.
If you look at OpenPGL, the situation is similar in my view and that’s why it appears like a promising candidate.
There is literally no hype on my end. I don’t care about the human vs AI discussions. I am interested in figuring out and understanding where neural networks can be used and to understand what their limitations are.
Feel free to discuss the definition of terms with someone who cares.
I think path guiding attempts to improve those odds defined by shaders based on the actual scene to be fair.
OK. Let’s think about it for a minute. What information must be considered to do that? The whole path in the scene. The shaders. The textures. The volumes. What information s needed to solve the problem? So are we talking about skipping calculating that and replacing calculations with a result generated by neural network? Then the AI needs to learn to recognize all possibilities of variations of these things. It needs to skip calculating and just infer that information. Now what kind of dataset would it need to be trained on for that? Is this less or more than “just” making a picture consisting of pixels? And then the sampling still needs to be done. So… That’s to replace one part of path guiding inferring that complex information of any scene! Does that sound like something that can be done to you? Does that sound like something worth doing? If it does, I think you are wrong. Why not skip sampling altogether? What we are talking about sounds remarkably similar to “understanding of world” that is starting to be a thing in models like Sora. To call that trivial… Wake up! You got lost in the detail without seeing the bigger picture.
I am really tired of this discussion. I get that. Consider what information path guiding needs to get results. It needs the scene! The information the AI would need to ‘understand’ completely is the world. Not only the world, but any artist-imagined world possible in CG. That’s absurd. You don’t seem to understand the issue at high level and that’s why you are stuck at making a mistake to think that has a chance of working.
No, it uses the specific scene. If you skip that specific scene, it needs to be inferred. If we are talking about specific scene, then the AI would need to be trained on that specific scene during rendering. If we are talking about only processing information path guiding does, we are talking about AI replacing math. Doesn’t make much sense in any scenario the way I see it.
Maybe it could speed up path guiding slightly at absolute best. It wouldn’t be much of a miracle since sampling is still the most time consuming part. How computationally intense or stable/accurate would that be if even possible?.. Who knows?
Yes, I am no expert in this and I cannot fully understand the source code or the documentation of it. It is possible I misunderstand many details. That’s why I try to understand the bigger picture first. Like the problem that needs to be solved here and what information is needed to solve it. The problem is to determine the more likely directions of segments of more important paths(more likely to reach the light source) to calculate so that they can be calculated first that way rendering the scene faster. The information needed for that is the geometry of the scene, the shaders of surfaces and volumes and continuously calculated paths.
Or you can use just randomly sample initially with Cycles, feed all the relevant light path information into something like a path guider, which uses it to compute rough distributions in certain locations. Then, Cycles can query which directions are promising in those locations, pick one of those to perform a rendering step with it and provide the light path information back to the path guider, which can then use this information to refine its distributions.
There is this concept in discussions when you find out that you are not talking about the same thing, to simply ask what they think it is, such that you understand what they mean, in order to make sure you are talking about the same thing or to clarify based on the explanation.