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:27 por Quincho96
» Caballo [3lite vs. Xhaps] [2]
Hoy a las 14:50 por Sirillium64
» Esidisi's Tower [O4] [E]
Hoy a las 14:47 por Sirillium64
» ¿Que música están escuchando?
Hoy a las 14:44 por FlairDreamer
» El Iceberg Definitivo del Foro [PROYECTO COMUNITARIO]
Hoy a las 14:37 por Sirillium64
» Hola
Hoy a las 14:29 por FlairDreamer
» Problema con los pies de DI y otros mods
Ayer a las 23:10 por FlairDreamer
» Las partes robóticas en mi spore no funcionan bien
Ayer a las 23:08 por FlairDreamer
» ¿Cómo recuperar una criatura borrada?
Ayer a las 22:22 por FlairDreamer
» Una decada despues!
Ayer a las 01:31 por Endy
» Prototipo Zangief [O3]
Mar 12 Nov 2024, 22:09 por Quincho96
» El traveler barato de Owari [TA] [Mx3]
Mar 12 Nov 2024, 19:12 por Quincho96
» Golem Guardian [DoT][21] (Golem)
Lun 11 Nov 2024, 19:14 por Quincho96
» Rise of Cults 2 Bot (Beta abierta)
Dom 10 Nov 2024, 04:12 por XleandroX
» Nueva Ciudad Sporepedia 2024 (Historia por partes)
Sáb 09 Nov 2024, 22:48 por Sirillium64
» Los experimentos del Dr. Breincrox, parte 2
Sáb 09 Nov 2024, 22:45 por Sirillium64
» TEMA FLOOD
Vie 08 Nov 2024, 21:37 por FlairDreamer
» nuevo juego
Vie 08 Nov 2024, 14:48 por thescientist9393
» L-14 [O3] [A]
Jue 07 Nov 2024, 01:45 por Quincho96
» Pide un deseo y arruina al de arriba 2º Parte
Mar 05 Nov 2024, 23:01 por Quincho96
» Mataría al de arriba porque.... 2º Parte
Mar 05 Nov 2024, 21:54 por El Destructor de Especies
» Extensión de Chrome: Sporepedia Downloader [1.2]
Jue 31 Oct 2024, 12:57 por FlairDreamer
» Cambios de Nick
Dom 27 Oct 2024, 17:55 por FlairDreamer