OGFViewer

Материал из xrWiki
Перейти к: навигация, поиск

MeshTool/OGFViewer


Тип Комплект утилит
Автор NatteFrost
Последняя версия 1.0.5 .20131229
Платформа x86, x86-64, etc, etc
Написан на C++
Обратная связь форум gameru.net

Содержание

Что это?[править]

MESHTOOL/OGFVIEWER — кроссплатформенный комплект утилит для просмотра, конвертации разнообразных 3d-моделей и уровней.

Использовались 3D интерфейсы, API: Microsoft DirectX, OpenGL (Microsoft, SGI, IBM, Mesa3D, Scitech SNAP, glut, libtk, glaux), allegro, Irrlicht.

Cистемные требования:

  • Платформа Microsoft Windows: Windows 9x/NT/2000/XP/2003/Vista/2008/7/8/2012 [x86/x64] (а также Linux+Wine :) )

Возможна работа без аппаратной 3D-акселерации. ( MESHTOOL cовместим с TransGaming SwiftShader, Realtech VR DXGL Wrapper, AltOpenGL, TechLand Soft OpenGL, mesaFX OpenGL. )

  • Платформа IBM OS/2: OS/2 Warp 3, Warp 4, eComStation.

Поддерживается OpenGL: IBM 1.0, IBM 1.1, WarpMesaGL 1.4, SNAPGL 1.5

  • Платформа DOS: DOS 3.3 и старше.

Поддерживается OpenGL: SNAPGL 1.5, allegro

Что умеем?[править]

Открываем:

  • X-Ray OGF v4 (builds 2xxx-3xxx), возможен экспорт анимаций в smd
  • X-Ray OGF v3 (builds 1xxx) — частично
  • X-Ray object v3 (builds 1xxx), только статика
  • X-Ray object v4 (builds 2xxx-3xxx), только статика
  • X-Ray level (builds 2xxx-3xxx), через ogf-конвертацию (parse_lev) или через object-конвертацию (converter.exe)
  • Orion engine v1 MSH (Stalin Subway, Red Veil, Метро-2, Метро-2: Смерть вождя)
  • Autodesk 3D Studio MAX 3ds
  • DS2 Engine *.ds2md (You Are Empty, только статика)
  • 4A Games Engine *.model, *.mesh (Metro 2033, Metro Last Light)
  • DirectDraw surface *.dds (картинка на плоскость 2x2 метра)

Форматы для экспорта:

  • Wavefront Object (*.OBJ)
  • Valve Software HalfLife (*.SMD)
  • ASCII Scene Export (*.ASE)
  • Autodesk 3dsMax (*.3DS)
  • Autodesk AutoCAD (*.DXF)
  • LightWave 3D (*.LWO) — в разработке
  • StereoLitho (*.STL)
  • Collada XML (*.DAE)
  • MilkShape3D (*.MS3D)
  • X-Ray OGF (*.OGF)
  • POV-Ray (*.POV)
  • DirectX SDK Mesh (*.X)

Конвертация:

  • parse_lev: level+level.geom+level.cform -> ogf
  • ogfviewer(gui), meshconv(console): ogf, object, msh, 3ds, ds2md, model, mesh -> obj, ase, smd, 3ds, pov, dae, dxf, stl, ms3d, ogf (без анимаций)
  • ogf2smda: ogf,ogf+omf -> smd(reference), smd(reference+separate animations)
  • obj2ogf: obj -> ogf
  • ogf2obj: ogf -> obj
  • ogf2pov: ogf -> pov
  • ogf2x: ogf -> x (directx sdk mesh)

Обратите внимание, что OGFViewer подразумевает, что все координаты моделей заданы в метрах. Для моделей Orion engine v1 используется масштабирование, т.к. они сделаны в сантиметрах.

Какие форматы текстур умеем:

  • Windows OpenGL: BMP/DIB, DDS, JPG, PNG, PPM, TGA, TIF
  • OS/2, DOS OpenGL: BMP/DIB, DDS, PPM, TGA
  • Microsoft DirectX: BMP/DIB, DDS, JPG, PNG, PPM, TGA
  • allegro: BMP/DIB, LBM, PCX, TGA

Комплектация пакета Microsoft Windows, IBM OS/2, DOS32[править]

  • MESHTOOL\WIN32\GL_MS — Версии для Microsoft OpenGL, x86
  • MESHTOOL\WIN32\GL_SGI — Версии для SGI/MMX OpenGL, x86
  • MESHTOOL\WIN32\SNAP — Версии для Windows SNAPGL, x86
  • MESHTOOL\WIN64\GL_MS — Версии для Microsoft OpenGL, x64
  • MESHTOOL\IA64\GL_MS — Версии для Microsoft OpenGL, ia64
  • MESHTOOL\OS2\GL10 — Версии для IBM OpenGL 1.0, OS/2
  • MESHTOOL\OS2\GL11 — Версии для IBM OpenGL 1.1 beta, OS/2
  • MESHTOOL\OS2\WMGL — Версии для WarpMesaGL 1.4, OS/2
  • MESHTOOL\OS2\SNAP — Версии для SnapGL 1.5, OS/2
    1. OGFViewer.exe — Базовая GUI версия (для моделей).
    2. OGFViewerA.exe — Альтернативная GUI версия (для уровней).
    3. OGFFscr.exe — Базовая wgl полноэкранная версия (для моделей) *.
    4. OGFFscrA.exe — Альтернативная wgl полноэкранная версия (для уровней) *.
    5. OGF_GLUT.exe — Базовая GLUT версия (для моделей) *.
    6. OGF_GLUTA.exe — Альтернативная GLUT версия (для уровней) *.
    7. ogf_tk.exe — Базовая LIBTK версия (для моделей) *.
    8. ogf_tka.exe — Альтернативная LIBTK версия (для уровней) *.
    9. ogf_os2.exe — Базовая pgl версия (для моделей) *.
    10. ogf_os2a.exe — Альтернативная pgl версия (для уровней) *.
    11. ogf_cons.exe — Базовая LIBAUX версия (для моделей) *.
    12. ogf_consa.exe — Альтернативная LIBAUX версия (для уровней) *.
    13. ogf_snap.exe — Базовая LIBAUX версия (для моделей) *.
    14. ogf_snapa.exe — Альтернативная LIBAUX версия (для уровней) *.
  • MESHTOOL\WIN32\DX8_MS — Версии для Microsoft DirectX8, x86
  • MESHTOOL\WIN32\DX9_MS — Версии для Microsoft DirectX9, x86
  • MESHTOOL\WIN64\DX9_MS — Версии для Microsoft DirectX9, x64
    1. OGFViewer_DX.exe — Базовая GUI версия (для моделей).
    2. OGFViewerr_DXA.exe — Альтернативная GUI версия (для уровней).
    3. OGF_DXA.exe — Альтернативная полноэкранная версия (для уровней) *.
    4. OGF_DXBA.exe — Альтернативная BUMP полноэкранная версия (для уровней) *.
    5. OGF_DXSA.exe — Альтернативная SM полноэкранная версия (для уровней) *.
  • MESHTOOL\WIN32\ALLEGRO — Версии для allegro library, x86 *
    1. OGFConsA.exe — Базовая версия (для моделей).
    2. OGFConsAW.exe — Базовая версия (для моделей).
    3. OGFConsAF.exe — Базовая FIXEDMATH версия (для моделей).
    4. OGFConsAFW.exe — Базовая FIXEDMATH версия (для моделей).
  • MESHTOOL\DOS32 — Версии для allegro, x86, DOS32 *
  • MESHTOOL\WIN32\CONSOLE — Консольные утилиты, x86 *
    1. dx7capsG.exe — табло памяти DirectX.
    2. descale.exe — пропорционально уменьшает текстуры.
    3. glxinfo.exe — системная информация, MS OpenGL версия.
    4. glxinfo_sgi.exe — системная информация, SGI/MMX OpenGL версия.
    5. make_box.exe — создает "коробочный" ландшафт для бенчмарков.
    6. Make_box2.exe — создает "коробочный" ландшафт для occlusion, dot3 bump тестов.
    7. Make_Ogf.exe — создает псевдослучайную OGF-модель.
    8. MeshConv.exe — конвертер моделей в 3DS формат.
    9. OBJ2OGF.exe — конвертер WAVEFRONT OBJ-моделей в X-Ray OGF формат.
    10. OGF2OBJ.exe — конвертер X-Ray OGF-моделей в WAVEFRONT OBJ формат.
    11. OGF2SMDa.exe — конвертер X-Ray OGF-моделей/анимаций в SMD формат.
    12. OGF2POV.exe — конвертер X-Ray OGF-моделей в POVRAY формат.
    13. OGF2X.exe — конвертер X-Ray OGF-моделей в DirectX SDK X формат.
    14. Parse_203.exe — конвертер 4A Engine уровней в OGF формат.
    15. Parse_Lev.exe — конвертер Xray уровней в OGF формат.
    16. Parse_Or1.exe — парсер orion engine v1 моделей.
    17. Parse_Obj.exe — парсер Xray object-моделей.
    18. Parse_Ogf.exe — парсер Xray ogf-моделей.
    19. suntest.exe — расчет освещения.
  • MESHTOOL\WIN32\PLUGINS — Импорт плагины для Autodesk 3DS MAX, x86
  • MESHTOOL\WIN64\PLUGINS — Импорт плагины для Autodesk 3DS MAX, x64

* Запуск из командной строки, Far Manager, File Commander.

