Ваш первый вопрос на самом деле не отвечает - обе графические библиотеки предоставляют мне доступ к базовому графическому оборудованию через API.Как выглядит игра, во многом зависит от того, как этот API используется.Если в OpenGL я установлю красный буферный буфер, он будет выглядеть так же, как если бы я установил красный буфер в DirectX.Если я сделаю те же расчеты освещения в OpenGL, что и в DirectX, я увижу те же результаты и так далее.Любые различия, которые могут возникнуть, вероятно, являются результатом того, что API не идентичны, поэтому программисты обходят его.
Модели из программ трехмерного моделирования (таких как Maya или 3DsMax) не «кодируются», они экспортируются вформат, который игра может понять.Это могут быть основанные на XML форматы, такие как Collada, текстовые форматы, такие как OBJ, или даже собственные двоичные форматы.Важно то, что данные из программы моделирования доступны для игры в формате, который она может считывать и преобразовывать во внутреннее представление геометрии.Практически каждый игровой движок обрабатывает геометрию немного по-своему.
Технически, я мог бы просто сохранить следующий файл:
V1 0.0, 0.5, 0.5
V2 -0.5,-0.5, 0.5
V3 0.5, 0.5, 0.5
M1 V1, V2, V3
Пока игра понимала, что этот файл содержит три вершины(V1
, V2
, V3
) и одну сетку (M1
), состоящую из этих трех вершин, и знали, как читать ее в формате, который мы могли бы затем визуализировать, мы были бы в бизнесе и моглиНарисуйте этот треугольник на сцене в виде сетки.Кстати, этот формат находится недалеко от формата OBJ.
Большинство экспортеров намного сложнее, чем этот, и большинство механизмов поддерживают более сложное геометрическое представление для учета всех дополнительных данных, которые эти (мощные) инструменты моделированияможем предоставить для нас.