IPB

 
>

Широкоэкранное разрешение HD (16:9, 16:10)

, ...думаем как сделать...

 
 macron
сообщение 14.03.2009, 22:26
Сообщение #41


Игровой Бог
**********************

Группа: Участник
Сообщений: 5767
Регистрация: 22.02.2006
Из: Париж
Пользователь №: 3089



Классная прога! Запустил ждалкера в 320x240. Причем fps заметно не подрос, что подтверждает теорию о том, что все билды вплоть до ЧН больше грузят проц, чем видяху.
Кто не хочет юзать enb.dll - можно закомментировать или вообще удалить строчку proxy = enb.dll в proxy.ini

У меня вопрос: а возможно ли через этот "переходник" реализовать что-нибудь типа смены fov напрямую через d3d или вывод в отдельный лог списка всех вызываемых шейдеров и функций из них (независимо от лога игры, разумеется) ?

Сообщение отредактировал macron - 14.03.2009, 22:38
Перейти в начало страницы
 
 
 DANGER
сообщение 15.03.2009, 07:04
Сообщение #42


Продвинутый геймер
********

Группа: Участник
Сообщений: 343
Регистрация: 03.11.2008
Пользователь №: 9394



macron ну ведь fov игры можно менять прям в user.ltx, (IMG:http://www.gameru.net/forum/style_emoticons/default/blink.gif) я уже несколько раз писал,но меня на этом форуме игнорировали и я забил,та строчка которую многие называют прозрачностью худа и которая названа прозрачность худа,в меню от LekZd 1,4 вот это и есть fov!!!
Перейти в начало страницы
 
 
 centrino
сообщение 15.03.2009, 10:24
Сообщение #43


не шалю, никого не трогаю, починяю примус
***************

Группа: Забанен
Сообщений: 2277
Регистрация: 15.05.2007
Пользователь №: 6276



Цитата(macron @ 14.03.2009, 22:30) *
возможно ли через этот "переходник" реализовать что-нибудь типа смены fov

можно попробовать, но для этого вот в этом файле нужно для каждой вызываемой ф-ии удалить из строки аргументов типы данных и поставить в конце строки ";", начиная со 142 строки, например:

было:
Код
//-----------------------------------------------------------------------------
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);
}


