Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Редактирование движка
GAMEINATOR forums > S.T.A.L.K.E.R. > Мастерская: создание модов для S.T.A.L.K.E.R.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97
xrModder
Dezowawe, версия Visual Studio должен быть 2010 + SP1 + патч для SP1 (KB2736182), ты всё установил?

Да и зачем тебе эти исходники, если у тебя есть Lost Alpha?
Xottab_DUTY
Цитата(RayTwitty @ 13.10.2019, 20:59) *
Цитата(Xottab_DUTY @ 13.10.2019, 16:37) *
Тогда вместо if (g_current_renderer == 1) проверяй if (!psDeviceFlags.test(rsR2))

Может тогда сразу if (psDeviceFlags.test(rsR1))

Конечно, сразу бы... Если бы флаг rsR1 там был. А его нет. rolleyes.gif
xrModder
Можно попробовать if (!psDeviceFlags.test(rsR2) != 1), но не думаю что это поможет.
rolleyes.gif
RayTwitty
Цитата(Xottab_DUTY @ 13.10.2019, 19:27) *
Цитата(RayTwitty @ 13.10.2019, 20:59) *
Цитата(Xottab_DUTY @ 13.10.2019, 16:37) *
Тогда вместо if (g_current_renderer == 1) проверяй if (!psDeviceFlags.test(rsR2))

Может тогда сразу if (psDeviceFlags.test(rsR1))

Конечно, сразу бы... Если бы флаг rsR1 там был. А его нет. rolleyes.gif

Интуитивно-понятный движок biggrin.gif
Xottab_DUTY
biggrin.gif

Ну, вообще, тут всё понятно. Первым же был сделан R1, а когда ввели R2, разработчики исходили из того, что если флаг rsR2 не стоит, значит включен рендер R1. Это в ЧН и ЗП уже больше рендеров, а тут в ТЧ только одна проверка "если не Р2, значит Р1" rolleyes.gif
xrModder
Цитата(Xottab_DUTY @ 12.10.2019, 19:10) *
Помнится, где-то на этом форуме Загольский замечал, что реализация тени ГГ от КД на динамике несколько не оптимизирована, т.к. несколько раз рендеринг происходит.

Кому интересно, этот момент я поправил и теперь тень ГГ что на статике, что на динамике использует одну и ту же функцию для рендера (унификация) и вызывается только один раз. (оптимизация) smile.gif
Коммит: https://github.com/OpenXRay/xray-16/commit/...f8a73658b2ab3fd
Там же и убрал консольную команду включения/выключения тени от ГГ, чтобы рендерилась всегда. Это не очень хорошо когда на R1 тень есть всегда, а на R2+ её можно выключить unsure.gif
опциональный вампир biggrin.gif

Для вставки в оригинальный движок надо заменить GEnv.CurrentRenderer на g_current_renderer, а GEnv.Render на ::Render (и два двоеточия тоже нужны!)

Из-за бага VS компиляция идёт неправильно (удалил временные файлы и компилировал по новому). Теперь работает. Но вот проблема: за пределы r2_sun_near тень актёра исчезает blink.gif
Zagolski
Цитата(macron @ 13.10.2019, 09:33) *
2. Двойным выполнением команды vid_restart. Прописал в ui_main_menu.script в функцию function main_menu:__init() super()

Спасибо, помогло. Теперь больше не сворачивается в маленькое окошко, что самое главное. От этого были основные проблемы. Правда, все равно остался косяк, что первое сворачивание нужно делать дважды (при первом не сворачивается).

Цитата(xrModder @ 13.10.2019, 21:31) *
Теперь работает. Но вот проблема: за пределы r2_sun_near тень актёра исчезает

Ее там не будет, тень же только в первом каскаде отрисовывается. А так да, возможны ситуации, когда ГГ стоит где-нибудь на крыше и смотрит по направлению солнца, но его тени на земле нет. Потому как она должна быть во втором или даже третьем каскаде, если совсем далеко. Но такие ситуации бывают крайне редко.
RayTwitty
Цитата(Zagolski @ 13.10.2019, 23:02) *
Но такие ситуации бывают крайне редко.

