6 ms·
There is no such thing as physically based rendering, and the sooner the world learns this the better. It’s a marketing term, nothing more. Here’s food for tho
by shawn 8y ago
There is no such thing as physically based rendering, and the sooner the world learns this the better. It’s a marketing term, nothing more.
Here’s food for thought: what does it mean to multiply two colors? Nothing. It’s meaningless. It’s an approximation that happens to look good. But if you’re going to claim your engine is physically based, you can’t use it, because multiplying two colors is not based in physics.
- pandaman 8y ago"Physically based" in context of rendering means just that the light calculations preserve energy of light. So there is such thing actually.
- shawn 8y agoThere is no clear definition, further adding to the confusion. https://en.wikipedia.org/wiki/Physically_based_rendering https://en.wikipedia.org/wiki/Physically_based_rendering https://marmoset.co/posts/basic-theory-of-physically-based-rendering/ https://marmoset.co/posts/basic-theory-of-physically-based-r...
- sometimesijust 8y agoThat is a description of unbiased rendering.
- taeric 8y agoThis doesn't seem to be a substantive criticism. Abstractions, even those that are for physics, are done that way as far as it is convenient. Those by physics are the same. Similarly, what does it mean to add colors? Well, kind of non sequitur. Depends entirely on what abstractions you are working on.
- shawn 8y agoIf it isn't a substantive criticism, then it should be easy to address. The claim is precise: It's meaningless to multiply two colors, yet this is the core abstraction that we use in our rendering engines. New ideas are needed to advance the state of the art.
- taeric 8y agoThat is as relevant as saying it is meaningless to multiply two apples. Well, yes. But so what? If the definitions of physically based rendering is multiplying colors, please establish that. My understanding is that it had a legit meaning, but yes, you can do some nonsensical things in it.
- pandaman 8y ago"Color" in 3D engine means just a 3-component vector. It's not meaningless to multiply those component-wise at all. Nobody is multiplying the color of an apple by the color of a dog if it's what you meant.
- shawn 8y agoIf it has meaning, then it should be easy to define what it means. In fact, multiplying two RGB colors is about as meaningful as multiplying the color of an apple by the color of a dog. It's certainly not rooted in physics.
- pandaman 8y agoIt is, and it's defined in my previous comment - it's per-component product i.e. {a,b,c} * {x,y,z} = {ax,by,cz}. It's used to compute attenuation of light separately for different bands. And attenuation has a clear and obvious meaning - it's a portion of light energy that passes through an interaction of light and medium.
- shawn 8y agoAnd yet, it has no basis in reality. Point out the physics equivalent of multiplying two colors. Those bands are arbitrary, defined by human color receptors. If we were dogs, would we be arguing that lighting should be defined as {a,b} * {x,y} = {ax,by}? Dogs can only see blue and yellow. So what's special about r,g,b, and why do we mutiply them together? There's nothing special about them, and it's arbitrary and misleading.
- phiresky 8y agoYou should look more into how physically based rendering works. You do actually approximate the energy that reaches the different surfaces (in Watt / (m² sr)) for all wavelengths of light using Monte-Carlo integration. You can send probes for different wavelengths separately if you care about the differences in the refraction index of your material by wavelength. Then you integrate the results by folding it with the corresponding color response of the primaries of sRGB or whatever color space you want to use. The color representation can be accurate, though screens etc are obviously limited.
- shawn 8y agoThis is unrelated to the claim that multiplying two colors is meaningless.
- anonytrary 8y ago"Multiply colors" in pure physics is ill-defined, but we're talking bout a rendering engine. Engineers are allowed to make approximations whenever they want, and approximations aren't restricted from introducing new concepts/terminology. The closest thing to "multiply two colors" in physics would be taking a product state: |ψ⟩ = |ψ1⟩ ⊗ |ψ2⟩ Here, we are expanding a Hilbert space to include both unentangled particles (color == photon).
- shawn 8y agoEngineers are allowed to make approximations whenever they want, and approximations aren't restricted from introducing new concepts/terminology. Well, yes. But in this case, the approximations are completely made up. They're not based on physics.
- anonytrary 8y agoThe RGB vectors are more or less based on biology, they're just a toy model[0]. Plus, physics is nothing more than a series of better and better approximations to things we observe -- it's all made up at some point. I'm guessing you're upset that the "made up" stuff in this case leads to no new physical insight and deviates from what we know to be more consistent with observation. That doesn't mean that "made up" stuff is not useful. Toy models are everywhere, even in fundamental research. There's a very good reason why people don't solve the kinematics of a tennis ball as if it were a 10^23 quantum-many-body problem. If you're constrained on time and money, the smartest thing to do is to get the closest result you can in the smallest time with the least amount of money. [0] http://hyperphysics.phy-astr.gsu.edu/hbase/vision/colcon.html http://hyperphysics.phy-astr.gsu.edu/hbase/vision/colcon.htm...
- ttoinou 8y agoI agree that we should study more in-depth the "physic" adjective in the name of the rendering, but what's the argument exactly against multiplying colors ? Isn't it an equivalent of a light absorption ?