scn GrupGECKScript
Begin WorkModMode
    if E==ASA
     G.E.C.K. Enable
    endif
end
перевод со "скриптового"
Начало блока
Если E равно ASA
группа GECK активна
конец проверки
конец блока

CASPER


Живу на даче.
Солнце, речка,
 лес,цветы,
клубника и вишня.
И никакого Интернета
Красота!
Galko

         G                         E                         C                        K                                                                                                                  

Главная | Мой профиль | Выход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Graf  
Форум » ИНФОРМАЦИОННЫЙ СЕКТОР » СТАТЬИ, УРОКИ, ИНСТРУКЦИИ И ТП. » LOD (Генерация LOD и всё что найдем по этому вопросу)
LOD
KAINДата: Среда, 18.05.2011, 19:07 | Сообщение # 1
Генералисимус
Группа: Администраторы
Сообщений: 442
Статус: Offline
Введение

Диалоговое окно World LOD используется для генерации LOD ландшафта и LOD геометрии строений для мира.
Поля данных и Кнопки

Worldspace list: Список всех мировых пространств.
Worldspace Stats: Имя в редакторе, имя в игре, ID формы, количество "кусков" LOD ландшафта и количество ячеек.
Generate Terrain Meshes: Создает сетку ландшафта для мира основываясь на локальной геометрии земли.
Generate Terrain Texture: Создает текстуры и карты нормалей для LOD ландшафта, так же отталкиваясь от локальных данных земли.
Chop Terrain Texture: Позволяет вам воспользоваться нарисованной вручную текстурой размером до 8192х8192 вместо построения текстуры LOD ландшафта.
Combine Generated and Handpainted Terrain Textures(Комбинировать сгенерированную текстуру и текстуру созданную вручную):
Generate Objects:Создает LOD геометрию и карты текстур для всех объектов-ссылок в мире, которые обозначены как видимые на расстоянии.
Generate Trees (Генерация деревьев)

Примечания
Terrain Mesh Generation (Генерация Сетки Ландшафта)

Время, которое тратит GECK на генерацию LOD сетки напрямую зависит от количества "кусков" земли, которые нужно генерировать, которые в свою очередь зависят от количества ячеек в вашем пространстве мира. Для маленьких миров (до двадцати "кусков") может потребоваться всего пару минут; для больших пространств (20-50 кусков) времени может потребоваться 30-60 минут; для пространств в которых больше 50-ти кусков в основном тратиться несколько часов. Для генерации всей карты высот, созданной в редакторе карты высот (примерно 1300 кусков) потребуется 2-3 недели генерации в безостановочном режиме.
Во время процесса генерации сетки, может показаться, что GECK завис. В некоторых случаях, это может быть правдой; в большинстве же случаев он продолжает генерировать новую сетку и только выглядит недоступным. (Вы можете проверить состояние GECK в диспетчере задач, наблюдая за тем, использует GECK какие-либо системные ресурсы или нет. При генерации LOD сам GECK может использовать до 100% ресурсов вашей системы). Если во время LOD генерации GECK завис или вылетел на рабочий стол, запустите его еще раз и повторите процесс. Вся сгенерированная LOD сетка будет сохраняться из предыдущего сеанса программы и редактор продолжит процесс с места, в котором остановился.

Terrain Texture Generation (Генерация текстур ландшафта)

В настоящий момент, вся функциональность создания текстур, вначале создает исходные TGA текстуры, которые после этого нуждаются в проходе через процесс построения GECK, чтобы в итоге, стать видимыми в игре. Когда генерация LOD тек-стур будет закончена, вы найдете сгенерированные LOD текстуры в формате DDS за пределами директории Fallout3 в папке Source(Источник)\Textures TGA\landscape\LOD\(папка с названием вашего мира).
Для того чтобы игра обнаружила ваши сгенерированные текстуры, вы должны скопировать эту папку и поместить ее в Data\Textures\Landscape\LOD\папка. Папку Diffuse вы можете удалить, а название папки DiffuseGenerated поменять на Diffuse или скопировать файлы из папки DiffuseGenerated в папку Diffuse. (Игра будет искать текстуры в папке Diffuse, но GECK по умолчанию не помещает эти текстуры в нужную папку - (Часто складывается впечатление, что GECK делали одни чуваки, а игру другие... прим. Vel)).