Во время закатов/рассветов часто такая тень получается. Так что желательно добавлять в другие каскады.
Dezowawe
xrModder у меня нет ЛА и Visual Studio 2010 + SP1 + патч SP1 все установлено накатывал на ТЧ 10006
Карлан
Цитата(Zagolski @ 13.10.2019, 06:43) *
Цитата(Карлан @ 12.10.2019, 23:40) *
Конкретно эта проблема связана со свопчейном DXGI.

И на этом спасибо. Хотя странно ведь, у меня рядом лежит движок, в котором я тоже ТЧ на ЗП переделывал, но там я переносил все как в ЗП через фабрику, тупо копипастой. И там никаких проблем со сворачиванием нет вообще. Лишь иной раз в оконном режиме окно инициализируется не слишком ровно, смещенным в сторону. А в остальном порядок.
А сейчас каждый запуск проблемы, если из меню свернуть игру - косяк. Разрешение там 640х480, это по дефолту в CRenderDevice::Initialize выставляется. Да и что у меня примечательно, так после первого резета становится все нормально со сворачиванием. О как.


Я же тебе говорил еще полгода назад - не надо брать рендеры из ЧН и ЗП smile.gif, там они мало того что с ошибками, так еще и под проектирование ТЧ совершенно не подходят (да-да, то самое васянство с IKinematics и т.п., о котором я тоже не раз говорил). Все нужно писать самому.

Ну ладно. Проблема запуска в мелком окне у тебя и в ЧН/ЗП связана с особенностями работы DXGI с фулскрином, она не умеет в фулскрин так как дх9. При переходе в фулскрин из сворота она сначала разворачивает в окно, а потом разворачивает в фулскрин, тоже самое со своротом, она сначала сворачивает в окно, а потом уже сворачивает само приложение. Запускается в мелком окне как-раз тоже из-за вот этих премудростей DXGI.

Можешь забирать мое решение (обрати внимание, что запускается оно тоже в окне (в не-топ режиме, но уже с правильным резолюшном), но при получении актива разворачивается в фуллскрин и далее уже подхватывает резолюшены из самого D3D):

CRenderDevice::Initialize
void CRenderDevice::Initialize()
{
Log("Initializing Engine...");
TimerGlobal.Start ();
TimerMM.Start ();

// Unless a substitute hWnd has been specified, create a window to render into
if( m_hWnd == NULL)
{
const char* wndclass ="_XRAY_";

// Register the windows class
HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(0);
WNDCLASS wndClass = { 0, WndProc, 0, 0, hInstance,
LoadIcon( hInstance, MAKEINTRESOURCE(IDI_ICON1) ),
LoadCursor( NULL, IDC_ARROW ),
(HBRUSH)GetStockObject(BLACK_BRUSH),
NULL, wndclass };
RegisterClass( &wndClass );

// Set the window's initial style
m_dwWindowStyle = WS_BORDER | WS_DLGFRAME;

// Set the window's initial width
u32 screen_width = GetSystemMetrics(SM_CXSCREEN);
u32 screen_height = GetSystemMetrics(SM_CYSCREEN);

DEVMODE screen_settings;
memset(&screen_settings, 0, sizeof(screen_settings));
screen_settings.dmSize = sizeof(screen_settings);
screen_settings.dmPelsWidth = (unsigned long)screen_width;
screen_settings.dmPelsHeight = (unsigned long)screen_height;
screen_settings.dmBitsPerPel = 32;
screen_settings.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;

ChangeDisplaySettings(&screen_settings, CDS_FULLSCREEN);

// Create the render window
m_hWnd = CreateWindow( wndclass, "S.T.A.L.K.E.R.: Shadow Of Chernobyl", m_dwWindowStyle,
/*rc.left, rc.top, */0, 0,
screen_width, screen_height, 0L,
0, hInstance, 0L );
}

// Save window properties
m_dwWindowStyle = GetWindowLong( m_hWnd, GWL_STYLE );
GetWindowRect ( m_hWnd, &m_rcWindowBounds );
GetClientRect ( m_hWnd, &m_rcWindowClient );

// Command line
char *lpCmdLine = Core.Params;
if (strstr(lpCmdLine,"-gpu_sw")!=NULL) HW.Caps.bForceGPU_SW = TRUE;
else HW.Caps.bForceGPU_SW = FALSE;
if (strstr(lpCmdLine,"-gpu_nopure")!=NULL) HW.Caps.bForceGPU_NonPure = TRUE;
else HW.Caps.bForceGPU_NonPure = FALSE;
if (strstr(lpCmdLine,"-gpu_ref")!=NULL) HW.Caps.bForceGPU_REF = TRUE;
else HW.Caps.bForceGPU_REF = FALSE;
}


