First time poster here. I tried searching the forum for prior posts related to this, but didn't find exactly what I needed.
I am trying to make a simple 3d rendering engine just to demonstrate to myself that I understand the math. I have not taken linear algebra, but have spent some time trying to self-teach with online and textbook tutorials and have a working understanding (I think). I am writing this simple engine with lazarus free pascal.
I have found several tutorials that I have tried reading through. Most recently from www.scratchapixel.com.
First I have objects that are positioned in the world with a world transform/matrix.
Next I am trying to set up my camera transform. But I am apparently doing something wrong. I am hoping that if I write out my understanding here, someone can pick up where I am off.
First, I am planning on using a right-handed matrix and math. I think this means that when I consider the axis at (0,0,0), +X will go to the "right", +Y will go "up", and +Z will come "out towards me".
Next, I think that to create the camera transform, one has to create cardinal vectors for the new coordinate space: In, Up, and Left.
In = LookingAtPosition - Camera Position
Left = In X (0,1,0) (in vector cross a global up vector)
Up = in X Left
Next, I think that the parts of a matrix are as follows. But I am uncertain about this.
[Left.x, Left.z, Left.z, A ]
[ Up.x, Up.y, Up.z, B ]
[ In.x, In.x, In.z, C ]
[ 0, 0, 0, 1 ]
A,B,C as a column vector is the position of the camera. (e.g. A=T.x, B=T.y, C=T.z)
I have some output from the engine, but this web page interface won't let me paste the text in. (I assume this is a defense against spammers).
Before I go any further, can anyone comment on my understanding so far?
Any help appreciated.