LOD Object Generation (Генерация LOD объектов)

Для генерации LOD объектов, вы должны обеспечить GECK необходимыми сетками LOD и текстурами.
Сетки LOD обычно находятся в той же папке, где и оригинальные, но с окончанием "_lod.nif". Если вы еще этого не сделали, извлеките эти файлы из вашего mesh.bsa и разместите из в нужной папке. (Вообще-то, LOD сетка будет только у тех объектов, у которых установлен флаг Visible When Distant - Видимый на расстоянии).
LOD текстуры можно получить двумя способами: открыв LOD mesh (_lod.nif) в NifSkope и, раскрыв NiTiStrips найти BSShaderTextureSet (список текстур вы увидите в окне Block Details возле иконок фиолетовых цветков), или запустить процесс Generate Object и записав пропущенные текстуры, которые будут перечислены в окне с предупреждением. (После размещения всех необходимых текстур, вам придется перезапустить эту команду для генерации объектов). Вам нужно будет извлечь из архива и Diffuse карту и Normal карту, конвертировав их после этого в формат TGA, нужный для процесса генерации (смотрите ниже).
Все текстуры для LOD объектов должны быть в формате TGA, иначе редактор не сможет их обработать. Для конвертирования ваших текстур DDS в формат TGA от-крой их в программе редактора изображений, например в Irfanviewor, в GIMP и выберите команду "Save as" TGA. (Настройки по умолчанию появляются при работе с GIMP).
Конвертированные текстуры TGA должны быть помещены в папку Source\Textures TGA\папка, использующая такую же структуру папок, которую использует игра. Например, если ваши текстуры находятся в папке Data\Textures\architecture\urban\, файлы TGA должны быть размещены в папке Source\Textures TGA\architecture\urban. (Папка Source\Textures TGA\ размещается за пределами директории игры Fallout3 в главной папке Bethesda Softworks).
После того как ваши текстуры будут извлечены и конвертированы, запустите команду Generate Objects. Редактор поместит сгенерированные текстуры в вашу папку Source\Textures TGA\landscape\LOD\(папка_по_названию_вашего_мира). Скопируйте сгенерированные текстуры в соответствующую папку Data\Textures\Landscape\LOD\папка. (Если вы забудете о необходимости помещать здесь текстуры сгенерированных объектов, эти объекты в игре будут визуализироваться фиолетовым цветом).

LOD деревья

Мир столичной пустоши находится на высоте примерно 10500 по оси Z. Новый мир вы всегда должны создавать на высоте больше этой координаты; как минимум на 3000 выше, чем 10500 по оси Z. Иначе, при изменении мира, вы можете получить плавающие в воздухе или находящиеся под землей деревья (LOD).

LOD вода

LOD генерируется только для ландшафта, находящегося выше уровня воды. Если с другой стороны большой массы воды нет LOD ландшафта, под водой будет видно небо, а морское дно будет заканчиваться на краю области видимости. Также воз-можно появление видимого шва между плоскостью воды и LOD водой. По этим причинам, большие пространства воды лучше заканчивать видимой землей.
Помните еще и о том, что при создании LOD для мира с авто-водой, иногда вы можете получить большие "дыры" в поверхности LOD воды, которые совсем не просто устранить.
Проверяйте соответствие вашей LOD воды с типом воды вашего пространства мира, чтобы избежать неприятных различий в месте соединения плоскости воды и LOD воды. Тип воды и тип LOD воды устанавливаются в диалоговом окне World Spaces.

Регенерация данных LOD

