Physically Based Rendering in Filament
google.github.io
google.github.io
Basically when Google employees ask permission to work on a side project, Google asks them to release it open source under Google's GitHub but mark it as not an official Google product. This is probably something the authors work on nights/weekends and not anything to do with their work.
I had no problems getting approval for a tiny 2D home-trainer game I worked on this winter..
I suppose it varies depending on what you do. But if you work on part of it during 20% time, you probably can't do this.
disclaimer: I work at Google.
This is a way to have your cake and eat it too. Most code you work on at work isn’t open source at all.
Alternatively, you could have a side project that’s completely separate from your job.
Google or any other company would have very hard time forbidding what employees do on their free time outside work, regardless of what they feel like putting on the work contract.
https://developers.google.com/sceneform/develop
But like all big plans presented at Google IO it eventually joined Google graveyard, and apparently they kept on working on Filament alone.
What is it being used for?
Visualized... using broken code. Note the Planck curve isn't going through white. Imagine your surprise at setting your monitor to a 6500K or 5000K white point, and finding it green or yellow.
> (source: Wikipedia)
Sigh. WP has Article and Talk, but neither has served as a "writer's notebook" for long-term memory. So when there's lots of brokenness out in the world, and there's been lots of broken color code over the years, WP has difficulty remembering to avoid it.
For extra fun, this[2] illustrates both gamut position, and the recurring brokenness of a white point label indicating where white was expected, and the rendered white point being elsewhere.
[1] https://commons.wikimedia.org/wiki/File:PlanckianLocus.png [2] https://www.fourmilab.ch/documents/specrend/figures/ciegamut...
The best compromise if you want color might instead be to only color a narrow strip around the triangle forming the gamut of your trichromatic additive display (or, say, sRGB), with intensity of the 2-primary mixture at each point adjusted so that lightness doesn’t vary too sharply.
A large portion of the horseshoe is outside your display’s gamut; common pictures either color the outside of the gamut gray, or try to clip out-of-gamut chromaticities to the nearest in-gamut chromaticity. The former is confusing for viewers who don’t already know what they are looking at; the latter gives a false impression. For the colors that are shown, one typical way to plot a 2-dimensional picture of the gamut is “top down” with the most intense available color for each chromaticity, but this introduces substantially misleading lightness artifacts based on the display not based on chromaticities per se.
Beyond that, the xy chromaticity diagram should not be used. Stick to the u'v' chromaticity diagram.
Ok, but...
> This particular picture is one attempt at a compromise that will give readers the right conceptual impression, not “broken” accidentally.
No, the white point calculations used to make that wikipedia diagram are simply wrong. It's a recurring problem. Not a question of handling out-of-gamut colors, but of mislocating colors within it.
For instance, this fourmilab page[1] and associated specrend code, had incorrect white-point-related math for many years (the code was fixed, the page I don't recall), which IIRC, caused 'front page of the New York Times' "Universe is green"-level professional embarrassment.[2]
Here's a less bogus diagram.[3] Note the white point being close to the Planck curve, in contrast to the wikicommons diagram.
Some of the conceptual impressions seem quite unfortunate, reinforcing common misconceptions. That blackbodies (the Planck curve) can be colorful (other than red white and blue). The associated misconception that visible candle light is blackbody radiation. The extremely common astronomy education misconception that the Sun and many stars are yellow (for white points more perceptually relevant than blue Vega). A challenge in shifting science education towards more integrated and operational understanding, is so much content being variously incorrect, and thus not fitting together.
> Stick to the u'v' chromaticity diagram.
Yes, perceptually uniform color spaces are nice. Hmm, and that raises an interesting question: might incorrect diagrams be less common there? Being younger, and perhaps with open source libraries and eyeballs, replacing coding things yourself from a book, and simply copying diagrams stumbled on somewhere without checking them. A question for google image search...
[1] https://www.fourmilab.ch/documents/specrend/ [2] https://pages.jh.edu/news_info/news/home02/jan02/color.html https://www.nytimes.com/2002/01/11/us/scientists-paint-unive... https://pages.jh.edu/news_info/news/home02/mar02/color.html [3] https://tex.stackexchange.com/questions/422862/fill-area-of-...
The “color of the universe” brouhaha is amusing, but trying to assign a color to the universe is somewhat nonsensical, and the result is not really meaningful to laypeople.
I don't understand that - could you elaborate? Thanks.
Fwiw, one remediation which appeals to me, when using flawed content, is adding a "bogus" tag. As in "Figure N Mumble (source WP) Somewhat flawed." Or sometimes "Bogus <attribute or issue>". So the reader maybe gets a heads-up that there's a known issue - a "first, do no harm" thing. Modulo esthetic constraints, and I've no idea if it actually helps. And it might be phrased more accessibly. I dont know of any associated education research.
Big picture, societal-level impacts of commonly flawed content seem unlikely to improve without being addressed systemically, and so don't seem a priority focus when pursuing local excellence. For example, students are told the Sun is yellow in Kindergarten, and repeatedly thereafter, with only a few later getting an "oops, nope, our bad" in astronomy grad school discussion of common misconceptions in astronomy education content... and careful avoidance of yellow Suns in say one weather app seems unlikely to move that needle much.
Thanks for your nifty work.
Which is really saying something, there is an incredible wealth of information in here.
No raytracing there, just plain old cube-mapped reflections.
i.e. the material compiler targeting desktop/vulkan https://google.github.io/filament/Materials.html#compilingma...
https://developers.google.com/sceneform/develop
I doubt anyone beyond the authors is using it in any form.
Turns out that it only supports Clang and not GCC (it depends on libc++ instead of libstdc++, which generates tons of ABI issues when integrating with existing projects and libraries).
In short, if you need to use other libraries (such as libtorch) that don’t support libc++, then don’t use it, it’s going to be a big waste of time.