Прочее[править]

  • MESHTOOL\REF\ORIONV1.TXT — Orion engine v1 MSH format datasheet
  • MESHTOOL\REF\OGF3.H — xray ogf v.3 datasheet
  • MESHTOOL\REF\OGF4.H — xray ogf v.4 datasheet
  • MESHTOOL\REF\OBJECT.H — xray object datasheet
  • MESHTOOL\SAMPLES — каталог с примерами
  • MESHTOOL\REG\ — ветки реестра для ассоциаций (Windows)
  • MESHTOOL\SKY\ — текстуры неба для ALT-версии (текстуры sky?.dds положить в gamedata\textures\sky)
  • MESHTOOL\soft_gl.7z — Mesa3D OpenGL 2.1 library v6.5.2, v7.3 (software OpenGL emulation)
  • MESHTOOL\soft_dx.7z — Microsoft Software DirectX rasterizer library v8.x (software DirectX emulation)
  • MESHTOOL\READMEOS2.HTM — FAQ & README for OS/2 (HTML)
  • MESHTOOL\FAQ.HTM — FAQ & README (HTML)

Отличия, особенности версий OGFViewer[править]

Для всех версий[править]

  • Существует ограничение на количество индексов вершин до 65535 включительно т.к. они хранятся в unsigned short формате.
  • Существует визуальные проблемы с работой программы при включенном Windows Aero (desktop composition). Варианты решения - временно переключиться в классическую схему оформления или остановить службу Темы (c правами администратора):
    • для английской версии net stop Themes
    • для русской версии net stop Темы

Базовая[править]

  • Вращается и двигается модель относительно центра координат. Вариант для просмотра отдельных моделей. Умеет VBO (OpenGL). Включен мипмэппинг и фильтрация текстур. Использование буфера VBO (OpenGL) имеет "обратную сторону" - при его переполнении эффективность от VBO пропадает.

Альтернативная[править]

  • Вращается и двигается свободная камера. Вариант для просмотра уровней и крупных объектов. Вместо скайбоксов используется туман. Включена DXT-компрессия (OpenGL), фильтрация текстур.

На движке SGI OpenGL (Windows x86)[править]

  • OpenGL движок, программная его часть оптимизирована под инструкции MMX (Pentium и старше). Немного быстрее, чем движок MS OpenGL.

Программный режим (OpenGL)[править]

  • MS OpenGL (Windows): Если при запуске идут сообщения об ошибках - положите в каталог программы opengl32.dll из soft_gl.7z.
  • SGI OpenGL (Windows): Если при запуске идут сообщения об ошибках - отключите видеоакселерацию в панели управления или впишите (импортируйте) эту строчку в реестр, значение = 00000001:
    REGEDIT4
    [HKEY_LOCAL_MACHINE\SOFTWARE\Silicon Graphics\OpenGL]
    ;"OverrideDispatch"=dword:00000000 ; default (use OpenGL for Windows unless hardware accelerated) 
    "OverrideDispatch"=dword:00000001 ; force use of OpenGL for Windows 
    ;"OverrideDispatch"=dword:00000002 ; force use of Microsoft's OpenGL Implementation

Программный режим (DirectX)[править]

  • Если при запуске программы она показывает пустой черный экран - положите в каталог WINDOWS\SYSTEM32
    • DirectX 8 — d3dref8.dll из soft_dx.7z (или DirectX 8.x SDK).
    • DirectX 9 (XP/2003) — d3dref9.dll, rgb9rast_1.dll, rgb9rast_2.dll из soft_dx.7z (или DirectX 9.x SDK).
    • DirectX 9 (Vista/2008/7/8/2012) — rgb9rast.dll (поставляется в комплекте, обновление не требуется)

Если при запуске программы программы она тормозит или глючит — положите в каталог программы d3d8.dll и d3d9.dll из SwiftShader. На вопрос "Use software renderer?" ответить "No".

Управление клавиатурой, мышью[править]

Общие[править]

  • B, < * > на цифровой клавиатуре меняет цвет фона
  • /, < / > на цифровой клавиатуре меняет гамма-коррекцию
  • TAB, SPACE = режим просмотра wireframe / color / texture
  • N = отсечение объектов в радиусе обзора в(ы)кл
  • F1, G - сетка, небо, оси в(ы)кл
  • F4, L = свет, фары, лампы в(ы)кл
  • F5, F = меняет FOV (field of view) +5
  • F7, 7 = шаг движения * 4
  • F8, 8 = шаг движения / 4
  • F9, M = режим фильтрации текстур
  • F11 = полный экран в(ы)кл
  • I = информация о 3D-рендерере
  • T = выгрузка статистики в object.log
  • Z = листание в начало
  • X = листание вперед
  • C = листание назад
  • V = листание в конец
  • 3, 7, +, < + > на цифровой клавиатуре = время + 1 час
  • 4, 8, -, < - > на цифровой клавиатуре = время - 1 час
  • 5 = уменьшает aspect ratio
  • 6 = увеличивает aspect ratio
  • 9 = сброс времени 06:00 <-> 18:00
  • 0 = сброс времени на 12:00

Базовая GUI-версия (ogfviewer*.exe)[править]

  • INSERT, DELETE, A, D = смещение по оси X
  • HOME, END, W, S = смещение по оси Z
  • PGUP, PGDOWN = смещение по оси Y
  • стрелки = вращение по осям X/Y на 1 градус
  • SHIFT, CONTROL = вращение по оси Z на 1 градус
  • +, < + >, -, < - > на цифровой клавиатуре = zoom in/out
  • BACKSPACE = сброс координат
  • Ctrl+N = очистить все
  • R = вращение вокруг оси Y (влево/вправо/выкл (ogffscr.exe))
  • F2, Ctrl+S = сохранить как
  • F3, Ctrl+O = открыть
  • F12 = центрирует модель
  • движение с нажатой левой кнопкой = вращение по осям X/Y
  • движение вверх/вниз с нажатой правой кнопкой = zoom in/out
  • движение с нажатой cредней кнопкой (колесиком) = смещение по осям X/Y
  • вращение колесика = zoom in/out

Альтернативная GUI-версия (ogfviewer*.exe,ogffscr.exe)[править]

  • HOME = поворот камеры вверх на 5 градусов
  • END = поворот камеры вниз на 5 градусов
  • DELETE = движение камеры влево
  • PGDOWN = движение камеры вправо
  • стрелка влево, A = поворот камеры влево на 5 градусов
  • стрелка вправо, D = поворот камеры вправо на 5 градусов
  • стрелка вверх, W = движение камеры вперед
  • стрелка вниз, S = движение камеры назад
  • SHIFT = движение камеры вверх
  • CONTROL = движение камеры вниз
  • BACKSPACE = сброс координат
  • Ctrl+N = очистить все
  • R = вращение вокруг оси Y (влево/вправо/выкл (ogffscr.exe))
  • F2, Ctrl+S = сохранить как
  • F3, Ctrl+O = открыть
  • F6 = "качество" картинки draft/release
  • F12 = помещает камеру в центр модели
  • движение с нажатой левой кнопкой = поворот камеры влево/вправо, вверх/вниз
  • движение вверх/вниз с нажатой правой кнопкой = движение камеры вперед/назад
  • движение с нажатой cредней кнопкой (колесиком) = движение камеры вперед/назад, влево/вправо
  • вращение колесика = движение камеры вперед/назад

Базовая Console-версия (ogf_glut.exe)[править]

  • A, D = смещение по оси X
  • HOME, END, W, S = смещение по оси Z
  • PGUP, PGDOWN = смещение по оси Y
  • стрелки = вращение по осям X/Y на 1 градус
  • Z, X = вращение по оси Z на 1 градус
  • +, -, < + >, < - >, C, V на цифровой клавиатуре = zoom in/out
  • BACKSPACE, E, F10 = сброс координат
  • G = сетка, небо, оси в(ы)кл
  • R = вращение вокруг оси Y - влево/вправо/выкл
  • F1, 1 = "качество" картинки draft
  • F2, 2 = "качество" картинки release
  • F9, M = режим фильтрации текстур
  • F12 = центрирует модель
  • I = информация о 3D-рендерере на экран (в OS/2 - пишет в gldump.log)
  • движение с нажатой левой кнопкой = вращение по осям X/Y
  • движение вверх/вниз с нажатой правой кнопкой = zoom in/out
  • движение с нажатой cредней кнопкой (колесиком) = смещение по осям X/Y
  • вращение колесика = zoom in/out
  • Q = выход

Альтернативная Console-версия (ogf_gluta?.exe)[править]

  • HOME, C = поворот камеры вверх на 5 градусов
  • END, V = поворот камеры вниз на 5 градусов
  • Z = движение камеры влево
  • X = движение камеры вправо
  • стрелка влево, A = поворот камеры влево на 5 градусов
  • стрелка вправо, D = поворот камеры вправо на 5 градусов
  • стрелка вверх, W = движение камеры вперед
  • стрелка вниз, S = движение камеры назад
  • PGUP, O = движение камеры вверх
  • PGDOWN, P = движение камеры вниз
  • < * >, B = меняет цвет фона
  • BACKSPACE, E, F10 = сброс координат
  • R = вращение вокруг оси Y (влево/вправо/выкл)
  • F1, 1 = "качество" картинки draft
  • F2, 2 = "качество" картинки release
  • F12 = помещает камеру в центр модели
  • I = информация о 3D-рендерере на экран (в OS/2 — пишет в gldump.log)
  • движение с нажатой левой кнопкой = поворот камеры влево/вправо, вверх/вниз
  • движение вверх/вниз с нажатой cредней кнопкой = движение камеры вперед/назад
  • движение с нажатой правой кнопкой (колесиком) = движение камеры вперед/назад, влево/вправо
  • вращение колесика = движение камеры вперед/назад
  • Q = выход