Надеюсь это окончательно решит твою проблему smile.gif. Фикс макрона это конечно костыль, там надо по другому делать, я как CHW свой допишу, то скину тебе в личке (для ЧН/ЗП он уже просто так не подойдет, а для твоего вполне), сейчас я просто занят прицелами и пост-процессинговыми искажениями, не до этого пока. Гоу диретыкс 12 бек ту беком biggrin.gif.

P.S. Для определения размеров в принципе можно и десктоп взять, код тогда будет выглядеть вот так:
Код
        RECT desktop;
        const HWND hDesktop = GetDesktopWindow();
        GetWindowRect(hDesktop, &desktop);
        u32 screen_width = desktop.right;
        u32 screen_height = desktop.bottom;


В общем если буду тебе еще нужен - знаешь где меня найти wink.gif.
RayTwitty
Цитата(Карлан @ 14.10.2019, 16:24) *
Проблема запуска в мелком окне

А я думал, это у меня драйверы не драйверы biggrin.gif На 11 директе еще шрифты мыльные были, и кто-то это даже фиксил.
ForserX
Цитата(RayTwitty @ 14.10.2019, 19:41) *
На 11 директе еще шрифты мыльные были, и кто-то это даже фиксил.

Забытый USE_DX11 после USE_DX10?
Zagolski
По сворачиванию, о чем я выше писал, трабла была не из-за инициализации окна, а из-за более ранней инициализации класса CHW, чем CRenderDevice. Не буду вдаваться в подробности, но CRenderDevice нужно инициализировать раньше. Для этого переносим ENGINE_API CHW HW; после ENGINE_API CRenderDevice Device;
Эта проблема всплывает, если ТЧ рендер на дх11 переписывать без фабрики.

А рецепт от Карлана пригодится и для ванильной ЧН-ЗП, с этим кодом игра в оконном режиме не смещается за пределы окна при запуске. И в полном экране игра при запуске не сворачивается в маленькое (что иногда случается).
xrModder
Вопрос: как создать отдельный проект на основе исходников существующего проекта на Visual Studio? Например из xrGame отделить элементы игрового UI как новый проект, дабы каждый раз не компилить и так тяжелый xrGame. Но как правильно это сделать чтобы новый проект компилировался последним после xrGame?
xrModder
Цитата(Dezowawe @ 14.10.2019, 16:46) *
Dezowawe

Нехорошо создавать аккаунт с очень похожим названием известной моддинг группы. Ты не тот самый XRCPU_PIPE.DLL?
abramcumner
Цитата(xrModder @ 20.10.2019, 16:41) *
Вопрос: как создать отдельный проект на основе исходников существующего проекта на Visual Studio?

Меню File/New Project. Удаляешь файлы из старого проекта и добавляешь в новый.

Цитата
Но как правильно это сделать чтобы новый проект компилировался последним после xrGame?

В Solution Explorer у проекта открываешь раздел References, правая кнопка мыши Add Reference, выбираешь другой проект. Сборщик выстраивает дерево сборки, сначала собираются проекты из References, потом сам проект.

Цитата
Например из xrGame отделить элементы игрового UI как новый проект, дабы каждый раз не компилить и так тяжелый xrGame.

Это же с++, там же файлы инклудятся. Выделение файлов в отдельный проект не поможет. Каждый раз будет перекомпилироваться 2 проекта smile.gif

Перекомпиливается весь xrGame из-за того, что правишь заголовочные файлы, которые тем или иным способом включаются в кучу других файлов. Чтобы не перекомпиливалось все, только чистить инклуды.

Ну и возможно ты делаешь ребилд или очистку. Тогда хргейм просто обязан пересобираться весь заново.

