Юра, а если у меня все настроено как надо, могу ли я просто через утилиту внести буквально пару правок в уже отредактированные мной .fx не затрагивая мои настройки?
Нет, я заблочил такую возможность, мало ли что там натвикано у людей может быть.
klim86
23.05.2016 в 18:04
Если у вас в решейде только люмашарпен и/или сепия, то да, решейд можно не использовать. Других постэффектов нет в PTA.
Выпилить решейд из сима можно, удалив все файлы в корне препара, какие найдутся из списка:
d3d8.dll d3d9.dll dxgi.dll opengl3
Как оперативно, Спасибо!
utah77
23.05.2016 в 18:10
Нет, я заблочил такую возможность, мало ли что там натвикано у людей может быть.
Надо сделать кнопочку — «Switch to Advanced version»
KNOSSOS
23.05.2016 в 18:16
Надо сделать кнопочку — «Switch to Advanced version»
Не, самые «advanced»-нутые ее первым делом жамкнут. А потом вопли, что облака коричневые.
Upd: другое дело, если шейдеры твикнутые, а нужно утилитой пост-обработку добавить или конфиг препара поменять, а кнопка Apply общая. Это да, приму на заметку.
utah77
23.05.2016 в 18:22
Не, самые «advanced»-нутые ее первым делом жамкнут. А потом вопли, что облака коричневые.
Да, как говорил Джо из «Друзей» — «немаловероятно»
Кстати, а есть какой-то инструмент, позволяющий сравнивать содержание двух текстовых фалов и выводить различия?
KNOSSOS
23.05.2016 в 18:26
Да, как говорил Джо из «Друзей» — «немаловероятно»
Кстати, а есть какой-то инструмент, позволяющий сравнивать содержание двух текстовых фалов и выводить различия?
Я Total Commander использую
Enzzo
23.05.2016 в 18:27
Да, как говорил Джо из «Друзей» — «немаловероятно»
Кстати, а есть какой-то инструмент, позволяющий сравнивать содержание двух текстовых фалов и выводить различия?
Кастомные пост-эффекты утилита умеет назначать только на глобальные камеры сима…
И то что есть — более чем достаточно. Как мне, так нужно только на Ездок-кокпит да спот-камеру.
Все работает и красиво получается. Отличная вещь, Юрий. Спасибо!
Spoiler
utah77
24.05.2016 в 19:37
И то что есть — более чем достаточно. Как мне, так нужно только на Ездок-кокпит да спот-камеру.
Все работает и красиво получается. Отличная вещь, Юрий. Спасибо!
Spoiler
Enzzo
24.05.2016 в 20:11
Эмм… это отлично? Не, я понимаю, кому что нравится, но тут же мыло сплошное и картинка хуже чем в дефолте по насышенности/контрасту/яркости ((
Насыщенность/яркость я уже поменял — добавил! . Ну что поделаешь, если у меня эдакий «колористический кретинизм», не могу определить направление и действия по установке цветового баланса.
А с мылом х/з, что за фигня. Так и не разобрался. Поставил на соседнюю винду 3.1 и то же самое — текстуры размыты.
А «Отлично!» — это к работе Юрия относится.
nickbe
25.05.2016 в 09:21
KNOSSOS, большое спасибо за утилиту!
Юрий, подскажите пожалуйста, есть пара вопросов: 1. Работает ли твик облаков с облаками REX Soft Cloud? После установки REX, мне кажется был изменен шейдер облаков. Перед использованием Вашей утилиты, я вернул родной шейдер P3D, и утилита отработала без ошибок, но визуально облака изменились. 2. Можно ли пользоваться утилитой при запущенном P3D, т.е. по факту наблюдать изменения делаемые утилитой. Если да, то как правильно перезагружать графику в P3D, чтобы перезагрузились шейдеры?
KNOSSOS
25.05.2016 в 10:00
1. утилита ругается на cloud.fx, что он не оригинальный, если вы ставили облака REX и не скинули галку про размер облаков. REX делает в этом случае небольшое изменение в облачный шейдер. Это изменение всего лишь одно — и его можно сделать утилитой — в твике Cloud size увеличить с 0.50 до 0.67 (вроде REX 0.67 ставит). Да, утилиту можно использовать с REX SC.
2. Нет, нужно перезапускать сим каждый раз. Есть механизм без перезапуска, но он мудреный и все равно не даст возможности наблюдать изменения, как, например, в RTH для X-Plane. Так как нужна перекомпиляция шейдеров. Менять их во время работы сима не стоит. Более того, я бы рекомендовал в драйвере NVidia отключить кеширование шейдеров, так как бывали всякие неприятности с этой опцией.
nickbe
25.05.2016 в 10:56
Спасибо за быстрый и обстоятельный ответ, всё для себя уяснил.
utah77
25.05.2016 в 14:58
Юра, а нельзя ли добавить для измнения вот это? Изменяемые значения выделил красным. Это все в cloud.fx. очень важные настройки если летаем днем.
========================== Тут изменяется sprite на group
/// Calculate the lighting of the clouds based on position of each corner GetPointDiffuse(Out.diffuse[i], position, spriteCenter.xyz, length(positionVector));
/// Calculate the lighting of the clouds based on position of each corner GetPointDiffuse( Out.diffuse[i], position, spriteCenter.xyz, cloudDistance );
=======================
Под спойлером файлик уже с изменениями (от 3.1, но там разница небольшая)
void GetPointDiffuse( out float4 diffuse, in float3 corner, in float3 groupCenter ) { // // Sun lighting // // See bglfp.cpp, g2d_LightCloudFromNormal() — KEEP SHADER IN SYNC! float3 cloudGroupNormal = normalize( corner.xyz — groupCenter ); float3 facingDirection = cross( cloudGroupNormal, float3( 0, 1, 0 ) ); float fIntensity = max( dot( cb_mLights[SUN_LIGHT].mDirection, cloudGroupNormal ), dot( cb_mLights[SUN_LIGHT].mDirection, facingDirection )) ;
if (fIntensity < -cb_mMedianLine) { // The «1.0001» in the line above is a hack to fix a bug // observed on some hardware. Even though the else branch // of this if/else was taken a divide by zero in this // branch (when cb_mMedianLine is 1.0) caused the whole // shader to go crazy. fIntensity = cb_mMinIntensity + (cb_mMedianIntensity — cb_mMinIntensity) * ((1 + fIntensity) / (1.0001 — cb_mMedianLine));
// Get round world matrix matrix matWorld = ComputeRoundWorldMatrix(geoTrans, cb_ViewOrigin);
// Set UV Out.uv = packedUV;
// Offset the spritecenter with cluster offset. The cluster is a group of sprite to make up // a cloud. This is needed b/c sometime we draw one cluster at a time to do sorting float4 clusterOffset = GetCloudClusterOffset(In.mInstanceIndex);
rotationMatrix[1] = normalize(-cross(rotationMatrix[2], rotationMatrix[0])); #elif defined(SHD_VIEW_CUBEMAP) // We baked a value [0 or 1] into the w component to tell us if this draw call is per puff int IsPuffDraw = saturate(clusterOffset.w); clusterOffset.w = 0.0; float3 positionVector = -mul(spriteCenter — clusterOffset, matWorld).xyz; float3 cameraFacingVector = normalize(positionVector);
// We baked a value [0 or 1] into the w component to tell us if this draw call is per puff int IsPuffDraw = saturate(clusterOffset.w); clusterOffset.w = 0.0; float3 positionVector = -mul(spriteCenter — clusterOffset, matWorld).xyz; float3 cameraFacingVector = normalize(positionVector);
float3 screenFacingVector = normalize(-cb_mInverseView[2].xyz); float cloudDistance = length(positionVector); float blendDistance = 800; // Clouds will be fully volumize from 3000 meters, reducing to 0 at 6000
[unroll]for (int i = 0; i < 4; i++) { // Perform rotation float3 position = mul(quad[i].xyz, rotationMatrix); /// Add the sprite center without scale to keep the diffuse color calculation identicle position = spriteCenter.xyz + position;
} #elif defined(SHD_VIEW_CUBEMAP) /// Calculate the lighting of the clouds based on position of each corner GetPointDiffuse( Out.diffuse[i], position, groupCenter.xyz );
/// Apply fading at the far clip. This prevents clouds popping in/out at the far clip #if defined(SHD_FADE_AT_FAR_CLIP) fAlphaFade = FarClipAlphaFade(Out.position[i].w, fAlphaFade); #endif /// Apply a distance fade relative to the camera Out.diffuse[i].w *= fAlphaFade;
// Bottom left output.position = mul(input[0].position[0], cb_mCloudViewProjection[InstanceID]); output.z = output.position.z; // pass down real z to PS output.position.z *= saturate(output.position.z); // pancake just in case output.uv.x = lowerleft.x; output.uv.y = lowerleft.y; output.localUV.x = -1; output.localUV.y = 1; SpriteStream.Append(output);
// Bottom right output.position = mul(input[0].position[2], cb_mCloudViewProjection[InstanceID]); output.z = output.position.z; // pass down real z to PS output.position.z *= saturate(output.position.z); // pancake just in case output.uv.x = lowerleft.x; output.uv.y = upperright.y; output.localUV.x = 1; output.localUV.y = 1; SpriteStream.Append(output);
// Top Left output.position = mul(input[0].position[1], cb_mCloudViewProjection[InstanceID]); output.z = output.position.z; // pass down real z to PS output.position.z *= saturate(output.position.z); // pancake just in case output.uv.x = upperright.x; output.uv.y = lowerleft.y; output.localUV.x = -1; output.localUV.y = -1; SpriteStream.Append(output);
// Top right output.position = mul(input[0].position[3], cb_mCloudViewProjection[InstanceID]); output.z = output.position.z; // pass down real z to PS output.position.z *= saturate(output.position.z); // pancake just in case output.uv.x = upperright.x; output.uv.y = upperright.y; output.localUV.x = 1; output.localUV.y = -1; SpriteStream.Append(output);
sprite менять на group — пятнистые облака — тоже в принципе [хотя pe11e попытался этот твик в RSP засунуть, но раскритиковали, сильно на любителя, ИМХО].
mul(float4(position, 0.8), matWorld — ползунок добавить? Или там обязательно 1.0, как в дефолте? Тогда просто галочку с этого твика снять и все.
А вот как обозвать два этих числа и объяснить на что каждое из них в отдельности влияет: diffuse = saturate( float4( .85f * colorIntensity.rgb + ( 0.33f * saturate( colorIntensity.rgb — 1 )), colorIntensity.a )); ?
utah77
25.05.2016 в 17:24
sprite менять на group — пятнистые облака — тоже в принципе [хотя pe11e попытался этот твик в RSP засунуть, но раскритиковали, сильно на любителя, ИМХО].
Ну да, это на любителя. Лично мне очень нравится, скриншоты все видели.
mul(float4(position, 0.8), matWorld — ползунок добавить? Или там обязательно 1.0, как в дефолте? Тогда просто галочку с этого твика снять и все.
По дефолту 0.8. Сорри, да, по дефолту 1.0, перепутал. Больше 1.0 вроде не работает. Да, можно просто вкл/выкл сделать чекбоксом.
А вот как обозвать два этих числа и объяснить на что каждое из них в отдельности влияет: diffuse = saturate( float4( .85f * colorIntensity.rgb + ( 0.33f * saturate( colorIntensity.rgb — 1 )), colorIntensity.a )); ?
А вот хрен знает ))) Этот параметр забеляет облачность и в сочетании с groupCenter очень круто днем выглядит. Также, одновременно с этим, как бы растворяет в горизонте (как в FSX примерно).
Но опять же, повторю, это только для дневного времени настройки плюс я не проверял в 3.2. Сегодня проверю.
Попробуйте использовать мой cloud.fx, в спойлере код.
KNOSSOS
25.05.2016 в 18:15
По дефолту 0.8. Сорри, да, по дефолту 1.0, перепутал. Больше 1.0 вроде не работает. Да, можно просто вкл/выкл сделать чекбоксом.
Уже в утилите сделано. Твик называется «Cloud shadows extended size». Этот чекбокс вместо 1.0 0.8 ставит.
.85f * colorIntensity.rgb + ( 0.33f * saturate( colorIntensity.rgb — 1 )) — по 0.85 никаких вопросов, как это назвать и как работает. А вот 0.33 — хз…
utah77
25.05.2016 в 18:30
Уже в утилите сделано. Твик называется «Cloud shadows extended size». Этот чекбокс вместо 1.0 0.8 ставит.
.85f * colorIntensity.rgb + ( 0.33f * saturate( colorIntensity.rgb — 1 )) — по 0.85 никаких вопросов, как это назвать и как работает. А вот 0.33 — хз…
…and raise the second value to increase the saturation (try 0.93f) to make sunrise and sunset colours pop a bit more.
Блин, опять откатываюсь на 3.1… это пипец с горизонтом и видимостью. Вот как можно было испортить уже испорченное? ((
AlexL-81
26.05.2016 в 06:24
Вопрос к Юрию по поводу the luminosity of urban areas at night. Прилагаю картинки с выключенным tesselation и с включенным.
В шейдерах не менял подсветку. И не устанавливал орбикс. Всё по дефолту. Видимо орбикс застилает текстурами светимость при включенном tesselation, но вопрос не в этом. Когда включен tesselation, подсветка городов уходит в красный цвет (довольно не приятно). Если поставить орбикс и скорректировать шейдеры, то становиться ещё краснее. Можно ли поменять цвет подсветки ленкласса на более нейтральный при включённом tesselation.
Прикрепленные изображения
AlexL-81
26.05.2016 в 06:31
Вот так выглядит город без tesselation. Не правда ли замечательно. Иной вариант печаль (красное пятно)
Прикрепленные изображения
utah77
26.05.2016 в 07:22
Вот так у меня сейчас выглядит препар 3.1. Утилитой я не пользуюсь, привык руками уже
Моя довольна
KNOSSOS
26.05.2016 в 07:23
Вопрос к Юрию по поводу the luminosity of urban areas at night. Прилагаю картинки с выключенным tesselation и с включенным.
В шейдерах не менял подсветку. И не устанавливал орбикс. Всё по дефолту. Видимо орбикс застилает текстурами светимость при включенном tesselation, но вопрос не в этом. Когда включен tesselation, подсветка городов уходит в красный цвет (довольно не приятно). Если поставить орбикс и скорректировать шейдеры, то становиться ещё краснее. Можно ли поменять цвет подсветки ленкласса на более нейтральный при включённом tesselation.
Когда включена тесселяция, в работе детище локхидов — GPUTerrain.fx, где все нововведения по воде, тесселяции и т.п. Когда тесселяция выключена — древний шейдер, наверное, еще Майками сделанный (?) — terrain.fx.
Зачем нужно было это делать, трудно сказать, но цвета текстуры сильно сдвигаются в красное. Возможно, это сделано для совместимости с аддонами или по другим причинам?
Не для массового потребления, но попробуйте. Возможно, где-то это вылезет на огнях, дорожках, 3D объектах, надо тестить досконально.
Вот так у меня сейчас выглядит препар 3.1. Утилитой я не пользуюсь, привык руками уже
Моя довольна
Да, 3.1 это лучшее что у них было, ИМХО
AlexL-81
26.05.2016 в 08:02
Просто закомментируйте EmissiveColor = (EmissiveColor*EmissiveColor);
Если нужно назначить пост-эффекты на aircrafts cameras или scenario cameras, после их активации утилитой (инсталляции в сим), это можно сделать руками в соответствующих разделах aircrafts.cfg. Расширение функций по автоматическому управлению PTA всеми возможными камерами не планируется.
Юрий, подскажите пожалуйста что нужно добавить в aircrafts.cfg.? Хочу к кастомным видам добавить пост-эффект. Спасибо!
Нет, я заблочил такую возможность, мало ли что там натвикано у людей может быть.
Как оперативно, Спасибо!
Надо сделать кнопочку — «Switch to Advanced version»
Не, самые «advanced»-нутые ее первым делом жамкнут. А потом вопли, что облака коричневые.
Upd: другое дело, если шейдеры твикнутые, а нужно утилитой пост-обработку добавить или конфиг препара поменять, а кнопка Apply общая. Это да, приму на заметку.
Да, как говорил Джо из «Друзей» — «немаловероятно»
Кстати, а есть какой-то инструмент, позволяющий сравнивать содержание двух текстовых фалов и выводить различия?
Я Total Commander использую
WinMerge
Супер, спасибо!
И то что есть — более чем достаточно. Как мне, так нужно только на Ездок-кокпит да спот-камеру.
Все работает и красиво получается. Отличная вещь, Юрий. Спасибо!
Насыщенность/яркость я уже поменял — добавил!
. Ну что поделаешь, если у меня эдакий «колористический кретинизм», не могу определить направление и действия по установке цветового баланса.
А с мылом х/з, что за фигня. Так и не разобрался. Поставил на соседнюю винду 3.1 и то же самое — текстуры размыты.
А «Отлично!» — это к работе Юрия относится.
Юрий, подскажите пожалуйста, есть пара вопросов:
1. Работает ли твик облаков с облаками REX Soft Cloud? После установки REX, мне кажется был изменен шейдер облаков. Перед использованием Вашей утилиты, я вернул родной шейдер P3D, и утилита отработала без ошибок,
но визуально облака изменились.
2. Можно ли пользоваться утилитой при запущенном P3D, т.е. по факту наблюдать изменения делаемые утилитой. Если да, то как правильно перезагружать графику в P3D, чтобы перезагрузились шейдеры?
1. утилита ругается на cloud.fx, что он не оригинальный, если вы ставили облака REX и не скинули галку про размер облаков. REX делает в этом случае небольшое изменение в облачный шейдер. Это изменение всего лишь одно — и его можно сделать утилитой — в твике Cloud size увеличить с 0.50 до 0.67 (вроде REX 0.67 ставит). Да, утилиту можно использовать с REX SC.
2. Нет, нужно перезапускать сим каждый раз. Есть механизм без перезапуска, но он мудреный и все равно не даст возможности наблюдать изменения, как, например, в RTH для X-Plane. Так как нужна перекомпиляция шейдеров. Менять их во время работы сима не стоит. Более того, я бы рекомендовал в драйвере NVidia отключить кеширование шейдеров, так как бывали всякие неприятности с этой опцией.
Юра, а нельзя ли добавить для измнения вот это? Изменяемые значения выделил красным. Это все в cloud.fx. очень важные настройки если летаем днем.
float4 colorIntensity = float4(fRed, fGreen, fBlue, saturate(alpha)) * color;
diffuse = saturate( float4( .85f * colorIntensity.rgb + ( 0.33f * saturate( colorIntensity.rgb — 1 )), colorIntensity.a ));
diffuse.a = lerp(1.00, diffuse.a, fExp);
float blendDistance = 3000; // Clouds will be fully volumize from 3000 meters, reducing to 0 at 6000
Out.position[i] = mul(float4(position, 0.8), matWorld);
==========================
Тут изменяется sprite на group
/// Calculate the lighting of the clouds based on position of each corner
GetPointDiffuse(Out.diffuse[i], position, spriteCenter.xyz, length(positionVector));
position -= clusterOffset.xyz;
Out.position[i] = mul(float4(position, 1.0), matWorld);
}
#else
/// Calculate the lighting of the clouds based on position of each corner
GetPointDiffuse( Out.diffuse[i], position, spriteCenter.xyz, cloudDistance );
=======================
Под спойлером файлик уже с изменениями (от 3.1, но там разница небольшая)
Спасибо за предложения!
с blenddistance понятно,
sprite менять на group — пятнистые облака — тоже в принципе [хотя pe11e попытался этот твик в RSP засунуть, но раскритиковали, сильно на любителя, ИМХО].
mul(float4(position, 0.8), matWorld — ползунок добавить? Или там обязательно 1.0, как в дефолте? Тогда просто галочку с этого твика снять и все.
А вот как обозвать два этих числа и объяснить на что каждое из них в отдельности влияет: diffuse = saturate( float4( .85f * colorIntensity.rgb + ( 0.33f * saturate( colorIntensity.rgb — 1 )), colorIntensity.a )); ?
Ну да, это на любителя. Лично мне очень нравится, скриншоты все видели.
По дефолту 0.8. Сорри, да, по дефолту 1.0, перепутал. Больше 1.0 вроде не работает. Да, можно просто вкл/выкл сделать чекбоксом.А вот хрен знает ))) Этот параметр забеляет облачность и в сочетании с groupCenter очень круто днем выглядит. Также, одновременно с этим, как бы растворяет в горизонте (как в FSX примерно).
Но опять же, повторю, это только для дневного времени настройки плюс я не проверял в 3.2. Сегодня проверю.
Попробуйте использовать мой cloud.fx, в спойлере код.
Уже в утилите сделано. Твик называется «Cloud shadows extended size». Этот чекбокс вместо 1.0 0.8 ставит.
.85f * colorIntensity.rgb + ( 0.33f * saturate( colorIntensity.rgb — 1 )) — по 0.85 никаких вопросов, как это назвать и как работает. А вот 0.33 — хз…
…and raise the second value to increase the saturation (try 0.93f) to make sunrise and sunset colours pop a bit more.
Блин, опять откатываюсь на 3.1… это пипец с горизонтом и видимостью. Вот как можно было испортить уже испорченное? ((
Вопрос к Юрию по поводу the luminosity of urban areas at night. Прилагаю картинки с выключенным tesselation и с включенным.
В шейдерах не менял подсветку. И не устанавливал орбикс. Всё по дефолту. Видимо орбикс застилает текстурами светимость при включенном tesselation, но вопрос не в этом. Когда включен tesselation, подсветка городов уходит в красный цвет (довольно не приятно). Если поставить орбикс и скорректировать шейдеры, то становиться ещё краснее. Можно ли поменять цвет подсветки ленкласса на более нейтральный при включённом tesselation.
Прикрепленные изображения
Вот так выглядит город без tesselation. Не правда ли замечательно. Иной вариант печаль (красное пятно)
Прикрепленные изображения
Вот так у меня сейчас выглядит препар 3.1. Утилитой я не пользуюсь, привык руками уже
Моя довольна
Когда включена тесселяция, в работе детище локхидов — GPUTerrain.fx, где все нововведения по воде, тесселяции и т.п. Когда тесселяция выключена — древний шейдер, наверное, еще Майками сделанный (?) — terrain.fx.
В шейдере локхидов есть такие строчки:
Да, 3.1 это лучшее что у них было, ИМХО
Сработало. Буду тестить с орбиксом.
Юрий, подскажите пожалуйста что нужно добавить в aircrafts.cfg.? Хочу к кастомным видам добавить пост-эффект. Спасибо!