Базовая OGF_DX-версия (ogf_dx?.exe)[править]

  • стрелки и мышь = движение
  • F1 = 16-бит текстуры в(ы)кл
  • F2 = меняет видеорежим, рендерер и проч.
  • F3 = фильтрация текстур в(ы)кл.
  • F6 = циклически меняет масштаб текстур (вниз)
  • O, P = меняет сглаживание (flat/gouraud)
  • Y = "погода": типовой, нейтральный, красный, оранжевый или "лунный" свет
  • 1, 2, 3 = LOD=0, LOD--, LOD++
  • 4 = ValidateDevice
  • 7, +, < + > на цифровой клавиатуре = время +15 мин
  • 8, -, < - > на цифровой клавиатуре = время -15 мин
  • B, < * > на цифровой клавиатуре = меняет цвет фона
  • F11 = помещает камеру в 0.0.0
  • F12 = центрирует модель

Альтернативная OGF_DX-версия (ogf_dx?a.exe)[править]

  • стрелки, PGUP, PGDOWN, Q, W, E, A, S, D и мышь = движение
  • HOME = сброс камеры
  • F1 = 16-бит текстуры в(ы)кл.
  • F2 = меняет видеорежим, рендерер и проч.
  • F3 = фильтрация текстур в(ы)кл.
  • F6 = циклически меняет масштаб текстур (вниз)
  • O, P = меняет сглаживание (flat/gouraud)
  • Y = "погода": типовой, нейтральный, красный, оранжевый или "лунный" свет
  • T = свет от фонарика (FFP), освещение от камеры (SM20) в(ы)кл.
  • R = Обычный(FFP) -> dot3bump mul -> dot3bump add render.
  • TAB = Режимы наложения текстур (SM20).
  • 1, 2, 3 = LOD=0, LOD--, LOD++
  • 4 = ValidateDevice
  • +, < + > на цифровой клавиатуре = время +15 мин
  • -, < - > на цифровой клавиатуре = время -15 мин
  • B, < * > на цифровой клавиатуре = меняет цвет фона, скайбокс (sky_hdr_test_cube, sky_?_cube (? = 0..25), ...)
  • F11 = помещает камеру в 0.0.0
  • F12 = помещает камеру в центр модели

Установка и использование[править]

Распаковываем ресурсы игры, используя converter.exe из xray-re tools (xray.codeplex.com, bitbucket.org/stalker/xray_re-tools/):

converter.exe -unpack -2215 gamedata.db0
converter.exe -unpack -2945 gamedata.db0
converter.exe -unpack -2947ru gamedata.db0
converter.exe -unpack -2947ww gamedata.db0
converter.exe -unpack -xdb gamedata.xdb

Ключи после -unpack позволяют указать тип архива с игровым контентом.

В результате имеем:

  • модели gamedata\meshes
  • уровни gamedata\levels
  • текстуры gamedata\textures

Если просмотр моделей с текстурами нам необходим, в ogfviewer.cfg записывем путь к текстурам. Если игра лежит у нас в C:\GSC\STALKER, то в в ogfviewer.cfg пишем:

  • C:\GSC\STALKER\gamedata\textures\

Возможен запуск нескольких копий ogfviewer одновременно.

Как (где) ищется конфигурация ogfviewer.cfg?[править]

  • В каталоге, откуда запустили
  • В каталоге, где лежит ogfviewer.exe

Как ищутся текстуры?[править]

  • При отсутствии ogfviewer.cfggamedata\textures
  • Если есть ogfviewer.cfg — пути по тексту, разделенные \0

Размер ogfviewer.cfg — 255 символов максимум.

OpenGL: Если размер текстуры для объекта превышает допустимый, то он масштабируется до максимально допустимого размера. Если в итоге указанная текстура для объекта не находится, то в drawmode #2 объект с данной текстурой не отображается.

Как ассоциировать файлы с ogfviewer?[править]

Требуются права администратора!
Отредактировать REG\instreg.txt, исправив там путь к файлу, затем выполнить

regedit instreg.txt

Как убрать ассоциацию c ogfviewer?[править]

Требуются права администратора!
Выполнить

regedit delreg.txt

Как установить 3ds Max-плагин[править]

Скопировать xrMtMax*.dlt и OGFViewer.cfg в папку 3dsmax\plugins.

Как просматривать уровни[править]

Предположим, что имя нашего уровня — testers_mp_railroad

Первый вариант — через ogf-экспорт[править]

  • Для конвертации используем parse_lev.exe.

Из gamedata\levels\testers_mp_railroad запустить:

parse_lev 0 testers_mp_railroad.ogf
  • Скопировать текстуры ландшафта:

gamedata\levels\testers_mp_railroad\terrain\*.dds -> gamedata\textures\terrain\

  • Полученный файл testers_mp_railroad.ogf открывать любой т.н. альтернативной версией, например:
    • WIN\GUI\ALT\ogfviewer.exe
    • WIN\GUI\ALT\ogfviewer_sgi.exe
    • WIN\GUI\ALT\ogfviewer_dx.exe

Второй вариант — через object-экспорт[править]

  • Для конвертации используем converter.exe из xray_re_tools.

При данном виде конвертации - деревья, кусты, техника, некоторые прочие объекты - не переносятся.

  • Cкопировать текстуры ландшафта:

gamedata\levels\name\terrain\*.dds -> gamedata\textures\terrain\

  • Отредактировать converter.ini, прописать там пути к папкам с распакованными ресурсами игры.
  • В той же папке, где лежит gamedata\, создать rawdata\objects\levels
  • Запускаем из папки, где лежат converter.ex и converter.ini:
converter.exe -level testers_mp_railroad -out testers_mp_railroad -mode maya
  • Полученный файл testers_mp_railroad.object открывать любой т.н. альтернативной версией, например:
    • WIN\GUI\ALT\ogfviewer.exe
    • WIN\GUI\ALT\ogfviewer_sgi.exe
    • WIN\GUI\ALT\ogfviewer_dx.exe

Для открытия крупных уровней вроде marsh, pripyat необходимо много оперативной памяти! Рекомендуется при этом закрыть ВСЕ прочие запущенные программы.

Как конвертировать ogf и omf-анимации в smd[править]

Предположим, что имя нашей модели — сat.ogf

Если к ней есть анимация cat_animation.omf, объединяем их:

copy /b cat.ogf + cat_animation.omf cat_full.ogf
ogf2smda.exe cat_full.ogf

Иначе пропускаем этот шаг и выполняем:

ogf2smda.exe cat.ogf

В итоге имеем каталог SMD, там:

  • SMD\reference.smd — базовая, остальные — отдельные анимации.

Далее, используя плагин SMDImporter.mzp к Autodesk 3DStudio MAX, можно импортировать полученные SMD файлы.

Методичка по консольным утилитам[править]

Утилита: dx7capsG
Запуск: dx7capsG
Результат: статистка памяти directx на экране


Утилита: glxinfo
Запуск: glxinfo.exe [ > parse.log ]
Результат: показывает microsoft opengl info на экран, при указании parse.log пишется в файл


Утилита: glxinfo_sgi
Запуск: glxinfo_sgi.exe [ > parse.log ]
Результат: показывает sgi opengl info на экран, при указании parse.log пишется в файл


Утилита: meshconv
Запуск: meshconv имя_модели.ext

  • имя_модели.ext: xray ogf, object или orion msh

Результат: конверсия в файл export.3ds (формат 3D Studio Max)


Утилита: obj2ogf
Запуск: ogf2obj имя_модели.obj [ имя_модели.object ] [ > parse.log ]
Если имя_модели.obj опущено — показывает структурированный дамп содержимого модели на экран, при указании parse.log пишется в файл, иначе конверсия в имя_модели.ogf (формат XRay OGF)


Утилита: ogf2obj
Запуск: ogf2obj имя_модели.ogf [ имя_модели.obj ] [ > parse.log ]
Если имя_модели.obj опущено — показывает структурированный дамп содержимого модели на экран, при указании parse.log пишется в файл, иначе конверсия в имя_модели.obj (формат Wavefront OBJ)


Утилита: ogf2smda
Запуск: ogf2smd имя_модели.ext

  • имя_модели.ext: XRay OGF v4 (составная модель, склеивается так: copy /b cat.ogf + cat_animation.omf)

Результат: конверсия в каталог /smd анимаций (формат Valve SMD), reference.smd — базовая модель


Утилита: ogf2pov
Запуск: ogf2obj имя_модели.ogf [ имя_модели.pov ] [ > parse.log ]
Если имя_модели.obj опущено, то показывает структурированный дамп содержимого модели на экран, при указании parse.log пишется в файл, иначе конверсия в имя_модели.pov ( povray формат )


Утилита: ogf2x
Запуск: ogf2obj имя_модели.ogf [ имя_модели.x ] [ > parse.log ]
Если имя_модели.obj опущено, то показывает структурированный дамп содержимого модели на экран, при указании parse.log пишется в файл, иначе конверсия в имя_модели.x ( x формат )


Утилита: parse_lev
Запуск: parse_lev < режим > [ имя_уровня.ogf ] [ > parse.log ]
Результат: конверсия уровня XRay в имя_уровня.ogf (формат XRay OGF).

  • режим 0/1: с оптимизацией вертексов? — нет/да (включать не рекомендуется!)
  • режим 0/2: пропускать lod-, fake-объекты? — нет/да (включать не рекомендуется!)
  • режим 0/4: пропускать лайтмапы? — да/нет (включать не рекомендуется!)
  • режим 0/8: не конвертировать, только дамп? — нет/да

Режимы складываются. При указании parse.log ведется запись лога в файл.


Утилита: parse_msh, parse_ogf, parse_obj
Запуск: parse_msh (или parse_ogf, parse_obj) имя_модели.ext [ > parse.log ]
Результат: показывает структурированный дамп содержимого модели на экран, при указании parse.log пишется в файл


