2016-06-02 5 views
0

У меня вопрос о 3D-математике. В моем юном возрасте я еще не преподавал тригонометрию или линейную алгебру. Однако я научился хорошо учиться в ханской академии. Я все еще не получаю всю математику в программировании 3D-игр. Я следую Введение в программирование 3D-игр с DirectX 12 от Frank D. Luna. Он упоминает много математики, и я не получаю большую часть этого. Я хочу знать, что делать.3D-программирование игр Математика

Пропустить это? Или попытаться это узнать?

+3

Я люблю математику и 3D-математику - это весело. Вы должны потратить все необходимое. Тригонометрия и линейная алгебра стоят того. –

+1

Вы должны потратить больше времени и узнать его. Для 3D-графики необходимы базовые преобразования, векторные, точечные и матричные вычисления. –

ответ

3

Понимание существенной математики 3D-трансформаций требуется для действительно любого 3D-программирования и полезно даже для 2D-программирования. Важное значение имеет также понимание локального пространства против прогноза и проецирования. Быть опытным в использовании кватернионов также чрезвычайно полезно, поскольку это очень часто используется в анимации, смешении и камерах. Даже люди, пишущие в «Единстве», должны знать это.

Если вы планируете стать графическим программистом как профессией, вы должны потратить время на изучение линейной алгебры в какой-то момент.

Если вы не являетесь экспертом в Direct3D 11 графического программирования, я бы recommend ожидания на DirectX 12. Посмотрите на DirectX Tool Kit и это tutorials или посмотреть на более ранние книги Франка в качестве отправной точки.

Для «современного» Direct3D программирования, вы должны смотреть на использование DirectXMath, который входит в Windows 8. SDKs и позже (и BTW также размещается на GitHub). Однако для простоты использования и обучения вам следует сначала взглянуть на упаковку SimpleMath для DirectXMath, входящую в комплект DirectX Tool Kit, который скрывает некоторые требования к выравниванию памяти.

+0

Я настоятельно подтверждаю совет dx12. Для математической части вам нужно различать понимание вещей и реализацию, когда я был маленьким ребенком, я все время возился с векторами и матрицами, но я был бы абсолютно неспособен реализовать инверсию mat44. Как только у меня была рабочая операция, украденная из какой-то книги (pre-internet, очень сложно найти информацию), я был готов пойти. И сегодня вы можете просто использовать математическую библиотеку, такую ​​как DirectXMath. 3D-математика, используемая в 3D-движке, довольно проста. – galop1n

+1

Другими словами, вам не нужно знать, как писать '' XMMatrixLookAtLH'', но полезно знать достаточные основы, чтобы понять, что он делает, почему вы будете использовать его и как он отличается от того, XMMatrixShadow'', который также создает матрицу 4x4. –