Можно еще подождать с++20 и десяток патчей студии. Завезут рабочие модули и наступит полное благолепие и умиротворение..
Modera
Цитата(abramcumner @ 20.10.2019, 18:42) *
Можно еще подождать с++20 и десяток патчей студии. Завезут рабочие модули и наступит полное благолепие и умиротворение..

Или переписать движок на делфи, где модули есть с незапамятных времён. lol.gif
ForserX
Цитата(abramcumner @ 20.10.2019, 18:42) *
Завезут рабочие модули и наступит полное благолепие и умиротворение..

Привет от +100500 #defines, ::globalnamespace и констант повсеместно...
Trollz0r
Цитата(abramcumner @ 20.10.2019, 16:42) *
Можно еще подождать с++20
Говорят, на с++20 безшовный мир делается особенно легко. Не знаю, правду говорят или брешут...
Zagolski
Цитата(Modera @ 20.10.2019, 18:55) *
Или переписать движок на делфи

Судя по смайлу в конце, это должно быть была шутка.

Цитата(xrModder @ 20.10.2019, 16:41) *
дабы каждый раз не компилить и так тяжелый xrGame

Это совершенно не требуется. Если правишь .cpp, то пересобираются только эти правленые файлы. А если заголовки, то все то, куда они включены. Обычно весь xrGame.dll пересобирается в том случае, если вносишь изменения в какие-то громкие .h файлы, навроде Actor.h или GameObject.h. А в большинстве случаев перекомпил хргейма 10 сек занимает.
Modera
Цитата(Zagolski @ 20.10.2019, 21:54) *
Судя по смайлу в конце, это должно быть была шутка.

Пища для размышления, что си++ отстаёт на 20 лет, как минимум в плане модулей.
abramcumner
Цитата(ForserX @ 20.10.2019, 20:46) *
Привет от +100500 #defines, ::globalnamespace и констант повсеместно...

Да, с дефайнами надо будет что-то сделать. Но дефайнов не так уж и много, 95% тупо заменяются на функции(constexpr)/константы. Еще сколько-то убирается variadic templates и прочими плюшками. Собственно в окси все это проделывают переодически.

::globalnamespace и константы ортогональны модулям. Их наличие или отсутствие никак модулям не мешает.

Цитата(Люпус Эст @ 20.10.2019, 21:44) *
Говорят, на с++20 безшовный мир делается особенно легко. Не знаю, правду говорят или брешут...

Не только бесшовный мир, но и хрей 2.0. Наконец нормально соберется движок сталкер2. Так что сразу после релиза с++20 стоит ожидать тонну скриншотов и видео.

Цитата(Modera @ 21.10.2019, 01:23) *
Пища для размышления, что си++ отстаёт на 20 лет, как минимум в плане модулей.

Или пища для размышлений, насколько вообще модули нужны smile.gif
ForserX
Нет ни у кого желания поучаствовать в документировании движка?
http://xray-oxygen.org/index.php/%D0%9A%D0...%BD%D0%B8%D0%B5
Diesel
ForserX, напрасная трата времени. Могу вечером найди документацию CE3 ранней версии, для подтверждения моих слов. Крайтек написал партянку весом 50 мб, только это нафиг никому не помогло.
wink.gif
Modera
Цитата(abramcumner @ 21.10.2019, 09:09) *
Цитата(Modera @ 21.10.2019, 01:23) *
Пища для размышления, что си++ отстаёт на 20 лет, как минимум в плане модулей.

Или пища для размышлений, насколько вообще модули нужны smile.gif

Так даже лучше, пожалуй. OpenXray ведь без модулей уже вынесли UI в отдельную библиотеку.
Zagolski
abramcumner пару лет назад тоже выносил UI отдельно в своем 1.6, но только в .lib. Я все посматриваю, когда наконец полноценная dll-ка появится, но судя по всему он это дело забросил или не планировал.
abramcumner
Цитата(Zagolski @ 21.10.2019, 16:12) *
или не планировал.

Как длл не планировал. Я наоборот за то, чтобы все проекты превратить в .lib, а движок в один exe.
DoberBull
Всем привет. Вроде бы, пару лет назад, на этом форуме были люди, сумевшие реализовать 3д-статик предмета в инвентаре, вместо его иконки в окне описания. Если кто делал, может поделиться кодом ? Буду оч благодарен
macron
Цитата(DoberBull @ 23.10.2019, 10:09) *
реализовать 3д-статик предмета в инвентаре