Утилита: make_ogf
Запуск: make_ogf < к-во вертексов > < к-во индексов > < имя_модели.оgf >

  • Вертексы: от 3 до 2^32 (отсекается до кратного 3)
  • Индексы: от 3 до 65535 (отсекается до кратного 3)
  • имя_модели.оgf: имя файла-приёмника

Результат: создание "мусорной" псевдослучайной модели 2 x 2 метра для тестирования нагрузки на движок и видеокарту.


Утилита: parse_203
Запуск: parse_203 < режим > [ имя_уровня.ogf ] [ > parse.log ]
Результат: конверсия уровня 4A Engine Metro 2033 в имя_уровня.ogf (формат XRay OGF).

  • Режим 0/1: с оптимизацией вертексов? — нет/да (включать не рекомендуется!)
  • Режим 0/2: пропускать lod-,prop_fake-объекты? — нет/да (включать не рекомендуется!)
  • Режим 0/4: пропускать лайтмапы? — да/нет (включать не рекомендуется!)
  • Режим 0/8: не конвертировать, только дамп? — нет/да

Режимы складываются. При указании parse.log лог пишется в файл.


Утилита: lzhuf
Запуск: lzhuf
Результат: распаковывает уровни 22xx, 19xx из level в level.unp


Утилита: make_box
Запуск: make_box < к-во кубов в стороне > < имя_модели.оgf >
Результат: создает "коробочный ландшафт" x*x*x для окклюжен тестирования, бенчмарков


Утилита: parse_spw
Запуск: parse_spw [ имя_cпавна.spawn ] [ имя_уровня.ogf ] [ > parse.log ]
Результат: дамп/конверсия объектов спавна в имя_уровня.ogf ( xray ogf формат ).
При указании parse.log лог пишется в файл.


Утилита: make_box2
Запуск: make_box2 < к-во кубов > < имя_модели.оgf > (к-во кубов <=7!!!)
Результат: создает "коробочный ландшафт" для dot3, light тестирования


Утилита: descale
Запуск: descale Результат: пропорционально уменьшает dds-текстуры, лежащие в папке с descale.exe


Утилита: suntest
Запуск: suntest Результат: рассчитывает компоненты освещения


Утилита: surfconv
Запуск: surfconf < srcfile.ext > [ destfile.ext ] [-flag1] [-flag2]
Результат: конвертирует изображение средствами DirectX, с возможным преобразованием.

  • srcfile.ext: исходный файл изображения
  • destfile.ext: конечный файл изображения
  • flag1: режимы конвертации — если опущено, то сохраняется как есть
    • -invrgb: ивертирует цветовые каналы (RGBA <-> BGRA)
    • -invnrm: ивертирует порядок нормалей (RGBA <-> ABGR, Nxyzw <-> Nwzyx)
  • flag2:
    • -v: verbose — подробный вывод на экран.

Все консольные утилиты удобнее запускать из Far Manager, File Commander (или cmd.exe) :)

История изменений[править]

Изменения (19.02.2010):

  • OGFViewer: Масштабирование не вызывает геометрических искажений
  • OGFViewer: Оси XYZ yвеличены до 5 единиц
  • OGFViewer: Поддержка колесика мыши
  • OGFViewer: Исправлена поддержка вложенных (CHILDREN) моделей (напр. wpn_gauss.ogf)
  • OGFViewer: Сохранение в *.object
  • OGFViewer: Исправлена совместимость с MESA3D OpenGL
  • OGFViewer: Исправлены "косяки" с ориентацией тесктур (из-за nv_dds.obj)
  • OGFViewer: Снято ограничение DXT-compressed DDS - поддержка ARB_texture_compression не актуальна
  • OGF2obj: новая версия

Изменения (21.02.2010):

  • OGFViewer: Исправлено падение программы при отмене открытия OGF-файла
  • OGFViewer: Исправлена точность вращения по левой кнопке мыши
  • OGFViewer: Исправлен глюк с "мерцающими" цветами осей и путей DDS
  • OGFViewer: режим просмотра wireframe (сетка) / normal по ср.кн.м. (или колесику)

Изменения (28.02.2010):

  • OGFViewer: Исправлено 8-bit/4-bit OpenGL render
  • OGFViewer: Исправлена точность вращения
  • OGFViewer: Добавлено управление с клавиатуры
  • OGFViewer: Исправлена ошибка: не создавался ogfmodel.mtl
  • OGFViewer: Шрифт для DDS: Lucida Console (Normal)
  • OGFViewer: Коррекная конвертация "многотекстурных" моделей
  • OGF2obj: Коррекная конвертация "многотекстурных" моделей

Изменения (06.03.2010):

  • OGFViewer: Оптимизация ( удаление невидимых граней, glVertex3fv(), glDrawElements() )
  • OGFViewer: Показываем "вменяемую" ошибку glTexImage2D()
  • OGFViewer: Ограничение вращений -360.0 ... +360.0
  • OGFViewer: Имя файла и версия программы в заголовке окна
  • OGFViewer: Цветные подписи ( FPS, dds[?] )
  • OGFViewer: Исправлена утечка памяти при загрузке текстур
  • OGFViewer: 3 режима фигуры - wireframe, colored, textured
  • OGFViewer: Поддержка командной строки, фикс на относительные пути
  • OGFViewer: Файл реестра для ассоциации моделей с программой
  • OGFViewer: Выбор пути к текстурам по клавише F5
  • OGFViewer: При отсутствии OGFViewer.cfg путь по умолчанию — textures\
  • OGFViewer: "Горячие" клавиши F3 — открыть, F2 - сохранить.

Изменения (14.03.2010):

  • OGFViewer: Cетка 20x20 метров (как в X-Ray SDK ActorEditor), F1 — в(ы)кл
  • OGFViewer: Новое освещение для colored-режима
  • OGFViewer: Чтение моделей X-Ray object (частично)
  • OGFViewer: Чтение моделей XRay ogf #0x0112 (экспорт-модель из X-Ray SDK)
  • OGFViewer: Поддержка до 1000 материалов в модели (veh\niva, veh\mi-26)
  • OGFViewer: Исправление управляющих клавиш и движения камеры (см. выше).
  • OGFViewer: Поддержка текстур TGA (Targa)
  • OGF2obj: Чтение моделей XRay ogf #0x0112 (экспорт-модель из X-Ray SDK)
  • OGF2obj: Поддержка до 1000! материалов в модели (veh\niva, veh\mi-26)

Изменения (21.03.2010):

  • OGFViewer: Свет F9 on/off, шаг движения F7 (*10), F8 (/10), F11 - OpenGL info
  • OGFViewer: Считывание bounding box-ов (окр. прямоугольника)
  • OGFViewer: Стандартизация форматов 3d векторов, небольшая оптимизация скорости загрузки (для уровней в *.object)
  • OGFViewer: Увеличение materialcount до 100000 (для уровней в *.object)
  • OGFViewer: Поддержка текстур RGB24 = 8/8/8
  • OGFViewer: Поддержка прозрачных текстур (стёкла, фары и т.п., veh\niva)
  • OGFViewer: Экспорт в Autodesk ASE, 3DS (только геометрия)
  • OGFViewer: Исправлена утечка при незакрытии файла
  • OGFViewer: Импорт Orion engine v1 MSH (1 материал)
  • OGFViewer: Исправлено — падение при экспорте object в obj,ase
  • OGFViewer: ogfcons3 — тестовая console версия OGFViewer

Изменения (28.03.2010):

  • OGFViewer: Экспорт в ASE теперь с текстурами
  • OGFViewer: Microsoft DirectX рендерер (рендерит быстрее GL :), но модели отражаются зеркально :( )
  • OGFViewer: SGI GL рендерер (+ opengl.dll, glu.dll), немного быстрее MS GL :)
  • OGFViewer: F12 центрирует модель по bounding box
  • OGFViewer: в OGF моделях одинаковые текстуры не загружаются повторно

Изменения (11.04.2010):

  • OGFViewer: Не работаем в 1/4/8-бит цвете (DirectX)
  • OGFViewer: Выбор аппаратной/программной отрисовки (DirectX)
  • OGFViewer: Теперь все модели ориентированы правильно (DirectX)
  • OGFViewer: F4 — режим прозрачности
  • OGFViewer: Уточнены коррдинатные системы (dx:x/y/z,gl:x/-y/z)
  • OGFViewer: Msh модели теперь ориентированы правильно
  • OGFViewer: Загрузка и сохранение в 3DS формат
  • OGFViewer: Исправлены ошибки при загрузки 'огромных' объектов (уровни в object)
  • OGFViewer: Рендерер на базе allegro gaming library (DOS32/WIN32)

Изменения (23.04.2010):

  • OGFViewer: Сделано альтернативное управление (в OpenGL — с туманом)
  • OGFViewer: Fov = 46.0f (как в S.T.A.L.K.E.R.)
  • OGFViewer: Ускорение FPS в wireframe-режиме
  • OGFViewer: Исправлены фиктивные ошибки загрузки текстур (OpenGL, MS/SGI)
  • OGFViewer: Исправлен СNT-счётчик
  • OGFViewer: "Правильное" освещение и "радуга" в colored-режиме (OpenGL)
  • OGFViewer: Расчёт нормалей для 3DS/object
  • OGFViewer: Оптимизация рендеринга - без задержек (glFlush/glFinish), VBO (OpenGL)
  • OGFViewer: Многопроцессорность в рендерере (DirectX)
  • OGFViewer: Исправлен перебор текстур в object-моделях (DirectX)
  • OGFViewer: Не вылетаем с ошибкой при выходе из проги :) (DirectX)
  • OGFViewer: Текущая версия требует наличия расширения GL_ARB_vertex_buffer_object (OpenGL)
  • OGFViewer: Исправлено обработка сообщений палитры в 8-bpp (OpenGL, MS)
  • OGFViewer: Приложена новая библиотека Mesa3D 7.3 (стандарт OpenGL 2.1)
  • OGFViewer: Шрифт сообщений — "Verdana"

