Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Судьба CryEngine 3
GAMEINATOR forums > Общие разделы > Создание и модификация игр. Геймдев.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
skaner
Цитата(andreyholkin @ 25.03.2018, 22:22) *
skaner, dx11 (dx10) запустил на минималке. На остальных чернота, а на максималке красные силуэты и под ногами даже нормальный шейдер воды.

У меня на минималке только кроны деревьев видно) вода тоже есть
Наверно что то в конфигах,бывает изредка всю локацию рисует на секунду времени
В консоли командой q_ повключал все что там было,видимо в конфиге оно выключенно,все появилось)
ну это на минималке,потом сменил на средние настройки чернота откатился на минималку снова только кроны) не смотря на то что в консоли на вери хай

Это что то с пост процессингом,sys_spec_PostProcessing значение на 1 ну все равно на мониторе какая то бяка
skaner
Если в конфиг прописать это r_useMergedPostEffects=0 то будет работать на любых настройках,ну бяка на экране монитора все равно будет,ну думаю и это можно найти
А может у тебя будет нормально,ну у меня пока с бякой
Diesel
skaner, да баги от туда sys_spec_PostProcessing= ... 1 - нормально (идеально) - 2.3.4 - баги



sys_spec_PostProcessing.cfg
Файл
[default]
; default of this CVarGroup
= 4

r_DepthOfField=2
r_MotionBlur=2
r_sunshafts=1
r_UseEdgeAA=1
r_Flares=1
r_Coronas=1
r_colorgrading=2
r_GlowAnamorphicFlares = 1

[1]
r_DepthOfField=0
r_MotionBlur=0
r_Flares=1
r_Coronas=1
r_UseEdgeAA=0
r_sunshafts=0
r_colorgrading=0

[2]
r_DepthOfField=1
r_sunshafts=0
r_MotionBlur=0
r_UseEdgeAA=0
r_colorgrading=2

[3]
r_DepthOfField=1
r_sunshafts=0
r_MotionBlur=1
r_colorgrading=2

Искать от сюда надо начинать.

sys_spec_Full.cfg

файл
[default]
; default of this CVarGroup
= 4

sys_spec_ObjectDetail=4
sys_spec_Shading=4
sys_spec_VolumetricEffects=4
sys_spec_Shadows=4
sys_spec_Texture=4
sys_spec_Physics=4
sys_spec_PostProcessing=4
sys_spec_Particles=4
sys_spec_Sound=4
sys_spec_Water=4
sys_spec_GameEffects=4

[1]
sys_spec_ObjectDetail=1
sys_spec_Shading=1
sys_spec_VolumetricEffects=1
sys_spec_Shadows=1
sys_spec_Texture=1
sys_spec_Physics=1
sys_spec_PostProcessing=1
sys_spec_Particles=1
sys_spec_Sound=1
sys_spec_Water=1
sys_spec_GameEffects=1

[2]
sys_spec_ObjectDetail=2
sys_spec_Shading=2
sys_spec_VolumetricEffects=2
sys_spec_Shadows=2
sys_spec_Texture=2
sys_spec_Physics=2
sys_spec_PostProcessing=2
sys_spec_Particles=2
sys_spec_Sound=2
sys_spec_Water=2
sys_spec_GameEffects=2

[3]
sys_spec_ObjectDetail=3
sys_spec_Shading=3
sys_spec_VolumetricEffects=3
sys_spec_Shadows=3
sys_spec_Texture=3
sys_spec_Physics=3
sys_spec_PostProcessing=3
sys_spec_Particles=3
sys_spec_Sound=3
sys_spec_Water=3
sys_spec_GameEffects=3


Резкость на dx10 существенно выше, чем на dx9
Diesel
Косяк тут:

Вот тут r_colorgrading=0 нормально

r_colorgrading=2 - баг

Вот сюда в движок идёт



