• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток!
    Стремитесь принять участие в ежегодном литературном конкурсе от "Ордена Хранителей"! В этот раз темой конкурса являются тайные организации. На днях организатор продлил сроки сдачи работ, вы ещё можете успеть! Ждем именно вас.

    Ссылка на конкурсную тему - тык

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.438
Благодарности
4.785
Баллы
625
  • Первое сообщение
  • #1
1767600363729.png

RU EN

 
Последнее редактирование:

Orc Hunter


Модостроитель
Регистрация
12 Окт 2013
Сообщения
1.269
Благодарности
1.671
Баллы
305
Привет, а возможно ли в первой готике сделать небо как во второй?
Я имею ввиду опцию
zSkyDome=1
; ... here you can define if you want a smooth sky sphere instead of a sky plane. enter a "0" here if you want more performance. (default:1)
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.882
Баллы
420
Туман сначала нормальный сделайте, а потом небо ковыряйте. Я имею ввиду те ситуации, когда сквозь дыры в ландшафте светятся облака.
В первой части тем небо и лучше, что оно не попадает в поле прямого зрения. Поэтому затуманивание выглядит аккуратнее.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.438
Благодарности
4.785
Баллы
625
Туман сначала нормальный сделайте, а потом небо ковыряйте. Я имею ввиду те ситуации, когда сквозь дыры в ландшафте светятся облака.
В первой части тем небо и лучше, что оно не попадает в поле прямого зрения. Поэтому затуманивание выглядит аккуратнее.
Это и есть проблема неба. 3D объекты при воздействии на них тумана не становятся прозрачными, они просто красятся в бэкграундный цвет. И рисуется это все поверх скайдома, который рендерится совершенно отдельно и по сути замещает собой задний фон.
 

Orc Hunter


Модостроитель
Регистрация
12 Окт 2013
Сообщения
1.269
Благодарности
1.671
Баллы
305
Может есть какой-то способ заменить плоское небо первой готики на сферу? Во второй готике я нашел SKYDOME_COLORLAYER.MSH, SKYDOME_LAYER1.MSH и т.д. В первой нет даже плоских SKYDOME_LAYER1.MSH и SKYDOME_LAYER2.MRM. Как там это работает?
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.438
Благодарности
4.785
Баллы
625
а потом небо ковыряйте.
Вот пример того, как рендерится небо СО скайдомом и БЕЗ:
upload_2018-10-10_1-0-47.png
upload_2018-10-10_1-15-30.png
upload_2018-10-10_1-1-8.png
upload_2018-10-10_1-15-40.png

Механизм такой:
upload_2018-10-10_1-9-42.png



Может есть какой-то способ заменить плоское небо первой готики на сферу?
Достаточно просто взять сферу из второй части. Но мирись с тем, что будешь наблюдать за контурами локации на фоне отсечения полигонов.
 
Последнее редактирование:

Orc Hunter


Модостроитель
Регистрация
12 Окт 2013
Сообщения
1.269
Благодарности
1.671
Баллы
305
@Gratt, @Gratt,
Вот пример того, как рендерится небо СО скайдомом и БЕЗ:

Механизм такой:




Достаточно просто взять сферу из второй части. Но мирись с тем, что будешь наблюдать за контурами локации на фоне отсечения полигонов.
А как мне это сделать? Можно было бы взять и заменить оригинальную плоскую модель, но я не знаю имени файла в первой готике.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.438
Благодарности
4.785
Баллы
625
А как мне это сделать? Можно было бы взять и заменить оригинальную плоскую модель, но я не знаю имени файла в первой готике.
Руками. Хукаешь zCSkyLayer::RenderSkyBox, загружаешь меш неба и рендеришь его.
Г2 подгружает skyDome_layer + numLayers + .3ds, либо skyDome_colorlayer.3ds, без понятия откуда он их берет.
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.882
Баллы
420
Это и есть проблема неба. 3D объекты при воздействии на них тумана не становятся прозрачными, они просто красятся в бэкграундный цвет. И рисуется это все поверх скайдома, который рендерится совершенно отдельно и по сути замещает собой задний фон.
Неправильно это работает. Не учитываешь еще область видимости. Я уже писал об этом в теме системпака. Для наглядности в ближнем поле покажу:
farclip.jpg
Видимость 20%, смотрю в пещеру и вижу чистое небо. То же самое при видимости 300%: там, где неровности карты выступают за пределы видимости, они отсекаются и через них проглядывает небо как ни в чем не бывало, что некорректно! Даже на твоих скринах есть такие области. В Готике 1 небо плоское. Поэтому в прямой видимости оно просвечивать не будет. А будет просто заливка бэкграунда, которая в ini-файле через RGB код задается.
Посмотрите любые нормальные игры. Нигде такой фигни нет, как в Готике 2.

