When you unwrap UVs the interpolation issue is taken care of. The UV map accounts for it.
It's only for tessellation like subdivision surfaces where something like this would be nifty That is to say, this is mainly nifty for the DCC tool renderer itself to render slightly faster.
It's not really that simple, barycentric coordinate access is relatively recent. It's asking the rasterizer for information and transforming that information into barycentric coordinates, and the correspondence of barycentric coordinates to vertices is unstable without further hardware support or further shader trickery. In the case of AMD gpus, it's only RDNA2 and later that have hardware support for stable barycentrics.
And you're right that this has been thought of. There are other approaches for bilinearly interpolating quads that have been historically used, but they require passing extra data through the vertex shader and thus often splitting vertices.
I am currently making a r7rs scheme derivative that compiles to C. The lofty goal is parallel fibers.
It's in extreme early stages, and I don't expect anyone will use it other than me, but I already like it. The compiler has been self hosted for a few months now. It has a cool FFI that you can see in use in the demos folder. Working on adding header generation to the module system.
While Chicken Scheme is cool, I don't think it'll be parallel, and not in the way I want it to be, and I am willing to make a lot of compromises Chicken isn't to get there. As mentioned, I am willing to settle with fibers for parallelism, and heavily eschewing side effects, making changes from r7rs to get there. For example, there will be no dynamic-wind provided and parameter objects will have different, thread friendlier, semantics.
----
My main reason for choosing C as a transpile is that it's easier to lean on gcc and C11 than it is to write my own codegen, and LLVM is too unstable for me to handle. I started writing this in June 2022, and since then LLVM has had 3 backwards compatibility breaking major release and millions of lines of code changed.
To add to your comment, quaternions predate rotational matrix operators by a considerable amount (1843 vs not exactly clear, ~1900 with Peano or ~1920 with Weyl), despite quaternions being much more challenging to manipulate. There are definitely simpler ways to view the same things.
There was a cottage industry of exotic hypercomplex numbers that disappeared when linear algebra matured to eclipse them.
In fact, Maxwell's Equations were originally derived with quaternions.
Well, a rotation matrix doesn't require doing 2 half rotations, and doesn't require reaching into the 4th dimension in such a way that it gets perfectly cancelled out. It doesn't require abstract analogies about cubes with strings glued to them or people holding coffee cups.
With some familiarity with linear algebra, it's easy to derive the formula for constructing a rotation matrix. You just have to think about what the operation does to the axes. The derivation for quaternion rotation is far more abstract, by virtue of the operation we actually care about involving a sandwich of multiplications with unclear 4 dimensional meaning. There's no hyperspheres with a rotation matrix.
Augmenting your space to handle not just rotations & scaling, but translations is easy for matrices, just requires a homogeneous coordinate and you get 4x4 matrices with intuitive columns.
Augmenting quaternions to handle translations requires the 8 dimensional dual-quaternions.
I definitely like geometric algebra, it's a very nice continuation of topics in linear algebra and makes it clear why things like normals behave differently from standard vectors. But I don't use it every day. I use standard linear algebra every day.
I was just talking with my wife about this. She's from southern China and went to a restaurant in north China with her northern colleagues. There they ordered cicada pupa, which were the most expensive thing on the menu.
With a lot of these expensive Chinese foods, there's an overlap with traditional Chinese medicine, as seen in bird's nest soup, black chicken meat, and such. And indeed, they convinced her to try one, saying that cicada are great for health and such. She felt guilty given that it was such an expensive dish, so she tried one. Reliving that memory made her feel nauseous.
Locusts are actually just various species of grasshopper. When there's abundance after a period of hard times, some some grasshopper species transform into locusts, turn from green into yellow, grow their wings and start swarming. The solitary and gregarious phase. When one locust becomes gregarious, he'll touch other locusts to turn them gregarious too.
> Edible insects are often talked about as a possible "food of the future" - but what does insect eating actually look like in the here and now?
There's definitely an overlap with the 'weird Japan' clickbait, but the first sentence of the article says to me that this seems to be an attempt to normalize the eating of insects to westerners who are highly culturally opposed to it.
Skimming the article, the wasp eating seems to be done for a festival in one particular village. In my experience, even people from cultures who had insect delicacies bragged to me about eating insects like some kind of rite of passage. I have yet to meet a foreigner who brings a bag of insects in their lunchbox.
I personally won't eat insects ever. The oceans can turn to acid, black clouds of smoke can envelop the earth, and I will still not eat bugs. I could imagine that most of the people in Japan feel the same way, or I could be wrong.
Well, England had a massive trade deficit, and failed to find anything the Chinese wanted to buy, except opium. In the end, this was approved by the queen to balance their trade deficit, as they were bleeding silver.
How is it possible that the England had nothing China wanted to buy when England was so technologically superior that they were able to defeat China's military, fighting in China, on the other side of the planet, outnumbered 10 to 1?
The same smugness and sense of superiority that China held for England, was also held by England for China. As such, the English only primarily tried to sell knickknacks and things the Chinese could produce better. This ended up backfiring and cementing the view to the Chinese that the English were simple barbarians.
They did indeed have weapons the Chinese (and other nations) wanted, but only sold a limited amount of them, to avoid arming the other nations too well, in case they ever wanted to go conquering.
You're correct that British made factory goods would have been good for China, specifically the Chinese poor, as it would have enabled them to have many low quality goods rather than a few higher quality goods.
The issue is that when you present goods like mass produced clay teapots, cotton textiles, etc to the customs agents of the country which invented fine china, and silk, you're not going to impress them.
And yes, Britain coveted China. As did Japan, Russia, Germany, The United States, France, Italy, and Austria-Hungary. Even after they won the opium wars and got their favorable trades, they continued to work to overthrow or minimize the Qing dynasty and take political power. The Qing ended up sputtering out a few years before it became unfashionable to be a colonialist, so China dissolved into rule by warlords, then conquered by Japan, then the communists won and the rest is history.
Well, in that historical case, the sale of Opium to China was a state sponsored project. Opium was only a minor problem in England, but it wasn't being smuggled into England by a quasi-hostile foreign country trying to re-balance its trade deficits.
Well, sRGB is sort of perceptually linear. Its roots trace back to a 50s technology compromise between perceptual linearity, color gamut, & encoding cost for CRTs that held up with only minor tweaks until CRTs stopped being widely used.
Maybe a fancier model like oklab would outperform it for this specific case, but only in quality, not performance oklab is more expensive to convert to/from compared to sRGB, which is usually free as your backbuffer and textures are usually sRGB.
It's only for tessellation like subdivision surfaces where something like this would be nifty That is to say, this is mainly nifty for the DCC tool renderer itself to render slightly faster.