вот если б нашелся доброволец... а то у меня уже в глазах рябит (IMG:http://www.gameru.net/forum/style_emoticons/default/wacko.gif)
Перейти в начало страницы
 
 
 macron
сообщение 15.03.2009, 10:57
Сообщение #44


Игровой Бог
**********************

Группа: Участник
Сообщений: 5767
Регистрация: 22.02.2006
Из: Париж
Пользователь №: 3089



Цитата(centrino @ 15.03.2009, 10:28) *
можно попробовать, но для этого вот в этом файле нужно для каждой вызываемой ф-ии удалить из строки аргументов типы данных и поставить в конце строки ";", начиная со 142 строки

Спасибо, может пригодится.

ЖуКа, ты путаешь hud_fov (дальность прорисовки рук) и fov (угол обзора).
Перейти в начало страницы
 
 
 centrino
сообщение 15.03.2009, 11:13
Сообщение #45


не шалю, никого не трогаю, починяю примус
***************

Группа: Забанен
Сообщений: 2277
Регистрация: 15.05.2007
Пользователь №: 6276



исправленный файл сюда выкладывайте, я его к проге прикручу. ну или сам вечером переделаю (IMG:http://www.gameru.net/forum/style_emoticons/default/smile.gif)
Перейти в начало страницы
 
 
 melnik
сообщение 15.03.2009, 12:06
Сообщение #46


Опытный Игрок
****

Группа: Участник
Сообщений: 67
Регистрация: 02.03.2009
Пользователь №: 10134



Вот файл http://dump.ru/file/2184197 Вроде нигде не накосячил (IMG:http://www.gameru.net/forum/style_emoticons/default/rolleyes.gif)
Перейти в начало страницы
 
 
 centrino
сообщение 15.03.2009, 15:10
Сообщение #47


не шалю, никого не трогаю, починяю примус
***************

Группа: Забанен
Сообщений: 2277
Регистрация: 15.05.2007
Пользователь №: 6276



melnik, не качается (IMG:http://www.gameru.net/forum/style_emoticons/default/sad.gif) перезалей сюда, если не сложно
Перейти в начало страницы
 
 
 melnik
сообщение 15.03.2009, 15:27
Сообщение #48


Опытный Игрок
****

Группа: Участник
Сообщений: 67
Регистрация: 02.03.2009
Пользователь №: 10134



http://www.sendspace.com/file/umgsi3

p.s. Посмотри строки 247, 272 и 277. Не совсем уверен, что они правильные.

Сообщение отредактировал melnik - 15.03.2009, 15:32
Перейти в начало страницы
 
 
 centrino
сообщение 15.03.2009, 15:32
Сообщение #49


не шалю, никого не трогаю, починяю примус
***************

Группа: Забанен
Сообщений: 2277
Регистрация: 15.05.2007
Пользователь №: 6276



супер! спс, сейчас попробую угол обзора поменять.

з.ы. с первого раза компилятор проглотил (IMG:http://www.gameru.net/forum/style_emoticons/default/wink_old.gif)

Код
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 ==========
Перейти в начало страницы
 
 
 centrino
сообщение 15.03.2009, 16:32
Сообщение #50


не шалю, никого не трогаю, починяю примус
***************

Группа: Забанен
Сообщений: 2277
Регистрация: 15.05.2007
Пользователь №: 6276



вроде оно, пробуем (IMG:http://www.gameru.net/forum/style_emoticons/default/wink_old.gif)
http://narod.ru/disk/6655388000/bin%20(copy%202).rar.html

з.ы. правда пришлось заодно еще кое-что поменять:

(IMG:http://i033.radikal.ru/0903/01/fd0a6dc3fa97.jpg)

пришлось от дуба установить плоскости отсечения zf и zn, т.к. эти значения не передаются в ф-ию SetTransform, а передается структура D3DMATRIX. если кто разберется в значениях этой структуры, то было бы неплохо, значение fov и отсекающих поверхностей как-то через нее передаются.
Перейти в начало страницы
 
 
 macron
сообщение 15.03.2009, 16:43
Сообщение #51


Игровой Бог
**********************

Группа: Участник
Сообщений: 5767
Регистрация: 22.02.2006
Из: Париж
Пользователь №: 3089



centrino, круто! Запускается. А менять то как? (IMG:http://www.gameru.net/forum/style_emoticons/default/ohmy.gif)
Перейти в начало страницы
 
 
 centrino
сообщение 15.03.2009, 17:21
Сообщение #52


не шалю, никого не трогаю, починяю примус
***************

Группа: Забанен
Сообщений: 2277
Регистрация: 15.05.2007
Пользователь №: 6276



пока никак, это какой-то не такой fov, то есть определенно что-то происходит, но внешне ничего не меняется (IMG:http://www.gameru.net/forum/style_emoticons/default/biggrin.gif) если на финалке запускать со значением 180 градусов, то она просто вываливается, билду вообще пофиг, но эта функция вызывается - это совершенно точно. попробую еще покопаться..
Перейти в начало страницы
 
 
 centrino
сообщение 16.03.2009, 01:32
Сообщение #53


не шалю, никого не трогаю, починяю примус
***************

Группа: Забанен
Сообщений: 2277
Регистрация: 15.05.2007
Пользователь №: 6276



короче получилось, ну почти (IMG:http://www.gameru.net/forum/style_emoticons/default/biggrin.gif) то есть изменения есть и их можно увидеть, но проку от этого мало - на экране каша... все дело в параметрах, которые я от дуба понаставил, эксперименты с ними показали, что иногда можно увидеть отдельные куски ландшафта, пистолет и много сидоровичей (IMG:http://www.gameru.net/forum/style_emoticons/default/biggrin.gif)

вот исходный код, находим в файле device.cpp строку №249, она выглядит так: D3DXMatrixPerspectiveFovLH( (D3DXMATRIX*)pMatrix, D3DX_PI/4.0f, _aspect, 0.0f, 0.9f );

где 1-й параметр - это какая-то хитрая структура, в которой мы, в числе прочего, должны получить fov в результате выполнения этой ф-ии
2-й параметр - это он и есть, устанавливаемый fov (IMG:http://www.gameru.net/forum/style_emoticons/default/biggrin.gif)
3-й параметр - перспектива, я установил ее равной отношению сторон экрана
ну и последние 2 параметра - это расстояния до отсекающих плоскостей.

если эту строку закомментить, то будут использованы значения структуры pMatrix установленные разрабами, которые передаются в нашу прокси-функцию 2-м параметром, тогда все работает как надо, но и fov соответственно остается прежним. вобщем если у кого есть visual studio 2005 - экспериментируйте, авось чего о получится (IMG:http://www.gameru.net/forum/style_emoticons/default/biggrin.gif)

з.ы. позже добавлю возможность изменять эти параметры через ini
Перейти в начало страницы
 
 
 centrino
сообщение 16.03.2009, 02:13
Сообщение #54


не шалю, никого не трогаю, починяю примус
***************

Группа: Забанен
Сообщений: 2277
Регистрация: 15.05.2007
Пользователь №: 6276



(IMG:http://s40.radikal.ru/i090/0903/76/b2c02ae3de44t.jpg)

как-то так (IMG:http://www.gameru.net/forum/style_emoticons/default/unsure.gif)
Перейти в начало страницы
 
 
 centrino
сообщение 16.03.2009, 12:14
Сообщение #55


не шалю, никого не трогаю, починяю примус
***************

Группа: Забанен
Сообщений: 2277
Регистрация: 15.05.2007
Пользователь №: 6276



дано:

параметры, которыми заполняется структура D3DXMATRIX из msdn: http://msdn.microsoft.com/en-us/library/bb205350.aspx
Код
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() которая устанавливает угол обзора (IMG:http://www.gameru.net/forum/style_emoticons/default/unsure.gif)

Сообщение отредактировал centrino - 16.03.2009, 12:15
Перейти в начало страницы
 
 
 centrino
сообщение 16.03.2009, 17:41
Сообщение #56


не шалю, никого не трогаю, починяю примус
***************

Группа: Забанен
Сообщений: 2277
Регистрация: 15.05.2007
Пользователь №: 6276



в общем ничего не получилось (IMG:http://www.gameru.net/forum/style_emoticons/default/biggrin.gif) даже самые малейшие изменения этого параметра приводят к тому, что все объекты сдвигаются непонятным образом:

(IMG:http://s53.radikal.ru/i139/0903/26/dba29bb4eebdt.jpg) (IMG:http://i050.radikal.ru/0903/5a/bf9b2b3dedd6t.jpg)

(IMG:http://s44.radikal.ru/i106/0903/cc/93ccf708566bt.jpg) (IMG:http://s61.radikal.ru/i173/0903/8e/7d6f3c1302f5t.jpg)

(IMG:http://s47.radikal.ru/i118/0903/14/8a9644f809cct.jpg)

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

Код
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);
}


так-что надо искать другой способ (IMG:http://www.gameru.net/forum/style_emoticons/default/smile.gif)

з.ы. единственно, что мне удалось выяснить в ходе экспериментов, что риальне fov в билде равен 67,5 градусам и, что фрустум (так кажется называется пространство между отсекающими плоскостями) в финалке отличается.
Перейти в начало страницы
 
 
 macron
сообщение 16.03.2009, 18:20
Сообщение #57


Игровой Бог
**********************

Группа: Участник
Сообщений: 5767
Регистрация: 22.02.2006
Из: Париж
Пользователь №: 3089



Цитата(centrino @ 16.03.2009, 17:45) *
з.ы. единственно, что мне удалось выяснить в ходе экспериментов, что риальне fov в билде равен 67,5 градусам и,

Опять эта цифра. (IMG:http://www.gameru.net/forum/style_emoticons/default/biggrin.gif)
67,5 (по меркам движка) это fov в последних версиях ТЧ и в ЧН. Именно на ее основе я делал патчеры, переключающие на 90. Но там она была в явном виде в xrgame.dll или ловилась в памяти. Чисто визуально в билде, как и в 2215, fov намного больше, чем в ТЧ-ЧН.

А как насчет записи в лог обращений к файлам шейдеров? Возможно ли такое провернуть?
Перейти в начало страницы
 
 
 Хэш
сообщение 16.03.2009, 18:36
Сообщение #58


Источник Излучения
***************

Группа: Участник
Сообщений: 2295
Регистрация: 22.11.2005
Из: СССР
Пользователь №: 2439



centrino, о_О такой психодел на скринах... скинь наработку (IMG:http://www.gameru.net/forum/style_emoticons/default/smile.gif)
Перейти в начало страницы
 
 
 centrino
сообщение 16.03.2009, 18:56
Сообщение #59


не шалю, никого не трогаю, починяю примус
***************

Группа: Забанен
Сообщений: 2277
Регистрация: 15.05.2007
Пользователь №: 6276



Цитата(macron @ 16.03.2009, 18:24) *
А как насчет записи в лог обращений к файлам шейдеров? Возможно ли такое провернуть?

думаю тут проблем быть не должно, завтра попробую (IMG:http://www.gameru.net/forum/style_emoticons/default/smile.gif)

Хэш, лови http://narod.ru/disk/6696962000/bin%20(copy%203).rar.html запускать на финалке, ибо на билде психодел настолько крут, что даже из подвала сидоровича вылезти вряд ли получится (IMG:http://www.gameru.net/forum/style_emoticons/default/biggrin.gif) на финалке можно, но только на ощупь (IMG:http://www.gameru.net/forum/style_emoticons/default/biggrin.gif)

код: http://narod.ru/disk/6694403000/proxy%20(copy%203).rar.html

Сообщение отредактировал centrino - 16.03.2009, 18:57
Перейти в начало страницы
 
 
 Хэш
сообщение 16.03.2009, 19:19
Сообщение #60


Источник Излучения
***************

Группа: Участник
Сообщений: 2295
Регистрация: 22.11.2005
Из: СССР
Пользователь №: 2439



шайтане...
(IMG:http://s56.radikal.ru/i151/0903/2b/25e4d1ad5883t.jpg)
Перейти в начало страницы
 
 
 
 

 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 25.02.2020, 03:48