Изменения (10.05.2010):

  • MeshConv: Исправлен экспорт моделей
  • OGFViewer: CNT-cчетчик форматируется корректно (000xxx.00)
  • OGFViewer: Исправлен расчёт нормалей, при отключенном свете они не нужны
  • OGFViewer: Изменения состояний и свет считаем один раз
  • OGFViewer: [ * ] на цифровой клавиатуре меняет цвет фона
  • OGFViewer: [ / ] на цифровой клавиатуре меняет гамма-коррекцию
  • OGFViewer: Дальность обзора - 300 метров
  • OGFViewer: Туман — 100...300 метров (OpenGL)
  • OGFViewer: Не запускаем glGetError() без необходимости (OpenGL)
  • OGFViewer: Неточность при запуске glNewList() (OpenGL)
  • OGFViewer: Поддержка света (DirectX)
  • OGFViewer: Исправлен выбор пути для текстур
  • OGFViewer: Исправлен расчёт текстурных координат для object
  • OGFViewer: Корректный выход из программы при открытии "битых" object-файлов
  • OGFViewer: Теперь умеем читать object-модели с костями (spesnaz_run.object)
  • OGFViewer: Ускорена загрузка текстур у object моделей
  • OGFViewer: Существенно ускорена загрузка текстур у Orion engine v1 моделей
  • OGFViewer: Теперь умеем читать Orion engine v1 модели без привязанных текстур
  • OGFViewer: Отключаем сглаживание (blending) для terrain-текстур
  • OGFViewer: Для ускорения вращения/движения сцены сбрасываем настройки качества на минимум
  • OGFViewer: Исправлено форматирование в выходном файле экспорта (ASE-формат)
  • OGFViewer: В обычной версии временно включена поддержка VBO + mipmap-сглаживание (OpenGL)
  • OGFViewer: В ALT-версии временно включено mipmap-сглаживание (OpenGL)

Изменения (26.05.2010):

  • OGFViewer: Моделей с "встроенными" анимациями (cat.ogf) считываются без лишней геометрии
  • OGFViewer: Экспорт в HalfLife SMD (cтатика + текстуры)
  • OGFViewer: Корректно считываем блоки 0x1008, 0x1012 (object)
  • OGFViewer: Скорректированы трансформации и вращение (DirectX)
  • OGFViewer: Исправлено незакрытие ogf-файлов
  • OGFViewer: Унифицировано управление (OpenGL <-> DirectX)
  • OGFViewer: Новая документация (каталог \REF)
  • OGFViewer: Cчитаем что везде красная ось — X, зеленая ось — Y, синяя ось — Z
  • OGFСons: Убраны буквы осей X, Y, Z
  • parse_lev: Новая утилита, анализирующая геометрию уровней
  • parse_obj, parse_ogf, parse_msh: Утилиты, анализирующая структуру моделей
  • OGF2SMDa: "воскрешен" экспорт OGF,OMF анимаций в HalfLife SMD (на базе OGF2SMD SRC 2.03)
  • OGF2SMDa: Читаем все модели OGFv4 (2215, ТЧ, ЧН, ЗП)
  • OGF2SMDa: Читаем OMF ('copy /b man.ogf + man_animation.omf man_full.ogf', затем 'OGF2SMDa man_full.ogf')
  • OGF2SMDa: Для "беспозвоночных" моделей формируются фейковые кости
  • OGF2SMDa: Модели и текстуры ориентированы правильно

Изменения (25.07.2010):

  • OGFViewer: убраны лишние вызовы RenderScene(), txload()
  • OGFViewer: Cоздаем координаты p,n,t однократно
  • OGFViewer: Общая оптимизация утилитой Мicrosoft Prefast
  • OGFViewer: Работает статусная строка
  • OGFViewer: Балансировка альт. версии — работает DXT, но отключен мипмэппинг
  • OGFViewer: Для скорости удаление невидимых линий включено, может вызывать глюки на уровнях
  • OGFViewer: Опция использовать программный рендерер (OpenGL)
  • OGFViewer: Инфо панель (F11) показывыет тип акселерации (OpenGL)
  • OGFViewer: Более темный цвет материала, может ухудшаться освещение в colored-режиме (DirectX)
  • OGFViewer: Текстуре воды (water*) не нужен блендинг (карта limansk)
  • OGFViewer: Aвтомасштабирования текстур "вниз" для поддержки старых видеокарт (3Dfx, ATI Rage, Trident, S3)
  • OGFViewer: Исправлены ошибки в программном редеринге 16bpp (MS OpenGL)
  • OGFViewer: Не перерисовываем экран при нажатии < KPad / > "Гамма"
  • OGFViewer: FOV меняется 45-60-75-90 (шаг 15), < KPad 5 >
  • OGFViewer: Глубина обзора — 0.2/500.0 метров — базовая, 1.0/500.0 метров — альтернативная
  • OGFViewer: Туман 100-500 метров (OpenGL)
  • OGFViewer: Альфасмешивание в альт. версии (OpenGL)
  • OGFViewer: Новые директивы компиляции USE_ANISO, NO_3DS, USE_GL10
  • glxinfo: новая информационная утилита для OpenGL
  • glxinfo: испралены глюки glxinfo на картах nVidiа
  • parse_lev: исправленная версия, в перспективе войдет в состав парсера OGFViewer

Изменения (15.08.2010):

  • parse_lev: Cчитывание level-ов (билды 2xxx, 3xxx), и конвертация их в ogf
  • OGFViewer: Клавиша FOV — < F5 >
  • OGFViewer: Глубина обзора — 0.2/500.0 метров — базовая, 0.2/1500.0 метров — альтернативная
  • OGFViewer: В некоторых текстурах просвечивает фон заднего плана :(
  • OGFViewer: Разбор шейдеров, материалов
  • OGFViewer: Текстуры грузятся отдельно от модели, пригодится для анимаций
  • OGFViewer: Текстурирование работает в OpenGL 1.0
  • OGFViewer: Несколько путей до текстур в ogfviewer.cfg
  • OGFViewer: Поддержка текстур PNG, BMP
  • OGFViewer: Туман (DirectX, alt)
  • OGFViewer: Клавиша < F9 > в colored-режиме в(ы)ключает освещение.
  • OGFViewer: Клавиша < F9 > в textured-режиме в(ы)ключает фары, светильники, и проч.
  • OGFViewer: Очередная бета DOS32-версии OGFViewer :)
  • OGFViewer: Исправлены глюки с alphablend (DirectX)
  • OGFViewer: Клавиша < F1 > показывает список материалов и шейдеров, в командной строке - статистика
  • OGFViewer: В ALT-версия рисуется небо (текстуры sky?.dds положить в textures\sky)
  • OGFViewer: ALT-версия значится в заголовке как 1.0.5@ (базовая без @)

Изменения (27.08.2010):

  • OGFViewer: Правильная ориентация граней в cubemap-е неба, промо-версия (GL)
  • OGFViewer: Клавиши < W >< A >< S >< D > — управление с клавиатуры
  • OGFViewer: Ogfview.cfg - сначала ищем в каталоге программы, затем в каталоге запуска
  • OGFViewer: Cетка перемещается вместе с моделью
  • OGFViewer: Новый механизм удаления невидимых объектов в альт. версии (видимы только объекты перед наблюдателем на дистанции 150m)
  • OGFViewer: Альфасмешивание включено всегда
  • OGFViewer: Не переключаем мипмэппинг при движении сцены
  • OGFViewer: Клавиша < F4 > теперь управляет освещением/фарами
  • OGFViewer: Клавиша < F9 > переключает фильтрацию текстур
  • OGFViewer: Рассчитываем bounding box и bounding sphere, radius для ogf, object
  • OGFViewer: Не рисуем сцену после < F7 >, < F8 >, < F11 >
  • OGFViewer: Автонормализация векторов в mode #1
  • OGFViewer: Количество материалов ограничено до максимум 500
  • OGFViewer: Количество объектов в модели ограничено до максимум 15000

Изменения (13.11.2010):

  • OGFViewer: Skybox cubemap (DirectX, alt, Promo)
  • OGFViewer: Корректное отсечение невидимых объектов на 150м (alt)
  • OGFViewer: Исправлена медленная загрузка программы при отсутствии текстур
  • OGFViewer: Сжатие/оптимизация линий в drawmode#0 быстрее
  • OGFViewer: Не используем OpenGL glCallList() в OpenGL 1.0 (GL)
  • OGFViewer: Отключаем drawmode#2 если disable_texturing=1 (DirectX)
  • OGFViewer: Выложен подробный FAQ / README по OGFVIEWER
  • OGFViewer: Исправлено падение на выходе (Allegro)
  • OGFViewer: Новая версия библиотеки DevIL (OpenIL) 1.7.8, поддержка новых форматов (GL)
  • OGFViewer: Общая оптимизация переменных
  • OGFViewer: Корректное перемещение свободной камеры (alt)
  • OGFViewer: Клавиша "N" отключает отсечение невидимых объектов на 150м (alt)
  • OGFViewer: Увеличен радиус вращения с 1 до 5 углов (alt)
  • OGFViewer: Клавиша "L" управляет светом, фарами
  • OGFViewer: Клавиша "I" - информация о рендерере
  • OGFViewer: Клавиша "F11" - полный экран
  • OGFViewer: Клавиша "F6" - "качество" картинки
  • OGFViewer: Расчет радиуса для ogfv3, object
  • OGFViewer: Корректное отсечение прозрачных объектов в object-уровнях (alt)
  • OGFViewer: Считываем всех IFF-секций (на потом)