Я знаю только о методе через seq-анимацию текстур, без правки движка.
cjayho
QUOTE (macron @ 23.10.2019, 09:57) *
QUOTE (DoberBull @ 23.10.2019, 10:09) *
реализовать 3д-статик предмета в инвентаре

Я знаю только о методе через seq-анимацию текстур, без правки движка.


а видеотекстуру подбросить если? или не схавает?
xrModder
Цитата(cjayho @ 23.10.2019, 14:15) *
Цитата(macron @ 23.10.2019, 09:57) *
Цитата(DoberBull @ 23.10.2019, 10:09) *
реализовать 3д-статик предмета в инвентаре

Я знаю только о методе через seq-анимацию текстур, без правки движка.


а видеотекстуру подбросить если? или не схавает?

В одном билде есть момент, когда Меченый приходит себя в бункере Сидоровича, видит надпись "Убить Стрелка" в красном фоне, который потом исчезает с плавным переходом в игру. Даже в файлах есть "альфа-канал" для этого видео.
DoberBull
Да нет, речь шла о движковом восстановлении 3д-статика, в т.ч класса UI3dStatic. В 2015, тут чел под ником Red_Virus вроде собирал двигатель с этим, даже выкладывал, правда ссылка умерла, да и исходников нету. Ищу, может кто еще такое запиливал
macron
Цитата(xrModder @ 23.10.2019, 12:13) *
В одном билде есть момент, когда Меченый приходит себя в бункере Сидоровича, видит надпись "Убить Стрелка" в красном фоне, который потом исчезает с плавным переходом в игру. Даже в файлах есть "альфа-канал" для этого видео.

Вроде в финалке "альфа-канал" в видео не работает, но могу ошибаться, давно экспериментировал.

Цитата(DoberBull @ 23.10.2019, 16:55) *
чел под ником Red_Virus вроде собирал двигатель с этим

Напиши ему в личку, вроде еще заходит.
https://www.gameru.net/forum/index.php?showuser=10487
Zagolski
Цитата(DoberBull @ 23.10.2019, 16:55) *
Да нет, речь шла о движковом восстановлении 3д-статика, в т.ч класса UI3dStatic.

Он у тебя не будет на R2 и выше работать, только на R1. К тому же там нужно как минимум освещение для отображаемой модели переделывать. Так что не советую с ним связываться. Но вообще для R1 все просто, берешь .cpp и .h файлы этого класса (в билде за январь 2007 они есть), плюсуешь в проект и кидаешь Draw на апдейт. Получаешь типа такого:
RayTwitty
Цитата(Zagolski @ 23.10.2019, 21:20) *
Но вообще для R1 все просто, берешь .cpp и .h файлы этого класса (в билде за январь 2007 они есть), плюсуешь в проект и кидаешь Draw на апдейт

Там треть кода деприкейтед, просто скопипастить файлы не выйдет. Я как-то пробовал запустить, часть вызовов заменил на ванильные, но в итоге получил черную херню. В итоге забил по причине
Цитата(Zagolski @ 23.10.2019, 21:20) *
там нужно как минимум освещение для отображаемой модели переделывать

Свою попытку завести я кстати на ГМ выкладывал, не помню где, да и файлов на компе уже не осталось. Вроде в OLR запускали и на r2 даже, но что там с освещением хз.
Zagolski
Точно, на оригинальной версии другие матричные ф-ции умножения, старые.
Там еще важно перед отрисовкой UI очистить буфер глубины, иначе модели будут временами пропадать. Я в те времена долго голову ломал, куда исчезают модели. Оказалось, из-за этого (они рендерятся в общий RT, а его ZB уже инфой заполнен).
На R2 тоже можно запустить, но нужно переделывать. Цеплять на модели другие шейдеры и отправлять их рисоваться в форварде. Это уже сложнее сделать. Впрочем, в любом случае даже на R1 нужно переключать шейдеры на другие, где освещение будет происходить не от солнца (на первое время можно какой-нибудь лайтпланес повесить).
Scav
Цитата(macron @ 23.10.2019, 18:33) *
Вроде в финалке "альфа-канал" в видео не работает, но могу ошибаться, давно экспериментировал.

