Широкоэкранное разрешение HD (16:9, 16:10), ...думаем как сделать... |
Здравствуйте, гость ( Авторизация | Регистрация )
Широкоэкранное разрешение HD (16:9, 16:10), ...думаем как сделать... |
14.03.2009, 22:30
Сообщение
#41
|
|
Игровой Бог Репутация: 1690 Группа: Участник Сообщений: 7021 Награды: 11 Регистрация: 22.02.2006 |
Классная прога! Запустил ждалкера в 320x240. Причем fps заметно не подрос, что подтверждает теорию о том, что все билды вплоть до ЧН больше грузят проц, чем видяху.
Кто не хочет юзать enb.dll - можно закомментировать или вообще удалить строчку proxy = enb.dll в proxy.ini У меня вопрос: а возможно ли через этот "переходник" реализовать что-нибудь типа смены fov напрямую через d3d или вывод в отдельный лог списка всех вызываемых шейдеров и функций из них (независимо от лога игры, разумеется) ? Сообщение отредактировал macron - 14.03.2009, 22:42 |
 
|
|
|
|
15.03.2009, 07:08
Сообщение
#42
|
|
Продвинутый геймер Репутация: 57 Группа: Участник Сообщений: 343 Награды: 1 Регистрация: 03.11.2008 |
macron ну ведь fov игры можно менять прям в user.ltx, я уже несколько раз писал,но меня на этом форуме игнорировали и я забил,та строчка которую многие называют прозрачностью худа и которая названа прозрачность худа,в меню от LekZd 1,4 вот это и есть fov!!!
-------------------- |
 
|
|
15.03.2009, 10:28
Сообщение
#43
|
|
не шалю, никого не трогаю, починяю примус Репутация: 230 Группа: Забанен Сообщений: 2277 Награды: 1 Регистрация: 15.05.2007 |
возможно ли через этот "переходник" реализовать что-нибудь типа смены fov можно попробовать, но для этого вот было: Код //----------------------------------------------------------------------------- HRESULT STDMETHODCALLTYPE CDirect3DDevice9::CreateVolumeTexture(THIS_ UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DVolumeTexture9** ppVolumeTexture,HANDLE* pSharedHandle) { return Direct3DDevice9->CreateVolumeTexture(THIS_ UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DVolumeTexture9** ppVolumeTexture,HANDLE* pSharedHandle) } нужно: Код //----------------------------------------------------------------------------- HRESULT STDMETHODCALLTYPE CDirect3DDevice9::CreateVolumeTexture(THIS_ UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3DFORMAT Format,D3DPOOL Pool,IDirect3DVolumeTexture9** ppVolumeTexture,HANDLE* pSharedHandle) { return Direct3DDevice9->CreateVolumeTexture(Width, Height, Depth, Levels, Usage, Format, Pool, ppVolumeTexture, pSharedHandle); } вот если б нашелся доброволец... а то у меня уже в глазах рябит -------------------- i know where you live
|
 
|
|
15.03.2009, 11:01
Сообщение
#44
|
|
Игровой Бог Репутация: 1690 Группа: Участник Сообщений: 7021 Награды: 11 Регистрация: 22.02.2006 |
можно попробовать, но для этого вот в этом файле нужно для каждой вызываемой ф-ии удалить из строки аргументов типы данных и поставить в конце строки ";", начиная со 142 строки Спасибо, может пригодится. ЖуКа, ты путаешь hud_fov (дальность прорисовки рук) и fov (угол обзора). |
 
|
|
15.03.2009, 11:17
Сообщение
#45
|
|
не шалю, никого не трогаю, починяю примус Репутация: 230 Группа: Забанен Сообщений: 2277 Награды: 1 Регистрация: 15.05.2007 |
исправленный файл сюда выкладывайте, я его к проге прикручу. ну или сам вечером переделаю
-------------------- i know where you live
|
 
|
|
15.03.2009, 12:10
Сообщение
#46
|
|
Опытный Игрок Репутация: 20 Группа: Участник Сообщений: 67 Награды: 1 Регистрация: 02.03.2009 |
Вот файл
|
 
|
|
15.03.2009, 15:14
Сообщение
#47
|
|
не шалю, никого не трогаю, починяю примус Репутация: 230 Группа: Забанен Сообщений: 2277 Награды: 1 Регистрация: 15.05.2007 |
melnik, не качается перезалей
-------------------- i know where you live
|
 
|
|
15.03.2009, 15:31
Сообщение
#48
|
|
Опытный Игрок Репутация: 20 Группа: Участник Сообщений: 67 Награды: 1 Регистрация: 02.03.2009 |
p.s. Посмотри строки 247, 272 и 277. Не совсем уверен, что они правильные. Сообщение отредактировал melnik - 15.03.2009, 15:36 |
 
