MESHTOOL/OGFVIEWER - кроссплатформенный комплект утилит для просмотра, конвертации разнообразных 3d-моделей и уровней.
Использовались 3D API интерфейсы: Microsoft Directx, Microsoft OpenGL, SGI OpenGL, IBM OpenGL, Mesa3D OpenGL, allegro, Irrlicht.
Cистемные требования:
Возможна работа без аппаратной 3D-акселерации. ( MESHTOOL cовместим с TransGaming SwiftShader, Realtech VR DXGL Wrapper, AltOpenGL, TechLand Soft OpenGL, mesaFX OpenGL. )
Смотрим:
Форматы экспорта:
Конвертируем:
Обратите внимание, что в OGFViewer-е подразумевается что все координаты моделей заданы в метрах. Для моделей Orion engine v1 используется масштабирование, т.к. они сделаны в сантиметрах.
Microsoft Windows: MESHTOOL\WIN\GUI\OGFViewer.exe - Win32 MS OpenGL версия. MESHTOOL\WIN\GUI\OGFViewer_sgi.exe - Win32 SGI/MMX OpenGL версия. MESHTOOL\WIN\GUI\OGFViewer_DX.exe - Win32 MS DirectX версия. MESHTOOL\WIN\GUI\ALT\OGFViewer.exe - Win32 MS OpenGL версия (альтернативное управление, для level-ов). MESHTOOL\WIN\GUI\ALT\OGFViewer_sgi.exe - Win32 SGI/MMX OpenGL версия (альтернативное управление, для level-ов). MESHTOOL\WIN\GUI\ALT\OGFViewer_DX.exe - Win32 MS DirectX версия (альтернативное управление, для level-ов). MESHTOOL\WIN\GUI\PROMO\OGFViewer.exe - Win32 MS OpenGL версия (альтернативное управление, для level-ов, c скайбоксами и VBO). MESHTOOL\WIN\GUI\PROMO\OGFViewer_DX.exe - Win32 MS DirectX версия (альтернативное управление, для level-ов, c скайбоксами). MESHTOOL\WIN\OTH\ogffscr.exe - Win32 MS OpenGL Console PROMO версия (альтернативное управление, для level-ов, c скайбоксами). MESHTOOL\WIN\OTH\CVA_ogffscr.exe - Win32 MS OpenGL Console PROMO версия (альтернативное управление, для level-ов, c скайбоксами и CVA). MESHTOOL\WIN\OTH\VBO_ogffscr.exe - Win32 MS OpenGL Console PROMO версия (альтернативное управление, для level-ов, c скайбоксами и VBO). MESHTOOL\WIN\OTH\dx7base.exe - Win32 MS DirectX7 Console версия. MESHTOOL\WIN\OTH\dx7alt.exe - Win32 MS DirectX7 Console версия (альтернативное управление, для level-ов). MESHTOOL\WIN\OTH\ogfconsa.exe - Win32 Allegro Console версия. MESHTOOL\WIN\OTH\ogf_dx?.exe - Win32 MS DirectX? Console BETA-версия. MESHTOOL\WIN\OTH\ogf_dx?a.exe - Win32 MS DirectX? Console BETA-версия (альтернативное управление, для level-ов). MESHTOOL\WIN\OTH\ogf_irr.exe - Win32 Irrlicht engine Console BETA-версия (альтернативное управление, для level-ов). MESHTOOL\WIN\CONSOLE\dx7capsG.exe - табло памяти DirectX MESHTOOL\WIN\CONSOLE\glxinfo.exe - системная информация, Console MS OpenGL версия. MESHTOOL\WIN\CONSOLE\glxinfo_sgi.exe - системная информация, Console SGI/MMX OpenGL версия. MESHTOOL\WIN\CONSOLE\Make_Ogf.exe - создает псевдослучайную OGF-модель. MESHTOOL\WIN\CONSOLE\MeshConv.exe - конвертер моделей в 3DS формат, Console версия. MESHTOOL\WIN\CONSOLE\OBJ2OGF.exe - конвертер WAVEFRONT OBJ-моделей в Xray OGF формат, Console версия. MESHTOOL\WIN\CONSOLE\OGF2OBJ.exe - конвертер Xray OGF-моделей в WAVEFRONT OBJ формат, Console версия. MESHTOOL\WIN\CONSOLE\OGF2SMDa.exe - конвертер Xray OGF-моделей/анимаций в SMD формат, Console версия. MESHTOOL\WIN\CONSOLE\Parse_203.exe - парсер Xray ogf-моделей, Console версия. MESHTOOL\WIN\CONSOLE\Parse_Lev.exe - конвертер уровней в OGF формат, Console версия. MESHTOOL\WIN\CONSOLE\Parse_Msh.exe - парсер orion v1 msh-моделей, Console версия. MESHTOOL\WIN\CONSOLE\Parse_Obj.exe - парсер Xray object-моделей, Console версия. MESHTOOL\WIN\CONSOLE\Parse_Ogf.exe - парсер Xray ogf-моделей, Console версия. IBM OS/2, IBM/MS DOS: MESHTOOL\OS2\GL10\ogf_tk.exe - OS/2 LIBTK+OpenGL 1.0 Console версия. MESHTOOL\OS2\GL10\ogf_tka.exe - OS/2 LIBTK+OpenGL 1.0 Console версия (альтернативное управление, для level-ов). MESHTOOL\OS2\GL10\ogf_glut.exe - OS/2 GLUT+OpenGL 1.0 Console версия. MESHTOOL\OS2\GL10\ogf_gluta.exe - OS/2 GLUT+OpenGL 1.0 Console версия (альтернативное управление, для level-ов). MESHTOOL\OS2\GL10\ogf_os2.exe - OS/2 PGL+OpenGL 1.0 Console версия. MESHTOOL\OS2\GL10\ogf_os2a.exe - OS/2 PGL+OpenGL 1.0 Console версия (альтернативное управление, для level-ов). MESHTOOL\OS2\GL10\ogfcons.exe - OS/2 LIBAUX+OpenGL 1.0 Console версия. MESHTOOL\OS2\GL10\ogfconsa.exe - OS/2 LIBAUX+OpenGL 1.0 Console версия (альтернативное управление, для level-ов). MESHTOOL\OS2\GL11\ogf_tk.exe - OS/2 LIBTK+OpenGL 1.1 Console версия. MESHTOOL\OS2\GL11\ogf_tka.exe - OS/2 LIBTK+OpenGL 1.1 Console версия (альтернативное управление, для level-ов). MESHTOOL\OS2\GL11\ogf_tkas.exe - OS/2 LIBTK+OpenGL 1.1 Console PROMO версия (альтернативное управление, для level-ов, c скайбоксами). MESHTOOL\OS2\GL11\ogf_glut.exe - OS/2 GLUT+OpenGL 1.1 Console версия. MESHTOOL\OS2\GL11\ogf_gluta.exe - OS/2 GLUT+OpenGL 1.1 Console версия (альтернативное управление, для level-ов). MESHTOOL\OS2\GL11\ogf_glutas.exe - OS/2 GLUT+OpenGL 1.1 Console PROMO версия (альтернативное управление, для level-ов, c скайбоксами). MESHTOOL\OS2\GL11\ogf_os2.exe - OS/2 PGL+OpenGL 1.1 Console версия. MESHTOOL\OS2\GL11\ogf_os2a.exe - OS/2 PGL+OpenGL 1.1 Console версия (альтернативное управление, для level-ов). MESHTOOL\OS2\GL11\ogf_os2as.exe - OS/2 PGL+OpenGL 1.1 Console PROMO версия (альтернативное управление, для level-ов, c скайбоксами). MESHTOOL\OS2\GL11\ogfcons.exe - OS/2 LIBAUX+OpenGL 1.1 Console версия. MESHTOOL\OS2\GL11\ogfconsa.exe - OS/2 LIBAUX+OpenGL 1.1 Console версия (альтернативное управление, для level-ов). MESHTOOL\OS2\WMGL\ogf_glut.exe - OS/2 GLUT+WarpMesaGL Console версия. MESHTOOL\OS2\WMGL\ogf_gluta.exe - OS/2 GLUT+WarpMesaGL Console версия (альтернативное управление, для level-ов). MESHTOOL\OS2\WMGL\ogf_glutas.exe - OS/2 GLUT+WarpMesaGL Console PROMO версия (альтернативное управление, для level-ов, c скайбоксами). MESHTOOL\OS2\SNAP\ogf_glut.exe - OS/2 GLUT+SnapGL Console версия. MESHTOOL\OS2\SNAP\ogf_gluta.exe - OS/2 GLUT+SnapGL Console версия (альтернативное управление, для level-ов). MESHTOOL\OS2\SNAP\ogf_glutas.exe - OS/2 GLUT+SnapGL Console PROMO версия (альтернативное управление, для level-ов, c скайбоксами). MESHTOOL\OS2\SNAP\ogf_snap.exe - OS/2 MESA3D+SnapGL Console версия. MESHTOOL\OS2\SNAP\ogf_snapa.exe - OS/2 MESA3D+SnapGL Console версия (альтернативное управление, для level-ов). MESHTOOL\OS2\SNAP\ogf_snapas.exe - OS/2 MESA3D+SnapGL Console PROMO версия (альтернативное управление, для level-ов, c скайбоксами). MESHTOOL\DOS32\ogfdos.exe - DOS32 Allegro Console версия. MESHTOOL\DOS32\ogfdos32.exe - DOS32 Console версия (320x200). MESHTOOL\DOS16\ogfdos16.exe - DOS16 Console версия (320x200). +++ MESHTOOL\REF\MESH.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\ - текстуры неба для PROMO-версии (текстуры sky?.dds положить в 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\FAQ.HTM - FAQ & README (HTML) MESHTOOL\READMEOS2.HTM - FAQ & README for OS/2 (HTML) MESHTOOL\GL_OS2.HTM - OpenGL OS/2 Developer reference guide for OS/2 (HTML)
Отличия, особенности версий ogfviewer
Существует ограничение на количество материалов (до 500) и вложенных блоков (до 17000).
Существует визуальные проблемы с работой программы при включенном Windows Aero (desktop composition). Варианты решения - временно переключиться в классическую схему оформления или остановить службу Темы (c правами администратора):
net stop Themes
net stop Темы
Вращается и двигается модель относительно центра координат. Вариант для просмотра отдельных моделей. Умеет VBO (OpenGL). Включен мипмэппинг и фильтрация текстур. Использование буфера VBO (OpenGL) имеет "обратную сторону" - при его переполнении эффективность от VBO пропадает.
Вращается и двигается свободная камера. Вариант для просмотра уровней и крупных объектов. Вместо скайбоксов используется туман. Включена DXT-компрессия (OpenGL), фильтрация текстур.
Альтернативная версия вместе с VBO (OpenGL) и скайбоксами. Вращается и двигается свободная камера. Вариант для просмотра уровней и крупных объектов. Включена DXT-компрессия (OpenGL), фильтрация текстур. Использование буфера VBO (OpenGL) имеет "обратную сторону" - при его переполнении эффективность от VBO пропадает.
OpenGL движок, программная его часть оптимизирована под инструкции MMX (Pentium и старше). Немного быстрее, чем движок MS OpenGL.
MS OpenGL: Если при запуске идут сообщения об ошибках - положите в каталог программы opengl32.dll из soft_gl.7z.
SGI OpenGL: Если при запуске идут сообщения об ошибках - отключите видеоакселерацию в панели управления.
или впишите, импортируйте эту строчку в реестр, значение = 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
Если при запуске программы она показывает пустой черный экран - положите в каталог WINDOWS\SYSTEM32 d3dref8.dll из из soft_dx.7z (или DirectX 8.x SDK).
Если при запуске программы программы она тормозит или глючит - положите в каталог программы d3d8.dll из SwiftShader или DXGL Wrapper. На вопрос "Use software renderer?" ответить "No".
Распаковываем ресурсы игры:
Используя converter.exe из xray_re_tools:
converter.exe -unpack -2215 gamedata.xdb converter.exe -unpack -2945 gamedata.xdb converter.exe -unpack -2947ru gamedata.xdb converter.exe -unpack -2947ww gamedata.xdb converter.exe -unpack -xdb gamedata.xdb
Ключи после -unpack позволяют указать тип архива с игровым контентом.
В результате имеем:
Если просмотр моделей с текстурами нам необходим, в ogfviewer.cfg записывем путь к текстурам. Если игра лежит у нас в C:\GSC\STALKER, то в в ogfviewer.cfg пишем:
C:\GSC\STALKER\gamedata\textures\
Возможен запуск нескольких копий ogfviewer одновременно.
Как (где) ищется конфигурация ogfviewer.cfg
Размер ogfviewer.cfg - 255 символов максимум.
OpenGL: Если размер текстуры для объекта превышает допустимый, то он масштабируется до максимально допустимого размера.
Если в итоге указанная текстура для объекта не находится, то в drawmode #2 объект с данной текстурой не отображается.
Как ассоциировать файлы с ogfviewer?
Требуются права администратора!
редактировать REG\instogf.reg, исправить там путь к файлу.
затем:
regedit instogf.reg
Как убрать ассоциацию c ogfviewer?
Требуются права администратора!
затем:
regedit delogf.reg
Предположим, что имя нашего уровня - testers_mp_railroad
Для конвертации используем 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
Для конвертации используем converter.exe из xray_re_tools.
При данном виде конвертации - деревья, кусты, техника, некоторые прочие объекты - не переносятся.
Cкопировать террейны:
gamedata\levels\name\terrain\*.dds -> gamedata\textures\terrain\
Редактировать converter.ini, прописать там пути к папкам с распакованными ресурсами игры.
В той же папке где лежит gamedata\ создать rawdata\objects\levels
Запускаем из папки, где лежат converter.exe, 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_bench, 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' (3DStdio MAX 3ds файл)
Утилита: 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 анимаций (smd формат), reference.smd - базовая модель
Утилита: parse_lev
Запуск: parse_lev < режим > [ имя_модели.ogf ] [ > parse.log ]
режим 0/1: с оптимизацией вертексов? - нет/да (включать не рекомендуется!)
режим 0/2: пропускать lod-,prop_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 метра для тестирования нагрузки на движок и видеокарту.
Все консольные утилиты удобнее запускать из Far Manager (или cmd.exe) :)
* ALT_CONTROLS - compile as alternate "level-only" version (ALL) * DISABLE_CULL - disable invisible faces culling (ALL) * DISABLE_TEXTURING - no texturing support (ALL) * COMPACT_NVTS - use nvtristrip library to convert tris to strips (OpenGL) * COMPACT_WF - linestrip, for w/frame, speedup for drawmode #0 (ALL) * DX_REND - DX8 render (DirectX) * SGI_GL - SGI/MMX OpenGL linking (OpenGL) * USE_GL10 - OpenGL 1.0 compatibility (OpenGL) * USE_CVA - CVA compiled_vertex_array extention (OpenGL) * USA_VBO - VBO vertex_buffer_object extension (OpenGL) * USE_DXT - DXT1/DXT5 compr. (OpenGL) * USE_MIPMAP - use mipmapping (ALL) * USE_ANISO - anisothr. filtering (OpenGL) * USE_FOG - fog (alt,ALL) * USE_SKY - use skyboxes (alt,ALL) * USE_LOG - verbose logging (ALL) * LIMIT_DDS - limit texture size to 256x256 max (3dfx compat?, OpenGL) * DISABLE_ARRAYS - don't use glDrawElements(),glDrawArrays() (OpenGL) * USE_SUBST - substitute missing textures by generic one (ALL) * USE_ALLEG - allegro restrictions, separate or disabled drawing code * NO_3DS - no 3ds import/export * NO_SAVE - do not export, save (ALL) * USE_ANIM - read and display animations, also ogfv3 bones (wip) * USE_SINGLE - single buffering (OpenGL) * USE_CONV - do export, save (ALL) * USE_ZTRICK - z-trick (OpenGL) * USE_OS2 - os2 compile mode (OpenGL) * DM2_LIGHT - enable light in drawmode#2 (OpenGL,DirectX, beta) * USE_IDLE - draw scene when idle (OpenGL, libglut, libaux, libtk) * USE_REINIT - init OpenIL later (OpenGL, textured) * USE_MESA - use WarpMesaGL libraty (OpenGL, OS/2) * NO_FONT - disable onscreen fonts and messages (OpenGL) * USE_CULLV - EXT_cull_vertex extention (OpenGL, beta, mostly Intel's) * USE_OCC - ARB_occlusion_query extention (OpenGL, beta) * USE_NC - normal-based culling, not comp. with USE_VBO (OpenGL, beta) * COMPACT_OBJECT - remove duplicated vertexes in *.object (ALL)
Изменения (19.02.2010) :
OGFViewer: Масштабирование не вызывает геометрических искажений
OGFViewer: Оси x/y/z 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]
Это миниверсия пакета, так что некоторые дополнительные экзешники выкинуты :)
Чтение анимаций (ogf,omf), секций S_BONE_NAMES, S_IKDATA, S_MOTIONS Чтение анимаций (object,skl,bones) Чтение particles Чтение level из билдов 1xxx (XRLC формат 0x0C и ранее) Импорт/экспорт *.lwo (LightWave3D) Импорт/экспорт плагин для 3DSMax, Maya Экспорт в *.ogf/*.object (XRay SDK) Чтение level DS2 Engine 'You are empty', Orion engine v1 'Метро-2' Fullscreen режим (есть беты - ogffscr.exe, ogf_dx?.exe) Полностью программный рендерер. Рендерер на базе irrlicht, ogre. Ini-фaйл для OGFViewer (meshtool.ini?) Нативные версии для x64, ia64, alpha, mips, ppc, WindowsCE
Использованные материалы и благодарности
batya: исходники OGFViewer 1.0.2 (26 Nov 2006) batya: исходники LevelEditor 0.0.2 (07 Apr 2007) bardak: исходники X-RAY RE-Tools-SRC (10 Sep 2008) kasper, haron: исходники OGF2SMD SRC 2.03 iOrange: исходники конвертеров для Metro 2033 (Apr 2010) Stalkerin wiki: http://stalkerin.gameru.net/wiki/index.php/Категория:Форматы_файлов Wavefront obj format: http://en.wikipedia.org/wiki/Obj Wavefront mtl format: http://en.wikipedia.org/wiki/Material_Template_Library DevIL, OpenIL: http://openil.sourceforge.net/, DDS,TGA reading support lib3ds: http://lib3ds.sourceforge.net, 3DS import, export Mesa3D: http://www.mesa3d.org/, software OpenGL SGI OpenGL 1.1.1/MMX (ver 2.0): opengl2.exe TransGaming SwiftShader (ver 2.01): http://www.transgaming.com/business/swiftshader/technology/ Realtech OpenGL Extensions Viewer: http://www.realtech-vr.com/glview/ Realtech VR DXGL Wrapper: http://www.realtech-vr.com/directx/ ATI Radeon 9700 OpenGL SDK: http://developer.amd.com/downloads/Gl_sdk.zip GL_ARB_vertex_buffer_object: http://www.nvidia.com/dev_content/nvopenglspecs/GL_ARB_vertex_buffer_object.txt GL_EXT_compiled_vertex_array: http://www.opengl.org/registry/specs/EXT/compiled_vertex_array.txt GL_ARB_texture_compression: http://www.opengl.org/registry/specs/ARB/texture_compression.txt GL_SGIS_generate_mipmap: http://www.opengl.org/registry/specs/SGIS/generate_mipmap.txt GL_EXT_cull_vertex: http://www.opengl.org/registry/specs/EXT/cull_vertex.txt Graphic Remedy gDEBugger version 4.5: http://www.gremedy.com/ GMax 1.2, free game modeling tool (3DSMax compatible): http://www.turbosquid.com/gmax/ Blender 3D cross platform suite: http://www.blender.org/ NVIDIA DDS plug-in: http://www.nvidia.com/object/photoshop_dds_plugins.html NvTriStrip Library: http://developer.nvidia.com/object/nvtristrip_library.html Allegro - A game programming library: http://alleg.sourceforge.net/ UniLink: ftp://ftp.styx.cabel.net/pub/UniLink (by Юрий Харон) level format: http://haperpage.narod.ru/format/ level format: http://www.gamedev.ru/community/gde/articles/ camera: http://pmg.org.ru/nehe/nehe_camera.htm culling: http://www.flipcode.com/archives/Frustum_Culling.shtml lwo format: http://www.sandbox.de/osg/lightwave.htm soft. raster.: http://pmg.org.ru/basic3d/index.html VBO whitepaper: http://www.spec.org/gwpg/gpc.static/vbo_whitepaper.html "Batch": http://developer.nvidia.com/docs/io/8230/batchbatchbatch.pdf SGI OpenGL: http://www.gameprog.it/pub/oldtuts/GuideOGLwin/releasenotes.html#hwconfig Techland MiniGL driver: http://www.techlandsoft.com/english/minigl.htm GLIntercept v0.5: http://glintercept.nutty.org/ OpenGL on OS/2: http://www.edm2.com/common/authors/pnewhook.html demo.design 3D programming FAQ: http://www.enlight.ru/faq3d/content.htm good directx faq: http://www.toymaker.info/Games/html/directx_9_0c.html Lection #32. R.E.N.D.E.R.: http://www.gamedev.ru/community/gamedev_lecture/articles/r_e_n_de_r http://www.gamedev.ru/code/articles/ShadowMapGLSL http://www.gamedev.ru/code/articles/Software_occlusion http://www.gamedev.ru/code/articles/OpenGL_Shaders http://www.gamedev.ru/code/articles/Cg OGRE engine: http://www.ogre3d.org/ Irrlicht engine: http://irrlicht.sourceforge.net/ yae-tools: http://code.google.com/p/yae-tools/ xray-extensions: http://code.google.com/p/xray-extensions/ metro2033-tools: http://code.google.com/p/metro2033-tools/ directx collection: http://www.falconfly.de/directx.htm