Тут явное условие
void CColorGrading::UpdateParams( SColorGradingMergeParams &pMergeParams )
{
float fSharpenAmount = max(m_pSharpenAmount->GetParam(), 0.0f);

// add cvar color_grading/color_grading_levels/color_grading_selectivecolor/color_grading_filters

// Clamp to same Photoshop min/max values
float fMinInput = clamp_tpl<float>(m_pMinInput->GetParam(), 0.0f, 255.0f);
float fGammaInput = clamp_tpl<float>(m_pGammaInput->GetParam(), 0.0f, 10.0f);;
float fMaxInput = clamp_tpl<float>(m_pMaxInput->GetParam(), 0.0f, 255.0f);
float fMinOutput = clamp_tpl<float>(m_pMinOutput->GetParam(), 0.0f, 255.0f);

float fMaxOutput = clamp_tpl<float>(m_pMaxOutput->GetParam(), 0.0f, 255.0f);

float fBrightness = m_pBrightness->GetParam();
float fContrast = m_pContrast->GetParam();
float fSaturation = m_pSaturation->GetParam() + m_pSaturationOffset->GetParam();
Vec4 pFilterColor = m_pPhotoFilterColor->GetParamVec4() + m_pPhotoFilterColorOffset->GetParamVec4();
float fFilterColorDensity = clamp_tpl<float>(m_pPhotoFilterColorDensity->GetParam() + m_pPhotoFilterColorDensityOffset->GetParam(), 0.0f, 1.0f);
float fGrain = min(m_pGrainAmount->GetParam()+m_pGrainAmountOffset->GetParam(), 1.0f);

Vec4 pSelectiveColor = m_pSelectiveColor->GetParamVec4();
float fSelectiveColorCyans = clamp_tpl<float>(m_pSelectiveColorCyans->GetParam()*0.01f, -1.0f, 1.0f);
float fSelectiveColorMagentas = clamp_tpl<float>(m_pSelectiveColorMagentas->GetParam()*0.01f, -1.0f, 1.0f);
float fSelectiveColorYellows = clamp_tpl<float>(m_pSelectiveColorYellows->GetParam()*0.01f, -1.0f, 1.0f);
float fSelectiveColorBlacks = clamp_tpl<float>(m_pSelectiveColorBlacks->GetParam()*0.01f, -1.0f, 1.0f);

// Saturation matrix
Matrix44 pSaturationMat;
{
float y=0.3086f, u=0.6094f, v=0.0820f, s=clamp_tpl<float>(fSaturation, -1.0f, 100.0f);

float a = (1.0f-s)*y + s;
float b = (1.0f-s)*y;
float c = (1.0f-s)*y;
float d = (1.0f-s)*u;
float e = (1.0f-s)*u + s;
float f = (1.0f-s)*u;
float g = (1.0f-s)*v;
float h = (1.0f-s)*v;
float i = (1.0f-s)*v + s;

pSaturationMat.SetIdentity();
pSaturationMat.SetRow(0, Vec3(a, d, g));
pSaturationMat.SetRow(1, Vec3(b, e, h));
pSaturationMat.SetRow(2, Vec3(c, f, i));
}

// Brightness matrix
Matrix44 pBrightMat;
fBrightness=clamp_tpl<float>(fBrightness, 0.0f, 100.0f);
pBrightMat.SetIdentity();
pBrightMat.SetRow(0, Vec3(fBrightness, 0, 0));
pBrightMat.SetRow(1, Vec3(0, fBrightness, 0));
pBrightMat.SetRow(2, Vec3(0, 0, fBrightness));

// Create Contrast matrix
Matrix44 pContrastMat;
{
float c=clamp_tpl<float>(fContrast, -1.0f, 100.0f);
pContrastMat.SetIdentity();
pContrastMat.SetRow(0, Vec3(c, 0, 0));
pContrastMat.SetRow(1, Vec3(0, c, 0));
pContrastMat.SetRow(2, Vec3(0, 0, c));
pContrastMat.SetColumn(3, 0.5f*Vec3(1.0f-c, 1.0f-c, 1.0f-c));
}

// Compose final color matrix and set fragment program constants
Matrix44 pColorMat = pSaturationMat * (pBrightMat * pContrastMat);

Vec4 pParams0 = Vec4(fMinInput, fGammaInput, fMaxInput, fMinOutput);
Vec4 pParams1 = Vec4(fMaxOutput, fGrain, cry_rand()%1024, cry_rand()%1024);
Vec4 pParams2 = Vec4(pFilterColor.x, pFilterColor.y, pFilterColor.z, fFilterColorDensity);
Vec4 pParams3 = Vec4(pSelectiveColor.x, pSelectiveColor.y, pSelectiveColor.z, fSharpenAmount + 1.0f);
Vec4 pParams4 = Vec4(fSelectiveColorCyans, fSelectiveColorMagentas, fSelectiveColorYellows, fSelectiveColorBlacks);

// Enable corresponding shader variation
pMergeParams.nFlagsShaderRT = gRenDev->m_RP.m_FlagsShader_RT;
pMergeParams.nFlagsShaderRT &= ~(g_HWSR_MaskBit[HWSR_SAMPLE0]|g_HWSR_MaskBit[HWSR_SAMPLE1]|g_HWSR_MaskBit[HWSR_
SAMPLE2]|g_HWSR_MaskBit[HWSR_SAMPLE3]|g_HWSR_MaskBit[HWSR_SAMPLE4]);

#if !defined(XENON) && !defined(PS3)
if( CRenderer::CV_r_colorgrading_levels && (fMinInput || fGammaInput || fMaxInput || fMinOutput ||fMaxOutput) )
pMergeParams.nFlagsShaderRT |= g_HWSR_MaskBit[HWSR_SAMPLE0];
#endif

if( CRenderer::CV_r_colorgrading_filters && (fFilterColorDensity || fGrain || fSharpenAmount))
{
if( fFilterColorDensity )
pMergeParams.nFlagsShaderRT |= g_HWSR_MaskBit[HWSR_SAMPLE4];
if( fGrain || fSharpenAmount )
pMergeParams.nFlagsShaderRT |= g_HWSR_MaskBit[HWSR_SAMPLE1];
}

if( CRenderer::CV_r_colorgrading_selectivecolor && (fSelectiveColorCyans || fSelectiveColorMagentas || fSelectiveColorYellows || fSelectiveColorBlacks))
pMergeParams.nFlagsShaderRT |= g_HWSR_MaskBit[HWSR_SAMPLE2];

if (CRenderer::CV_r_colorgrading_charts && CRenderer::CV_r_colorgrading == 2)
pMergeParams.nFlagsShaderRT |= g_HWSR_MaskBit[HWSR_SAMPLE3];

Matrix44 pColorMatFromUserAndTOD = GetUtils().GetColorMatrix();
pColorMat = pColorMat * pColorMatFromUserAndTOD;

Vec4 pColorMatrix[3]=
{
Vec4(pColorMat.m00, pColorMat.m01, pColorMat.m02, pColorMat.m03),
Vec4(pColorMat.m10, pColorMat.m11, pColorMat.m12, pColorMat.m13),
Vec4(pColorMat.m20, pColorMat.m21, pColorMat.m22, pColorMat.m23),
};

pMergeParams.pColorMatrix[0] = pColorMatrix[0];
pMergeParams.pColorMatrix[1] = pColorMatrix[1];
pMergeParams.pColorMatrix[2] = pColorMatrix[2];
pMergeParams.pLevels[0] = pParams0;
pMergeParams.pLevels[1] = pParams1;
pMergeParams.pFilterColor = pParams2;
pMergeParams.pSelectiveColor[0] = pParams3;
pMergeParams.pSelectiveColor[1] = pParams4;

if (gcpRendD3D->m_pColorGradingControllerD3D)
{
if( CRenderer::CV_r_colorgrading == 2)
{
gcpRendD3D->m_pColorGradingControllerD3D->Update(&pMergeParams);
}

else
gcpRendD3D->m_pColorGradingControllerD3D->Update();
}

// If using merged color grading with color chart disable regular color transformations in display - only need to use color chart
if( CRenderer::CV_r_colorgrading == 2)
pMergeParams.nFlagsShaderRT &= ~(g_HWSR_MaskBit[HWSR_SAMPLE0]|g_HWSR_MaskBit[HWSR_SAMPLE2]|g_HWSR_MaskBit[HWSR_
SAMPLE4]);


}