С ogm не работает, но с avi - запросто (плюс побочки: необходимость вертикально отзеркалить видео и высокая вероятность, что у кучи народа игра будет вылетать из-за нескладухи с кодеками).
DoberBull
Zagolski, спасибо! Сейчас не важно, что будет с р2, можно будет потом поправить. Можно краткую инструкцию в 2х шагах, как заставить работать этот 3д статик на р1, для тех кто не самый большой спец в движке ? Желательно, чтобы 3д статик рисовался только в окне описания, а не вместо всех возможных иконок.
Pavel_Blend
Цитата(Zagolski @ 23.10.2019, 21:20) *
Цитата(DoberBull @ 23.10.2019, 16:55) *
Да нет, речь шла о движковом восстановлении 3д-статика, в т.ч класса UI3dStatic.

Он у тебя не будет на R2 и выше работать, только на R1. К тому же там нужно как минимум освещение для отображаемой модели переделывать. Так что не советую с ним связываться. Но вообще для R1 все просто, берешь .cpp и .h файлы этого класса (в билде за январь 2007 они есть), плюсуешь в проект и кидаешь Draw на апдейт. Получаешь типа такого:


А что это за мод? Судя по иконкам, есть кастомизация оружия. Хотелось бы посмотреть.
DoberBull
Просто я не великий спец движка, поэтому прошу. Ребята, у кого запустился двиг, и 3д иконки выводятся в окне описания, если не жалко, поделитесь исходниками, пж. Или хотя бы файлами, ответственными за это (UIItemInfo и т.д)
xrModder
Цитата(Xottab_DUTY @ 12.10.2019, 19:10) *
Помнится, где-то на этом форуме Загольский замечал, что реализация тени ГГ от КД на динамике несколько не оптимизирована, т.к. несколько раз рендеринг происходит.

Кому интересно, этот момент я поправил и теперь тень ГГ что на статике, что на динамике использует одну и ту же функцию для рендера (унификация) и вызывается только один раз. (оптимизация) smile.gif
Коммит: https://github.com/OpenXRay/xray-16/commit/...f8a73658b2ab3fd
Там же и убрал консольную команду включения/выключения тени от ГГ, чтобы рендерилась всегда. Это не очень хорошо когда на R1 тень есть всегда, а на R2+ её можно выключить unsure.gif
опциональный вампир biggrin.gif

Для вставки в оригинальный движок надо заменить GEnv.CurrentRenderer на g_current_renderer, а GEnv.Render на ::Render (и два двоеточия тоже нужны!)

Добавить этой правке ещё и правку восстановления тени актёра от динамических источников света в R2 - вообще будет конфетка smile.gif
xrModder
Оставлю это здесь.
Использование полноценных SkyBox текстур

В static Fvector3 hbox_verts[24] (в ТЧ код находится в Environment_render.cpp) заменить старый код на:

Код
     {-1.f, -1.f, -1.f}, {-1.f, -1.f, -1.f},     // down
     { 1.f, -1.f, -1.f}, { 1.f, -1.f, -1.f},     // down
     {-1.f, -1.f,  1.f}, {-1.f, -1.f,  1.f},     // down
     { 1.f, -1.f,  1.f}, { 1.f, -1.f,  1.f},     // down
     {-1.f,  1.f, -1.f}, {-1.f,  1.f, -1.f},
     { 1.f,  1.f, -1.f}, { 1.f,  1.f, -1.f},
     {-1.f,  1.f,  1.f}, {-1.f,  1.f,  1.f},
     { 1.f,  1.f,  1.f}, { 1.f,  1.f,  1.f},
     {-1.f,  1.f, -1.f}, {-1.f,  1.f, -1.f},     // full
     { 1.f,  1.f, -1.f}, { 1.f,  1.f, -1.f},     // full
     { 1.f,  1.f,  1.f}, { 1.f,  1.f,  1.f},     // full
     {-1.f,  1.f,  1.f}, {-1.f,  1.f,  1.f}      // full

Теперь ненужно проделывать дебильную операцию растягивания (и получать глюки в виде полос) текстуры при создании SkyBox и можно пользоваться полноценными текстурами SkyBox.
Zagolski
Цитата(Pavel_Blend @ 24.10.2019, 10:30) *
А что это за мод? Судя по иконкам, есть кастомизация оружия. Хотелось бы посмотреть.

