// SpitFire given by Sandmonkee cbuffer def_uniforms : register(b0) { uint4 lightCount : packoffset(c0); float4 FlatShadowPlane : packoffset(c1); float4x4 prevFrameTransform : packoffset(c2); float4 flirCoeff : packoffset(c6); float3 color : packoffset(c7); float specFactor : packoffset(c7.w); float3 MeltFactor : packoffset(c8); float specPower : packoffset(c8.w); float3 selfIlluminationColor : packoffset(c9); float specMapValue : packoffset(c9.w); float3 banoDistCoefs : packoffset(c10); float diffuseValue : packoffset(c10.w); float2 diffuseShift : packoffset(c11); float2 decalShift : packoffset(c11.z); float2 normalMapShift : packoffset(c12); float2 ambientOcclusionShift : packoffset(c12.z); float2 FlatShadowProps : packoffset(c13); float normalMapValue : packoffset(c13.z); float dirtValue : packoffset(c13.w); float reflectionValue : packoffset(c14); float specColorMapValue : packoffset(c14.y); float selfIlluminationValue : packoffset(c14.z); float reflectionBlurring : packoffset(c14.w); uint posStructOffset : packoffset(c15); int atmosphereSamplesId : packoffset(c15.y); float phosphor : packoffset(c15.z); float multiplyDiffuse : packoffset(c15.w); float reflMult : packoffset(c16); float reflAdd : packoffset(c16.y); float specMult : packoffset(c16.z); float specAdd : packoffset(c16.w); uint specSelect : packoffset(c17); float albedoContrast : packoffset(c17.y); float albedoLevel : packoffset(c17.z); float unused_nxgp : packoffset(c17.w); } cbuffer cPerFrame : register(b6) { float gModelTime : packoffset(c0); float gCivilLightsAmount : packoffset(c0.y); float gSunIntensity : packoffset(c0.z); float gIBLIntensity : packoffset(c0.w); float3 gSunDiffuse : packoffset(c1); float gOvercastFactor : packoffset(c1.w); float3 gSunAmbient : packoffset(c2); float gAtmIntensity : packoffset(c2.w); float3 gSunDir : packoffset(c3); float gSunAttenuation : packoffset(c3.w); float3 gMoonDiffuse : packoffset(c4); float gEffectsIBLFactor : packoffset(c4.w); float3 gMoonDir : packoffset(c5); float gSeaLevel : packoffset(c5.w); float3 gSreenParams : packoffset(c6); float gEffectsSunFactor : packoffset(c6.w); float4 gFogCoeffs : packoffset(c7); float3 gFogColor : packoffset(c8); float gAtmGroundReflectanceAvg : packoffset(c8.w); float gModelEmissiveIntensity : packoffset(c9); float gTerrainEmissiveIntensity : packoffset(c9.y); float gUseVolumetricClouds : packoffset(c9.z); float gUseVolumetricCloudsShadow : packoffset(c9.w); float3 gAtmBetaR : packoffset(c10); float gAtmHR : packoffset(c10.w); float3 gAtmBetaMSca : packoffset(c11); float gAtmHM : packoffset(c11.w); float3 gAtmBetaMExt : packoffset(c12); float gAtmMieG : packoffset(c12.w); float3 gAtmBetaAExt : packoffset(c13); float gAtmAbsorptionFactor : packoffset(c13.w); float3 gAtmScaToMie : packoffset(c14); float gDummy02 : packoffset(c14.w); float4x4 gCockpitPosition : packoffset(c15); float4x4 gCockpitTransform : packoffset(c19); float3 gCockpitCubemapPos : packoffset(c23); float gDummy03 : packoffset(c23.w); float3 gCockpitElipsoid : packoffset(c24); float gDummy06 : packoffset(c24.w); float3 gCockpitElipsoidGlassReflection : packoffset(c25); float gDummy07 : packoffset(c25.w); float4 gCockpitIBL : packoffset(c26); float3 gILVBBMin : packoffset(c27); float gILVSunFactor : packoffset(c27.w); float3 gILVBBSizeInv : packoffset(c28); float gILVSkyFactor : packoffset(c28.w); uint3 gILVGridSize : packoffset(c29); float gCloudiness : packoffset(c29.w); float gOutputGamma : packoffset(c30); float gOutputGammaInv : packoffset(c30.y); uint COVERAGE_MASK : packoffset(c30.z); float gDummy01 : packoffset(c30.w); float4 gDev0 : packoffset(c31); float4 gDev1 : packoffset(c32); } cbuffer cPerView : register(b7) { float4x4 gView : packoffset(c0); float4x4 gViewInv : packoffset(c4); float4x4 gProj : packoffset(c8); float4x4 gProjInv : packoffset(c12); float4x4 gViewProj : packoffset(c16); float4x4 gViewProjInv : packoffset(c20); float4x4 gPrevFrameTransform : packoffset(c24); float4x4 gPrevFrameViewProj : packoffset(c28); float4x4 gCloudShadowsProj : packoffset(c32); float4x4 gTerrainShadowMatrix : packoffset(c36); float4x4 gTerrainMaskMatrix : packoffset(c40); float4x4 gClipCockpit : packoffset(c44); float3 gSunDirV : packoffset(c48); float gModelClipLevel : packoffset(c48.w); float3 gOrigin : packoffset(c49); float gCameraHeightAbs : packoffset(c49.w); float3 gCameraPos : packoffset(c50); float gFogCameraHeightNorm : packoffset(c50.w); float3 gMoonDirV : packoffset(c51); float gPrevFrameTimeDelta : packoffset(c51.w); float4 gNearFarFovZoom : packoffset(c52); float3 gEarthCenter : packoffset(c53); float gExposure : packoffset(c53.w); float2 gNVDpos : packoffset(c54); float gNVDaspect : packoffset(c54.z); float gInsideCockpit : packoffset(c54.w); float gCloudsLow : packoffset(c55); float gCloudsHigh : packoffset(c55.y); float2 gDummy : packoffset(c55.z); float gRadarPos : packoffset(c56); float gRadarPixelSize : packoffset(c56.y); float3 gCloudVolumeScale : packoffset(c57); float gDummy04 : packoffset(c57.w); float3 gCloudVolumeOffset : packoffset(c58); float gDummy05 : packoffset(c58.w); float4 ShadowDistance : packoffset(c59); float4 ShadowLinearDistance : packoffset(c60); float4x4 ShadowMatrix[4] : packoffset(c61); float4x4 ShadowMatrixInv[4] : packoffset(c77); float3 ShadowLightDir : packoffset(c93); float ShadowMapSize : packoffset(c93.w); float4 FlatShadowDistance : packoffset(c94); float ShadowCascadeFadeDepth : packoffset(c95); uint ShadowFirstMap : packoffset(c95.y); float2 ShadowDummy : packoffset(c95.z); } SamplerState gAnisotropicWrapSampler_s : register(s15); Texture2D Diffuse : register(t0); Texture2D GlassColorMap : register(t1); // 3Dmigoto declarations #define cmp - Texture1D IniParams : register(t22); void main( float4 v0 : SV_POSITION0, float3 v1 : COLOR0, float4 v2 : COLOR1, float4 v3 : COLOR3, float2 v4 : TEXCOORD0, float2 w4 : TEXCOORD1, float4 v5 : TEXCOORD6, float4 v6 : TEXCOORD7, out float4 o0 : SV_TARGET0, out float4 o1 : SV_TARGET1) { float4 r0,r1,r2,r3; uint4 bitmask, uiDest; float4 fDest; float diffuseFactor = IniParams.Load(int2(7, 0)).z; float reflectFactor = IniParams.Load(int2(7, 0)).w; r0.x = dot(v1.xyz, v1.xyz); r0.x = rsqrt(r0.x); r0.xyz = v1.xyz * r0.xxx; r0.x = dot(r0.xyz, gSunDir.xyz); r0.x = 0.5 + r0.x; r0.x = max(0, r0.x); r0.x = min(0.899999976, r0.x); r0.x = r0.x * r0.x; r0.yz = diffuseShift.xy + v4.xy; r1.xyz = Diffuse.Sample(gAnisotropicWrapSampler_s, r0.yz).xyz * float3(diffuseFactor,diffuseFactor,diffuseFactor); r2.xyzw = GlassColorMap.Sample(gAnisotropicWrapSampler_s, r0.yz).xyzw; r0.yzw = diffuseValue * r1.xyz; r1.x = dot(float3(-0.168699995,-0.331200004,0.5), r0.yzw); r1.x = r1.x * 0.498039216 + 0.498039216; r1.y = r1.x * 2.00787401 + -1; r1.w = dot(float3(0.5,-0.418599993,-0.0812999979), r0.yzw); r0.y = dot(float3(0.298999995,0.587000012,0.114), r0.yzw); r1.x = r0.y * albedoContrast + albedoLevel; r0.y = r1.w * 0.498039216 + 0.498039216; r1.z = r0.y * 2.00787401 + -1; r3.y = saturate(dot(float3(1,-0.344099998,-0.714100003), r1.xyz)); r3.xz = saturate(r1.zy * float2(1.40199995,1.77199996) + r1.xx); r0.xyz = r3.xyz * r0.xxx; r0.w = 1 + -gSunAttenuation; r0.xyz = r0.xyz * r0.www; r0.xyz = float3(0.209999993,0.209999993,0.209999993) * r0.xyz; r1.xyz = v3.xyz / v3.www; r1.xyz = gCameraPos.xyz + -r1.xyz; r0.w = dot(r1.xyz, r1.xyz); r0.w = sqrt(r0.w); r0.w = gNearFarFovZoom.w * r0.w; r0.w = r0.w * r0.w; r0.w = min(1, r0.w); o0.xyz = r0.xyz * r0.www; o0.w = 0; r0.xyz = log2(abs(r2.xyz)); o1.w = r2.w; r0.xyz = float3(2.20000005,2.20000005,2.20000005) * r0.xyz; o1.xyz = exp2(r0.xyz); return; } /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // // Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.16428 // // using 3Dmigoto v1.3.16 on Sat May 08 11:25:53 2021 // // // Buffer Definitions: // // cbuffer def_uniforms // { // // uint4 lightCount; // Offset: 0 Size: 16 [unused] // float4 FlatShadowPlane; // Offset: 16 Size: 16 [unused] // float4x4 prevFrameTransform; // Offset: 32 Size: 64 [unused] // float4 flirCoeff; // Offset: 96 Size: 16 [unused] // float3 color; // Offset: 112 Size: 12 [unused] // float specFactor; // Offset: 124 Size: 4 [unused] // float3 MeltFactor; // Offset: 128 Size: 12 [unused] // float specPower; // Offset: 140 Size: 4 [unused] // float3 selfIlluminationColor; // Offset: 144 Size: 12 [unused] // float specMapValue; // Offset: 156 Size: 4 [unused] // float3 banoDistCoefs; // Offset: 160 Size: 12 [unused] // float diffuseValue; // Offset: 172 Size: 4 // float2 diffuseShift; // Offset: 176 Size: 8 // float2 decalShift; // Offset: 184 Size: 8 [unused] // float2 normalMapShift; // Offset: 192 Size: 8 [unused] // float2 ambientOcclusionShift; // Offset: 200 Size: 8 [unused] // float2 FlatShadowProps; // Offset: 208 Size: 8 [unused] // float normalMapValue; // Offset: 216 Size: 4 [unused] // float dirtValue; // Offset: 220 Size: 4 [unused] // float reflectionValue; // Offset: 224 Size: 4 [unused] // float specColorMapValue; // Offset: 228 Size: 4 [unused] // float selfIlluminationValue; // Offset: 232 Size: 4 [unused] // float reflectionBlurring; // Offset: 236 Size: 4 [unused] // uint posStructOffset; // Offset: 240 Size: 4 [unused] // int atmosphereSamplesId; // Offset: 244 Size: 4 [unused] // float phosphor; // Offset: 248 Size: 4 [unused] // float multiplyDiffuse; // Offset: 252 Size: 4 [unused] // float reflMult; // Offset: 256 Size: 4 [unused] // float reflAdd; // Offset: 260 Size: 4 [unused] // float specMult; // Offset: 264 Size: 4 [unused] // float specAdd; // Offset: 268 Size: 4 [unused] // uint specSelect; // Offset: 272 Size: 4 [unused] // float albedoContrast; // Offset: 276 Size: 4 // float albedoLevel; // Offset: 280 Size: 4 // float unused_nxgp; // Offset: 284 Size: 4 [unused] // // } // // cbuffer cPerFrame // { // // float gModelTime; // Offset: 0 Size: 4 [unused] // float gCivilLightsAmount; // Offset: 4 Size: 4 [unused] // float gSunIntensity; // Offset: 8 Size: 4 [unused] // float gIBLIntensity; // Offset: 12 Size: 4 [unused] // float3 gSunDiffuse; // Offset: 16 Size: 12 [unused] // float gOvercastFactor; // Offset: 28 Size: 4 [unused] // float3 gSunAmbient; // Offset: 32 Size: 12 [unused] // float gAtmIntensity; // Offset: 44 Size: 4 [unused] // float3 gSunDir; // Offset: 48 Size: 12 // float gSunAttenuation; // Offset: 60 Size: 4 // float3 gMoonDiffuse; // Offset: 64 Size: 12 [unused] // float gEffectsIBLFactor; // Offset: 76 Size: 4 [unused] // float3 gMoonDir; // Offset: 80 Size: 12 [unused] // float gSeaLevel; // Offset: 92 Size: 4 [unused] // float3 gSreenParams; // Offset: 96 Size: 12 [unused] // float gEffectsSunFactor; // Offset: 108 Size: 4 [unused] // float4 gFogCoeffs; // Offset: 112 Size: 16 [unused] // float3 gFogColor; // Offset: 128 Size: 12 [unused] // float gAtmGroundReflectanceAvg; // Offset: 140 Size: 4 [unused] // float gModelEmissiveIntensity; // Offset: 144 Size: 4 [unused] // float gTerrainEmissiveIntensity; // Offset: 148 Size: 4 [unused] // float gUseVolumetricClouds; // Offset: 152 Size: 4 [unused] // float gUseVolumetricCloudsShadow; // Offset: 156 Size: 4 [unused] // float3 gAtmBetaR; // Offset: 160 Size: 12 [unused] // float gAtmHR; // Offset: 172 Size: 4 [unused] // float3 gAtmBetaMSca; // Offset: 176 Size: 12 [unused] // float gAtmHM; // Offset: 188 Size: 4 [unused] // float3 gAtmBetaMExt; // Offset: 192 Size: 12 [unused] // float gAtmMieG; // Offset: 204 Size: 4 [unused] // float3 gAtmBetaAExt; // Offset: 208 Size: 12 [unused] // float gAtmAbsorptionFactor; // Offset: 220 Size: 4 [unused] // float3 gAtmScaToMie; // Offset: 224 Size: 12 [unused] // float gDummy02; // Offset: 236 Size: 4 [unused] // float4x4 gCockpitPosition; // Offset: 240 Size: 64 [unused] // float4x4 gCockpitTransform; // Offset: 304 Size: 64 [unused] // float3 gCockpitCubemapPos; // Offset: 368 Size: 12 [unused] // float gDummy03; // Offset: 380 Size: 4 [unused] // float3 gCockpitElipsoid; // Offset: 384 Size: 12 [unused] // float gDummy06; // Offset: 396 Size: 4 [unused] // float3 gCockpitElipsoidGlassReflection;// Offset: 400 Size: 12 [unused] // float gDummy07; // Offset: 412 Size: 4 [unused] // float4 gCockpitIBL; // Offset: 416 Size: 16 [unused] // float3 gILVBBMin; // Offset: 432 Size: 12 [unused] // float gILVSunFactor; // Offset: 444 Size: 4 [unused] // float3 gILVBBSizeInv; // Offset: 448 Size: 12 [unused] // float gILVSkyFactor; // Offset: 460 Size: 4 [unused] // uint3 gILVGridSize; // Offset: 464 Size: 12 [unused] // float gCloudiness; // Offset: 476 Size: 4 [unused] // float gOutputGamma; // Offset: 480 Size: 4 [unused] // float gOutputGammaInv; // Offset: 484 Size: 4 [unused] // uint COVERAGE_MASK; // Offset: 488 Size: 4 [unused] // float gDummy01; // Offset: 492 Size: 4 [unused] // float4 gDev0; // Offset: 496 Size: 16 [unused] // float4 gDev1; // Offset: 512 Size: 16 [unused] // // } // // cbuffer cPerView // { // // float4x4 gView; // Offset: 0 Size: 64 [unused] // float4x4 gViewInv; // Offset: 64 Size: 64 [unused] // float4x4 gProj; // Offset: 128 Size: 64 [unused] // float4x4 gProjInv; // Offset: 192 Size: 64 [unused] // float4x4 gViewProj; // Offset: 256 Size: 64 [unused] // float4x4 gViewProjInv; // Offset: 320 Size: 64 [unused] // float4x4 gPrevFrameTransform; // Offset: 384 Size: 64 [unused] // float4x4 gPrevFrameViewProj; // Offset: 448 Size: 64 [unused] // float4x4 gCloudShadowsProj; // Offset: 512 Size: 64 [unused] // float4x4 gTerrainShadowMatrix; // Offset: 576 Size: 64 [unused] // float4x4 gTerrainMaskMatrix; // Offset: 640 Size: 64 [unused] // float4x4 gClipCockpit; // Offset: 704 Size: 64 [unused] // float3 gSunDirV; // Offset: 768 Size: 12 [unused] // float gModelClipLevel; // Offset: 780 Size: 4 [unused] // float3 gOrigin; // Offset: 784 Size: 12 [unused] // float gCameraHeightAbs; // Offset: 796 Size: 4 [unused] // float3 gCameraPos; // Offset: 800 Size: 12 // float gFogCameraHeightNorm; // Offset: 812 Size: 4 [unused] // float3 gMoonDirV; // Offset: 816 Size: 12 [unused] // float gPrevFrameTimeDelta; // Offset: 828 Size: 4 [unused] // float4 gNearFarFovZoom; // Offset: 832 Size: 16 // float3 gEarthCenter; // Offset: 848 Size: 12 [unused] // float gExposure; // Offset: 860 Size: 4 [unused] // float2 gNVDpos; // Offset: 864 Size: 8 [unused] // float gNVDaspect; // Offset: 872 Size: 4 [unused] // float gInsideCockpit; // Offset: 876 Size: 4 [unused] // float gCloudsLow; // Offset: 880 Size: 4 [unused] // float gCloudsHigh; // Offset: 884 Size: 4 [unused] // float2 gDummy; // Offset: 888 Size: 8 [unused] // float gRadarPos; // Offset: 896 Size: 4 [unused] // float gRadarPixelSize; // Offset: 900 Size: 4 [unused] // float3 gCloudVolumeScale; // Offset: 912 Size: 12 [unused] // float gDummy04; // Offset: 924 Size: 4 [unused] // float3 gCloudVolumeOffset; // Offset: 928 Size: 12 [unused] // float gDummy05; // Offset: 940 Size: 4 [unused] // float4 ShadowDistance; // Offset: 944 Size: 16 [unused] // float4 ShadowLinearDistance; // Offset: 960 Size: 16 [unused] // float4x4 ShadowMatrix[4]; // Offset: 976 Size: 256 [unused] // float4x4 ShadowMatrixInv[4]; // Offset: 1232 Size: 256 [unused] // float3 ShadowLightDir; // Offset: 1488 Size: 12 [unused] // float ShadowMapSize; // Offset: 1500 Size: 4 [unused] // float4 FlatShadowDistance; // Offset: 1504 Size: 16 [unused] // float ShadowCascadeFadeDepth; // Offset: 1520 Size: 4 [unused] // uint ShadowFirstMap; // Offset: 1524 Size: 4 [unused] // float2 ShadowDummy; // Offset: 1528 Size: 8 [unused] // // } // // // Resource Bindings: // // Name Type Format Dim Slot Elements // ------------------------------ ---------- ------- ----------- ---- -------- // gAnisotropicWrapSampler sampler NA NA 15 1 // Diffuse texture float4 2d 0 1 // GlassColorMap texture float4 2d 1 1 // def_uniforms cbuffer NA NA 0 1 // cPerFrame cbuffer NA NA 6 1 // cPerView cbuffer NA NA 7 1 // // // // Input signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_POSITION 0 xyzw 0 POS float // COLOR 0 xyz 1 NONE float xyz // COLOR 1 xyzw 2 NONE float // COLOR 3 xyzw 3 NONE float xyzw // TEXCOORD 0 xy 4 NONE float xy // TEXCOORD 1 zw 4 NONE float // TEXCOORD 6 xyzw 5 NONE float // TEXCOORD 7 xyzw 6 NONE float // // // Output signature: // // Name Index Mask Register SysValue Format Used // -------------------- ----- ------ -------- -------- ------- ------ // SV_TARGET 0 xyzw 0 TARGET float xyzw // SV_TARGET 1 xyzw 1 TARGET float xyzw // ps_5_0 dcl_globalFlags refactoringAllowed dcl_constantbuffer cb0[18], immediateIndexed dcl_constantbuffer cb6[4], immediateIndexed dcl_constantbuffer cb7[53], immediateIndexed dcl_sampler s15, mode_default dcl_resource_texture2d (float,float,float,float) t0 dcl_resource_texture2d (float,float,float,float) t1 dcl_input_ps linear v1.xyz dcl_input_ps linear v3.xyzw dcl_input_ps linear v4.xy dcl_output o0.xyzw dcl_output o1.xyzw dcl_temps 4 dp3 r0.x, v1.xyzx, v1.xyzx rsq r0.x, r0.x mul r0.xyz, r0.xxxx, v1.xyzx dp3 r0.x, r0.xyzx, cb6[3].xyzx add r0.x, r0.x, l(0.500000) max r0.x, r0.x, l(0.000000) min r0.x, r0.x, l(0.900000) mul r0.x, r0.x, r0.x add r0.yz, v4.xxyx, cb0[11].xxyx sample_indexable(texture2d)(float,float,float,float) r1.xyz, r0.yzyy, t0.xyzw, s15 sample_indexable(texture2d)(float,float,float,float) r2.xyzw, r0.yzyy, t1.xyzw, s15 mul r0.yzw, r1.xxyz, cb0[10].wwww dp3 r1.x, l(-0.168700, -0.331200, 0.500000, 0.000000), r0.yzwy mad r1.x, r1.x, l(0.498039216), l(0.498039216) mad r1.y, r1.x, l(2.007874), l(-1.000000) dp3 r1.w, l(0.500000, -0.418600, -0.081300, 0.000000), r0.yzwy dp3 r0.y, l(0.299000, 0.587000, 0.114000, 0.000000), r0.yzwy mad r1.x, r0.y, cb0[17].y, cb0[17].z mad r0.y, r1.w, l(0.498039216), l(0.498039216) mad r1.z, r0.y, l(2.007874), l(-1.000000) dp3_sat r3.y, l(1.000000, -0.344100, -0.714100, 0.000000), r1.xyzx mad_sat r3.xz, r1.zzyz, l(1.402000, 0.000000, 1.772000, 0.000000), r1.xxxx mul r0.xyz, r0.xxxx, r3.xyzx add r0.w, -cb6[3].w, l(1.000000) mul r0.xyz, r0.wwww, r0.xyzx mul r0.xyz, r0.xyzx, l(0.210000, 0.210000, 0.210000, 0.000000) div r1.xyz, v3.xyzx, v3.wwww add r1.xyz, -r1.xyzx, cb7[50].xyzx dp3 r0.w, r1.xyzx, r1.xyzx sqrt r0.w, r0.w mul r0.w, r0.w, cb7[52].w mul r0.w, r0.w, r0.w min r0.w, r0.w, l(1.000000) mul o0.xyz, r0.wwww, r0.xyzx mov o0.w, l(0) log r0.xyz, |r2.xyzx| mov o1.w, r2.w mul r0.xyz, r0.xyzx, l(2.200000, 2.200000, 2.200000, 0.000000) exp o1.xyz, r0.xyzx ret // Approximately 40 instruction slots used //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/