@OldMan There will likely be a link there when I bolt down the filmic desaturation.
@ton.yeung Via the UV points and potentially much sampling.
@ton.yeung If you UV unwrap and view the two dimensional geometry that results, you get an idea on how the sampling happens. Or is that entirely not your question.
@ton.yeung Make an ISO sphere or whatever, and UV unwrap it. It is not too advanced at all for the main site either, so I suspect there might already be an answer or you could ask it and get a more clear answer.
@ton.yeung If you think of a square shape with a square image, you would rotate the geometry, and then pixel by pixel in the destination you would reverse transform back to get the coordinates to sample from the image.
Take that example, now convert the square from a simple 2D rotation into a full 3D, and you have the basics as to how it works. That is game programming 101 from around 1990.
If you go the other way, and attempt to put a pixel from the source image into the transformed geometry, you will end up with missing pixels and tears.
(And it would be inefficient as hell.)
@ton.yeung (1) Keep it simple and say we have a 10x10 image.
(2) We have a perfect square in our game / 3D. We do not rotate it nor scale nor translate.
(3) We find our geometry and inversely map back from the scene to the image. X=1 y=1 is the same! Repeat. Done.
If we extend this and rotate the square slightly, now we have simple Euclidean sin / cos / tan in our transform to go back to the source.
In most or many instances, our destination is actually a subpixel or partial pixel, which means we would need to sample from the source.
Nearest will be blocky, cubic blurry, linear somewhat jaggy etc.
If we take that exact same scenario and say we zoom in on the square, now you add scale to your sin / cos / tan calculation. If we add the final piece, we have translate / offset. All via a 3x3 matrix.
That gives you the coordinates from the original image you need to sample.
For geometry such as a sphere, it is this same idea repeated for each surface of the sphere.
So there you go. Overly ridiculously simplistic version, but that is roughly how to map a texture to a 3D object in space.
It doesn't matter about terminology.
Project the square into the scene and then you end up with a 'rendered' position on the screen. In the case of a pure translate with an orthogonal viewport, it is well, just the square.
So the four pixels in each of the four corners would be sampled precisely as is.
If we rotate it around its centre, the four corners will non-white be precisely the corner depending on if it is sitting on a subpixel alignment etc.
If we rotate an edge away from us, then the square on screen is a thin slice, so we will be sampling from the source accordingly, maybe only 1/3rd of the pixels along one axis for example.