Могу ли я сделать это в OpenGl так же, как в DirectX?
Да и нет. Позвольте мне объяснить.
Формат файла DirectX .x появился на свет с DirectX 3, который был полным беспорядком. Загрузка даже самой простой геометрии была ужасно утомительной задачей. По этой причине в среду Direct3D была добавлена поддержка загрузки геометрии модели из файлов.
Однако DirectX никогда не применял определенный формат файла, и по мере его развития, где-то около версии 7 Direct3D стал пригодным для использования. Как только геометрия в Direct3D стала чем-то простым, формат файла .x больше не был необходим. И, честно говоря, существует очень мало серьезных программ, которые на самом деле используют .x для своих активов.
OpenGL никогда не нуждался во встроенном формате, потому что настройка и отрисовка геометрии, которая, конечно, уже была прочитана в память, может управляться всего за 10 строк кода Си. Таким образом, единственная трудность заключается в разборе формата файла на структуры в памяти. Это не задача для API, предназначенного для рисования, но для библиотек, предназначенных для ввода / вывода.
Короче говоря: OpenGL не имеет встроенной поддержки для какого-либо формата файла, но вы можете использовать любой формат файла, который вам нравится, и использовать его в OpenGL. Формат файла .x хорошо документирован, и вы можете найти готовые библиотеки для загрузки или записи своих собственных.