|
|
15.03.2009, 15:36
Сообщение
#49
|
|
не шалю, никого не трогаю, починяю примус Репутация: 230 Группа: Забанен Сообщений: 2277 Награды: 1 Регистрация: 15.05.2007 |
супер! спс, сейчас попробую угол обзора поменять.
з.ы. с первого раза компилятор проглотил Код 1>------ Build started: Project: d3d9, Configuration: Debug Win32 ------
1>Compiling... 1>device.cpp 1>Linking... 1>LINK : C:\Documents and Settings\ivan\Мои документы\Visual Studio 2005\Projects\proxy\Debug\d3d9.dll not found or not built by the last incremental link; performing full link 1> Creating library C:\Documents and Settings\ivan\Мои документы\Visual Studio 2005\Projects\proxy\Debug\d3d9.lib and object C:\Documents and Settings\ivan\Мои документы\Visual Studio 2005\Projects\proxy\Debug\d3d9.exp 1>Embedding manifest... 1>Build log was saved at "file://c:\Documents and Settings\ivan\Мои документы\Visual Studio 2005\Projects\proxy\Debug\BuildLog.htm" 1>d3d9 - 0 error(s), 0 warning(s) ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== -------------------- i know where you live
|
 
|
|
15.03.2009, 16:36
Сообщение
#50
|
|
не шалю, никого не трогаю, починяю примус Репутация: 230 Группа: Забанен Сообщений: 2277 Награды: 1 Регистрация: 15.05.2007 |
вроде оно, пробуем
з.ы. правда пришлось заодно еще кое-что поменять: пришлось от дуба установить плоскости отсечения zf и zn, т.к. эти значения не передаются в ф-ию -------------------- i know where you live
|
 
|
|
15.03.2009, 16:47
Сообщение
#51
|
|
Игровой Бог Репутация: 1690 Группа: Участник Сообщений: 7021 Награды: 11 Регистрация: 22.02.2006 |
centrino, круто! Запускается. А менять то как?
|
 
|
|
15.03.2009, 17:25
Сообщение
#52
|
|
не шалю, никого не трогаю, починяю примус Репутация: 230 Группа: Забанен Сообщений: 2277 Награды: 1 Регистрация: 15.05.2007 |
пока никак, это какой-то не такой fov, то есть определенно что-то происходит, но внешне ничего не меняется если на финалке запускать со значением 180 градусов, то она просто вываливается, билду вообще пофиг, но эта функция вызывается - это совершенно точно. попробую еще покопаться..
-------------------- i know where you live
|
 
|
|
16.03.2009, 01:36
Сообщение
#53
|
|
не шалю, никого не трогаю, починяю примус Репутация: 230 Группа: Забанен Сообщений: 2277 Награды: 1 Регистрация: 15.05.2007 |
короче получилось, ну почти то есть изменения есть и их можно увидеть, но проку от этого мало - на экране каша... все дело в параметрах, которые я от дуба понаставил, эксперименты с ними показали, что иногда можно увидеть отдельные куски ландшафта, пистолет и много сидоровичей
вот где 1-й параметр - это какая-то хитрая структура, в которой мы, в числе прочего, должны получить fov в результате выполнения этой ф-ии 2-й параметр - это он и есть, устанавливаемый fov 3-й параметр - перспектива, я установил ее равной отношению сторон экрана ну и последние 2 параметра - это расстояния до отсекающих плоскостей. если эту строку закомментить, то будут использованы значения структуры pMatrix установленные разрабами, которые передаются в нашу прокси-функцию 2-м параметром, тогда все работает как надо, но и fov соответственно остается прежним. вобщем если у кого есть visual studio 2005 - экспериментируйте, авось чего о получится з.ы. позже добавлю возможность изменять эти параметры через ini -------------------- i know where you live
|
 
|
|
16.03.2009, 02:17
Сообщение
#54
|
|
не шалю, никого не трогаю, починяю примус Репутация: 230 Группа: Забанен Сообщений: 2277 Награды: 1 Регистрация: 15.05.2007 |
-------------------- i know where you live
|
 