Изменения (26.12.2010):
[New features]

  • OGFViewer: Единственный источник света в ALT-версии (drawmode #1)
  • OGFViewer: Новое меню, кнопки (отдельно base/alt), MFC-иконка теперь видна
  • OGFViewer: Не используется отсечение невидимых граней для прозрачных объектов
  • OGFViewer: Опциональная поддержка single-buffering (GL)
  • OGFViewer: Поддержка ogfv3 тип 0x00000112, формат AE/LE 1xxx
  • OGFViewer: Начальная позиция камеры 0, -3(или 3), -10 — согласно GSC AE/LE (alt)
  • OGFViewer: Дистанция отсечения base/alt ~150 м
  • OGFViewer: Дистанция отсечения (alt+fog) alt версии 200 м
  • OGFViewer: Дистанция отсечения (alt+sky) promo версии 1500 м
  • OGFViewer: Поддержка 32,24 bpp ZBuffer (DirectX, alt)
  • OGFViewer: ZBuffer info по клавише "I" (GL)
  • OGFViewer: Клавиша "M" — дамп статистики в object.log
  • OGFViewer: Переделан счетчик FPS/ms
  • meshconv: Новая утилита для конвертации
  • make_ogf: Новая утилита для создания тестовых бенчмарк OGF моделей из "мусора"
  • ogfdos16: Поддержка OpenWatcom compiler

[Fixed bugs]

  • OGFViewer: В диалоге открытия файла показываются по маске все поддерживаемые форматы
  • OGFViewer: При экспорте в wavefront obj одинаковое имя для obj- и mtl- файлов
  • OGFViewer: В режиме VBO работает отключение vsync (GL)
  • OGFViewer: Новый порядок отрисовки drawmode #2 — сначала "обычные" меши, затем меши с alphablend
  • OGFViewer: Корректная отрисовка water, wallmarks, down skybox в drawmode #2
  • OGFViewer: Блокируется F12 если модель не загружена (base)
  • OGFViewer: ilShutdown() на выходе (GL)
  • OGFViewer: Баги GL 1.0 (single-(multi-)texture, mipmap, visible[], proxy, txload() err chk)
  • OGFViewer: Не отсекались невидимые грани в drawmode #2 — GL_CULL_FACE (GL)
  • OGFViewer: Карты nVidia требуют glFinish() перед выводом в GDI (GL)
  • OGFViewer: Предустановка света только для drawmode #1
  • parse_lev: Корректный экспорт в OGF без "мусора" (учёт swidata, swicntr)

[Optimizations]

  • OGFViewer: Вызываем SetTexture(NULL) один раз (DirectX)
  • OGFViewer: Не грузить текстуры повторно если у них один растр, а шейдеры разные
  • OGFViewer: Исправлена ошибка в классах MFC - OnXXX (palettes, m/wheel)
  • OGFViewer: Не используем Lstr... функции (Lstr... -> str...)
  • OGFCons: Не линкуем MFCxx.LIB
  • OGFViewer: Не используем нормали в drawmode #2 (GL)
  • OGFViewer: Опция USE_ZTRICK для ATIRage, Permedia, 3Dfx (GL)
  • OGFViewer: Отдельная функция для выгрузки иодели
  • OGFViewer: Начата поддержка экспорта в LWO формат

Изменения (11.02.2011):
[New features]

  • OGFFSCR: Новая версия для MS OpenGL, "отвязанная" от MFC
  • DX7ALT/DX7BASE: Новая версия для MS DirectX7
  • OGF_GLUT: Новая версия на базе GLUT.DLL (Windows, OS/2)
  • OGF_TK: Новая версия на базе LIBTK.DLL (OS/2)
  • OGFCons: Новая версия на базе LIBAUX.DLL (OS/2)
  • OGFViewer: F12 центрирует модель (ALL)
  • OGFViewer: F12 смещает камеру в центр модели (ALL,alt-версия)
  • OGF2OBJ: показывает LOD-объекты
  • OGFFSCR: отлажен для mesafx 6.2, techland, altogl
  • OGFFSCR,OGF_GLUT,OGF_TK: "M" ("T" для OS/2) - дамп материалов в object.log
  • OBJ2OGF: Новая утилита для конверсии wavefront obj в xray ogf v4
  • MAKE_OGF: Новая утилита для создания псевдослучайных моделей xray ogf v4
  • OS2: Портирован DevIL 1.7.8 на платформу OS/2 (devil.dll, ilu.dll), умеем только DDS!
  • OGFViewer: опция DM2_LIGHT

[Fixed bugs]

  • OGFViewer: контроль переполнения maxmesh/maxmat
  • OGFViewer: maxmesh увеличен до 17000 (levels\aver)
  • OGFViewer: пересчитываем FOV для widescreen (?)
  • OGFViewer: в предыдущей версии поддержка Orion v1 MSH была сломана - починили
  • OGFConsA: Имя cfg-файла в формате 8:3 (ogfview.cfg), алгоритм так же как и в Win32-версии
  • OGFViewer, Parse_Obj: считываем все известные разновидности object-формата
  • OGFViewer: нет внутреннего бордюра (WS_EX_CLIENTEDGE) в GUI-версии
  • OGFViewer: свет на 0.25m выше камеры (ALL,alt-версия)
  • DX7: Поддержка VertexBuffers, правильный aspect ratio
  • Parse_Lev: Точные вычисление нормалей (в уровнях они сжаты с потерями :()
  • OGFViewer: во всех версиях - 8 типов фона
  • OGFConsA: задержка после "TAB", "F1"

[Optimizations]

  • OGFViewer: Только один fseek() в ogf_readchunk()
  • OGFViewer: Пропускаем ненужные секции (ogf/object)
  • OGFViewer: Генерируем массивы индексов отдельно, после считывания модели (DirectX)
  • OGFViewer: GL1.0: при смене miplevel - вызываемl glTex...() 1 раз (OpenGL)
  • OGFViewer: отключаем IsList(), убираем кисть - RegisterClass(...,HBRUSH = null,...)
  • OGFViewer: новый механизм разбора шейдеров m_Flags, различаем 'terrain', 'model', 'models/model'

[Notes]

  • ALTOGL: работает только с опцией LIMIT_DDS или без текстурирования, полный экран (ogffscr)
  • TechLand Software(3dfx,s3,d3d): работает только в drawmode #1/#2, полный экран (ogffscr)

Изменения (11.06.2011):
[New features]

  • Поддержка экспорта в stl/ascii (на тестировании...)
  • Новая модель освещения в drawmode#1
  • DX7: поддержка drawmode#0, drawmode#1 (без освещения)
  • Экспериментальные версии: ogf_dx9 (DX9SDK), ogf_irr (irrlicht engine)
  • Поддержка считывания моделей YouAreEmpty(DS2 engine) и Metro2033 (статика)
  • Теперь можем читать уровни build1935 экспортированные xray_re converter.exe

[Fixed bugs]

  • Корректное создание нормалей для *.3ds, *.object
  • Правильный расчет bounding box для object, ogfv3
  • DX: Проверка всех функций на D3D_OK, напр. Create...Buffer()
  • DX: Показывает оставшуюся текстурную память ("I" клавиша)
  • PARSE_LEV: Можем конвертировать уровни build1935 и нек-рых build22xx

[Optimizations]

  • OS2: улучшена поддержка, ogf_snap умеет VBO, DevIL.DLL читает не только DDS формат
  • OS2: Версия написанная на OpenWatcom умеет 3DS модели (требует LIB3DS.DLL)
  • ALL: ускорение обработки 'terrain', 'water' мешей
  • OGFLoader: Ускорение загрузки мешей (DX, object)
  • OGFLoader: Совмещены секции 0x1011, 0x1012 (object)
  • OGFModel: Rendering optimization (OpenGL, non-VBO)
  • ALL: Режим drawmode#2 с освещением переписан (на тестировании...)
  • ALL: Для корректной работы мипмэппинга коэфф. ALPHAREF = 50% для LOD-ов (деревьев и пр.)
  • ALL: Максимум мешей поднят до 30000 (для object)
  • ALL: Опция COMPACT_OBJECT, теперь вертексы в object-ах сжимаются

[Notes]

  • Отключение Aero (desktop composition) решает проблемы с пропадением текста в окне программы

Изменения (17.07.2011):
[New features]

  • ALL: режим листания (клавиши "Z","X","C","V")
  • ALL: новая схема освещения ( drawmode #1, #2 )
  • ALL: поддержка моделей Orion engine v1 с заголовком 0x00000102
  • NEW: новый парсер parse_2033 для уровней Metro2033
  • DX: расширено окно информации (клавиша "I")
  • DX7: поддержка фильтрации текстур, референс рендер

[Fixed bugs]

  • PARSE_LEV: учитываем поправочные коэффициенты для U, V в текстурах
  • ALL: FOV считается по Y, начало с 67.5 (FovX = 90) до 100 с шагом 5 потом сброс на 47.5
  • ALL: убраны несуществущие комбинации фильтраций текстур и мипмапов
  • ALL: скайбокс теперь 3000x1500x3000 метров, дистанция ~= 2500 метров
  • OGF_DX?: не освещаем небо, сетка и base/alt режимы
  • OGFViewer: выбор model/ds2md в диалоге, выкинут D3DRS_COLORVERTEX (OGFViewer_DX)
  • DX7: включен клиппинг, исправления в работе с VB, корректный minimize окна
  • DX7: быстрый однотекстурный режим (активен когда нет OGFViewer.cfg)
  • ALLE: z-дистанция = -10 ( было -20 )
  • OGFLoader: 0x1008 блок - теперь допуcтимо max=10 vmrefs (было max=4)
  • OGFViewer_DX: Улучшена совместимость с DX8.0A+Win95, выкинут PURE device
  • OGFViewer_DX: нет мусора на окне в dm#1 после "G", "I", "F5"

[Optimizations]

  • ALL: "умное" ремасштабирование, не вызваем D3DXCreateTextureFromFileEx() повторно (для версий без мипмапов)
  • DX: скайбокс создается однократно

[Notes]

  • Это миниверсия пакета, так что некоторые дополнительные экзешники выкинуты :)

Изменения (22.08.2011):
[New features]

  • OGF_DX7: Новая версия для DX7 на 7-м DXUT-е
  • OGF_DX?T: "Однобуферная" версия ogf_dx? (на современных видеокартах рендерит быстрее)
  • MAKE_BOX: лепит модель из x*x*x кубов для бенчмарка, x задаётся

[Fixed bugs]

  • OGF_DX?: DXUT код — улучшена совместимость с DX80A/Win95
  • OS2: исправлены мелкие неточности, вызывавшие ошибки при компиляции
  • DX7: убрано SPECULAR освещение
  • OGFFSCR: 16 BPP буфер глубины вместо базовой версии - включался на альтернативной, исправлено
  • OGFFSCR, OGFViewer: полностью переписан детект акселерации для OpenGL (ICD/MCD/Software)
  • OGFLoader: Исправлен результат LimScale() (DX)
  • DX7, ALLE: Здесь Right-hand система координат (документация DirectX7 врёт?)
  • OGF_DX?: Исправлено движение камеры в базовой версии
  • OGF_DX?: Листание моделей вызывает (Z,X,C,V) серъезную утечку памяти, исправлено
  • PARSE_203: В картах 4A Engine cуществует материал #0, авторасчет bounding box
  • DX7, OGFViewer_DX: Уточнена фильтрация текстур, SetTextureStage() (DX)
  • OGFViewer: Уточнена фильтрация текстур, GL_TEXTURE_ENV_MODE (GL)
  • DX7: F6 переключает VB-noVB
  • DX7, OGFLoader: Проверка на лимит размеров текстур

[Optimizations]

  • OGFLoader: исправление неточности в загрузке моделей ds2md, metro2033 (найдено prefast)
  • DX: код установки тумана переписан
  • OGF_DX?: убран SetPixelshader() из DXUT
  • OGF_DX?: Листание моделей убрано из альтернативной версии, опция COMPACT_NVTS
  • OGF_DX?: При смене видеорежима не слетает настройка фильтрации текстур
  • OGF_DX?, OGFViewer_DX: возвращена поддержка pure_device (DX)
  • ALL: Убрана "автонормализация" (DX, GL)
  • DX: Применено обновление библиотек DirectX8
  • OGF_DX?: Для USE_SUBST вызываем SetTexture() один раз
  • OGF_DX?: Новая модель освещения по погоде S.T.A.L.K.E.R. ТЧ (ambient по 0.7, sun по 1.0)

[Notes]

  • Отключение Aero (desktop composition) решает проблемы с пропадением текста в окне программы
  • Некоторые карты декларируют поддержку DXT-текстур, но не умеет её (Rage128,Voodoo3)

Это полная версия пакета!

Изменения (31.01.2012):
[New features]

  • CONSOLE: новые утилиты - suntest make_box2 descale ltest
  • ALL: Скайбокс "аутентичный" игровому (10 плоскостей)
  • OGF_DX?: обновление версии на движке DirectX SDK, умеет dot3 bumpmapping, шейдеры, свет от фонарика, "погодное" освежение.
  • ALL: базовая дистанция сокращена до 400,200,400 + 350 м., как в конфигах игры (опция HI_DIST иx возвращает 3000,1500,3000 + 2600)
  • ALL: новая схема освещения в drawmode#2, как в OGF_DX?, время меняет угол света к горизонту
  • OGFVIEWER: поддержка тем Windows XP/Vista/7
  • ALL: Умеем Widescreen - 16:9 и пр. (клавиши "5","6") и меню
  • OGFVIEWER: угол света к горизонту и время менем клавишами 7,8,9,0,< + >,< - > (drawmode#2)
  • ALL: Опция для SGI glut.dll (GL)

[Fixed bugs]

  • ALL: На источники света не должно действовать фоновое освещение, check_model_end(lightflag,...)
  • OGFLOADER,OGF_DX?: тип model\selflightl = "обычный" объект
  • OGFLOADER: при загрузке 3DS моделей проверяем лимиты по материалам и мешам
  • OGFMODELl: убран лишний glEnd() в drawmode#2 (GL10)
  • OGFLOADER: для OGF_DX? выворачивались нормали -> исправлено ( !DX_REND стало USE_YXLAT )
  • OS2: полноэкранный режим (PM_PM) кроме ogfcons, убран printf(),WinMessageBox()
  • OGF_GLUT: WarpMesaGL инвертирует ось Y

[Optimizations]

  • OGFCONSA: отключен zbuffer в drawmode#0, версия с fixed-math (ogfconsaF), оптимизация (ALLEGRO)
  • OGFLOADER: переписана загрузка DDS текстур, поддержка FXT1 - для Intel-ов (GL)
  • PARSE_LEV: возможна загрузка нормалей из уровней (обратный порядок - zyx), а не их расчет, опция USE_NZYX
  • MAKE_BOX: make_box для бенчмарка кубами, make_box2 для occlusion теста, dot3 bump
  • OGF2OBJ, OGFLOADER, STDAFX: переписна загрузка OGFv3 чанков для анимаций 0x0D, 0x10, 0x17, 0x19, 0x1C
  • OGFLOADER: восстановление bind pose из костей для OGFv3 моделей (на тестировании)
  • OGF_DX?: убраны FVF коды из структуры D3DVERTEX

[Notes]

  • Отключение Aero (desktop composition) решает проблемы с пропадением текста в окне программы.

Это мини версия пакета!

Изменения (01.04.2012):
[New features]

  • OGFLOADER: Экспорт в Collada XML (*.DAE).
  • OGFLOADER: Экспорт в AutoDesk DXF, меши по слоям.
  • OGFLOADER: "Чтение" DDS-файлов, наложение на плоскость 2x2 метра.
  • OGFLOADER: Экспорт в StereoLitho (*.STL), MilkShape3D (*.MS3D), X-Ray SDK (*.OGF).
  • OGFDOS16: Свой ANM-формат для хранения анимаций - на 1 меш.
  • SURFCONV: Конвертер текстур на базе DX8/DX9 SDK- в разработке.
  • SURFCONV: D3DX_DEFAULT_NONPOW2 - произвольные размеры текстур в DX9, "ручное" сохранение в TGA.

[Fixed bugs]

  • OGF_DX9(SM20): Формат тангента float[4], исправлена потеря контекста шейдером, радиус света = 20 (был 10).
  • OGF_DX9(SM20): Считываем бампы orion m1
  • OGFLOADER: Читаем "многоблочные" *.DS2MD (You Are Empty).
  • OGFLOADER: В *.SMD, *.ASE материалы назначались некорректно - исправлено.
  • OGFLOADER: В *.SMD исправлен "офигический" 100x масштаб.
  • OGFLOADER: Экспорт obj приведен в соответствие с методикой X-Ray ActorEditor (всё в 1 файл).
  • OGFLOADER/OGFMODEL: BoundingBox отрисовывался отражённым по оси Y (OpenGL).

[Optimizations]

  • OGFDOS16: Нормали, код переписан, 2D-"анимации" (OGFPLY16), FastGraph engine.
  • OGFVIEWER: Поддержка DX9 SDK, SW рендерер, задел на будущее?
  • ALLE: Модели загружаются быстрее, свет сверху вниз, статистику (totvert/totind) берём из модели.
  • ALL: Затенение по Фонгу должно быть недоступно в DirectX 7/8/9 (DirectX).
  • MESHCONV: Лог расширен.

[Notes]

  • Отключение Aero (desktop composition) решает проблемы с пропадением текста в окне программы.

Это мини-версия пакета!

Изменения (31.07.2012):
[New features]

  • OGFVIEWER: Подсказки к кнопкам (floating tooltips).
  • OGFVIEWER: Поддержка тем XP/2003/Vista/7/...
  • OGFVIEWER: Новая сокращенная панель кнопок, свойства модели в виде "дерева" (TreeView/ListView).
  • PARSE_SPW: новый инструмент для разбора GSC spawn
  • ALL: 22 варианта цветов для неба skycolors.png - DaySkyColorReference (frostbo.devianart.com)
  • OGFVIEWER: Версия для 64-бит процессоров (WIP).
  • ALL(GL): Все версии теперь умеют два вида направленного освещения — от наблюдателя и "солнечное".

[Fixed bugs]

  • OGF_DX9: исправлена утечка памяти (лишний new OGFModel[])
  • OGFLOADER: "Потерянная" поддержка multi-mesh ds2md вернулась. :)
  • OGF_DX9(SM_20): Многочисленные исправления — коэффициенты specular (0.5 -> 0.75), "дырки" в скайбоксе.
  • OGF_DX9(SM_20): SetTechnique вызываем один раз.
  • OGF_DX9(SM_20): Исправления в changeskybox().
  • OGF_DX7: Многочисленные исправления
  • ALL (BASE): LOCALVIEWER render-state, рефлексы теперь выглядят "грамотнее".
  • OGF_GLUT, OGF_TK: OnMouseMove() — убраны дублированные x,y переменные.
  • OGFLOADER: Исправлена ориентация faces в коде экспорта ms3d.

[Optimizations]

  • ALL: шаг движения cокращен F7 (*4), F8 (/4)
  • metro2033 support: check for dup-ed materials
  • OGFVIEWER: Относительный путь в ogfviewer.cfg (типа \gamedata\textures\) временно не работает - используйте полный путь D:\games\stk\gamedata\textures\ .
  • OGFVIEWER: Последний каталог для открытия и сохранения моделей запоминается отдельно.
  • OGFVIEWER: 3DLook для Windows NT 3.51. :)
  • OGFLOADER: Убрано ограничение на количество мешей, материалов в исходном файле.
  • OGFLOADER: В моделях metro2033 проверяем дублированные материалы.
  • NEW_REND, OGFSCENE: Попытка переписать движок OGFVIEWER (WIP).
  • PARSE_YAE: Теперь разбираем модели (ds2md) и геометрию (ds2, WIP).

Изменения (31.10.2012):
[New features]

  • PARSE_YAE: Теперь разбираем двоичные модели (ds2md) версий 0.6, 0.9, 1.0
  • ALL: Поддержка двоичных ds2md (YaE) моделей версии 0.9 (beriya.ds2md, ship.ds2md)
  • ALL: Поддержка двоичных ds2md (YaE) моделей версии 0.6 (krovat.ds2md medscen1.ds2md medscen2.ds2md toilet.ds2md trash_box.ds2md)
  • ALL: Autodesk 3dsmax plugin (x86, версии 5.1,6,7,8,9,2008,2009,2010,2011,2012) на движке MeshTool
  • ALL(DX, GL): В альтернативных версиях отсечение увеличено до 3 км = 3000 м (было 400 м), для этого есть клавиша "N".

[Fixed bugs]

  • OGFLOADER: Исправление для ds2md (YaE) моделей, с неполными путями до текстур.
  • ALL(GL): Не вызываем glBegin(GL_LINES) для сетки дважды.
  • ALL: Правильное масштабирование ds2md моделей (в 100 раз) и считывание bounding box (ds2md 1.0)

[Optimizations]

  • OGFMODEL: Классы движка конфликтовали с 3ds Max — исправлено (Mesh -> mtMesh ...).
  • ALL: Повсеместно убраны _try {} except (1)
  • OGF_DX9(B, SM): Клавиша "4" даёт результат ValidateDevice().
  • OGF_DX9(B, SM): Клавиши "7","8" в(ы)кл учёт D3DRS_SPECULARENABLE в FFP.

[Notes]

  • ALL: Установка 3ds Max-плагина: xrMtMax*.dlt и OGFViewer.cfg переписать в папку 3dsmax\plugins.
  • ALL: Убраны все 64-битные версии "до выяснения" проблем с ними.
  • ALL: "VIA Tech VT8361/VT8601 Graphics Controller (aka KPLE133)" не умеет рисовать линии в "hardware".
  • OGF_DX9(SM_20): Карты Intel не умеют порядок координат p,u/v,n,t для FFP.
  • OGFLOADER: Размер ms3d модели при экспорте ограничен 65535 индексами, вертексами ("железное" ограничение формата!).
  • Отключение Aero (desktop composition) решает проблемы с пропадением текста в окне программы.

Это мини-версия пакета!

Изменения (29.12.2012):
[New features]

  • ALL: Возвращены 64-битные версии. :)
  • PARSE_BKP: Новая утилита для восстановления xray-level source backups
  • MBENCH: new bench tool with tri, ply, nmb? model support, also ltest tool refresh
  • ALL,DX,GL: полностью реализована aнизотропная фильтрация
  • ALL,DX: Макс. aнизотропная фильтрация включена по умолчанию
  • ALL,DX,ALT: добавлен второй sun-like режим освещения, как для GL
  • PARSE_LEV: Опция 4 корректно конвертирует лайтмапы отдельно от базовой геометрии

