|
|
31.03.2009, 17:26
|
#2921
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2Fritz:
Скорее в тему про моды, но вскрывать Г3Паком. Тут
|
Спасибо. Еще один вопрос - есть точные данные о том, как в 1.7 теперь расчитывается дамаж? А то есть косвенные упоминания, что он теперь как-то зависит и от силы, но хотелось бы увидеть точные формулы
|
|
|
31.03.2009, 19:54
|
#2923
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
Цитата:
Сообщение от Corvin666 link=board=gothic&t=1164204481&goto=4898892 date=03/31/09, в 17:26:27
2Fritz: Спасибо.
|
Еще один вопрос - есть точные данные о том, как в 1.7 теперь расчитывается дамаж? А то есть косвенные упоминания, что он теперь как-то зависит и от силы, но хотелось бы увидеть точные формулы
|
Скачай из шапки Gothic 3 CP 1.70 - Руководство пользователя Добавление от 03/31/09, в 20:01:00
Цитата:
Сообщение от Злой Гений link=board=gothic&t=1164204481&goto=4898949 date=03/31/09, в 17:46:12
1) Глючат звуки природы: дождь слышен, даже когда его нет, в пасмурную погоду.
|
Цитата из Мануала: "5.3 Звук • "Дождь и ветер теперь слышимы": с этим все еще остались нерешенные технические проблемы. Звуки погодных явлений по-прежнему можно услышать в пещерах, кроме того, начало и конец шума дождя в большинстве случаев не будет соответствовать началу и окончанию графических эффектов."
2) по прежнему периодически появляется сильный туман, который лечится только сном.
|
А кто-то заявлял, что собирается это изменить. С тем же успехом пишем: Герой все так же не умеет карабкаться. И он по прежнему на той же планете.
3) освещение от факела тоже иногда глючит (просто пропадает, хотя он горит)
|
Такого добра еще километры. К сожалению, всех багов не исправить, всех денег не заработать, всех дев... Вообщем, хотел сказать, что это баг не из критичных.
|
|
|
31.03.2009, 20:03
|
#2924
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
Еще, кстати, вопрос - как в новом патче переключаться между объектами, с которыми можно взаимодействовать? Мне казалось, до этого переключалось то ли табом, то ли колесом мыши. А теперь что-то не выходит. Если передо мной, скажем, стоит персонаж, а рядом с ним лежит на земле меч, то при плохом раскладе, чтобы навестись на меч, надо тщательно крутить камерой, и бегать вокруг персонажа..
|
|
|
31.03.2009, 20:04
|
#2925
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
Цитата:
Сообщение от Dimus link=board=gothic&t=1164204481&goto=4895725 date=03/30/09, в 16:32:31
2 odin68:Сделал пробный Hotfix для CP v1.70 Russian, включающий изменённые фразы учителей навыка "Добыча зубов, когтей и рогов", кроме Бандаро (озвучка + стринг). Размер архива получился 1628776 байт (1.55 Мб).
|
Супер! Думаю, его стоит обязательно включить в Хот-Фикс. еще бы с Бандаро покумекать... Первая фраза не ахти! Так-с, чит-коды для консоли, чтобы переместиться к каждому из учителей для проверки того, как это звучит:
Cпойлер(щелкните, чтобы прочесть):
goto Jens goto Armon goto Chris goto Pavel goto Lukjan goto Bram goto Falk goto Hurit goto Kayor goto Bandaro
|
|
|
31.03.2009, 20:13
|
#2926
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2odin68:
Скачай из шапки Gothic 3 CP 1.70 - Руководство пользователя
|
Читал. Вот, что там сказано:
"Новый*расчет*повреждения*и*защиты,*когда*NPC*пора жают* героя*оружием*ближнего*боя":* В*обычной*игре*урон,*который*причиняет*NPC,*основа но* исключительно*на*силе*или,*скорее,*"уровне"*NPC.*И *из*этого* повреждения*в*процентах*вычитается*защита*брони*ге роя.* Таким*образом,*герой*может*достигнуть*максимальной *защиты*в 90%.*Но*этого*было*недостаточно,*чтобы*сдерживать* атаку* падальщика*также*эффективно,*как,*например,*атаку* тролля.* Из‐за*этого*герой,*одетый*в*лучшие*доспехи*в *игре,*все*еще* получал*хотя*бы*несколько*пунктов*повреждения*от*п адальщика.* С*активированным*АБ*урон,*наносимый*герою*человеко м*или* орком,*зависят*не*только*от*силы*NPC,*но*также*и*о т* используемого*NPC*оружия.*Если*кто‐то*нападе т*с*кулаками,*то* он*будет*менее*опасен,*чем*напавший,*к*примеру,*с* топором.** С*другой*стороны,*доспехи*героя*работают*уже*не*в* процентном* отношении,*а*в*абсолютных*величинах.*Если*у*героя* будет* хорошая*броня,*то*слабые*противники*лишь*изредка*б удут*в* состоянии*ранить*его.*Чтобы*быть*уверенным,*что*ге рой*не* станет*полностью*неуязвимым*против*атак*от*слабых* противников,*небольшой*процент*от*этих*атак*все*ещ е*вызовет* незначительный*урон.* Нет*изменений*для*междоусобных*боев*между*NPC,* непосредственно*для*атаки*героя,*а*также*для*форму л*расчета* урона*от*оружия*дальнего*боя*и*магии.*
|
Из этого не особо понятно, что же все-таки значит "урон 50" у меча и как урон, наносимый ГГ будет зависеть от силы и от скиллов.
|
|
|
31.03.2009, 21:29
|
#2927
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
Цитата:
Сообщение от Corvin666 link=board=gothic&t=1164204481&goto=4899378 date=03/31/09, в 20:13:08
2odin68:
|
Читал. Вот, что там сказано:
|
Из этого не особо понятно, что же все-таки значит "урон 50" у меча и как урон, наносимый ГГ будет зависеть от силы и от скиллов.
|
А других источников пока нема. Пример про падальщика и тролля показывает, что уровень монстра и сила монстра уже не оказывают главенствующего влияния на повреждение. Так как теперь броня стала более значимой. Попробуй проделать эксперимент: меч Убийца орков 50 (урон) при 100 (силе) Вызови НПС определенного (spawn nameNPC) или переместись к нему (goto nameNPC). Причем такого, параметры брони которого ты знаешь. Например - Доспех повстанца /40(от клинка)/ 40(от ударов)/ 40(20)(от стрел). Может, в Реддоке на Арене кто-то в таком доспехе есть? И посчитай за сколько ударов ты его уложишь. Потом прокачай силу читами до 300 (или 500) и повтори. Разница покажет зависимость. Глядишь и сумеешь вывести точную формулу.
|
|
|
01.04.2009, 02:47
|
#2929
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
Цитата:
Сообщение от Corvin666 link=board=gothic&t=1164204481&goto=4900210 date=04/01/09, в 00:41:19
2odin68: Идея хорошая, но это чересчур сложно, - меня не настолько это гложет :)
|
Дело хозяйское! ;D
А ты случайно не знаешь, как переключаться между объектами под курсором?
|
Где-то попадалось на глаза, но не могу вспомнить где... Это не оно? CTRL+F Управление целью в фокусе
|
|
|
01.04.2009, 10:21
|
#2930
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2 odin68:Нашёл ещё одно значительное расхождение между озвучкой и субтитрами:
Cпойлер(щелкните, чтобы прочесть):
INFO_BPANKRATZ320060327182820=Я останусь здесь и еще не скоро продолжу свой путь.; В озвучке Горн говорит иначе: "На какое-то время я останусь здесь, а потом отправлюсь дальше."
Удивляюсь, как я этого не замечал раньше... :-[
Супер! Думаю, его стоит обязательно включить в Хот-Фикс. еще бы с Бандаро покумекать... Первая фраза не ахти!
|
Надо попросить кого-нибудь из готоманов переозвучить эту фразу Бандаро. Кстати, было бы неплохо сделать оставшиеся не озвученными фразы Рето, Ларсона, Буффорда, Ирмака, Калеша, Риордиана и Миксира:
Cпойлер(щелкните, чтобы прочесть):
INFO_SKALVERAM320060404161224_1=Поговори с Тьялфом, он тебя хорошо вознаградит.; INFO_SKALVERAM320060310144102_1=Вот это настоящее безрассудство! Вот это мне нравится!; INFO_BPANKRATZ320060323181950_0=За это я дам тебе еще золота.; INFO_BPANKRATZ3705=Ооо! Спасибо. Значит, ее украли рыбаки!; INFO_FILLER20060202133908_0=Кто такой Юсуф? Морра?; INFO_FILLER20060426220922=Укрытие здесь. Спасибо тебе за помощь.; INFO_SKALVERAM31033=Вот например: о ляжка, о ляжка, в самом соку...;
В крайнем случае можно попробовать заменить их подходящими по смыслу. А затем уже можно будет рекомендовать CPT включить hotfix в состав официального исправления для CP 1.70.
|
|
|
01.04.2009, 11:41
|
#2932
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2DDEN-ON:
параметры монстров, выдаваемый за них опыт, храктеристики оружия, доспехов
|
Cпойлер(щелкните, чтобы прочесть):
Всё это находится внутри паков Templates. Сначала нужно распаковать нужный шаблон (.tple) с помощью G3 PAK Viewer (by NicoDE). Затем для редактирования можно использовать G3 Template Editor (by MasterEvil) и плагин G3 Template Script (by Urban & lichtwicht) для редактора Tiny Hexer (by Markus Stephany). Этими инструментами можно легко изменять существующие свойства объектов и чертовски сложно добавлять новые.
формула перехода на новый уровень
|
Cпойлер(щелкните, чтобы прочесть):
Х.З. :-/
|
|
|
01.04.2009, 17:06
|
#2933
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2TATb:
Можно, но для этого нужны знание принципов работы шейдеров, нехило времени чтобы разобраться где у них что и немалая доля удачи
|
Кстати, вчера ночью посидел, нашел нужный шейдер, нашел код, отвечающий за глюк с океаном - кое-что получилось с его правкой. Стало лучше, но все равно хреново. Разобраться, конечно, что конкретно там происходит, и откуда глюк - непросто, особенно без опыта работы с шейдерами :) Но, думаю, улучшить ситуацию все же получится. Поделюсь результатами
|
|
|
01.04.2009, 21:37
|
#2936
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
|
|
|
02.04.2009, 00:27
|
#2937
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
Цитата:
Сообщение от KuDeSnik link=board=gothic&t=1164204481&goto=4907474 date=04/01/09, в 21:37:50
|
Видеокарта какая? И какие дрова?
|
|
|
02.04.2009, 00:51
|
#2938
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
Цитата:
Сообщение от DDEN-ON link=board=gothic&t=1164204481&goto=4907383 date=04/01/09, в 21:29:21
2Dimus:
|
Извиняюсь что вопрос несколько не в тему, но как пользоваться G3 Template Editor? Это просто совокупность файлов без экзешника (скачивал с worldofgothic.de).
|
С такими вопросами => СЮДАУстановия Яву на комп и запусти g3_tpledit.jar
|
|
|
02.04.2009, 03:37
|
#2939
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
По мотивам своего давнишнего поста:
Цитата:
Сообщение от Corvin666 link=board=gothic&t=1164204481&goto=4897552 date=03/31/09, в 05:32:37
<много всякого об улучшении графики>
|
сообщаю, что немного подолбавшись с шейдерами, пришел к выводу, что скорее всего причина пропавшей воды в океане на последней картинке в том, что движком перестает создаваться depth map для текстуры воды, начиная с какого-то, похоже, зашитого в движке, расстояния. В результате, глубина начиная с этого расстояния считается нулем, из-за чего мы и видим лажу. Тщательно изучив шейдер для воды в океане и наэкспериментировавшись с ним, я понял, что там все запущено, завязано на переменных из движка, без комментариев, и вообще, требует знаний о том, как пишутся подобные вещи. Поэтому меня хватило на одну правку, которая не решает полностью проблему уродского океана, но заставляет все выглядеть все же несколько приличней: На этом решил, что больше сделать не смогу. Вот код исправленного шейдера:
Cпойлер(щелкните, чтобы прочесть):
//************************************************** **************************** ************ //* //* File: * * * * * * * * *ge_ocean_3_0.fx * * * * * *(Version 2.0) //* //************************************************** **************************** ************ //* //* *Copyright (c) 2006 Pluto 13 GmbH / Piranha Bytes //* *All rights reserved. //* //************************************************** **************************** ************ //* //* History: //* //* 07/02/2006 | 1.00 * * *## Initial release * * * * * * * * * * * * * * * * * * * * * * * * * * *(kp) * * * * * *## //* //************************************************** **************************** ************
// //----------------------------------------------------------------------------- PREPROCESSOR //
#ifndef WIN32
// //----------------------------------------------------------------------------- DEPENDENCIES //
#ifdef XFX_PS_STATICBUMPMAP * * *#ifndef XFX_TANGENTSPACE * * * * * *#define XFX_TANGENTSPACE 1 * * *#endif // XFX_TANGENTSPACE #endif //XFX_PS_STATICBUMPMAP
#ifdef XFX_PS_FLOWINGBUMPMAP * * *#ifndef XFX_TANGENTSPACE * * * * * *#define XFX_TANGENTSPACE 1 * * *#endif // XFX_TANGENTSPACE #endif //XFX_PS_FLOWINGBUMPMAP
#include "ge_globals.fx"
#define XFX_PS_TEX0 input.vTex0.xy #define XFX_PS_TEX1 input.vTex1.xy #define XFX_PS_TEX2 input.vTex0.zw #define XFX_PS_TEX3 input.vTex1.zw
#define XFX_PS_VERTEXCOLOR input.vDiff
#ifndef XFX_VS_TEX0 * * *#define XFX_VS_TEX0 XFX_VS_INPUT_TEX0 #endif // XFX_VS_TEX0
#ifndef XFX_VS_TEX1 * * *#define XFX_VS_TEX1 XFX_VS_INPUT_TEX0 #endif // XFX_VS_TEX1
#ifndef XFX_VS_TEX2 * * *#define XFX_VS_TEX2 XFX_VS_INPUT_TEX0 #endif // XFX_VS_TEX2
#ifndef XFX_VS_TEX3 * * *#define XFX_VS_TEX3 XFX_VS_INPUT_TEX0 #endif // XFX_VS_TEX3
#ifdef XFX_SPECULAR * * *#ifndef XFX_PS_SPECULARPOWER * * * * * *#define XFX_PS_SPECULARPOWER 0.5f * * *#endif // XFX_PS_SPECULARPOWER #endif //XFX_SPECULAR
// //------------------------------------------------------------------------- GLOBAL VARIABLES //
float4 * * * * * * * * * * * * * * *vecWaterConstants; * * * * * * * * *// (1.0f-fFresnelConstant, fFresnelConstant, fShoreFadingScale, fDiffuseStrength) float4 * * * * * * * * * * * * * * *colReflectionModulate; float4 * * * * * * * * * * * * * * *vecDepthColorHalfLife; float4x4 * * * * * * * * * * * *matView; float4x4 * * * * * * * * * * * *matProjection;
#ifdef XFX_SPECULAR * * * * * *#ifdef XFX_PS_SPECULAR * * * * * * * * *SDirectionalLight * * * * * *DirLight;
* * *#endif //XFX_PS_SPECULAR
#endif //XFX_SPECULAR
#ifdef XFX_PS_DISTORTION
* * *sampler2D * * *smpRefract; * * *float4 * * * * * *vecVPosToRefractmap; * * * #endif //XFX_PS_DISTORTION
sampler2D smpDepthMap;
// // *SHADER CONSTANT MACRO // // *THIS IS NEEDED TO PUT IN ALL CONSTANTS DEFINED BY SHADER ELLEMENTS // #ifdef XFX_SHADER_CONSTANTS
* * *XFX_SHADER_CONSTANTS * * * #endif // XFX_SHADER_CONSTANTS
// //------------------------------------------------------------------------------ --- SHADERS //
struct VS_OUTPUT_3_0 { * * *float4 vPos * * * * * * * * * * * * * * *: POSITION; * * * * * *// Position
* * *#ifndef XFX_ZPASS * * * * * * * * *float4 vDiff * * * * * * * * * * * *: COLOR0; * * * * * *// Blend component for alpha blend stage mixing * * * * * *float3 vSpec * * * * * * * * * * * *: COLOR1; * * * * * *// Specular color * * * * * *float4 vTex0 * * * * * * * * * * * *: TEXCOORD0; * * *// Texture coordinate set 0 (in .xy) and 2 (in .zw)] * * * * * *float4 vTex1 * * * * * * * * * * * *: TEXCOORD1; * * *// Texture coordinate set 1 (in .xy) and 3 (in .zw)] * * * * * *float4 vEyeNormal * * * * * * * * *: TEXCOORD2; * * *// Normalized eye vector and eye depth * * * * * *float3 vFaceNormal * * * * * * * * *: TEXCOORD3; * * *// Face normal vector * * * * * * * * * * * *#ifdef XFX_TANGENTSPACE * * * * * * * * * * * * * * *float3 vFaceTangent * * * * * *: TEXCOORD4; * * *// Face tangent vector * * * * * * * * * * * * * * *#endif //XFX_TANGENTSPACE
* * * * * *float4 * * *vDepthMapAndDepth * * *: TEXCOORD5; * * * * * *float * vFog * * * * * * * * * * * *: TEXCOORD6; * * *// Fog value * * * * * *#else * * * * * * * * *#ifdef XFX_SPECIALDEPTHPASS
* * * * * * * * *float * * *vDepth * * *: TEXCOORD0;
* * * * * *#endif // XFX_SPECIALDEPTHPASS * * * * * *#endif * * *//XFX_ZPASS };
struct PS_INPUT_3_0 { * * *float2 vPos * * * * * * * * * * * * * * * * * *: VPOS; * * * * * * * * *// Position
* * *#ifndef XFX_ZPASS * * * * * * * * *float4 vDiff * * * * * * * * * * * *: COLOR0; * * * * * *// Blend component for alpha blend stage mixing * * * * * *float3 vSpec * * * * * * * * * * * *: COLOR1; * * * * * *// Specular color * * * * * *float4 vTex0 * * * * * * * * * * * *: TEXCOORD0; * * *// Texture coordinate set 0 (in .xy) and 2 (in .zw)] * * * * * *float4 vTex1 * * * * * * * * * * * *: TEXCOORD1; * * *// Texture coordinate set 1 (in .xy) and 3 (in .zw)] * * * * * *float4 vEyeNormal * * * * * * * * *: TEXCOORD2; * * *// Normalized eye vector and eye depth * * * * * *float3 vFaceNormal * * * * * * * * *: TEXCOORD3; * * *// Face normal vector * * * * * * * * * * * *#ifdef XFX_TANGENTSPACE * * * * * * * * * * * * * * *float3 vFaceTangent * * * * * *: TEXCOORD4; * * *// Face tangent vector * * * * * * * * * * * * * * *#endif //XFX_TANGENTSPACE
* * * * * *float4 * * *vDepthMapAndDepth * * *: TEXCOORD5; * * * * * *float * vFog * * * * * * * * * * * *: TEXCOORD6; * * *// Fog value
* * *#else * * * * * * * * *#ifdef XFX_SPECIALDEPTHPASS
* * * * * * * * *float * * *vDepth * * *: TEXCOORD0;
* * * * * *#endif // XFX_SPECIALDEPTHPASS * * * * * *#endif * * *//XFX_ZPASS };
#ifdef XFX_VS
//************************************************** ************************* // * * *VERTEXSHADER VS // * * *Default vertex for sv 3_0 //************************************************** ************************* VS_OUTPUT_3_0 VS( const VS_INPUT input ) { * * *VS_OUTPUT_3_0 output = (VS_OUTPUT_3_0)0;
* * *#ifdef XFX_ZPASS
* * * * * *// * * * * * *// *LOCALS * * * * * *// * * * * * *float3 vecWorldPosition; * * * * * *Transform( input, vecWorldPosition );
* * * * * *#ifdef XFX_SPECIALDEPTHPASS
* * * * * * * * *float4 vecProjectedPos ** * * * * *= mul( float4( vecWorldPosition, 1.0f ), matViewProjection ); * * * * * * * * *output.vPos * * * * * * * * * * * * * * *= vecProjectedPos; * * * * * * * * * * * * * * * * * * * * *output.vDepth * * * * * * * * * * * *= vecProjectedPos.w * 0.0001f;
* * * * * *#else // XFX_SPECIALDEPTHPASS
* * * * * * * * *output.vPos = mul( float4( vecWorldPosition, 1.0f ), matViewProjection );
* * * * * *#endif // else XFX_SPECIALDEPTHPASS * * * * * * * * * * * * * * *#else //XFX_ZPASS
* * * * * *// * * * * * *// *LOCALS * * * * * *// * * * * * *float3 vecWorldPosition; * * * * * *float3 vecWorldNormal; * * * * * * * * * * * *#ifdef XFX_TANGENTSPACE * * * * * * * * * * * * * * *float3 vecWorldTangent; * * * * * * * * *float3 vecWorldBiNormal; * * * * * * * * * * * * * * *#endif //XFX_TANGENTSPACE * * * * * * * * * * * * * * * * * * * * * * * *// * * * * * *// *TRANSFORM VERTICES * * * * * *// * * * * * *#ifdef XFX_TANGENTSPACE * * * * * * * * * * * * * * *Transform( input, vecWorldPosition, vecWorldNormal, vecWorldTangent, vecWorldBiNormal ); * * * * * * * * * * * * * * *#else //XFX_TANGENTSPACE * * * * * * * * * * * * * * *Transform( input, vecWorldPosition, vecWorldNormal ); * * * * * * * * * * * * * * *#endif //XFX_TANGENTSPACE * * * * * * * * * * * * * * * * * * * * *// * * * * * *// *EYE VECTOR & LENGTH * * * * * *// * * * * * *float3 vecEye * * * * * * * * *= vecCamPos - vecWorldPosition ; * * * * * *float *fRcpEyeLength * * *= rsqrt( dot( vecEye, vecEye ) ); * * * * * * * * * * * * * * * * * * * * * * * *// * * * * * *// *TEX COORDS * * * * * *// * * * * * *output.vTex0.xy = XFX_VS_TEX0; * * * * * *output.vTex1.xy = XFX_VS_TEX1; * * * * * *output.vTex0.zw = XFX_VS_TEX2; * * * * * *output.vTex1.zw = XFX_VS_TEX3; * * * * * * * * * * * * * * * * * *// * * * * * *// *FILL OUTPUT * * * * * *// * * * * * *float4 vecProjectedPos ** * * * * *= mul( float4( vecWorldPosition, 1.0f ), matViewProjection ); * * * * * *output.vPos * * * * * * * * * * * * * * *= vecProjectedPos; * * * * * *output.vDiff * * * * * * * * * * * *= input.vCol0; * * * * * *output.vFog * * * * * * * * * * * * * * *= CalcRadialFog( 1.0f / fRcpEyeLength ); * * * * * *output.vEyeNormal * * * * * * * * *= float4( vecEye, fRcpEyeLength ); * * * * * *output.vFaceNormal * * * * * * * * *= vecWorldNormal; * * * * * * * * * * * *#ifdef XFX_TANGENTSPACE * * * * * * * * * * * * * * *output.vFaceTangent * * * * * *= vecWorldTangent; * * * * * * * * * * * * * * *#endif //XFX_TANGENTSPACE * * * * * * * * * * * *output.vDepthMapAndDepth * * *= float4( vecProjectedPos.xy * float2( 0.5f, -0.5f ) + vecProjectedPos.w ** 0.5f, vecProjectedPos.w * 0.0001f, vecProjectedPos.w );
* * *#endif //XFX_ZPASS * * * * * * * * * * * *// * * *// *RESULT * * *// * * *return output; }
#endif // XFX_VS
#ifdef XFX_PS
//************************************************** ************************* // * * *PIXELSHADER PS // * * *Default pixel shader for sv 3_0 //************************************************** ************************* float4 PS( const PS_INPUT_3_0 input ) : COLOR { * * * * * *#ifdef XFX_ZPASS * * * * * * * * *#ifdef XFX_SPECIALDEPTHPASS
* * * * * * * * *float4 colResult = input.vDepth;
* * * * * *#else // XFX_SPECIALDEPTHPASS
* * * * * * * * *float4 colResult = 0.0f;
* * * * * *#endif // else XFX_SPECIALDEPTHPASS
* * * * * *#else //XFX_ZPASS
* * * * * *// * * * * * *// *XFX_TANGENTSPACE * * * * * *// * * * * * *#ifdef XFX_TANGENTSPACE * * * * * * * * * * * * * * *float3 vecFaceNormal * * *= normalize( (half3)input.vFaceNormal ); * * * * * * * * *float3 vecFaceTangent * * *= normalize( (half3)input.vFaceTangent ); * * * * * * * * *float3 vecFaceBiNormal * * *= cross( vecFaceNormal, vecFaceTangent ); * * * * * * * * * * * * * * *#endif //XFX_TANGENTSPACE * * * * * * * * * * * * * * * * * *// * * * * * *// *XFX_PS_STATICBUMPMAP && XFX_PS_FLOWINGBUMPMAP * * * * * *// * * * * * *#ifdef XFX_PS_STATICBUMPMAP * * * * * * * * * * * * * * * * * *#ifdef XFX_PS_FLOWINGBUMPMAP * * * * * * * * * * * * * * * * * * * * *float4 vecInputBump * * * * * *= ( lerp( XFX_PS_FLOWINGBUMPMAP, XFX_PS_STATICBUMPMAP, input.vDiff.a ) - 0.5f ) * 2.0f; * * * * * * * * * * * *float3 vecBumpNormal * * *= float3( vecInputBump.w, vecInputBump.y, sqrt(1.0 - vecInputBump.w*vecInputBump.w - vecInputBump.y*vecInputBump.y) ); * * * * * * * * * * * * * * * * * *float3 vecWorldBumpNormal = mul( vecBumpNormal, float3x3( vecFaceTangent, vecFaceBiNormal, vecFaceNormal ) );
* * * * * * * * * * * *vecWorldBumpNormal * * * * * *= lerp( input.vFaceNormal, vecWorldBumpNormal, input.vDiff.b ); * * * * * * * * * * * *vecWorldBumpNormal * * * * * *= normalize( (half3)vecWorldBumpNormal );
* * * * * * * * *#else //XFX_PS_FLOWINGBUMPMAP * * * * * * * * * * * * * * * * * * * * *float4 vecInputBump * * * * * *= ( XFX_PS_STATICBUMPMAP - 0.5f ) * 2.0f; * * * * * * * * * * * *float3 vecBumpNormal * * *= float3( vecInputBump.w, vecInputBump.y, sqrt(1.0 - vecInputBump.w*vecInputBump.w - vecInputBump.y*vecInputBump.y) );
* * * * * * * * * * * *float3 vecWorldBumpNormal = mul( vecBumpNormal, float3x3( vecFaceTangent, vecFaceBiNormal, vecFaceNormal ) );
* * * * * * * * * * * *vecWorldBumpNormal * * * * * *= lerp( input.vFaceNormal,vecWorldBumpNormal, input.vDiff.b ); * * * * * * * * * * * *vecWorldBumpNormal * * * * * *= normalize( (half3)vecWorldBumpNormal ); * * * * * * * * * * * * * * * * * * * * *#endif //XFX_PS_FLOWINGBUMPMAP * * * * * * * * * * * * * * *#else //XFX_PS_STATICBUMPMAP * * * * * * * * * * * * * * * * * *#ifdef XFX_PS_FLOWINGBUMPMAP * * * * * * * * * * * * * * * * * * * * *float4 vecInputBump * * * * * *= ( XFX_PS_FLOWINGBUMPMAP - 0.5f ) * 2.0f; * * * * * * * * * * * *float3 vecBumpNormal * * *= float3( vecInputBump.w, vecInputBump.y, sqrt(1.0 - vecInputBump.w*vecInputBump.w - vecInputBump.y*vecInputBump.y) );
* * * * * * * * * * * *float3 vecWorldBumpNormal = mul( vecBumpNormal, float3x3( vecFaceTangent, vecFaceBiNormal, vecFaceNormal ) );
* * * * * * * * * * * *vecWorldBumpNormal * * * * * *= lerp( input.vFaceNormal, vecWorldBumpNormal, input.vDiff.b ); * * * * * * * * * * * *vecWorldBumpNormal * * * * * *= normalize( (half3)vecWorldBumpNormal );
* * * * * * * * *#else //XFX_PS_FLOWINGBUMPMAP * * * * * * * * * * * * * * * * * * * * *float3 vecBumpNormal * * *= input.vFaceNormal; * * * * * * * * * * * *vecWorldBumpNormal * * * * * *= normalize( (half3)vecBumpNormal ); * * * * * * * * * * * * * * * * * * * * *#endif //XFX_PS_FLOWINGBUMPMAP * * * * * * * * * * * * * * *#endif //XFX_PS_STATICBUMPMAP * * * * * * * * * * * *float fLocalDepth = *saturate( tex2Dproj( smpDepthMap, input.vDepthMapAndDepth).r - input.vDepthMapAndDepth.z ); * * * * * *if (fLocalDepth == 0) fLocalDepth = 0.3; * * * * * * * * * * * *// * * * * * *// *XFX_PS_REFLECTIONMAP && XFX_PS_DISTORTION && XFX_PS_DIFFUSEMAP && XFX_SHOREFADING * * * * * *// * * * * * *#ifdef XFX_PS_REFLECTIONMAP
* * * * * * * * *float3 vecEyeNormal * * * * * *= input.vEyeNormal.xyz * input.vEyeNormal.w;
* * * * * * * * *float fFresnel * * * * * * * * *= CalcFresnelReflection( vecEyeNormal, vecWorldBumpNormal, float2( vecWaterConstants.x, vecWaterConstants.y) );
* * * * * * * * *float3 vecReflect * * * * * *= reflect( -vecEyeNormal, vecWorldBumpNormal ); * * * * * * * * *#define XFX_PS_REFLECT vecReflect * * * * * * * * * * * * * * * * * *float4 colResult;
* * * * * * * * *#ifdef XFX_SHOREFADING * * * * * * * * * * * * * * * * * * * * *colResult.a * * * * * *= sqrt( saturate( fLocalDepth * vecWaterConstants.z ) );
* * * * * * * * *#else //XFX_SHOREFADING * * * * * * * * * * * * * * * * * * * * *colResult.a * * * * * *= 1.0f; * * * * * * * * * * * * * * * * * * * * *#endif //XFX_SHOREFADING
* * * * * * * * *float4 vecDepthDimmer = saturate( exp( -fLocalDepth*vecDepthColorHalfLife ) ); * * * * * * * * * * * * * * * * * * * * *#ifdef XFX_PS_DISTORTION * * * * * * * * * * * * * * * * * * * * *float2 vecRefract * * * * * *= vecBumpNormal*XFX_PS_DISTORTION*fLocalDepth; * * * * * * * * * * * *float2 vecTexRefrect * * *= input.vPos.xy*vecVPosToRefractmap.xy; * * * * * * * * * * * *float4 colRefractA * * * * * *= tex2D( smpRefract, vecTexRefrect + vecRefract ); * * * * * * * * * * * *float4 colRefractB * * * * * *= tex2D( smpRefract, vecTexRefrect ); * * * * * * * * * * * * * * * * * * * * * * * *colResult.rgb * * * * * * * * *= lerp( colRefractA.rgb, colRefractB.rgb, colRefractA.w*colResult.a ); * * * * * * * * * * * * * * * * * * * * * * * *#ifdef XFX_PS_DIFFUSEMAP
* * * * * * * * * * * * * * *float4 colDiffuse ** * * * * *= XFX_PS_DIFFUSEMAP; * * * * * * * * * * * * * * *colResult.rgb * * * * * * * * *= lerp( lerp( colResult*vecDepthDimmer, XFX_PS_REFLECTIONMAP*colReflectionModulate, fFresnel ), colDiffuse.rgb, colDiffuse.a ); * * * * * * * * * * * * * * * * * * * * * * * * * * *#else //XFX_PS_DIFFUSEMAP * * * * * * * * * * * * * * * * * * * * * * * * * * *colResult.rgb * * * * * * * * *= lerp( colResult*vecDepthDimmer, XFX_PS_REFLECTIONMAP*colReflectionModulate, fFresnel ); * * * * * * * * * * * * * * * * * * * * * * * * * * *#endif //XFX_PS_DIFFUSEMAP * * * * * * * * * * * * * * * * * * * * *#else //XFX_PS_DISTORTION * * * * * * * * * * * * * * * * * * * * *#ifdef XFX_PS_DIFFUSEMAP * * * * * * * * * * * * * * * * * * * * * * * * * * *colResult.rgb * * * * * * * * *= lerp( XFX_PS_DIFFUSEMAP*vecDepthDimmer, XFX_PS_REFLECTIONMAP*colReflectionModulate, fFresnel ); * * * * * * * * * * * * * * * * * * * * * * * * * * *#else //XFX_PS_DIFFUSEMAP * * * * * * * * * * * * * * * * * * * * * * * * * * *colResult.rgb * * * * * * * * *= XFX_PS_REFLECTIONMAP*colReflectionModulate; * * * * * * * * * * * * * * * * * * * * * * * *#endif //XFX_PS_DIFFUSEMAP * * * * * * * * * * * * * * * * * * * * *#endif //XFX_PS_DISTORTION
* * * * * *#else //XFX_PS_REFLECTIONMAP * * * * * * * * * * * * * * * * * *#ifdef XFX_PS_DIFFUSEMAP * * * * * * * * * * * * * * * * * * * * *half4 colResult * * *= XFX_PS_DIFFUSEMAP; * * * * * * * * * * * * * * * * * * * * *#else //XFX_PS_DIFFUSEMAP * * * * * * * * * * * * * * * * * * * * *half4 colResult * * *= input.vDiff; * * * * * * * * * * * * * * * * * * * * *#endif //XFX_PS_DIFFUSEMAP * * * * * * * * * * * * * * *colResult.a * * * * * *= 1.0f;
* * * * * *#endif //XFX_PS_REFLECTIONMAP * * * * * * * * * * * * * * * * * *// * * * * * *// * * *XFX_SPECULAR * * * * * *// * * * * * *#ifdef XFX_SPECULAR * * * * * * * * * * * * * * *#ifdef XFX_PS_SPECULAR * * * * * * * * * * * * * * * * * * * * *float3 vecHalf * * *= normalize( (half3)( DirLight.vecInvDir + vecEyeNormal )); * * * * * * * * * * * *float fNDotH * * *= saturate( dot( vecHalf, vecWorldBumpNormal ) ); * * * * * * * * * * * * * * *float fSpecular = pow( fNDotH, XFX_PS_SPECULARPOWER * 127.0f ) + smoothstep( 1.0, 0.97, vecBumpNormal.z ); * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *colResult.rgb += DirLight.colSpecular * fSpecular * (float3)( XFX_PS_SPECULAR );
* * * * * * * * *#endif //XFX_PS_SPECULAR
* * * * * *#endif //XFX_SPECULAR * * * * * * * * * * * *// * * * * * *// *CALC FOG * * * * * *// * * * * * *#ifndef XFX_ADDITIONAL_PASS
* * * * * * * * *colResult.xyz = lerp( colFog, colResult.xyz, input.vFog );
* * * * * *#endif // XFX_ADDITIONAL_PASS * * * * * *#endif //XFX_ZPASS
* * *// * * *// *RESULT * * *// * * *return colResult;
}
#endif // XFX_PS
// //----------------------------------------------------------------------------- PREPROCESSOR //
#endif //WIN32
Добавленная строка выделена жирным. Содержимое спойлера надо сохранить в файл Data\Materials\ShaderMaterial\Effects\ge_ocean_3_0 .fx Теоретически из этого можно сделать мод, но не знаю, насколько это нужно. Надеюсь, это будет кому-то полезным :)
|
|
|
02.04.2009, 08:19
|
#2940
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2Corvin666:
сообщаю, что немного подолбавшись с шейдерами, пришел к выводу, что скорее всего причина пропавшей воды в океане на последней картинке в том, что движком перестает создаваться depth map для текстуры воды, начиная с какого-то, похоже, зашитого в движке, расстояния. В результате, глубина начиная с этого расстояния считается нулем, из-за чего мы и видим лажу.
|
Уважуха за энтузиазм :) То что ты без опыта там что-то адекватно подправил уже круть) Кстати, как я понял у тебя пропала земля дна - а это возможно другой шейдер ;) Можно глянуть ge_default_3_0.fx и ge_globals.fx 8-) Но там не менее запущено
|
|
|
02.04.2009, 12:34
|
#2941
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2TATb:
Кстати, как я понял у тебя пропала земля дна - а это возможно другой шейдер Можно глянуть ge_default_3_0.fx и ge_globals.fx Но там не менее запущено
|
Не, я ж приводил скрин на предыдущей странице - у меня пропадает именно текстура океана. Это происходит после увеличения параметра DistanceHigh.fFarClippingPlane_High в ge3.ini. Причем, это не только у меня так. На англоязычных форумах видел много сообщений об этом глюке.
|
|
|
02.04.2009, 16:17
|
#2943
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2Dimus:
А для шейдеров океана версии 2.0 подобную правку тоже нужно делать (ge_ocean_2_0.fx)?
|
Подозреваю, что да, но ведь этот глюк проявляется только при сильном увеличении дальности прорисовки. Увеличивать же дальность прорисовки, если карта не поддерживает 3 шейдеры, я смысла не вижу. Это ж довольно старая карта должна быть, и такую дальность она не потянет с приемлимым фпсом.
|
|
|
02.04.2009, 17:28
|
#2945
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2Dimus:
Поэтому я добавил указанную вами строку и в файл ge_ocean_2_0.fx.
|
И че, получилось? *:) По идее должно, там принцип тот же
|
|
|
02.04.2009, 18:49
|
#2946
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2 Corvin666:
И че, получилось? :) По идее должно, там принцип тот же
|
Смогу проверить только завтра, т.к. этот комп находится на работе. Еще хотел спросить, какие значения параметров DistanceHigh.fFarClippingPlane_Low, DistanceHigh.fFarClippingPlane_High и Entity.ROI надо выставить в ge3.ini для проявления описанного вами глюка с водой?
|
|
|
02.04.2009, 19:04
|
#2947
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2Dimus:
Смогу проверить только завтра, т.к. этот комп находится на работе. Еще хотел спросить, какие значения параметров DistanceHigh.fFarClippingPlane_Low, DistanceHigh.fFarClippingPlane_High и Entity.ROI надо выставить в ge3.ini для проявления описанного вами глюка с водой?
|
Достаточно максимальных настроек в игре и DistanceHigh.fFarClippingPlane_High выше где-то 12000 по-моему. Я писал 2 страницы назад
|
|
|
02.04.2009, 23:52
|
#2949
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2Ramonak86:
Хотел спросить, а музыку боя в патче 1.7 поменяли на более спокойную? А то она меня жутко задалбывала своим резким переходом от спокойной к ба-ба-бам.
|
Нет. :)
|
|
|
03.04.2009, 00:38
|
#2950
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
Цитата:
Сообщение от Нефариус link=board=gothic&t=1164204481&goto=4911492 date=04/02/09, в 23:52:32
2Ramonak86: Нет. :)
|
А самому ее можно поменять? Т.е. заменить трек на другой с таким же названием.
|
|
|
03.04.2009, 00:44
|
#2951
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2Ramonak86:
А самому ее можно поменять? Т.е. заменить трек на другой с таким же названием.
|
Data\Music.pak В папке fragments ищи файлы с "fight" в названии и замени на что тебе нужно, в формате ogg. ;)
|
|
|
03.04.2009, 17:42
|
#2954
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2Dimus:
На Radeon при включенных шейдерах 2.0 в радиусе ближнего обзора у берега вместо текстур воды стабильно показывается красная заливка, которая исчезает только при возврате к исходным шейдерам.
|
Красная заливка в твоем случае на 99% означает, что в шейдере ошибка и он не отрабатывает. Т.е. ты что-то не там стёр или не там исправил. Я приводил скрин того, как должно было стать после моей правки. А у тебя вместо отработки шейдера, текстура заливается красным цветом. Погляжу вечером, что там со 2-ми шейдерами, раз уж на то пошло. Как, кстати, их форсировать?
|
|
|
03.04.2009, 18:58
|
#2955
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2 Corvin666:
Красная заливка в твоем случае на 99% означает, что в шейдере ошибка и он не отрабатывает. Т.е. ты что-то не там стёр или не там исправил.
|
Странно... В шейдере ge_ocean_2_0.fx тоже есть фрагмент, аналогичный ge_ocean_3_0.fx:
Cпойлер(щелкните, чтобы прочесть):
* * * * * *#endif //XFX_PS_STATICBUMPMAP * * * * * * * * * * * *float fLocalDepth = *saturate( tex2Dproj( smpDepthMap, input.vDepthMapAndDepth).r - input.vDepthMapAndDepth.z ); * * * * * * * * * * * *// * * * * * *// *XFX_PS_REFLECTIONMAP && XFX_PS_DISTORTION && XFX_PS_DIFFUSEMAP && XFX_SHOREFADING * * * * * *//
Я вставил вашу строку именно после выделенного оператора присваивания значения переменной fLocalDepth и больше ничего не изменял. :-/
Погляжу вечером, что там со 2-ми шейдерами, раз уж на то пошло. Как, кстати, их форсировать?
|
Настройки - Детализация - Средняя (все настройки на средние) или Настроить - Качество шейдеров - 2.0 (только шейдеры). В обоих случаях потребуется перезапуск игры.
|
|
|
03.04.2009, 20:41
|
#2957
|
|
Re: G3: Community Patch v1.7 (Исправляем G3)
2TATb:
Сейчас взглянул на то исправление в шейдере, которое ты делал, но так и не понял, что именно оно делает?
|
Не даёт fLocalDepth быть нулем. А оно становится именно нулем вдали от камеры, откуда все глюки.
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Опции темы |
Поиск в этой теме |
|
|
Ваши права в разделе
|
|
|
|
Текущее время: 21:45. Часовой пояс GMT +4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|