Редактирование: OGFViewer

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

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 7: Строка 7:
 
| '''Автор'''            || NatteFrost
 
| '''Автор'''            || NatteFrost
 
|-
 
|-
| '''Последняя версия''' || [https://files.xray-engine.org/nattefrost/20131229.7z 1.0.5 .20131229]
+
| '''Последняя версия''' || 1.0.5 .20121229
 
|-
 
|-
| '''Архив версий'''    || [https://files.xray-engine.org/nattefrost/ файлохранилище]
+
| '''Платформа'''        || x86, x86-64
|-
 
| '''Платформа'''        || x86, x86-64, etc, etc
 
 
|-
 
|-
 
| '''Написан на'''      || C++
 
| '''Написан на'''      || C++
Строка 18: Строка 16:
 
|}
 
|}
 
</div>
 
</div>
 +
 +
== Что это? ==
  
 
'''MESHTOOL/OGFVIEWER''' — кроссплатформенный комплект утилит для просмотра, конвертации разнообразных 3d-моделей и уровней.
 
'''MESHTOOL/OGFVIEWER''' — кроссплатформенный комплект утилит для просмотра, конвертации разнообразных 3d-моделей и уровней.
Строка 38: Строка 38:
 
* '''X-Ray object v3''' (builds 1xxx), только статика
 
* '''X-Ray object v3''' (builds 1xxx), только статика
 
* '''X-Ray object v4''' (builds 2xxx-3xxx), только статика
 
* '''X-Ray object v4''' (builds 2xxx-3xxx), только статика
* '''X-Ray level''' (builds 2xxx-3xxx), через ogf-конвертацию (parse_lev) или через object-конвертацию ([[converter.exe]])
+
* '''X-Ray level''' (builds 2xxx-3xxx), через ogf-конвертацию (parse_lev) или через object-конвертацию ([[xray_re converter]])
 
* '''Orion engine v1 MSH''' (Stalin Subway, Red Veil, Метро-2, Метро-2: Смерть вождя)
 
* '''Orion engine v1 MSH''' (Stalin Subway, Red Veil, Метро-2, Метро-2: Смерть вождя)
 
* '''Autodesk 3D Studio MAX 3ds'''
 
* '''Autodesk 3D Studio MAX 3ds'''
 
* '''DS2 Engine *.ds2md''' (You Are Empty, только статика)
 
* '''DS2 Engine *.ds2md''' (You Are Empty, только статика)
* '''4A Games Engine *.model, *.mesh''' (Metro 2033, Metro Last Light)
+
* '''4A Games Engine *.model''' (Metro 2033, только статика)
 
* '''DirectDraw surface *.dds''' (картинка на плоскость 2x2 метра)
 
* '''DirectDraw surface *.dds''' (картинка на плоскость 2x2 метра)
  
Строка 50: Строка 50:
 
* '''ASCII Scene Export (*.ASE)'''
 
* '''ASCII Scene Export (*.ASE)'''
 
* '''Autodesk 3dsMax (*.3DS)'''
 
* '''Autodesk 3dsMax (*.3DS)'''
* '''Autodesk AutoCAD (*.DXF)'''
 
 
* '''LightWave 3D (*.LWO)''' — в разработке
 
* '''LightWave 3D (*.LWO)''' — в разработке
 
* '''StereoLitho (*.STL)'''
 
* '''StereoLitho (*.STL)'''
 
* '''Collada XML (*.DAE)'''
 
* '''Collada XML (*.DAE)'''
 
* '''MilkShape3D (*.MS3D)'''
 
* '''MilkShape3D (*.MS3D)'''
* '''X-Ray OGF (*.OGF)'''
+
* '''X-Ray OGF (*.OGF)'''  
* '''POV-Ray (*.POV)'''
 
* '''DirectX SDK Mesh (*.X)'''
 
  
 
Конвертация:
 
Конвертация:
 
* parse_lev: level+level.geom+level.cform -> ogf
 