[Fixed bugs]

  • PARSE_LEV: Исправление при удалении несуществующего массива ( delete [] swiblk )
  • OGFLOADER: Обрезаем vtx block до 65535 для БОЛЬШИХ объектов
  • OS2: Исправлен плавающий таймер - теперь используем DosTmrQueryFreq/Time, "отвязались" от tcpip.lib
  • OS2: IBM CPP требует откл. оптимзаций (-O+) или замены на (-Oc+) чтобы отсечение по bbox работало правильно
  • OGFLOADERZ: Импорт моделей не завит от "pragma pack #1" ( /Zp1 ), сделано для MAX плагина
  • OGFLOADER: Исправлено считывание секции 0x0E S_BONE_NAMES

[Optimizations]

  • ALL: v_far_dist, HI_DIST теперь везде (не только в ogf_dx?)
  • OGFLOADER: Считываем object блок 0x1005 целиком, вне зависимости от USE_XLAT
  • MESHCONV: Определяем USE_DX9 для отключения бессмысленной опции USE_XLAT
  • OGFLOADER: Заменяем memcpy() где возможно на присваивание, напр. *(int*)
  • OGFLOADER: Рассчитывем нормали, bbox для object, m2033 один раз в конце, bs_radius для *.ds2md
  • PARSE_LEV: Теперь удаляем дублированыые вертексы при конвертации (10% экономии для "финалок", 30-40% для "билдов")
  • OS2: Безопасно использовать -onatx (т.е. OPT=1) в Watcom-е
  • IL_WRAP: Пишем лог только при USE_LOG, умеем MIPMAP
  • ALL,GL,OGFLOADER: aнизотропная фильтрация - это float константа
  • ALL: Оптимизация 'F9' MIPMAP кода
  • ALL,GL: Расширение glCompressedTeximage2D добавлено везде кроме "pure" OS/2