А не косяк ли это из-за DXSDK - возможно тут 2009 год требуется, а не 2010й
Diesel
skaner, компилятор шейдеров со значением 0 компилит скорее всего под dx10, а 2 под dx11. Со значением 0 шейдеры на ui экрана (потёки, и т.д - корявые, мутные). Текстуры моделей так же со значением 0 не все идеальные.
Попробую этот проект под dxsdk2009 переделать. Хотя может тут dx11 всё таки присутствует, не зря же делку назвали dx11
Ruw
ШТА!???!!!!

Kingdom Come: Deliverance на Cryengine!!!????

Локи с лёгкостью можно переделать в сталкерские заменив архитектуру?

т.е вы таки хотите сказать, что следует поднять из закрамов сети наработки комюните по сталкеру на cryengine и начать их адаптировать на локации Kingdom Come: Deliverance ?

Я правильно понял?
skaner
Еще помогает в system.cfg r_ColorGradingCharts=0 прописать или это r_useMergedPostEffects=0
Но работает нормально только на низких и средних,на высоких и очень высоких,на экране птичка нагадила,и вода вроде прозрачной стала в океане
Может dx10.1 нвидеа его тоже не держат вроде

Kingdom Come: Deliverance, да на cryengine,может и можно, если не перешли на новые версии,смотря что адаптировать,скорей всего можно, адаптировать с небольшим отличиями от имеющихся наработок
skaner
Цитата(andreyholkin @ 26.03.2018, 10:42) *
skaner, компилятор шейдеров со значением 0 компилит скорее всего под dx10, а 2 под dx11. Со значением 0 шейдеры на ui экрана (потёки, и т.д - корявые, мутные). Текстуры моделей так же со значением 0 не все идеальные.
Попробую этот проект под dxsdk2009 переделать. Хотя может тут dx11 всё таки присутствует, не зря же делку назвали dx11


