Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Широкоэкранное разрешение HD (16:9, 16:10)
GAMEINATOR forums > S.T.A.L.K.E.R. > S.T.A.L.K.E.R. БИЛДЫ > S.T.A.L.K.E.R.: DREAM (Build 1935)
Страницы: 1, 2
macron
centrino, круто! Запускается. А менять то как? ohmy.gif
centrino
пока никак, это какой-то не такой fov, то есть определенно что-то происходит, но внешне ничего не меняется biggrin.gif если на финалке запускать со значением 180 градусов, то она просто вываливается, билду вообще пофиг, но эта функция вызывается - это совершенно точно. попробую еще покопаться..
centrino
короче получилось, ну почти 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
centrino


как-то так unsure.gif
centrino
дано:

параметры, которыми заполняется структура 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
в общем ничего не получилось 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 градусам и, что фрустум (так кажется называется пространство между отсекающими плоскостями) в финалке отличается.
macron
Цитата(centrino @ 16.03.2009, 17:45) *
з.ы. единственно, что мне удалось выяснить в ходе экспериментов, что риальне fov в билде равен 67,5 градусам и,

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

А как насчет записи в лог обращений к файлам шейдеров? Возможно ли такое провернуть?
Хэш
centrino, о_О такой психодел на скринах... скинь наработку smile.gif
centrino
Цитата(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


истина где-то рядом ph34r.gif
centrino
получилось smile.gif



правда не совсем так, как хотелось бы, но думаю можно поправить
centrino
http://narod.ru/disk/6727859000/bin%20(copy%204).rar.html

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

значения угла устанавливаются в proxy.ini в градусах

работает только на билде
Vetal17
Цитата(centrino @ 17.03.2009, 15:01) *
получилось smile.gif



правда не совсем так, как хотелось бы, но думаю можно поправить

Эээ, а что это дает blink.gif ?
hornes
А можно перезалить? А то я приобрел широкоформат и поиграть нормально хочется. rolleyes.gif
Vetal17
Цитата(hornes @ 07.04.2009, 22:13) *
А можно перезалить? А то я приобрел широкоформат и поиграть нормально хочется. rolleyes.gif

Конечно, лови wink_old.gif
sava.5
Хэш, Centrino, HikeR А можете попробовать прикрутить расширения 1440х900 и 1680х1050 к меню от Lekzd? Было бы кульно.
Fe1ix
Цитата(sava.5 @ 19.06.2009, 13:16) *
А можете попробовать прикрутить расширения 1440х900 и 1680х1050 к меню от Lekzd? Было бы кульно.

разрешения smile.gif
в menu.ini можно прописать нужное разрешение. Только справа в меню видео подключивать будет)
Код
resx 1680
resy 1050
Fe1ix
wide screen fix (Universal Resolution Changer) и для 2215 пашет...
В 1935 прицельная сетка смещается, а в 2215 - нет.
http://img.gameru.net/images/ssadmin061.jpg (2215 - разрешение 1680х1050)
дак вот, может кто-то шарит, сможет исправить прицел для 1935?
Vetal17
Народ, как бы для S.T.A.L.K.E.R. build 1580 и S.T.A.L.K.E.R. build 1472 широкий экран адаптировать ? Скейл картинки на них тоже не работает z_cry.gif z_cry.gif z_cry.gif
hi_flyer
Vetal17,

Выстави разрешение 1600х1200 и запусти билд в оконном режиме. Только так.
Коннор
hi_flyer,
Мда -> "28.01.2010".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.