* 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 (без анимаций)
+
* ogfviewer(gui), meshconv(console): ogf, object, msh, 3ds, ds2md, model -> obj, ase, smd, 3ds, stl, ms3d, ogf (без анимаций)
 
* ogf2smda: ogf,ogf+omf -> smd(reference), smd(reference+separate animations)
 
* ogf2smda: ogf,ogf+omf -> smd(reference), smd(reference+separate animations)
 
* obj2ogf: obj -> ogf
 
* obj2ogf: obj -> ogf
 
* ogf2obj: ogf -> obj  
 
* ogf2obj: ogf -> obj  
* ogf2pov: ogf -> pov
 
* ogf2x: ogf -> x (directx sdk mesh)
 
  
Обратите внимание, что OGFViewer подразумевает, что все координаты моделей заданы в метрах. Для моделей Orion engine v1 используется масштабирование, т.к. они сделаны в сантиметрах.
+
Обратите внимание, что в OGFViewer-е подразумевается что все координаты моделей заданы в метрах. Для моделей Orion engine v1 используется масштабирование, т.к. они сделаны в сантиметрах.
  
 
Какие форматы текстур умеем:
 
Какие форматы текстур умеем:
Строка 124: Строка 119:
 
*# Make_Ogf.exe — создает псевдослучайную OGF-модель.
 
*# Make_Ogf.exe — создает псевдослучайную OGF-модель.
 
*# MeshConv.exe — конвертер моделей в 3DS формат.
 
*# MeshConv.exe — конвертер моделей в 3DS формат.
*# OBJ2OGF.exe — конвертер WAVEFRONT OBJ-моделей в X-Ray OGF формат.
+
*# OBJ2OGF.exe — конвертер WAVEFRONT OBJ-моделей в Xray OGF формат.
*# OGF2OBJ.exe — конвертер X-Ray OGF-моделей в WAVEFRONT OBJ формат.
+
*# OGF2OBJ.exe — конвертер Xray OGF-моделей в WAVEFRONT OBJ формат.
*# OGF2SMDa.exe — конвертер X-Ray OGF-моделей/анимаций в SMD формат.
+
*# OGF2SMDa.exe — конвертер Xray OGF-моделей/анимаций в SMD формат.
*# OGF2POV.exe — конвертер X-Ray OGF-моделей в POVRAY формат.
 
*# OGF2X.exe — конвертер X-Ray OGF-моделей в DirectX SDK X формат.
 
 
*# Parse_203.exe — конвертер 4A Engine уровней в OGF формат.
 
*# Parse_203.exe — конвертер 4A Engine уровней в OGF формат.
 
*# Parse_Lev.exe — конвертер Xray уровней в OGF формат.
 
*# Parse_Lev.exe — конвертер Xray уровней в OGF формат.
Строка 190: Строка 183:
 
=== Общие ===
 
=== Общие ===
  
* B, < * > на цифровой клавиатуре меняет цвет фона
+
* Y, < * > на цифровой клавиатуре меняет цвет фона
* /, < / > на цифровой клавиатуре меняет гамма-коррекцию
+
* < / > на цифровой клавиатуре меняет гамма-коррекцию
 
* TAB, SPACE = режим просмотра wireframe / color / texture
 
* TAB, SPACE = режим просмотра wireframe / color / texture
 
* N = отсечение объектов в радиусе обзора в(ы)кл
 
* N = отсечение объектов в радиусе обзора в(ы)кл
Строка 199: Строка 192:
 
* F7, 7 = шаг движения * 4
 
* F7, 7 = шаг движения * 4
 
* F8, 8 = шаг движения / 4
 
* F8, 8 = шаг движения / 4
* F9, M = режим фильтрации текстур
+
* F9 = режим фильтрации текстур
 
* F11 = полный экран в(ы)кл
 
* F11 = полный экран в(ы)кл
 
* I = информация о 3D-рендерере
 
* I = информация о 3D-рендерере
* T = выгрузка статистики в object.log
 
 
* Z = листание в начало
 
* Z = листание в начало
 
* X = листание вперед
 