Испытал через dxcpl,кака осталась стало быть баг какой то
sys_spec_Shading=2 кака уходит,теперь в Shading надо покопатся
Конфиг еще не правильный есть такие команды которых нет в движке
Diesel
skaner, sys_spec_Shading=

r_HDRRendering=0 - норма
r_HDRRendering=2 - баг

Идём в движок:
CV_r_HDRRendering

Короче и у этой проблемы один корень зла - в шейдерах косяк. Именно в компиляции.
Эту проблему на видяхе без dx11 не победить, можно только вырезать dx11 компилятор.
Надо под дебагом собрать билд - там как раз есть отличие по CV_r_HDRRendering и посмотреть разницу.
===========================================================================

[Warning] Non normal map used (wrong on DX11 and PS3): textures/detail_bumpmaps/wood_vertical_1_ddn.dds [File=textures/detail_bumpmaps/wood_vertical_1_ddn.dds]
Flushing pended shaders...


Давай делать рендер без dx11, потому что мне проверить не где шейдера.
Diesel
На dxsdk2009 перенести сложно, из-за отсутствия там:
1>D3DHWShaderCompiling.obj : error LNK2001: unresolved external symbol _IID_ID3D11ShaderReflection
skaner
если оно нам вообще надо) стоит ли овчинка выделки,разницы между рендерами возможно нет,только баги появятся там ведь не только CV_r_HDRRendering,потестили знаем как включить и что отключить что бы работало,а дальше надо подумать,исправлять что то или оставить в сторонку,надо потестить как он рисует без hdr,если в чем то лучше то конечно надо бы исправить,может сам шейдер покруть
Сейчас на другом компе протестирую с dx11
skaner
Не знаю с чем это связанно,ну на втором компе dx11 вообще пустой экран нет даже инф указателей
Diesel
skaner, поэтому его и слили. Вообще по идее, если доработать этот двиг, то разрабы должны доплачивать нам, а не грозить административкой. biggrin.gif
skaner
Цитата(andreyholkin @ 26.03.2018, 21:12) *
skaner, поэтому его и слили. Вообще по идее, если доработать этот двиг, то разрабы должны доплачивать нам, а не грозить административкой. biggrin.gif

Это да) может и найдем решение устранения багов,двиг хороший,несмотря на отсутсвие dx11-12
И не только потому что у нас нет в видяхах dx11 biggrin.gif
Diesel
skaner, собираю дебаг
у тебя нет fmodex_vcD.lib лишней?
skaner
Цитата(andreyholkin @ 26.03.2018, 21:49) *
skaner, собираю дебаг
у тебя нет fmodex_vcD.lib лишней?

Под дебаг нету и проэкта не вижу что бы сие собрать,нашел какую то версию,скачаю гляну,тоже не то,такой как ты написал нету
Diesel
skaner, на dx10 на экране в пикселях крупных капли крови, текстура капель воды (типа острова белые) косячная.

Цитата(skaner @ 27.03.2018, 00:06) *
Цитата(andreyholkin @ 26.03.2018, 21:49) *
skaner, собираю дебаг
у тебя нет fmodex_vcD.lib лишней?