Перед повторным созданием LOD данных для пространства мира, важно удалить все существующие данные из папки lod. Команда генерации LOD не будет регенерировать существующие блоки LOD: эти блоки должны быть удалены из папки LOD вашего мира, чтобы редактор смог их регенерировать. Если вы изменили количество ячеек в своем мире (увеличив их), забыв удалить эти файлы приведет к тому, что в результате LOD будет выдавать ошибки в вашем моде. (Это справедливо для сетки ландшафта и не всегда относится к другим типам LOD генерации. Для выяснения требуется дополнительное тестирование).
LOD информация сохраняется в следующих папках:
data\meshes\landscape\lod\ваш_мир\ в котором находятся все сетки ландшафта и до двух подпапок: соответственно для блоков и деревьев LOD объектов и LOD деревьев.
data\textures\landscape\lod\ваш_мир\ в котором находится диффузный блок, сгенерированный диффузный (если вы не конвертировали его в папку диффузного блока), блок нормалей и возможно, блоки для LOD объектов.
data\LODSettings (удаляйте только те файлы, которые относятся к вашему миру).
source\textures TG\landscape\lod\ваш_мир\ в котором находятся все сгенерированные текстуры ландшафта, объектов и деревьев, которые вам нужно переместить или скопировать в вашу папку с текстурами для первого прохода генерации. Папка источника находится в вашей главной папке Bethesda Softworks.
 
