Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!
4 страниц V  < 1 2 3 4 >  
Ответить в данную темуНачать новую тему
> Широкоэкранное разрешение HD (16:9, 16:10), ...думаем как сделать...
macron
сообщение 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
Перейти в начало страницы
 
DANGER
сообщение 15.03.2009, 07:08
Сообщение #42


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

Репутация:   57  
Группа: Участник
Сообщений: 343
Награды: 1
Регистрация: 03.11.2008




Вставить ник Цитировать выделенное в форуму быстрого ответа


macron ну ведь fov игры можно менять прям в user.ltx, blink.gif я уже несколько раз писал,но меня на этом форуме игнорировали и я забил,та строчка которую многие называют прозрачностью худа и которая названа прозрачность худа,в меню от LekZd 1,4 вот это и есть fov!!!


--------------------


Лучшая благодарность + в репу.
Перейти в начало страницы
 
centrino
сообщение 15.03.2009, 10:28
Сообщение #43


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

Репутация:   230  
Группа: Забанен
Сообщений: 2277
Награды: 1
Регистрация: 15.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(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);
}


вот если б нашелся доброволец... а то у меня уже в глазах рябит wacko.gif


--------------------
i know where you live
Перейти в начало страницы
 
macron
сообщение 15.03.2009, 11:01
Сообщение #44


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

Репутация:   1690  
Группа: Участник
Сообщений: 7021
Награды: 11
Регистрация: 22.02.2006




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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

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


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

Репутация:   230  
Группа: Забанен
Сообщений: 2277
Награды: 1
Регистрация: 15.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


исправленный файл сюда выкладывайте, я его к проге прикручу. ну или сам вечером переделаю smile.gif


--------------------
i know where you live
Перейти в начало страницы
 
melnik
сообщение 15.03.2009, 12:10
Сообщение #46


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

Репутация:   20  
Группа: Участник
Сообщений: 67
Награды: 1
Регистрация: 02.03.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Вот файл http://dump.ru/file/2184197 Вроде нигде не накосячил rolleyes.gif
Перейти в начало страницы
 
centrino
сообщение 15.03.2009, 15:14
Сообщение #47


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

Репутация:   230  
Группа: Забанен
Сообщений: 2277
Награды: 1
Регистрация: 15.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


melnik, не качается sad.gif перезалей сюда, если не сложно


--------------------
i know where you live
Перейти в начало страницы
 
melnik
сообщение 15.03.2009, 15:31
Сообщение #48


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

Репутация:   20  
Группа: Участник
Сообщений: 67
Награды: 1
Регистрация: 02.03.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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

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


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

Репутация:   230  
Группа: Забанен
Сообщений: 2277
Награды: 1
Регистрация: 15.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

з.ы. с первого раза компилятор проглотил 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 ==========


--------------------
i know where you live
Перейти в начало страницы
 
centrino
сообщение 15.03.2009, 16:36
Сообщение #50


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

Репутация:   230  
Группа: Забанен
Сообщений: 2277
Награды: 1
Регистрация: 15.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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



пришлось от дуба установить плоскости отсечения zf и zn, т.к. эти значения не передаются в ф-ию SetTransform, а передается структура D3DMATRIX. если кто разберется в значениях этой структуры, то было бы неплохо, значение fov и отсекающих поверхностей как-то через нее передаются.


--------------------
i know where you live
Перейти в начало страницы
 
macron
сообщение 15.03.2009, 16:47
Сообщение #51


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

Репутация:   1690  
Группа: Участник
Сообщений: 7021
Награды: 11
Регистрация: 22.02.2006




Вставить ник Цитировать выделенное в форуму быстрого ответа


centrino, круто! Запускается. А менять то как? ohmy.gif
Перейти в начало страницы
 
centrino
сообщение 15.03.2009, 17:25
Сообщение #52


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

Репутация:   230  
Группа: Забанен
Сообщений: 2277
Награды: 1
Регистрация: 15.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