Под дебаг нету и проэкта не вижу что бы сие собрать,нашел какую то версию,скачаю гляну,тоже не то,такой как ты написал нету

Debug - он есть там где Release. Profile
Diesel
Портянка по F-mod:
http://www.stephanschutze.com/uploads/3/1/..._v1.5_final.pdf
http://studylib.net/doc/9939864/fmod-designer-2010

Самое обидное, что я собрал Дебаг-версию, просто удалив букву D

#elif defined(CRYSOUNDSYSTEM_FMOD_DEBUG)
# pragma message (">>> include lib: fmodex/lib/fmodex_vc.lib")
# pragma comment(lib,"fmodex/lib/fmodex_vc.lib")
# pragma message (">>> include lib: fmodex/lib/fmod_event.lib")
# pragma comment(lib,"fmodex/lib/fmod_event.lib")
# pragma message (">>> include lib: fmodex/lib/fmod_event_net.lib")
# pragma comment(lib,"fmodex/lib/fmod_event_net.lib")
#endif
Diesel
r_HDRRendering=2 Не стоит однако в 0 делать. Бяка то исчезнет, но и пиксели увеличатся на экране однако.

Эту проблему надо искать в текстурах. Это UIшки на камере, градиенты какие то.

Ну, вот Дебаг сам себя нашел
Diesel
https://yadi.sk/d/gxDfmYTWmBtSE
Надо закачать срочно.

skaner
Тоже вчера посещала мысль что это в текстуре дело,так ты поборол эту бяку?
Diesel
skaner, я её тоже вижу, но не пробывал. Когда все текстуры переделать под новый двиг, то эта бяка исчезнет -99%
skaner
Цитата(andreyholkin @ 27.03.2018, 11:39) *
skaner, я её тоже вижу, но не пробывал. Когда все текстуры переделать под новый двиг, то эта бяка исчезнет -99%

Будем старатся smile.gif вечером начну искать,времени вечно не хватает
skaner
andreyholkin,
Корень бяки найден Textures\defaults\JumpNoiseHighFrequency_x27y19.dds
надо в коде посмотреть можно ли ее исправить,или через фотошоп,а так без этой текстурки бяки нет
Diesel
skaner, хорошо я посмотрю - переделаю.
Diesel
skaner, текстура не виновата - 1% победил. Я всяко её компилировал. Короче, её просто удалить и не париться. Найти функцию которая её вешает на камеру и почистить - это будет правильно.

Texture.cpp

void CTexture::LoadDefaultTextures()


s_ptexScreenNoiseMap = CTexture::ForName("Textures/Defaults/JumpNoiseHighFrequency_x27y19.dds", FT_DONT_RELEASE | FT_DONT_RESIZE | FT_DONT_STREAM, eTF_Unknown);

а тут рядом (выше) есть бывший аналог, можно его раскоментировать, а с шумом заглушить. Надо проверить.
// s_ptexScreenNoiseMap = CTexture::ForName("Textures/Defaults/dither_pattern.dds", FT_DONT_RELEASE, eTF_Unknown);

Вообще это идёт сюда:
void CPointLightShafts::Render()

GetUtils().SetTexture(CTexture::s_ptexScreenNoiseMap, 1, FILTER_POINT, 0);


и сюда:
void HDR_RenderFinalScene(CShader *pSH)

CTexture::s_ptexScreenNoiseMap->Apply(6, nTexStatePointWrap);

Думаю, если вырезать шлейф текстуры, то будет еще лучше - будет резкость выше.
Я её вырежу из движка.
skaner
andreyholkin, супер) дело пошло..так авось и полностью рабочий dx10 запилится,таким образом и остальные баги найдем
Diesel
skaner, FT_DONT_STREAM - от туда растёт баг.
Можно даже не вырезать текстуру.

Можно тут вырезать: будет так:
s_ptexScreenNoiseMap = CTexture::ForName("Textures/Defaults/JumpNoiseHighFrequency_x27y19.dds", FT_DONT_RELEASE | FT_DONT_RESIZE , eTF_Unknown);
Diesel
skaner, сможешь найти вот эту текстуру (белые пятна). текстура постоянная - это не анм.

Это когда камера в воду заезжает - косяк.
skaner
Цитата(andreyholkin @ 27.03.2018, 18:47) *
skaner, сможешь найти вот эту текстуру (белые пятна). текстура постоянная - это не анм.