KAINДата: Среда, 18.05.2011, 19:39 | Сообщение # 2
Генералисимус
Группа: Администраторы
Сообщений: 442
Статус: Offline
Сам учился по статье (выше) (думаю переводчик Князев Валентин (Vel - Вэл), давно нашёл эту статью на каком то сайте, но без указания авторства. Но в статье есть такая строчка:
- (Часто складывается впечатление, что GECK делали одни чуваки, а игру другие... прим. Vel).
Vel, он же Князев Валентин автор большого тутора по GECK 'Fallout 3 GECK - Help (Русский - Full)'

Для нас главное знать, как "подготовится" к генерации LOD и где разместить полученные результаты.

В WorldCell Главного меню создаём новый мир (я не мудрю, а просто переписываю данные из готового игрового мира). Потом при необходимости меняю высоту воды, климат и тп.
AAATestWorld - название моего мира. Все данные генерации будут сохранятся в папках с таким названием.

Затем ставлю временные двери телепорты из Махаве в свой мир.

Создаю ландшафт, наношу текстуры земли, размещаю объекты - каньоны, здания, технику и тп.
В этом примере, мы имеем гору, фрагменты скал, два здания и жд.вагон.

1. здание игровой барак Barracks01 - у него галка Visible When Distant (Видим из далека) включена по умолчанию. Значит в bsa архиве рядом с основным nif Barracks01.nif есть LOD nif (упрощённая модель с упрощёнными текстурами). Про разницу между основным и lod nif подробней напишу ниже.

2. здание игровой разрушенной постройки HouseRuined04a - галка Visible When Distant не активна. Стало быть Lod nif в архиве нет.

3. жд.вагон - изменённый объект (сделана открытая дверь) и сделана упрощённая lod модель. Всё лежит в папке мода Data\Meshes\AAATestWorld\venicles\
TGMBoxCarOpen - nif и TGMBoxCarOpen_lod. Галка Visible When Distant активна, но не включена. (не забываем включать).

Примечание: Как только "рядом" с nif, "ложится"одноимённый _lod.nif, галка Visible When Distant, для этого объекта - становится активной.
Рядом, так скажем относительно, например в папке мода лежит объект и Lod для него, или объект в архиве игры, а лод для него в Data игры, с сохранением пути объекта из архива.





В этом примере мало объектов, поэтому можно сразу, перед генерацией LOD "обеспечить" GECK всем необходимым. А именно недостающими lod моделями и текстурами. А недостаёт нам HouseRuined04a_lod.nif и текстуры для него.

Для тех кто использует Max:
1. Импортировать HouseRuined04a.nif

2. Применить ко всем частям объекта сразу, или по отдельности модификатор MultiRes

3. В Generated Parameters нажать кнопку Generate, а затем в Resolution изменить (уменьшить колличество вершин) VertPersent до 50, или меньше.
Тут надо смотреть за тем, что бы сильно не "изломать" геометрию объекта.
4. Конвертировать все части в EditableMesh, слить все вершины Weld и экспортировать во временную папку. Коллизия не нужна.
Сохраняем с именем HouseRuined04a_lod.

Уменьшаем количество вершин модели, уменьшается колличество полигонов, модель упрощается.

Для тех, кто не использует Max:

Вариантом решения проблемы может быть изменения имени основного nif на _lod.nif. В NifSkope - по удалять "лишнии" блоки, декали, малозначительные элементы конструкции, мелкие детали и тп. Удалить блок коллизии, он не нужен - к lod объекту не подойти!

Так мы видим до генерации


Для генерации Terrain Mesh Generation (Генерация Сетки Ландшафта) подготовка не нужна. Поставили основные объекты, подогнали под них поверхность и можно генерировать.
Понятно, что после генерации сетки поверхности - редактировать её не стоит! Что бы потом не удивляться, когда персонаж, пробегает сквозь гору, или тонет в поверхности.
Результаты герации будут автоматически размещены на своих (правильных) местах. А именно:
В папке Data\LODSettings\TheGlowWorld.DLODSettings TheGlowWorld.DLODSettings - это файл весом 1 кб
В папке Data\Meshes\Landscape\LOD\AAAtestWorld две папки Blocks и Stinger и список из файлов AAATestWorld.Level4.X1.Y1 с координатами мира.
Про проблемы с генерацией сетки, и как понять завис GECK напрочь или просто "задумался" почитайте в статье Князева под спойлером.

С генерацией Terrain Texture Generation (Генерация текстур ландшафта) сложнее. После генерации, необходимо вручную переносить папки на нужные места.
Покрасили территорию (не более 6 текстур на одну ячейку, больше просто не получится!) запустили генерацию.
Результаты будут размещены в папке Sourсe\Textures TGA\Landscape\LOD\AAATestWorld
Blocks - пустая папка
Deffuse - пустая папка
DiffuseGenerated - папка со списком файлов текстур в формате dds
Normals - папка со списком файлов текстур в формате dds (синии карты нормалей)

Папку Sourсe ищите в папке Games, или в том месте где находится "корневая"(основная) папка игры.

Теперь "поработаем":
1 Удаляем папку Deffuse
2. Меняем имя папки DiffuseGenerated, на Deffuse (или переносим содержимое из папки DiffuseGenerated в папку Deffuse, а папку DiffuseGenerated - удаляем)
3. Копируем папку AAATestWorld, и размещаем в папке игры - Data\Textures\Landscape\LOD (если таких папок нет - создаём)

Генерируем объекты LOD Object Generation (Генерация LOD объектов) - вот здесь самая работа, и чем больше объектов тем больше возни с текстурами и lod nif.

 

Плохо, что для генерации Lod объектов GECK "потребует" текстуры в формате TGA!
И ещё хуже, что он требует текстуры для всех объектов, вне зависимости от того, есть lod текстуры в архиве игры или нет. На lod текстуры в формате dds, он (GECK) просто напросто пилюёт!
И это ещё не все "радости", GECK "потребует" _lod.nif всех объектов мира с включенной галкой Visible When Distant, не взирая на то есть они в архиве игры или нет.

НАЧНЁМ С ИГРОВОГО БАРАКА, у которого галка Visible When Distant включена по умолчанию.

После запуска процесса генерации, GECK требует своё - вот так


Ошибка! Один или больше Lod блоков не могут быть созданы. Нет таких то текстур или у них неверный размер (скорее всего формат, я пробовал размеры от 512х512, до 64х64 - нормально генерируется блок текстур)

Дополнение: Всё таки и рамер то же. При использовании размера больше 512х512 будет выводится сообщение об ошибке.

Видим такое окно, видим название недостающей текстуры, видим путь к текстуре - начинаем исправлять.
1. Идём в распакованный архив с текстурами игры и находим по этому пути две текстуры dds - barracks02_lod и barracks02_lod_n

Переносим (копируем - вставляем) в папку Source по пути написанном в окне Errors - Source\TexturesTGA\architecture\barracks\
Нужные папки создаём. Внимательней с названиями, они должны быть буква в букву, как в архиве с ресурсами игры. (Я раньше назвал папку Venicles - вместо Vehicles! А потом долго ругался на редактор, а затем на себя. Ведь всё на месте, чего ему ещё надо)
2. При помощи любого графического редактора (можно при помощи программы IrfanView) открываем первый файл barracks02_lod и пересохраняем его в формате TGA,
При необходимости меняем размер (Уменьшаем если вы создаёте lod текстуру из диффузной DDS текстуры.
То же самое делаем со вторым файлом barracks02_lod_n. Одним словом меняем расширение файла на TGA,
3. Файлы dds удаляем, они больше не нужны.

В окне Errors нажимаем OK и закрываем окно. Вновь запускаем процесс генерации.
Снова выскакивает окно Errors, но в нём уже путь ко второй текстуре барака. Добавляем её в папку Source, точно так же, как делали с первыми текстурами.

При следующей генерации (зависит от колличества текстур на объекте) выскакивает окно Errors, но уже с другим содержанием:


GECK не может найти _lod.nif барака. Копируем его из архива и помещаем в папку Data игры Data\Architecture\Barracks\ barracks01_lod

Перезапускаем процесс генерации.

ДАЛЕЕ РАЗВАЛИНЫ ЗДАНИЯ, у которого галка Visible When Distant не активна.

Внимание: Галка не активна, значит все здания с ID именем HouseRuined04a В мире Мохаве не видны из далека. Если мы сделаем её активной, мы изменим все игровые объекты с этим ID именем. Поэтому меняем ID имя на своё - создаём новый объект. AAATGWHouseRuined04a

А для того, что бы её сделать активной, нам нужно созданый в Max _lod.nif разместить в папке Data игры с сохранением игрового пути к основному nif, а именно
Data\Meshes\Suburban\AAATGWHouseRuined04a_lod. Как только мы это сделаем, галка Visible When Distant у AAATGWHouseRuined04a - станет активной.

Включаем её и запускаем процесс генерации.

После сообщения об ошибке Errors - обеспечиваем GECK нужными текстурами, как делали в примере с бараком.
Только в этом случае, изменяем размер основной DDS и _N.DDS с 1024х1024, на 128Х128, и сохраняем в папке Sourse по пути написанном в окне Errors.
Так как в AAATGWHouseRuined04a_lod у нас прописаны пути к основным текстурам (лод текстур нет), для генерации Lod мы используем их уменьшенные копии, с их же именами.

И ПОСЛЕДНЕЕ ЖД.ВАГОН, у которого галка Visible When Distant активна, из-за того, что в папке мода рядом с TGMBoxCarOpen.nif, лежит TGMBoxCarOpen_lod.nif
ID TGMBoxCarOpen - это изменённый жд.вагон созданный в GECK.
Включам галку и перезапускаем процесс генерации.
С текстурами поступаем, точно так же как написано выше.

Генерация завершена. Видим такое окно LOD BLOCK GENERATION COMLETED SUCCESSFULLY
И выше Awesome! It Worked! Вася Это сработало! Вот именно Это, видимо они там то же радовались после каждой удочной генерации.

Теперь копируем из папки Sourсe\Textures TGA\Landscape\LOD\AAATestWorld папку Block и вставляем её в папку Data\\Landscape\LOD\AAATestWorld
Помните выше я писал, что она пустая - теперь полная! В ней такой блок текстур


Как вы понимаете больше текстур - больше блок.
И ещё мы генерировали Lod объекты "рывками", не факт, что это хорошо! Поэтому я удаляю всё, как при регенерации и делаю "чистовую" генерацию всего. Без остановок и перезапусков процесса.

Идём в игру смотреть. Видим


С этого расстояния Lod объекты заменились на основные


Это совсем рядом


Про перерегенерацию читайте под спойлером. Если коротко, то суть такова - не получилось сгенерировать, удаляем всё из папок LOD в Data игры. GECK не будет регенирировать новые данные, если в LOD есть старые.
Обязательно делайте регенерацию, после вылетов, зависов, глюков в процессе генерации. Удаляйте все из папок Lod с названием вашего мира - в моём примере, это файл TheGlowWorld.DLODSettings из папки LODSetting, и две папки TheGlowWorld из папок LOD в Meshes и Textures. Иначе могут быть различные глюки - одновременное отображение основного и lod объекта, мерцание текстур, чёрные пятна на текстурах, вместо прозрачных мест и тп.

И песня!
Весь мир насилья мы разрушим.
До основанья, а затем.
Мы наш, мы новый мир построим...Цитата
Цитата
 
Форум » ИНФОРМАЦИОННЫЙ СЕКТОР » СТАТЬИ, УРОКИ, ИНСТРУКЦИИ И ТП. » LOD (Генерация LOD и всё что найдем по этому вопросу)
  • Страница 1 из 1
  • 1
Поиск:


Copyright MyCorp © 2024
Бесплатный хостинг uCoz