Apologies in advance for any mistakes on terminology, I'm really really new to this
I'm completely new to 3d (and it's maths) but as a personal exercise I'm doing my own game engine that displays a simple wireframe.
I've implemented rotate (x, y and z), orthogonal, isometric, perspective projection matrices (column major) and a look_at function.
I've got a list of points and my rudimentary pipeline (on keypress) is as follows:
- get original points
- scale
- rotate_x
- rotate_y
- rotate_z
- look_at(cam,target,up)
- projection
- translate to centre of the window It works fine with hardcoded camera and target coordinates
However I want to be able to:
- move the camera up/down/left/right in the same plane I'm currently at.
- To be able to rotate that plane around the z axis
- and to bring the plane the camera is closer or farther from the z axis But I have no Idea how to do that. (quaternions or matrices)
The reason I want to rotate around the z axis and not the y is because I haven't implemented any coordinate system and the hardcoded camera and target values are for an isometric projection.
How can I do this?