Это когда камера в воду заезжает - косяк.

Хорошо сейчас ее найду,мне интересно почему и за каких условий на dx9 все в норме,а на dx10,баги
Diesel
skaner, компиляция шейдеров разная. Этот билд был не доделан - может dx11 был в приоритете.

Не могу найти текстуру с белыми пятнами - всё перерыл.
skaner
Цитата(andreyholkin @ 27.03.2018, 21:05) *
skaner, компиляция шейдеров разная. Этот билд был не доделан - может dx11 был в приоритете.

Не могу найти текстуру с белыми пятнами - всё перерыл.


Textures\defaults\ water_droplets.dds
Diesel
skaner, z_crazy.gif
там вообще разный рисунок. Да и та синяя normal
skaner
Цитата(andreyholkin @ 27.03.2018, 21:14) *
skaner, z_crazy.gif
там вообще разный рисунок. Да и та синяя normal

biggrin.gif я не смотрю что на ней нарисованно,просто кидаю часть текстур в левую папку,так находится нужная)
skaner
Все равно как не крути надо лезть в шейдеры,прозрачный океан, и не работает для него настройка
Diesel
Цитата(skaner @ 28.03.2018, 00:54) *
Все равно как не крути надо лезть в шейдеры,прозрачный океан, и не работает для него настройка


Ha локации первого Кризиса - океан у меня офигенный. Я еще нуб в этом - но думаю тут не в шейдерах дело.

А вот на создаваемой с ноля - океан прозрачный. Я не шарю - где там настраивать.
skaner
Цитата(andreyholkin @ 27.03.2018, 23:18) *
Цитата(skaner @ 28.03.2018, 00:54) *
Все равно как не крути надо лезть в шейдеры,прозрачный океан, и не работает для него настройка


Ha локации первого Кризиса - океан у меня офигенный. Я еще нуб в этом - но думаю тут не в шейдерах дело.

А вот на создаваемой с ноля - океан прозрачный. Я не шарю - где там настраивать.

А какая локация с кризиса? у себя проверю
Diesel
skaner, island
skaner
Цитата(andreyholkin @ 27.03.2018, 23:27) *
skaner, island

У меня прозрачная,и на стандартном PacificIsland,ну у тебя может видяха другая
Diesel
skaner, сейчас видео сниму - закачаю в ютьюб.
У меня правда рендер dx10 ушатан - я лишку вырезал - но это временно.
У меня bin-солянка. biggrin.gif
skaner
Цитата(andreyholkin @ 27.03.2018, 23:59) *
skaner, сейчас видео сниму - закачаю в ютьюб.
У меня правда рендер dx10 ушатан - я лишку вырезал - но это временно.
У меня bin-солянка. biggrin.gif

А у меня в контенте такой бардак что по 10 минут смотрю что и откуда я туда закинул biggrin.gif
я пока не вырезал с рендера,просто удалил текстурки
Diesel
dx11>dx10
skaner
andreyholkin, Да у тебя вода суперская) никакому 352 и не снилось

У тебя видяха АТИ?
Diesel
Цитата(skaner @ 28.03.2018, 02:18) *
andreyholkin, Да у тебя вода суперская) никакому 352 и не снилось

У тебя видяха АТИ?

gt 320 (256mb)
У меня вообще лаги на максималке. Вот думаю если HD текстуры накинуть? laugh.gif

skaner, ты не кипишуй, дело не в видео карте. Я океян сам корректировал везде где только можно. Потом скину тебя базу, а ты сам возьмёшь, что тебе надо.
skaner
Цитата(andreyholkin @ 28.03.2018, 00:27) *
Цитата(skaner @ 28.03.2018, 02:18) *
andreyholkin, Да у тебя вода суперская) никакому 352 и не снилось

У тебя видяха АТИ?

gt 320 (256mb)
У меня вообще лаги на максималке. Вот думаю если HD текстуры накинуть? laugh.gif

Тогда еще просядет) прийдется еще прорисовку уменьшать,она по умолчанию и так не большая
Ну тут еще может быть дело в dx10.1 у тебя может есть поддержка на моей gtx 260 ее точно нет)
потом будет видно главное основные баги убрали
Diesel
skaner, не убрали баг с камерой когда касается воды. PostEffectsGame.cfx
Убирается весь эффект, хотя там есть потёки нормальные.
HD текстуры не подходят для 312 - они для старой версии.
skaner
Цитата(andreyholkin @ 28.03.2018, 01:09) *
skaner, не убрали баг с камерой когда касается воды. PostEffectsGame.cfx
Убирается весь эффект, хотя там есть потёки нормальные.
HD текстуры не подходят для 312 - они для старой версии.