* X = листание вперед
 
* C = листание назад
 
* C = листание назад
 
* V = листание в конец
 
* V = листание в конец
* 3, 7, +, < + > на цифровой клавиатуре = время + 1 час
+
* 3, 7, < - > на цифровой клавиатуре = время - 1 час
* 4, 8, -, < - > на цифровой клавиатуре = время - 1 час
+
* 4, 8, < + > на цифровой клавиатуре = время + 1 час
 
* 5 = уменьшает aspect ratio
 
* 5 = уменьшает aspect ratio
 
* 6 = увеличивает aspect ratio
 
* 6 = увеличивает aspect ratio
Строка 221: Строка 213:
 
* стрелки = вращение по осям X/Y на 1 градус
 
* стрелки = вращение по осям X/Y на 1 градус
 
* SHIFT, CONTROL = вращение по оси Z на 1 градус
 
* SHIFT, CONTROL = вращение по оси Z на 1 градус
* +, < + >, -, < - > на цифровой клавиатуре = zoom in/out
+
* < + >, < - > на цифровой клавиатуре = zoom in/out
 
* BACKSPACE = сброс координат
 
* BACKSPACE = сброс координат
 +
* M = выгрузка статистики в object.log
 
* Ctrl+N = очистить все
 
* Ctrl+N = очистить все
* R = вращение вокруг оси Y (влево/вправо/выкл (ogffscr.exe))
 
 
* F2, Ctrl+S = сохранить как
 
* F2, Ctrl+S = сохранить как
 
* F3, Ctrl+O = открыть
 
* F3, Ctrl+O = открыть
Строка 246: Строка 238:
 
* CONTROL = движение камеры вниз
 
* CONTROL = движение камеры вниз
 
* BACKSPACE = сброс координат
 
* BACKSPACE = сброс координат
 +
* M = выгрузка статистики в object.log
 
* Ctrl+N = очистить все
 
* Ctrl+N = очистить все
* R = вращение вокруг оси Y (влево/вправо/выкл (ogffscr.exe))
 
 
* F2, Ctrl+S = сохранить как
 
* F2, Ctrl+S = сохранить как
 
* F3, Ctrl+O = открыть
 
* F3, Ctrl+O = открыть
Строка 258: Строка 250:
  
 
=== Базовая Console-версия (ogf_glut.exe) ===
 
=== Базовая Console-версия (ogf_glut.exe) ===
 +
 
* A, D = смещение по оси X
 
* A, D = смещение по оси X
 
* HOME, END, W, S = смещение по оси Z
 
* HOME, END, W, S = смещение по оси Z
Строка 263: Строка 256:
 
* стрелки = вращение по осям X/Y на 1 градус
 
* стрелки = вращение по осям X/Y на 1 градус
 
* Z, X = вращение по оси Z на 1 градус
 
* Z, X = вращение по оси Z на 1 градус
* +, -, < + >, < - >, C, V на цифровой клавиатуре = zoom in/out
+
* < + >, < - >, C, V на цифровой клавиатуре = zoom in/out
 
* BACKSPACE, E, F10 = сброс координат
 
* BACKSPACE, E, F10 = сброс координат
* G = сетка, небо, оси в(ы)кл
+
* G - сетка, небо, оси в(ы)кл
* R = вращение вокруг оси Y - влево/вправо/выкл
 
 
* F1, 1 = "качество" картинки draft
 
* F1, 1 = "качество" картинки draft
 
* F2, 2 = "качество" картинки release
 
* F2, 2 = "качество" картинки release
Строка 272: Строка 264:
 
* F12 = центрирует модель
 
* F12 = центрирует модель
 
* I = информация о 3D-рендерере на экран (в OS/2 - пишет в gldump.log)
 
* I = информация о 3D-рендерере на экран (в OS/2 - пишет в gldump.log)
 +
* T = выгрузка статистики в object.log
 
* движение с нажатой левой кнопкой = вращение по осям X/Y
 
* движение с нажатой левой кнопкой = вращение по осям X/Y
 
