Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

3D и матрицы трансформации

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> 3D и матрицы трансформации
Имя
Сообщение << Старые топики   Новые топики >>
3D и матрицы трансформации - 2010-07-28 20:30:28.510000   
sbk

Сообщений: 144
Оценки: 0
Присоединился: 2008-12-20 19:01:57.273333
Я пишу 3D графический движок, и вот возникла проблема: я создал свой класс матрицы, а в ней функцию "CreateScale" принимающую одно значение типа float. Сама матрица создается так:

public static Matrix CreateScale(float scale) { Matrix matrix = new Matrix(); matrix.M11 = scale; matrix.M22 = scale; matrix.M33 = scale; matrix.M44 = 1f; return matrix; } При создании нового экземпляра класса матрица инициализироватся нулями.

Но если применить эту матрицы к вектору, то вектор остается неизменным даже при scale = infinity. Умножение матрицы на вектор сделано правильно т.к. при умножении вектора на матрицу вращения вокруг оси ОХ(или ОУ, или ОZ) всё хорошо, и вектор нормально вращается. И еще трансформация вектора не работает только в перспективной проекции, в ортогональной все нормально.Можете подсказать что не правильно.

Спасибо за внимание

P.S. Это все пишется на .NET 4.0
Post #: 1
RE: 3D и матрицы трансформации - 2010-08-02 22:03:24.323333   
Meliborn

Сообщений: 294
Оценки: 0
Присоединился: 2009-06-17 16:06:59.840000
3Д двиг на дотнете?
Post #: 2
RE: 3D и матрицы трансформации - 2010-08-02 23:08:01.603333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Очень мало кода ;)
Post #: 3
RE: 3D и матрицы трансформации - 2010-08-03 00:24:11.783333   
sbk

Сообщений: 144
Оценки: 0
Присоединился: 2008-12-20 19:01:57.273333
Тогда вот четыре класса: вектор, модель объекта, матрица, и само "устройство" вывода графики.

2 Meliborn, ну 3D двигом это сложно назвать, это просто для обучения.
Post #: 4
RE: 3D и матрицы трансформации - 2010-08-03 10:44:55.766666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Открыл матрицы… страшно… Есть же нормальные массивы и циклы, зачем так извращаться?! Тут же хрен найдёшь ошибку.

П.С. почему матрица - класс, а не структура? Много ненужных приведений типов. И т.п. В общем, нет времени на нормальный код ревью, уж извиняй ^^
Post #: 5
RE: 3D и матрицы трансформации - 2010-08-03 11:55:31.753333   
sbk

Сообщений: 144
Оценки: 0
Присоединился: 2008-12-20 19:01:57.273333
Такое извращение сделано для скорости, хоть она и не критична, но так будет работать немного быстрее чем с использованием массивов, для перебора которых нужно использовать циклы. А матрицу я сделал классом по привычке.
Post #: 6
RE: 3D и матрицы трансформации - 2010-08-03 13:00:36.743333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Думаешь ты выиграешь больше времени, чем у тебя сожрёт динамическое выделение памяти?
Post #: 7
RE: 3D и матрицы трансформации - 2010-08-03 13:19:17.300000   
sbk

Сообщений: 144
Оценки: 0
Присоединился: 2008-12-20 19:01:57.273333
Думал, пока Вы не спросили об этом ;)
Post #: 8
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> 3D и матрицы трансформации







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.