Проблема у них еще с альфа-версии игры:
alpha.jpg
Смотри на задники: небо тут не плоское и светится через дыры в области видимости. Хотя в природе небо должно затуманиваться. Такое впечатление, что неправильно работает механизм затуманивания "скайбокса".

Итог - без скайда в Готике 2 картинка более реальная на самом деле.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.438
Благодарности
4.785
Баллы
625
Итог - без скайда в Готике 2 картинка более реальная на самом деле.
Потому что готика понимает только линейное закуривание и не может выборочно затуманить конкретную кольцевидную область скайдома. Без изменения алгоритмов отрисовки существует два варианта. Уйти от идеи купола и оставить только облака (тем не менее они также будут просвечивать) или обрезать все его полигоны в районе горизонта.
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.882
Баллы
420
Ну вот, все сходится. Или сделать плоское небо, как в Готике 1. Я даже думаю, что они именно поэтому его и сделали плоским в свое время. А потом какая-то светлая голова вернула купол.
Ну вообще рендер у игры безнадежно устарел, да.
 

Orc Hunter


Модостроитель
Регистрация
12 Окт 2013
Сообщения
1.269
Благодарности
1.671
Баллы
305
Руками. Хукаешь zCSkyLayer::RenderSkyBox, загружаешь меш неба и рендеришь его.
Г2 подгружает skyDome_layer + numLayers + .3ds, либо skyDome_colorlayer.3ds, без понятия откуда он их берет.
Просто мои навыки еще не настолько хороши, у меня не выходит написать этот код, вы можете мне помочь сделать это?
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.438
Благодарности
4.785
Баллы
625
Просто мои навыки еще не настолько хороши, у меня не выходит написать этот код, вы можете мне помочь сделать это?
Разве что очень потом. Настраивать купол это не 10 минут...
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.882
Баллы
420
Сколько за темами слежу, наших "модостроителей" волнует что угодно, любая несущественная фигня, но только не создание нормальной основы мода.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.438
Благодарности
4.785
Баллы
625
Сейчас пока копаюсь с установщиком и прочей мелочью решил добавить такую штуку. Для того, чтобы корректно работало приведение типов через dynamic_cast, необходимо соответствие RTTI type descriptor'а кастуемого объекта и конкретного класса. Пример:
C++:
oCItem* pItm = dynamic_cast<oCItem*>(pVob)
Класс oCItem будет искать соответствующий дескриптор внутри модуля dll, а для vob - внутри exe. Через полученные указатели на дескрипторы произведется поиск общего базового класса в иерархии наследования. Но если тип плагина и тип объекта описываются разными модулями, то можно получить Null вместо валидного указателя на объект (если он существует). Движком предусмотрена такая ситуация и для обхода подобных несоответствий существует функция zDYNAMIC_CAST<T>(zCObject*), но у нее есть минус. Она работает в пределах zCObject и его производных. По этому было решено немного доработать механизм и сделать универсальный кастер по всем полиморфным классам ZenGin. Грубо говоря мы даем понять движку, что класс dll:: oCItem соответствует exe:: oCItem и приводить мы будем согласно дескриптору именно exe модуля. Тоже условие истинно для vob, в том числе если создать его в dll, поскольку наши конструкторы запрашивают инициализацию объектов у движка. Синтакся примерно как у zDYNAMIC_CAST:
C++:
template<typename T, typename O>
T* RTTIDynamic_cast( O object )

// T - возвращаемый тип
// O - тип приводимого объекта
// object - приводимый объект
// Пример:
oCItem* pItm = RTTIDynamic_cast<oCItem>( pVob );
 
Последнее редактирование:

Orc Hunter


Модостроитель
Регистрация
12 Окт 2013
Сообщения
1.269
Благодарности
1.671
Баллы
305
А можно ли реализовать на движке первой Готики раскачивание вобов на ветру, волны на воде, блик на воде, тени от облаков, так как это сделано в Готике 2?
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.438
Благодарности
4.785
Баллы
625

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.377
Благодарности
7.861
Баллы
995
@Gratt, с остальным тоже дофига где и чего описывать придется.. ::)
 
Сверху Снизу