* движение вверх/вниз с нажатой правой кнопкой = zoom in/out
 
* движение вверх/вниз с нажатой правой кнопкой = zoom in/out
Строка 279: Строка 272:
  
 
=== Альтернативная Console-версия (ogf_gluta?.exe) ===
 
=== Альтернативная Console-версия (ogf_gluta?.exe) ===
 +
 
* HOME, C = поворот камеры вверх на 5 градусов
 
* HOME, C = поворот камеры вверх на 5 градусов
 
* END, V = поворот камеры вниз на 5 градусов
 
* END, V = поворот камеры вниз на 5 градусов
Строка 289: Строка 283:
 
* PGUP, O = движение камеры вверх
 
* PGUP, O = движение камеры вверх
 
* PGDOWN, P = движение камеры вниз
 
* PGDOWN, P = движение камеры вниз
* < * >, B = меняет цвет фона
+
* < * >, Y = меняет цвет фона
 
* BACKSPACE, E, F10 = сброс координат
 
* BACKSPACE, E, F10 = сброс координат
* R = вращение вокруг оси Y (влево/вправо/выкл)
 
 
* F1, 1 = "качество" картинки draft
 
* F1, 1 = "качество" картинки draft
 
* F2, 2 = "качество" картинки release
 
* F2, 2 = "качество" картинки release
 +
* F5, F = меняет FOV (field of view)
 
* F12 = помещает камеру в центр модели
 
* F12 = помещает камеру в центр модели
* I = информация о 3D-рендерере на экран (в OS/2 пишет в gldump.log)
+
* I = информация о 3D-рендерере на экран (в OS/2 - пишет в gldump.log)
 +
* T = выгрузка статистики в object.log
 
* движение с нажатой левой кнопкой = поворот камеры влево/вправо, вверх/вниз
 
* движение с нажатой левой кнопкой = поворот камеры влево/вправо, вверх/вниз
 
* движение вверх/вниз с нажатой cредней кнопкой = движение камеры вперед/назад
 
* движение вверх/вниз с нажатой cредней кнопкой = движение камеры вперед/назад
Строка 303: Строка 298:
  
 
=== Базовая OGF_DX-версия (ogf_dx?.exe) ===
 
=== Базовая OGF_DX-версия (ogf_dx?.exe) ===
 +
 
* стрелки и мышь = движение
 
* стрелки и мышь = движение
* F1 = 16-бит текстуры в(ы)кл
+
* F2 - меняет видеорежим, рендерер и проч.
* F2 = меняет видеорежим, рендерер и проч.
+
* O, P, K - меняет сглаживание
* F3 = фильтрация текстур в(ы)кл.
 
* F6 = циклически меняет масштаб текстур (вниз)
 
* O, P = меняет сглаживание (flat/gouraud)
 
 
* Y = "погода": типовой, нейтральный, красный, оранжевый или "лунный" свет
 
* Y = "погода": типовой, нейтральный, красный, оранжевый или "лунный" свет
* 1, 2, 3 = LOD=0, LOD--, LOD++
+
* < + > на цифровой клавиатуре = время + 15 мин
* 4 = ValidateDevice
+
* < - > на цифровой клавиатуре = время - 15 мин
* 7, +, < + > на цифровой клавиатуре = время +15 мин
+
* < * > на цифровой клавиатуре = меняет скайбокс (sky_hdr_test_cube, sky_?_cube (? = 0..25), ...)
* 8, -, < - > на цифровой клавиатуре = время -15 мин
 
* B, < * > на цифровой клавиатуре = меняет цвет фона
 
 
* F11 = помещает камеру в 0.0.0
 
* F11 = помещает камеру в 0.0.0
 
* F12 = центрирует модель  
 
* F12 = центрирует модель  
  
 
=== Альтернативная OGF_DX-версия (ogf_dx?a.exe) ===
 
=== Альтернативная OGF_DX-версия (ogf_dx?a.exe) ===
 +
 