Ну там пока не ясно где оно обрабатывается что бы настроить,может в либах?,надо поискать
там как бы два эффекта нормальные потеки, и второй засвечивает,всегда одним рисунком
skaner
Вообще похоже на не правильный альфа канал,наверно его просто по другому обрабатывает
Diesel
skaner, отрабатывается тут.

PostEffects.cpp
bool CWaterDroplets::Preprocess()
{
bool bQualityCheck = CPostEffectsMgr::CheckPostProcessQuality( eRQ_Medium, eSQ_Medium );
if( !bQualityCheck )
return false;

bool bUserActive = m_pAmount->GetParam() > 0.005f;

if( iSystem->IsEditorMode() && !bUserActive )
return false;

if( CRenderer::CV_r_water_godrays)
{
float fWatLevel = SPostEffectsUtils::m_fWaterLevel;
if( fWatLevel - 0.1f > gRenDev->GetRCamera().Orig.z)
{
m_fLastSpawnTime = 0.0f;
m_fCurrLifeTime = 0.0;
m_bWasUnderWater = true;
return false;
}
else
m_bWasUnderWater = false;

// Coming out of water
if( m_bWasUnderWater == false && m_fCurrLifeTime <1.0f)
{
const float fLifeTime = 1.5f;

if( !m_fLastSpawnTime )
m_fLastSpawnTime = gEnv->pTimer->GetCurrTime();

m_fCurrLifeTime = (gEnv->pTimer->GetCurrTime() - m_fLastSpawnTime) / fLifeTime;
if( m_fCurrLifeTime >= 1.0f)
{
if( !bUserActive ) // user enabled override
return false;
}

// check water level
return true;
}

if( bUserActive ) // user enabled override
return true;
}

return false;
}

void CWaterDroplets::Reset()
{
m_fLastSpawnTime = 0.0f;
m_fCurrLifeTime = 1000.0f;
m_bWasUnderWater = true;
m_pAmount->ResetParam(0.0f);
}


PostProcessWater.cpp
void CWaterDroplets::Render()
{
// float fDropletsAmount = m_pAmount->GetParam();

static CCryName pTechName("WaterDroplets");
GetUtils().ShBeginPass(CShaderMan::m_shPostEffectsGame, pTechName, FEF_DONTSETSTATES);

gcpRendD3D->EF_SetState(GS_NODEPTHTEST);

float fUserAmount = m_pAmount->GetParam();

float fAtten = clamp_tpl<float>(fabs( gRenDev->GetRCamera().Orig.z - SPostEffectsUtils::m_fWaterLevel ), 0.0f, 1.0f);
Vec4 vParams=Vec4(1, 1, 1, min(fUserAmount + (1.0f - clamp_tpl<float>(m_fCurrLifeTime, 0.0f, 1.0f)), 1.0f) * fAtten);
static CCryName pParamName("waterDropletsParams");
CShaderMan::m_shPostEffectsGame->FXSetPSFloat(pParamName, &vParams, 1);

GetUtils().DrawFullScreenQuad(CTexture::s_ptexBackBuffer->GetWidth(), CTexture::s_ptexBackBuffer->GetHeight());

GetUtils().ShEndPass();
}



Надо подобные уловия проверить всюду:

#if defined (DIRECT3D10) && !defined(PS3)
// Due to D3D10 srgb limitations on implementation (cannot create typeless swap chain to allow casting between srgb/non-srgb render target view)
//we'll need extra render target when using srgb
if( gRenDev->IsLinearSpaceShadingEnabled() )
CreateRenderTarget("$BackBufferTemp", CTexture::s_ptexBackBufferTemp, m_pScreenRect.right, m_pScreenRect.bottom, 1, 0, eTF_A8R8G8B8, -1, FT_USAGE_ALLOWREADSRGB);
#endif
Diesel
HD текстуры для Кризиса-1, Варса и Вархида обновили с 2016 до 2018 года.
https://forum.cryengine.com/viewtopic.php?f...;p=16952#p16952
Пока не знаю, что именно, вероятно дату.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.