пока никак, это какой-то не такой fov, то есть определенно что-то происходит, но внешне ничего не меняется biggrin.gif если на финалке запускать со значением 180 градусов, то она просто вываливается, билду вообще пофиг, но эта функция вызывается - это совершенно точно. попробую еще покопаться..


--------------------
i know where you live
Перейти в начало страницы
 
centrino
сообщение 16.03.2009, 01:36
Сообщение #53


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

Репутация:   230  
Группа: Забанен
Сообщений: 2277
Награды: 1
Регистрация: 15.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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

где 1-й параметр - это какая-то хитрая структура, в которой мы, в числе прочего, должны получить fov в результате выполнения этой ф-ии
2-й параметр - это он и есть, устанавливаемый fov biggrin.gif
3-й параметр - перспектива, я установил ее равной отношению сторон экрана
ну и последние 2 параметра - это расстояния до отсекающих плоскостей.

если эту строку закомментить, то будут использованы значения структуры pMatrix установленные разрабами, которые передаются в нашу прокси-функцию 2-м параметром, тогда все работает как надо, но и fov соответственно остается прежним. вобщем если у кого есть visual studio 2005 - экспериментируйте, авось чего о получится biggrin.gif

з.ы. позже добавлю возможность изменять эти параметры через ini


--------------------
i know where you live
Перейти в начало страницы
 
centrino
сообщение 16.03.2009, 02:17
Сообщение #54


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

Репутация:   230  
Группа: Забанен
Сообщений: 2277
Награды: 1
Регистрация: 15.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа




как-то так unsure.gif


--------------------
i know where you live
Перейти в начало страницы
 
centrino
сообщение 16.03.2009, 12:18
Сообщение #55


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

Репутация:   230  
Группа: Забанен
Сообщений: 2277
Награды: 1
Регистрация: 15.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


дано:

параметры, которыми заполняется структура 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() которая устанавливает угол обзора unsure.gif

Сообщение отредактировал centrino - 16.03.2009, 12:19


--------------------
i know where you live
Перейти в начало страницы
 
centrino
сообщение 16.03.2009, 17:45
Сообщение #56


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

Репутация:   230  
Группа: Забанен
Сообщений: 2277
Награды: 1
Регистрация: 15.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


в общем ничего не получилось biggrin.gif даже самые малейшие изменения этого параметра приводят к тому, что все объекты сдвигаются непонятным образом:







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

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


так-что надо искать другой способ smile.gif

з.ы. единственно, что мне удалось выяснить в ходе экспериментов, что риальне fov в билде равен 67,5 градусам и, что фрустум (так кажется называется пространство между отсекающими плоскостями) в финалке отличается.


--------------------
i know where you live
Перейти в начало страницы
 
macron
сообщение 16.03.2009, 18:24
Сообщение #57


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

Репутация:   1690  
Группа: Участник
Сообщений: 7021
Награды: 11
Регистрация: 22.02.2006




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

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

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


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

Репутация:   508  
Группа: Участник
Сообщений: 2295
Награды: 3
Регистрация: 22.11.2005




Вставить ник Цитировать выделенное в форуму быстрого ответа


centrino, о_О такой психодел на скринах... скинь наработку smile.gif
Перейти в начало страницы
 
centrino
сообщение 16.03.2009, 19:00
Сообщение #59


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

Репутация:   230  
Группа: Забанен
Сообщений: 2277
Награды: 1
Регистрация: 15.05.2007




Вставить ник Цитировать выделенное в форуму быстрого ответа


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

думаю тут проблем быть не должно, завтра попробую smile.gif

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

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

Сообщение отредактировал centrino - 16.03.2009, 19:01


--------------------
i know where you live
Перейти в начало страницы
 
Хэш
сообщение 16.03.2009, 19:23
Сообщение #60


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

Репутация:   508  
Группа: Участник
Сообщений: 2295
Награды: 3
Регистрация: 22.11.2005




Вставить ник Цитировать выделенное в форуму быстрого ответа


шайтане...
Перейти в начало страницы
 

4 страниц V  < 1 2 3 4 >
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.03.2024, 15:26