-
Notifications
You must be signed in to change notification settings - Fork 911
Closed
Labels
Milestone
Description
In #338 there was some discussion of attribute names that relate to PMREM features in `.
A good name should balance these characteristics:
- The name needs to be recognizable by a sophisticated user who knows the feature they are looking for (PMREM)
- The name ought to be understandable by an unsophisticated user so that they have some idea of what they are configuring
A suitable candidate must be decided before the experimental- prefix can be removed from this attribute.
Excerpts of relevant off-Github discussion follow:
Chris Joel,
7:30 AM
,
@John Pallett @Matt Small @Don McCurdy @Yuin Chien @Ricardo Cabello
We're getting close to landing @Jordan Santell 's PMREM change, but we are at risk of being stymied by that hardest of CS problems: naming.
If you have some time and / or interest, please check out the discussion here: https://github.com/GoogleWebComponents/model-viewer/pull/338
We need to come up with an attribute name that will activate PMREM. Originally, @Jordan Santell suggested radiance, but then backpedaled and suggested experimental-pmrem. Personally, I think we should avoid acronyms. But, the feature is nuanced, and with a name like Prefiltered Mipmapped Radiance Environment Maps, a concise, plain language attribute name remains elusive.
Got any creative ideas?
Integrate accurate radiance maps via PMREMGenerator for HDR environments by jsantell · Pull Request #338 · GoogleWebComponents/model-viewer
Integrate accurate radiance maps via PMREMGenerator for HDR environments by jsantell · Pull Request #338 · GoogleWebComponents/model-viewer
github.com
Jordan Santell,
7:50 AM
,
my main concern is there is no 'standard' format for PMREM -- it's a technique that convolves a radiance map at multiple roughness values, laid out and UV'd into custom mipmaps -- meaning "radiance" maps seems insufficient
...although i guess that's maybe more relevant for when precomputing the texture and providing that rather than generating it procedurally at runtime (which can encounter 150ms, 300ms processing for 2k and 4k textures respectively)
Chris Joel,
8:14 AM
,
Would you say the value the generated map represents for any given sample (for some specified roughness) could be described as radiance?
Matt Small,
24 mins
,
(Naming is the worst. I absolutely love the discussion on the thread. Tons of great background and exploration!!)
Jordan Santell,
19 mins
,
@Chris Joel roughly, yes (although "radiance maps" don't seem to be a thing, and maybe it's because the PMREM texture only represents one half of the "split sum approximation", with the other half being generalizable for all indirect BRDFs [three.js has an analytical approximation but if you've seen that weird red/green texture in filament docs, that's the other half that's dependent on viewing angle and roughness)
i could very well be over thinking it, but maybe a better test is to google "radiance map" -- it seems to be a very unused term
Chris Joel,
18 mins
,
The phong lobe or whatever?
Jordan Santell,
16 mins
,
there's an energy compensation lobe in filament's docs/implementation, but that's not exactly generalizable to the split sum approximation i think (filament's dfg is slightly different and i think they just add an extra bit of info into the texture so they can save on computations)
Chris Joel,
15 mins
,
Ultimately, the tension is between these two things:
1. The name needs to be recognizable by a sophisticated user who knows the feature they are looking for (PMREM)
2. The name ought to be understandable by an unsophisticated user so that they have some idea of what they are configuring
Jordan Santell,
15 mins
,
(they're precomputing extra info to make the realtime comp a bit easier, but i'm not completely sure how it works, but is the same idea as split sum)
Jordan Santell,
15 mins
,
New
@Chris Joel good points -- a friendly way to describe this could be "better indirect lighting"
it is specifically a texture used for PMREM, although the name isn't specific enough to be generalizable across renderers (no way around that, we'll need to describe how this texture needs to be generated)
Matt Small,
10 mins
,
New
Would incorporating "radiance" be a hint to more knowledgeable readers? "better-radiant-lighting"?
"better" isn't great either, doesn't indicate that there are trade-offs. "detailed-radiant-lighting"?
Chris Joel,
8 mins
,
New
I like the hint that this has some potential perf cost (implied by it being "better" or "detailed")
Jordan Santell,
8 mins
,
New
apologies for the constant "well, actually"s
Chris Joel,
7 mins
,
New
Don't apologize, we need all the "well actually"s we can get
Jordan Santell,
7 mins
,
New
i don't think we'll have a name that conveys all of this to someone who hasn't read the docs
Chris Joel,
7 mins
,
New
I think that's a fair assumption
Jordan Santell,
7 mins
,
New
"Actually, PMREM was the name of the doctor who created prefiltered mipmapped radiance environment maps and
Chris Joel,
6 mins
,
New
PMREM: "If my name was actually an acronym, I would choose..."
Matt Small,
6 mins
,
New
I'm pretty sure that's Dr PMREM to you
Jordan Santell,
5 mins
,
New
Matthew Small, M.S., PhD, PMREM
Let's Connect On LinkedIn
Matt Small,
5 mins
,
New
Hahaha
Jordan Santell,
4 mins
,
New
i'd say experimental-pmrem for now, no one's going to be aware of it without reading the docs, and we don't yet support precomputation of the texture
Matt Small,
4 mins
,
New
I agree, though, the docs will be essential. I think scoping the goal to that makes sense - a hint to both the uninitiated and experts about what the attribute does is a realistic goal. The docs can go into more detail.
Jordan Santell,
3 mins
,
New
that is under the assumption that experimental- attributes have an implicit connotation of 'may-change'
Matt Small,
3 mins
,
New
So I'd prefer the more human-readable versions (radiance? lighting?), unless they're wrong to experts
but I'm fine with an experimental- prefix
Chris Joel,
2 mins
,
New
@Jordan Santell I guess we can file an issue. We need to revisit before removing experimental-, though.
Jordan Santell,
2 mins
,
New
totally, more of a concession of "no idea what this should be named"
(and the understanding that supporting precomputed textures is still TBD)
John Pallett,
56 mins
,
Question: How would you explain this to a non-3D developer, what's the outcome? Seems like it's a tradeoff between realism and compute time, correct? If so, "Realism=3"?
Jordan Santell,
55 mins
,
@John Pallett roughly yes -- and this won't be the first option for perf vs quality
is there value in something like quality=5 for nice presets?
John Pallett,
55 mins
,
If we're offering a super-technical attribute for power users something like PREM is probably fine. But it seems like we're going to need a more generalized attribute with preset configs for quality.
(trying to find the "great minds" emoji again)
yes there is value to a quality attribute with nice presets.
Don McCurdy,
41 mins
,
New
With whatever name we choose, what other attribute(s) would the user be choosing between, if they know the more common terms like 'environment' or 'ibl'? Seems like background-image is the only competitor at the moment, and it's even more imprecise for this purpose..
Don McCurdy,
39 mins
,
New
for my $0.02 any name that communicates what it aims to do, but not how it does it, is sufficient. There aren't clear standard ways to do that, yet. Definitely we'll need docs though. 🙂
Jordan Santell,
39 mins
,
New
there's an open issue for providing your own environment map, which could may or may not be preconvolved, so maybe a generalized way of thinking about this is metadata on an attribute (e.g. what if we supported both equirect and cubemaps for background image)
Reactions are currently unavailable