Он еще в разработке. Это на базе NLC7, развитие Hardcore Balance Mode (HBM).

Цитата(DoberBull @ 24.10.2019, 02:04) *
Можно краткую инструкцию в 2х шагах, как заставить работать этот 3д статик на р1

Вот, забирай: https://yadi.sk/d/iUeLsT3HJU6BWQ
Через Init инициализируешь нужное по размеру окно. В SetGameObject передаешь нужный геймобжект, Draw отрисовывает его. SetRotate крутит. Сам класс CUI3dStatic инициализируешь стандартно, как обычный CUIStatic.

Цитата(xrModder @ 24.10.2019, 16:45) *
Добавить этой правке ещё и правку восстановления тени актёра от динамических источников света в R2 - вообще будет конфетка

Я это делал проверкой ближайшего источника света к ГГ и подсовывая тень только ему. Правда, тут в рендере точечный свет разбивается на шесть прожекторов, поэтому скорее всего для поинтов придется хотя бы в три ближайших тень отправлять. Иначе может случиться такое, что тень резко обрезается. У меня-то поинты переделаны в единичные с кубмапой.
Xottab_DUTY
Цитата(xrModder @ 24.10.2019, 19:22) *
Оставлю это здесь.
Использование полноценных SkyBox текстур

В static Fvector3 hbox_verts[24] (в ТЧ код находится в Environment_render.cpp) заменить старый код на:

Код
     {-1.f, -1.f, -1.f}, {-1.f, -1.f, -1.f},     // down
     { 1.f, -1.f, -1.f}, { 1.f, -1.f, -1.f},     // down
     {-1.f, -1.f,  1.f}, {-1.f, -1.f,  1.f},     // down
     { 1.f, -1.f,  1.f}, { 1.f, -1.f,  1.f},     // down
     {-1.f,  1.f, -1.f}, {-1.f,  1.f, -1.f},
     { 1.f,  1.f, -1.f}, { 1.f,  1.f, -1.f},
     {-1.f,  1.f,  1.f}, {-1.f,  1.f,  1.f},
     { 1.f,  1.f,  1.f}, { 1.f,  1.f,  1.f},
     {-1.f,  1.f, -1.f}, {-1.f,  1.f, -1.f},     // full
     { 1.f,  1.f, -1.f}, { 1.f,  1.f, -1.f},     // full
     { 1.f,  1.f,  1.f}, { 1.f,  1.f,  1.f},     // full
     {-1.f,  1.f,  1.f}, {-1.f,  1.f,  1.f}      // full

Теперь ненужно проделывать дебильную операцию растягивания (и получать глюки в виде полос) текстуры при создании SkyBox и можно пользоваться полноценными текстурами SkyBox.

Дак это давно известный фикс, в теме с исходниками правок можно найти его.. Правда, для ЗП smile.gif
RayTwitty
Цитата(Xottab_DUTY @ 24.10.2019, 18:29) *
Правда, для ЗП

А в ТЧ вообще проблемы я такой не помню. Это только в ЗП небо было вертикально растянуто, в ТЧ всё нормально. Не знаю что он фиксит))
xrModder
Xottab_DUTY и RayTwitty, кажется вы обе ошиблись cool.gif
Policai
Народ! Подскажите плиз, в движке ЗП есть ограничение на размер динамического обьекта? имеется ввиду визуал, ширина, длина высота... Почему то в игре анимированный обьект сжимает в квадрат примерно 23 метра. то что внутри нормально отображается и анимация работает, то что за границей квадрата сплющивает по границе это квадрата, но анимация так же работает, просто всё движется в сплющенном виде по границе квадрата... и можно ли это как то обойти без движковых правок.

Скрин
Diesel
Policai, есть ограничение. Я так же видел подобное у себя в модинге.
НО ГДЕ ОНО ЗАРЫТО - не искал. Кто найдёт - тому уважуха.
iOrange
Цитата(Дизель @ 25.10.2019, 04:09) *
Кто найдёт - тому уважуха.

Имхо по симптомам похоже на квантование.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.