[Notes]

  • ALL,GLUT,MS: Миним. полноэкранное разрешение для Microsoft glut32 - 400x300 но оно патчится.

Это полная версия пакета!

Изменения (30.06.2013):
[New features]

  • MESHCONV: поддержка масштабирования в процессе конвертации
  • OGFLOADER: Теперь умеем все виды моделей 4A Engine (Metro 2033, Metro Last Light) - *.model, *.mesh

[Fixed bugs]

  • CHILDVIEW: При декларации DISABLE_TEXTURING программа не собиралась.

[Optimizations]

  • OGFLOADER: Внутренний код формата 4A Engine изменен с 0x2033 на 0x4AE0
  • ALL,GL: Показываем версию GLSL
  • PARSE_203: Теперь удаляем дублированыые вертексы при конвертации (см. PARSE_LEV выше)

[Notes]

  • ALL,GLUT,MS: Миним. полноэкранное разрешение для Microsoft glut32 - 400x300 но оно патчится.

Это полная версия пакета!

Изменения (29.12.2013):
[New features]

  • OGF2POV: Утилита конвертирует модели в формат *.POV - POV-Ray 3.6-3.7rc7.
  • OGFLOADER: Также сохраняем в *.POV, но с оптимизацией.
  • OGFLOADER: Удален нерабочий экспорт в *.LWO.
  • OGFf2X: Утилита конвертирует модели в формат *.X (ASCII) - DirectX SDK.
  • OGF(_GLUT, _TK, FSCR): Клавиша 'R' вращает модель вокруг оси Y, вперед - назад, 'F7'/'F8' - скорость +/-.

[Fixed bugs]

  • OGF_DX9/8: gdifont.cpp/h - выводим шрифты через GDI (меньше глюков и тормозов).
  • CHILDVIEW: В режиме wireframe на черном фоне цвет модели желтый.
  • OGFMODEL: В режиме wireframe клавиша 'L' меняет цвет модели (GL).

[Optimizations]

  • ALL: Теперь меняем цвет фона клавишей 'B' (ранее было 'F','*').
  • ALL: Лог файл сохраняем клавишей 'T' (ранее было 'M').
  • OGF_DX9(SM_20): Поддержка бампа с параллаксом в моделях (масштаб приведен в соответствие к XRay).
  • OGF_DX9/8: Поддержка "пролистывания" текстур неба sky_?_dx9_cube.dds.
  • OGF_DX9/8: По умолчанию нет окна информации (клавиша 'I').
  • OGF_DX8/9/BB/F/S: Общая оптимизация - выкинуто всё лишнее (createTangentSpaceVectors, ...) из SetAC().
  • OGF_DX9(SM_20): Убраны лишние массивы N,T,B - экономия памяти.
  • PARSE_SPW: Дорабатываем...

[Notes]

  • ALL,GLUT,MS: Миним. полноэкранное разрешение для Microsoft glut32 - 400x300, но оно патчится.

Это полная версия пакета!

Планы[править]

  • Чтение анимаций (ogf,omf), секций S_BONE_NAMES, S_IKDATA, S_MOTIONS
  • Чтение анимаций (object,skl,bones)
  • Чтение particles
  • Чтение level из билдов 1xxx (XRLC формат 0x0C и ранее)
  • Импорт/экспорт *.lwo (LightWave3D)
  • Экспорт плагин для 3DSMax
  • Импорт/экспорт плагин для Maya
  • Экспорт в *.object (XRay SDK), *.ma (Maya ASCII)
  • Чтение level DS2 Engine 'You are empty', Orion engine v1 'Метро-2'
  • Чтение моделей уровней Cryostasis, Singularity, Unreal Engine 3 (Dishonored, etc.)
  • Реализация FSAA, lightmap generation, guardband clipping, deferred render.
  • Поддержка UNICODE.
  • Полностью программный рендерер.
  • Рендерер на базе irrlicht, ogre.
  • INI-фaйл для OGFViewer (meshtool.ini?)
  • Нативные версии для Windows (alpha, mips, ppc, WinCE, arm)
  • Мультитекстурирование, расчет лайтмапов, улучш. освещение (шейдеры, FFP)

Использованные материалы и благодарности[править]