* стрелки, PGUP, PGDOWN, Q, W, E, A, S, D и мышь = движение
 
* стрелки, PGUP, PGDOWN, Q, W, E, A, S, D и мышь = движение
 
* HOME = сброс камеры
 
* HOME = сброс камеры
* F1 = 16-бит текстуры в(ы)кл.
+
* F2 - меняет видеорежим, рендерер и проч.
* F2 = меняет видеорежим, рендерер и проч.
+
* O, P, K - меняет сглаживание
* F3 = фильтрация текстур в(ы)кл.
 
* F6 = циклически меняет масштаб текстур (вниз)
 
* O, P = меняет сглаживание (flat/gouraud)
 
 
* Y = "погода": типовой, нейтральный, красный, оранжевый или "лунный" свет
 
* Y = "погода": типовой, нейтральный, красный, оранжевый или "лунный" свет
* T = свет от фонарика (FFP), освещение от камеры (SM20) в(ы)кл.
+
* T = свет от фонарика в(ы)кл.
 
* R = Обычный(FFP) -> dot3bump mul -> dot3bump add render.
 
* R = Обычный(FFP) -> dot3bump mul -> dot3bump add render.
* TAB = Режимы наложения текстур (SM20).
+
* < + > на цифровой клавиатуре = время + 15 мин
* 1, 2, 3 = LOD=0, LOD--, LOD++
+
* < - > на цифровой клавиатуре = время - 15 мин
* 4 = ValidateDevice
+
* < * > на цифровой клавиатуре = меняет скайбокс (sky_hdr_test_cube, sky_?_cube (? = 0..25), ...)
* +, < + > на цифровой клавиатуре = время +15 мин
 
* -, < - > на цифровой клавиатуре = время -15 мин
 
* B, < * > на цифровой клавиатуре = меняет цвет фона, скайбокс (sky_hdr_test_cube, sky_?_cube (? = 0..25), ...)
 
 
* F11 = помещает камеру в 0.0.0
 
* F11 = помещает камеру в 0.0.0
 
* F12 = помещает камеру в центр модели
 
* F12 = помещает камеру в центр модели
  
 
== Установка и использование ==
 
== Установка и использование ==
Распаковываем ресурсы игры, используя [[converter.exe]] из [[xray-re tools]] (xray.codeplex.com, bitbucket.org/stalker/xray_re-tools/):
+
 
 +
Распаковываем ресурсы игры, используя converter.exe из [[xray_re tools]]:
 
<syntaxhighlight lang="winbatch">converter.exe -unpack -2215 gamedata.db0
 
<syntaxhighlight lang="winbatch">converter.exe -unpack -2215 gamedata.db0
 
converter.exe -unpack -2945 gamedata.db0
 
converter.exe -unpack -2945 gamedata.db0
Строка 358: Строка 345:
  
 
=== Как (где) ищется конфигурация ogfviewer.cfg? ===
 
=== Как (где) ищется конфигурация ogfviewer.cfg? ===
 +
 
* В каталоге, откуда запустили
 
* В каталоге, откуда запустили
 
* В каталоге, где лежит ogfviewer.exe
 
* В каталоге, где лежит ogfviewer.exe
  
 
=== Как ищутся текстуры? ===
 
=== Как ищутся текстуры? ===
 +
 
* При отсутствии '''ogfviewer.cfg''' — ''gamedata\textures''
 
* При отсутствии '''ogfviewer.cfg''' — ''gamedata\textures''
 
* Если есть '''ogfviewer.cfg''' — пути по тексту, разделенные ''\0''
 
* Если есть '''ogfviewer.cfg''' — пути по тексту, разделенные ''\0''
Строка 371: Строка 360:
  
 
=== Как ассоциировать файлы с ogfviewer? ===
 
=== Как ассоциировать файлы с ogfviewer? ===
 +
 
'''''Требуются права администратора!'''''<br />
 
'''''Требуются права администратора!'''''<br />
 
Отредактировать REG\instreg.txt, исправив там путь к файлу, затем выполнить
 