|
|
16.03.2009, 12:18
Сообщение
#55
|
|
не шалю, никого не трогаю, починяю примус Репутация: 230 Группа: Забанен Сообщений: 2277 Награды: 1 Регистрация: 15.05.2007 |
дано:
параметры, которыми заполняется структура D3DXMATRIX из msdn: Код The return value for this function is the same value returned in the pOut parameter. In this way, the D3DXMatrixPerspectiveFovLH function can be used as a parameter for another function. This function computes the returned matrix as shown: xScale 0 0 0 0 yScale 0 0 0 0 zf/(zf-zn) 1 0 0 -zn*zf/(zf-zn) 0 where: yScale = cot(fovY/2) xScale = yScale / aspect ratio и параметры, которыми эта структура заполняется где-то внутри движка: Цитата 1.1: 1.122454 1.2: 0.000000 1.3: 0.000000 1.4: 0.000000 2.1: 0.000000 2.2: 1.496606 2.3: 0.000000 2.4: 0.000000 3.1: 0.000000 3.2: 0.000000 3.3: 1.000834 3.4: 1.000000 4.1: 0.000000 4.2: 0.000000 4.3: -0.200167 4.4: 0.000000 я так понимаю, что если правильно решить систему алгебраических уравнений: zf/(zf-zn) = 1.000834 -zn*zf/(zf-zn) = -0.200167 то будут найдены два последних параметра ф-ции D3DXMatrixPerspectiveFovLH() которая устанавливает угол обзора Сообщение отредактировал centrino - 16.03.2009, 12:19 -------------------- i know where you live
|
 
|
|
16.03.2009, 17:45
Сообщение
#56
|
|
не шалю, никого не трогаю, починяю примус Репутация: 230 Группа: Забанен Сообщений: 2277 Награды: 1 Регистрация: 15.05.2007 |
в общем ничего не получилось даже самые малейшие изменения этого параметра приводят к тому, что все объекты сдвигаются непонятным образом:
даже ничтожные расхождения в следствие погрешности компилятора вызывают вот такой эффект, единственный вариант заставить игру работать как надо - это считать значения из памяти и записать их в память напрямую: Код HRESULT STDMETHODCALLTYPE CDirect3DDevice9::SetTransform(THIS_ D3DTRANSFORMSTATETYPE State,CONST D3DMATRIX* pMatrix) { float xScale = pMatrix->_11; float yScale = pMatrix->_22; void* vbuffer = (D3DMATRIX*) pMatrix; char* buffer = reinterpret_cast<char*>(vbuffer); char* xScaleBuf = reinterpret_cast<char*>(&xScale); char* yScaleBuf = reinterpret_cast<char*>(&yScale); for(int i = 0; i < sizeof(float); i++ ) buffer[i] = xScaleBuf[i]; for(int i = 0; i < sizeof(float); i++ ) buffer[(sizeof(float) * 5) + i] = yScaleBuf[i]; return Direct3DDevice9->SetTransform(State, pMatrix); } так-что надо искать другой способ з.ы. единственно, что мне удалось выяснить в ходе экспериментов, что риальне fov в билде равен 67,5 градусам и, что фрустум (так кажется называется пространство между отсекающими плоскостями) в финалке отличается. -------------------- i know where you live
|
 
|
|
16.03.2009, 18:24
Сообщение
#57
|
|
Игровой Бог Репутация: 1690 Группа: Участник Сообщений: 7021 Награды: 11 Регистрация: 22.02.2006 |
з.ы. единственно, что мне удалось выяснить в ходе экспериментов, что риальне fov в билде равен 67,5 градусам и, Опять эта цифра. 67,5 (по меркам движка) это fov в последних версиях ТЧ и в ЧН. Именно на ее основе я делал патчеры, переключающие на 90. Но там она была в явном виде в xrgame.dll или ловилась в памяти. Чисто визуально в билде, как и в 2215, fov намного больше, чем в ТЧ-ЧН. А как насчет записи в лог обращений к файлам шейдеров? Возможно ли такое провернуть? |
 
|
|
16.03.2009, 18:40
Сообщение
#58
|
|
Источник Излучения Репутация: 508 Группа: Участник Сообщений: 2295 Награды: 3 Регистрация: 22.11.2005 |
centrino, о_О такой психодел на скринах... скинь наработку
|
 
|
|
16.03.2009, 19:00
Сообщение
#59
|
|
не шалю, никого не трогаю, починяю примус Репутация: 230 Группа: Забанен Сообщений: 2277 Награды: 1 Регистрация: 15.05.2007 |
А как насчет записи в лог обращений к файлам шейдеров? Возможно ли такое провернуть? думаю тут проблем быть не должно, завтра попробую Хэш, лови код: Сообщение отредактировал centrino - 16.03.2009, 19:01 -------------------- i know where you live
|
 
|
|
16.03.2009, 19:23
Сообщение
#60
|
|
Источник Излучения Репутация: 508 Группа: Участник Сообщений: 2295 Награды: 3 Регистрация: 22.11.2005 |
|
 
|
|
Текстовая версия | Сейчас: 26.04.2024, 06:14 |