5 ms·
If 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 abs
by shawn 8y ago
If 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.
- pandaman 8y agoAgain, I just pointed it in the previous message. It's attenuation of light. If you have a surface, which absorbs half of the light then you multiply whatever light energy that came in by 0.5 to get the light energy that escapes the surface. >Those bands are arbitrary, defined by human color receptors. Sure. And if we had monochrome vision then we could have used just scalars for light. If you are arguing against 3 component color model then you should not have been baselessly attacking such uncontroversial thing as attenuation. There are engines, which use more points to represent spectra yet they still use multiply.
- shawn 8y agoThis is mistaken. A correct renderer would look correct to whatever creature was looking at it. If we had monochrome vision, we couldn't simply use scalars because it wouldn't look right for those who could see more. And how could it be otherwise? Real life looks correct to any creature that looks at it. And our renderers supposedly model real life. This is a contradiction, and rather than trying to disprove what I'm saying, it's worth chasing down the logical fallacy.
- pandaman 8y ago>This is mistaken. A correct renderer would look correct to whatever creature was looking at it. I am not discussing "correctness" whatever it means, I am arguing against your assertion that "multiplying colors makes no sense". Are we done with that?
- slavik81 8y agoArguably you never actually multiply a color by a color. Rather, you multiply a set of light intensities at different wavelengths by a set of coefficients of reflection for those wavelengths. It's just that the reflection coefficients are often visualized by the color of white light after reflection.