Отредактировать REG\instreg.txt, исправив там путь к файлу, затем выполнить
Строка 376: Строка 366:
  
 
=== Как убрать ассоциацию c ogfviewer? ===
 
=== Как убрать ассоциацию c ogfviewer? ===
 +
 
'''''Требуются права администратора!'''''<br />
 
'''''Требуются права администратора!'''''<br />
 
Выполнить
 
Выполнить
Строка 381: Строка 372:
  
 
== Как установить 3ds Max-плагин ==
 
== Как установить 3ds Max-плагин ==
 +
 
Скопировать '''xrMtMax*.dlt''' и '''OGFViewer.cfg''' в папку ''3dsmax\plugins''.
 
Скопировать '''xrMtMax*.dlt''' и '''OGFViewer.cfg''' в папку ''3dsmax\plugins''.
  
== Как просматривать уровни ==
+
== Как смотреть уровни ==
 +
 
 
Предположим, что имя нашего уровня — '''testers_mp_railroad'''
 
Предположим, что имя нашего уровня — '''testers_mp_railroad'''
 +
 
=== Первый вариант — через ogf-экспорт ===
 
=== Первый вариант — через ogf-экспорт ===
 
* Для конвертации используем parse_lev.exe.
 
* Для конвертации используем parse_lev.exe.
Строка 413: Строка 407:
  
 
== Как конвертировать ogf и omf-анимации в smd ==
 
== Как конвертировать ogf и omf-анимации в smd ==
 +
 
Предположим, что имя нашей модели — '''сat.ogf'''
 
Предположим, что имя нашей модели — '''сat.ogf'''
  
Строка 428: Строка 423:
  
 
== Методичка по консольным утилитам ==
 
== Методичка по консольным утилитам ==
 +
 
Утилита: '''dx7capsG'''<br />
 
Утилита: '''dx7capsG'''<br />
 
Запуск: <code>dx7capsG</code><br />
 
Запуск: <code>dx7capsG</code><br />
Строка 457: Строка 453:
 
* '''имя_модели.ext''': XRay OGF v4 (составная модель, склеивается так: <code>copy /b cat.ogf + cat_animation.omf</code>)<br />
 
* '''имя_модели.ext''': XRay OGF v4 (составная модель, склеивается так: <code>copy /b cat.ogf + cat_animation.omf</code>)<br />
 
