• Объясните: какую базу нужно иметь для изучения Dirext X [C++]?

    TrueBers
    @TrueBers
    Гуглю за еду
    Вам нужны знания графики. Понимания, как оно всё там работает под капотом. Без этого всего DirectX будет казаться чем-то космическим и непонятным. DirectX никак не завязан на чистый WinAPI. Он базируется на технологии COM. Это посложнее для понимания, чем WinAPI. Ну и, соответственно, это всё работает только на Windows.
    OpenGL чуть проще, там чистое Сишное API. Можно писать для множества операционных систем, в том числе, для мобильных платформ.

    Оба API используют конечный автомат для рендеринга, все состояния которого тоже нужно отлично понимать. У OpenGL, на мой взгляд, он более лёгок для понимания.
    Но для всего этого вам нужно знать, что используется там под капотом. Бездумно искать строки кода и копипастить их к себе не получится. Нужно знать что делает каждая функция, какие состояния конечного автомата меняют, и т. п.

    Если хотите начать учить всё это дело, советую начать с отличных статей на Хабре. Если вы осилите весь этот курс, то сможете писать хоть на OpenGL, хоть на DirectX, хоть на Unity/Unreal/CryEngine.
    Ответ написан
    Комментировать
  • Объясните: какую базу нужно иметь для изучения Dirext X [C++]?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Однозначно матан - матрицы, операции над матрицами, всякие преобразования матриц и т.п. Это для любого 3D.

    А так, строго говоря, для DirectX знать Win32 API не особо нужно. (ну некоторый минимум нужен, вам же надо как-то нарисовать окошко с вашей сценой).

    А вообще, выбор OpenGL vs DirectX это фактически выбор между Винда+XBox или все (или множество) платформ.
    Ответ написан
    3 комментария
  • Объясните: какую базу нужно иметь для изучения Dirext X [C++]?

    @koronabora
    Человек
    Конкретно DirectX нужен для понимания всех этапов рендеринга и подготовки к нему. Тоже самое касается и OpenGL. Win32 - сугубо скучная весчь, работу с которой все равно берет на себя любой нормальный движок.

    Начните изучать и работать с любым движком, например CryEngine (благо его на Гитхаб выложили). Возьмите простой пример, изучите как что устроено, потом потихоньку меняйте его под себя. Так, постепенно, и обрастете пониманием.
    Ответ написан
    Комментировать