3dcheapskate opened this issue on Dec 23, 2023 ยท 10 posts
FVerbaas posted Mon, 01 January 2024 at 12:03 PM Forum Coordinator
Why is it not a representation of camera space?
You are using 4 points effectively located on the X0Y plane and a camera looking down the Z axis.
Let's call the three elements in the tuple returned by the method as u, v, w.
The range you get for the u coordinates is: 630-116 = 514 for the camera position z = 2. Using the same methodology for the other example positions you find 258 for z=4 and 128 for z=8. Note the figures halve when distance doubles.
If you re-do the math for the v coordinates in the first example you find a v-range of 672-158 = 514. For the other camera positions you will also find the same ranges as you found for the u-coordinate. You thus have the 4 points arranged in a square.
If you look at the averages, you will find that the avarages of the ranges, representing the center of the square is consistently located at u = 373, v = 415. You do not report the film (image) surface when you did the test, could it be it was sized 746x 830 pixels?
Then for the w=output: The same scaling effect is used there: a point located twice the distance gives half the signal strength. Obviously any input very close to the camera xyz would be division by zero, return an infinite number, so something will be/should have been caught and buffered there. To get a physical meaning you can scale based on some test points, simple Pythagoras.
I must have a matrix based method laying around somewhere. Let me know if you are interested.