Результат: конверсия в каталог ''/smd'' анимаций (формат [https://developer.valvesoftware.com/wiki/Studiomdl_Data Valve SMD]), '''reference.smd''' — базовая модель
 
Результат: конверсия в каталог ''/smd'' анимаций (формат [https://developer.valvesoftware.com/wiki/Studiomdl_Data Valve SMD]), '''reference.smd''' — базовая модель
----
 
Утилита: '''ogf2pov'''<br />
 
Запуск: <code>ogf2obj имя_модели.ogf [ имя_модели.pov ] [ > parse.log ]</code><br />
 
Если имя_модели.obj опущено, то показывает структурированный дамп содержимого модели на экран, при указании parse.log пишется в файл, иначе конверсия в имя_модели.pov ( povray формат )
 
----
 
Утилита: '''ogf2x'''<br />
 
Запуск: <code>ogf2obj имя_модели.ogf [ имя_модели.x ] [ > parse.log ]</code><br />
 
Если имя_модели.obj опущено, то показывает структурированный дамп содержимого модели на экран, при указании parse.log пишется в файл, иначе конверсия в имя_модели.x ( x формат )
 
 
----
 
----
 
Утилита: '''parse_lev'''<br />
 
Утилита: '''parse_lev'''<br />
Строка 474: Строка 462:
 
* режим '''0/8''': не конвертировать, только дамп? — нет/да
 
* режим '''0/8''': не конвертировать, только дамп? — нет/да
 
Режимы складываются.
 
Режимы складываются.
При указании '''parse.log''' ведется запись лога в файл.
+
При указании '''parse.log''' ведется запись в файл.
 
----
 
----
 
Утилита: '''parse_msh''', '''parse_ogf''', '''parse_obj'''<br />
 
Утилита: '''parse_msh''', '''parse_ogf''', '''parse_obj'''<br />
Строка 495: Строка 483:
 
* Режим '''0/8''': не конвертировать, только дамп? — нет/да
 
* Режим '''0/8''': не конвертировать, только дамп? — нет/да
 
Режимы складываются.
 
Режимы складываются.
При указании parse.log лог пишется в файл.
+
При указании parse.log пишется в файл.
 
----
 
----
 
Утилита: '''lzhuf'''<br />
 
Утилита: '''lzhuf'''<br />
Строка 504: Строка 492:
 
Запуск: <code>make_box < к-во кубов в стороне > < имя_модели.оgf ></code><br />
 
Запуск: <code>make_box < к-во кубов в стороне > < имя_модели.оgf ></code><br />
 
Результат: создает "коробочный ландшафт" x*x*x для окклюжен тестирования, бенчмарков
 
Результат: создает "коробочный ландшафт" x*x*x для окклюжен тестирования, бенчмарков
----
 
Утилита: '''parse_spw'''<br />
 
Запуск: <code>parse_spw [ имя_cпавна.spawn ] [ имя_уровня.ogf ] [ > parse.log ]</code><br />
 
Результат: дамп/конверсия объектов спавна в имя_уровня.ogf ( xray ogf формат ). <br />
 
При указании parse.log лог пишется в файл.
 
 
----
 
----
 
Утилита: '''make_box2'''<br />
 
Утилита: '''make_box2'''<br />
Строка 536: Строка 519:
  
 
== История изменений ==
 
== История изменений ==
 +
 
'''Изменения (19.02.2010)''':
 
'''Изменения (19.02.2010)''':
 +
 
* OGFViewer: Масштабирование не вызывает геометрических искажений
 
* OGFViewer: Масштабирование не вызывает геометрических искажений
 
* OGFViewer: Оси XYZ yвеличены до 5 единиц
 
* OGFViewer: Оси XYZ yвеличены до 5 единиц
Строка 548: Строка 533:
  
 
'''Изменения (21.02.2010)''':
 
'''Изменения (21.02.2010)''':
 +
 
* OGFViewer: Исправлено падение программы при отмене открытия OGF-файла
 
* OGFViewer: Исправлено падение программы при отмене открытия OGF-файла
 
* OGFViewer: Исправлена точность вращения по левой кнопке мыши
 
* OGFViewer: Исправлена точность вращения по левой кнопке мыши
Строка 554: Строка 540:
  
 
'''Изменения (28.02.2010)''':
 
'''Изменения (28.02.2010)''':
 +
 
* OGFViewer: Исправлено 8-bit/4-bit OpenGL render
 
* OGFViewer: Исправлено 8-bit/4-bit OpenGL render
 
* OGFViewer: Исправлена точность вращения
 
* OGFViewer: Исправлена точность вращения
Строка 563: Строка 550:
  
 
'''Изменения (06.03.2010)''':
 
'''Изменения (06.03.2010)''':
 +
 
* OGFViewer: Оптимизация ( удаление невидимых граней, glVertex3fv(), glDrawElements() )
 
* OGFViewer: Оптимизация ( удаление невидимых граней, glVertex3fv(), glDrawElements() )
 
* OGFViewer: Показываем "вменяемую" ошибку glTexImage2D()
 
* OGFViewer: Показываем "вменяемую" ошибку glTexImage2D()
Строка 1073: Строка 1061:
 
Это мини-версия пакета!
 
Это мини-версия пакета!
  
'''Изменения (29.12.2012)''':<br />
+
'''Изменения (29.12.2012)''':
 
[New features]
 
[New features]
 
* ALL: Возвращены 64-битные версии. :)
 
* ALL: Возвращены 64-битные версии. :)
Строка 1109: Строка 1097:
 
Это полная версия пакета!
 
Это полная версия пакета!
  
'''Изменения (30.06.2013)''':<br />
+
== Планы ==
[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)''':<br />
 
[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
 
* Чтение анимаций (ogf,omf), секций S_BONE_NAMES, S_IKDATA, S_MOTIONS
 
* Чтение анимаций (object,skl,bones)
 
* Чтение анимаций (object,skl,bones)
Строка 1161: Строка 1104:
 
* Чтение level из билдов 1xxx (XRLC формат 0x0C и ранее)
 
* Чтение level из билдов 1xxx (XRLC формат 0x0C и ранее)
 
* Импорт/экспорт *.lwo (LightWave3D)
 
* Импорт/экспорт *.lwo (LightWave3D)
* Экспорт плагин для 3DSMax
+
* Импорт/экспорт плагин для 3DSMax, Maya
* Импорт/экспорт плагин для Maya
 
 
* Экспорт в *.object (XRay SDK), *.ma (Maya ASCII)
 
* Экспорт в *.object (XRay SDK), *.ma (Maya ASCII)
 
* Чтение level DS2 Engine 'You are empty', Orion engine v1 'Метро-2'
 
* Чтение level DS2 Engine 'You are empty', Orion engine v1 'Метро-2'
* Чтение моделей уровней Cryostasis, Singularity, Unreal Engine 3 (Dishonored, etc.)
+
* Чтение моделей уровней Cryostasis, Singularity
 
* Реализация FSAA, lightmap generation, guardband clipping, deferred render.
 
* Реализация FSAA, lightmap generation, guardband clipping, deferred render.
 
* Поддержка UNICODE.
 
* Поддержка UNICODE.
Строка 1171: Строка 1113:
 
* Рендерер на базе irrlicht, ogre.
 
* Рендерер на базе irrlicht, ogre.
 
* INI-фaйл для OGFViewer (meshtool.ini?)
 
* INI-фaйл для OGFViewer (meshtool.ini?)
* Нативные версии для Windows (alpha, mips, ppc, WinCE, arm)
+
* Нативные версии для Windows (ia64, alpha, mips, ppc, WinCE, arm)
 
* Мультитекстурирование, расчет лайтмапов, улучш. освещение (шейдеры, FFP)
 
* Мультитекстурирование, расчет лайтмапов, улучш. освещение (шейдеры, FFP)
  
 
== Использованные материалы и благодарности ==
 
== Использованные материалы и благодарности ==
 +
 
* batya: исходники OGFViewer 1.0.2 (26 Nov 2006)
 
* batya: исходники OGFViewer 1.0.2 (26 Nov 2006)
 
* batya: исходники LevelEditor 0.0.2 (07 Apr 2007)
 
* batya: исходники LevelEditor 0.0.2 (07 Apr 2007)
Строка 1250: Строка 1193:
 
* Nsr.pdf
 
* Nsr.pdf
 
* premier-press-beginning-direct3d-game-programming.pdf
 
* premier-press-beginning-direct3d-game-programming.pdf
* DUMPCAPS: http://d3dcaps.chris.dragan.name/
+
 
* http://code.google.com/p/cut-x-ray-project/
+
<!-- 2012.12.xx -->
* https://bitbucket.org/stalker/xray_re-tools/
 
* https://bitbucket.org/stalker/weather_cycle_adjuster/
 
* http://xray-engine.org/
 
* ODE: www.ode.org/
 
* bugtrap.dll: http://www.codeproject.com/Articles/14618/Catch-All-Bugs-with-BugTrap
 
* practical_per_pixel_effects.pdf
 
* D3DTutorial1_Shaders.pdf
 
* Game Coding Complete, Fourth Edition.pdf
 
* Wordware Publishing, Inc - DirectX 9 Graphics. The Definitive Guide to Direct3D.pdf
 
* Chapter_06_Textbook.pdf
 
<!-- 2013.12.xx -->
 
  
 
[[Категория:Просмотрщики моделей]]
 
[[Категория:Просмотрщики моделей]]

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии GNU Free Documentation License 1.3 или более поздняя (см. xrWiki:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)