Войти
ПрограммированиеФорумГрафика

Не могу увидеть причину проблемы (Вопрос по матрицам: MVP) (2 стр)

Страницы: 1 2
#15
20:03, 10 авг. 2018

Suslik
> и если ты сделаешь, например, SetRotation().SetIdentity(), то у тебя останется
> каша, а не матрица. и рано или поздно этот момент обязательно настанет — не
> выстрелит сейчас, выстрелит завтра.

Нет, все элелементы устанавливаются как положено.

+ Показать

Диагональные в единицу или на сколько нам нужно, по дефолту 1,0f, те, которые не по диагонали - в 0,0f.


#16
(Правка: 21:40) 21:39, 10 авг. 2018

Решил проблему. Виновником оказался (я, конечно) неправильная имплементация оператора умножения: не правильный порядок шел. Просто проверил - переставил порядок умножения матриц и все правильно вычислялось, как оказалось. Но все равно переписал, чтобы умножение шло как в gml - справа налево.

#17
(Правка: 8:51) 8:49, 11 авг. 2018

Помню у меня тоже были проблемы с операторами матриц... потому что я недостаточно разобрался в c++ и запутался где нужно передавать по значению, а где можно передать указатель.
Вижу, ты используешь VS, поэтому не могу не буркнуть про то, что отлаживать там легко и возмутиться почему ты не отлаживаешь свою математику.

#18
(Правка: 9:57) 9:43, 11 авг. 2018

Target жестяк !
Через for SetIdentityMatrix задавать !

Лучше просто сделай сразу массив IdentityMatrix и пихай его.

Типа такого:

#include "Matrices.h"   // for Matrix2, Matrix3, Matrix4
...

// create an identity matrix with default ctor
Matrix4 m1;

// create a matrix with 16 elements. Для леворукого Джо !
Matrix4 m2(1, 0, 0, 0,   // 1st column
           0, 1, 0, 0,   // 2nd column
           0, 0, 1, 0,   // 3rd column
           0, 0, 0, 1);  // 4th column

Так понятнее и проще. Надо делать понятно и проще. Что бы глянул и сразу понял что и как.
В шейдер можно передать три float для скалирования. И в шейдере умножать Vertex Position на scale. А потом уже на MVP матрицу.


А с for-ми можно забурится и налебезить такого, что потом как минимум неделю будешь разбирать косяк :)
https://www.youtube.com/watch?v=ZyYxzeA8V9k#t=15

Страницы: 1 2
ПрограммированиеФорумГрафика