AGRADECIMIENTO:
Antes de nada quiero dar gracias a
@ElAloch, porque sin el nunca pude haber descubierto lo que descubrí y voy a explanarlo en este tema por si alguien se interesa o me ofrece ayuda, comencemos:
HISTORIA:
Hace unos cuantos días me propuse una tarea bastante sencilla (en mi opinión) hacer que el agua de la trasformación planetaria no se revertiera a un yermo desértico. Al principio iba mal encaminado pues pensaba que tendría que ver con terraforming tuning (Lógico al fin y al cabo pero no era el caso).
Pero gracias a ElAloch pude descubrir que era idéntico al 100%, por lo que me dije de algún sitio debe venir digo yo: Encontré el script: TerrainLegacyScript True que se encontraba en todos los script sobre terreno y planeta del juego, al ponerlo en false funcionó momentáneamente e incluso cabe destacar que me ocurrió varias veces, pero de repente dejó de funcionar, sí alguien sabe el porque que me lo diga.
Así que tras esa victoria que se convirtió en fracaso seguí buscando y buscando y al fin en un mar de códigos de Spore, se me ocurrió buscar Surface (Superficie), en vez de insistir con: Terrain, planet, water, terraforming and toolspace (pensé que podrían ser las herramientas de terraformación incluso). Al final de todos los intentos casi a punto de rendirme, encuentro el código que buscaba, este se encontraba en:
materials_shader_fragments~ ---> 0x00000003.smt.unpacked ----> 079(TerrainSetup).vertex_fragment
En este archivo de arriba pone lo siguiente:
- Captura triste del código :
EXPLICACION:
Ese código es lo que provoca el bug horrible de que el agua desaparezca, traduciré el texto en verde (notas del programador)
para que sepáis exactamente lo que dice:
- Traducción:
Actualmente tanto la tierra como el agua se establecen en la altura VB, que es máxima (altura del agua, altura de la tierra)
esto es para evitar los problemas cambiantes de la costa y poder mirar debajo de la orilla del agua, debido a que el agua se mueve hacia afuera.
Esto puede cambiar porque tiene sus propios problemas, es decir, que la profundidad del agua no está disponible en el sombreador de vértices y el mapa de refracción no es correcto.
Sin embargo, hacer esta sujeción en el sombreador causa problemas de z-fight debido a que las faldas se sujetan y se arrastran por el borde del agua, porque solo se sujeta la altura final transformada, no las alturas de origen y destino.
FINAL O INICIO?
En resumidas cuentas esta es la solución cutre para ese bug, el cual yo nunca recuerdo haber presenciado y tal vez fuera prácticamente imperceptible. El problema gente viene con lo que voy a decir a continuación, los códigos originales fueron totalmente aniquilados e incluso hay notas que dicen de añadir o corregirlos en futuros parches que nunca llegaron, por lo que sin los códigos originales es imposible corregirlo al menos que pruebe a lo loco (cosa que me niego a hacer).
Dejaré el código entero quitando las notas por si alguno lo quiere ojear y me dice que ese no es el sitio correcto para buscar arreglar lo del agua, en ese caso que me diga el porque y si estoy de acuerdo o tiene sentido seguiré buscando el fallo. En caso de que todos estén de acuerdo que ese es el código y quieran ayudar para modificarlo, bienvenido sea.
Pero este proyecto actualmente está muerto, no por no encontrar el fallo (Estoy al 99% que ese código es el fallo) sino porque no sabemos los valores originales, así pues gracias por leerse este tochaco y os dejo el código:
- Código:
vertexFragment TerrainSetup
input color position
declareCode
extern uniform struct
{
float4 vSunDir;
float4 waterColor;
float4 innerParms;
float4 vCamPos;
float4 sphereParms;
float4 camParms;
float4 illumParms;
float4 fogParms;
float4 nightLightTint;
float4 nightLightColor;
float4 duskLightColor;
float4 dayLightColor;
float4 nightShadowColor;
float4 duskShadowColor;
float4 dayShadowColor;
float4 duskDawnStartEnd;
float4x4 viewTransform;
} terrainState;
extern uniform struct
{
float4x4 worldViewProjection;
float4 QuadFaceUVXform;
float4 QuadMorphValue;
float4 QuadFaceElemMap;
float4 QuadFaceSignMap;
float4 QuadFaceXForm[3];
} terrainTransform;
endCode
code
const float c0 = 255.0f * 2.0f / 65536.0f;
const float c1 = 256.0f * c0;
float parentHeight = dot( In.position.ar, float2( c1, c0 ) ) - 1;
float height = dot( In.position.gb, float2( c1, c0 ) ) - 1;
height = parentHeight + (height - parentHeight) * terrainTransform.QuadMorphValue.x;
float height1 = dot( In.color.gb, float2( c1, c0 ) ) - 1;
float seabedHeight = height1 * terrainState.sphereParms.y + terrainState.sphereParms.x;
float landHeight = height * terrainState.sphereParms.y + terrainState.sphereParms.x;
float waterHeight = terrainState.innerParms.w + terrainState.sphereParms.x;
float2 uv = saturate( terrainTransform.QuadFaceUVXform.xy + In.texcoord0.xy * terrainTransform.QuadFaceUVXform.z);
float4 normal4 = float4( uv.xy, 1, 1 );
float3 normal = float3(
dot( normal4, terrainTransform.QuadFaceXForm[0] ),
dot( normal4, terrainTransform.QuadFaceXForm[1] ),
dot( normal4, terrainTransform.QuadFaceXForm[2] ) );
normal = normalize( normal );
float4 landPosition = float4(normal.xyz * landHeight, 1);
float4 waterPosition = float4(normal.xyz * waterHeight, 1)
float4 seabedPosition = float4(normal.xyz * seabedHeight, 1);
endCode
end
Hoy a las 17:03 por Mozokas
» TEMA FLOOD
Hoy a las 16:49 por BlueXYZ
» Rise of Cults 2 Bot (Beta abierta)
Ayer a las 23:31 por Paul_q_f
» Experimento Scaver [ZERG]
Jue 21 Nov 2024, 16:40 por Davitroon
» El Iceberg Definitivo del Foro [PROYECTO COMUNITARIO]
Miér 20 Nov 2024, 21:20 por Mathaloz
» Experimento Grifo Fantasmal [SINDROME DEL 23]
Miér 20 Nov 2024, 18:10 por Quincho96
» Presentacion y Preguntas
Miér 20 Nov 2024, 11:28 por Quincho96
» BlueXYZ
Dom 17 Nov 2024, 00:47 por Max
» Hola
Sáb 16 Nov 2024, 23:35 por FlairDreamer
» Los experimentos del Dr. Breincrox, parte 2
Sáb 16 Nov 2024, 23:23 por FlairDreamer
» Aldeano Mini Carro [O5] [T] [♫]
Vie 15 Nov 2024, 18:38 por Quincho96
» [set]: Criaturas de Maenard
Vie 15 Nov 2024, 18:35 por Quincho96
» R3-XP10R3 [AI3] [♫]
Vie 15 Nov 2024, 16:17 por Quincho96
» Experimento Scarver-T [Virus-T]
Jue 14 Nov 2024, 14:27 por Quincho96
» Caballo [3lite vs. Xhaps] [2]
Jue 14 Nov 2024, 11:50 por Sirillium64
» Esidisi's Tower [O4] [E]
Jue 14 Nov 2024, 11:47 por Sirillium64
» ¿Que música están escuchando?
Jue 14 Nov 2024, 11:44 por FlairDreamer
» Problema con los pies de DI y otros mods
Miér 13 Nov 2024, 20:10 por FlairDreamer
» Las partes robóticas en mi spore no funcionan bien
Miér 13 Nov 2024, 20:08 por FlairDreamer
» ¿Cómo recuperar una criatura borrada?
Miér 13 Nov 2024, 19:22 por FlairDreamer
» Una decada despues!
Mar 12 Nov 2024, 22:31 por Endy
» Prototipo Zangief [O3]
Mar 12 Nov 2024, 19:09 por Quincho96
» El traveler barato de Owari [TA] [Mx3]
Mar 12 Nov 2024, 16:12 por Quincho96