Добавим матрицу Машстабирования

Загрузить архив с примерами ЗДЕСЬ.

Матрица Масштабирования, как и матрицы вращения и перемещения относятся к матрице Мира. Матрица Масштабирования выглядит так.


typedef float matrix4x4[4][4];	

matrix4x4 mxScale = {
		ScaleX,	0.0,	0.0,	0.0,
		0.0,	ScaleY,	0.0,	0.0,
		0.0,	0.0,	ScaleZ,	0.0,
		0.0,	0.0,	0.0,	1.0 };	


matrix4x4 mxScale = {
		1.5,	0.0,	0.0,	0.0,
		0.0,	1.5,	0.0,	0.0,
		0.0,	0.0,	1.5,	0.0,
		0.0,	0.0,	0.0,	1.0 };	

Мы умножаем вершины на эту матрицу что бы изменить размер модели по оси X,Y,Z. Данная матрица увеличивает размер модели куба по оси X в полтора раза, и по Y,Z тоже в полтора раза. Загрузить пример /src/01.001-soft_rend_main/Cube_RotateY_mxScale. Если нам нужно уменьшить модель а не увеличить, то значения нужно брать меньше 1.0 для X,Y,Z. При применении матрицы масштабирования следует помнить, что изначально модель находится в локальных координатах, и мы сначала должны масштабировать модель, затем повернуть, а не наоборот. То есть сначала все вершины модели нужно умножить на матрицу масштабирования, а затем на матрицу поворота, перемещения и т.д.