From ee2a5b57f45051261237aa03806f7cf67d78e399 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 17 Sep 2022 23:09:23 +0200 Subject: [PATCH] Add default shader include for iw4 with code constants --- raw/iw4/shader/include/IW4.hlsl | 132 ++++++++++++++++++ raw/iw4/shader/trivial_vertcol_simple.hlsl | 5 +- .../Shader/ShaderIncludeHandler.cpp | 2 +- 3 files changed, 135 insertions(+), 4 deletions(-) create mode 100644 raw/iw4/shader/include/IW4.hlsl diff --git a/raw/iw4/shader/include/IW4.hlsl b/raw/iw4/shader/include/IW4.hlsl new file mode 100644 index 00000000..9c2f80a0 --- /dev/null +++ b/raw/iw4/shader/include/IW4.hlsl @@ -0,0 +1,132 @@ +// ============================= +// IW4 code constants +// ============================= + +extern float4 baseLightingCoords; +extern float4 lightprobeAmbient; +extern float4 fullscreenDistortion; +extern float4 fadeEffect; +extern float4 lightingLookupScale; +extern float4 debugBumpmap; +extern float4 pixelCostFracs; +extern float4 pixelCostDecode; +extern float4 materialColor; +extern float4 fogConsts; +extern float4 fogColorLinear; +extern float4 fogColorGamma; +extern float4 fogSunConsts; +extern float4 fogSunColorLinear; +extern float4 fogSunColorGamma; +extern float4 fogSunDir; +extern float4 glowSetup; +extern float4 glowApply; +extern float4 filterTap[8]; +extern float4 codeMeshArg[2]; +extern float4 renderTargetSize; +extern float4 shadowmapSwitchPartition; +extern float4 shadowmapScale; +extern float4 shadowmapPolygonOffset; +extern float4 zNear; +extern float4 clipSpaceLookupScale; +extern float4 clipSpaceLookupOffset; +extern float4 dofEquationViewModelAndFarBlur; +extern float4 dofEquationScene; +extern float4 dofLerpScale; +extern float4 dofLerpBias; +extern float4 dofRowDelta; +extern float4 depthFromClip; +extern float4 outdoorFeatherParms; +extern float4 envMapParms; +extern float4 colorMatrixR; +extern float4 colorMatrixG; +extern float4 colorMatrixB; +extern float4 colorBias; +extern float4 colorTintBase; +extern float4 colorTintDelta; +extern float4 colorTintQuadraticDelta; +extern float4 motionMatrixX; +extern float4 motionMatrixY; +extern float4 motionMatrixW; +extern float4 gameTime; +extern float4 particleCloudColor; +extern float4 particleCloudMatrix; +extern float4 particleCloudMatrix1; +extern float4 particleCloudMatrix2; +extern float4 particleCloudSparkColor0; +extern float4 particleCloudSparkColor1; +extern float4 particleCloudSparkColor2; +extern float4 particleFountainParms0; +extern float4 particleFountainParms1; +extern float4 viewportDimensions; +extern float4 framebufferRead; + +extern float4 nearPlaneOrg; +extern float4 nearPlaneDx; +extern float4 nearPlaneDy; + +extern float4 lightPosition; +extern float4 lightDiffuse; +extern float4 lightSpecular; +extern float4 lightSpotDir; +extern float4 lightSpotFactors; +extern float4 lightFalloffPlacement; + +extern float4 sunShadowmapPixelAdjust; +extern float4 spotShadowmapPixelAdjust; + +extern float4x4 viewMatrix; +extern float4x4 inverseViewMatrix; +extern float4x4 transposeViewMatrix; +extern float4x4 inverseTransposeViewMatrix; +extern float4x4 projectionMatrix; +extern float4x4 inverseProjectionMatrix; +extern float4x4 transposeProjectionMatrix; +extern float4x4 inverseTransposeProjectionMatrix; +extern float4x4 viewProjectionMatrix; +extern float4x4 inverseViewProjectionMatrix; +extern float4x4 transposeViewProjectionMatrix; +extern float4x4 inverseTransposeViewProjectionMatrix; +extern float4x4 shadowLookupMatrix; +extern float4x4 inverseShadowLookupMatrix; +extern float4x4 transposeShadowLookupMatrix; +extern float4x4 inverseTransposeShadowLookupMatrix; +extern float4x4 worldOutdoorLookupMatrix; +extern float4x4 inverseWorldOutdoorLookupMatrix; +extern float4x4 transposeWorldOutdoorLookupMatrix; +extern float4x4 inverseTransposeWorldOutdoorLookupMatrix; +extern float4x4 worldMatrix; +extern float4x4 inverseWorldMatrix; +extern float4x4 transposeWorldMatrix; +extern float4x4 inverseTransposeWorldMatrix; +extern float4x4 worldViewMatrix; +extern float4x4 inverseWorldViewMatrix; +extern float4x4 transposeWorldViewMatrix; +extern float4x4 inverseTransposeWorldViewMatrix; +extern float4x4 worldViewProjectionMatrix; +extern float4x4 inverseWorldViewProjectionMatrix; +extern float4x4 transposeWorldViewProjectionMatrix; +extern float4x4 inverseTransposeWorldViewProjectionMatrix; +extern float4x4 worldMatrix1; +extern float4x4 inverseWorldMatrix1; +extern float4x4 transposeWorldMatrix1; +extern float4x4 inverseTransposeWorldMatrix1; +extern float4x4 worldViewMatrix1; +extern float4x4 inverseWorldViewMatrix1; +extern float4x4 transposeWorldViewMatrix1; +extern float4x4 inverseTransposeWorldViewMatrix1; +extern float4x4 worldViewProjectionMatrix1; +extern float4x4 inverseWorldViewProjectionMatrix1; +extern float4x4 transposeWorldViewProjectionMatrix1; +extern float4x4 inverseTransposeWorldViewProjectionMatrix1; +extern float4x4 worldMatrix2; +extern float4x4 inverseWorldMatrix2; +extern float4x4 transposeWorldMatrix2; +extern float4x4 inverseTransposeWorldMatrix2; +extern float4x4 worldViewMatrix2; +extern float4x4 inverseWorldViewMatrix2; +extern float4x4 transposeWorldViewMatrix2; +extern float4x4 inverseTransposeWorldViewMatrix2; +extern float4x4 worldViewProjectionMatrix2; +extern float4x4 inverseWorldViewProjectionMatrix2; +extern float4x4 transposeWorldViewProjectionMatrix2; +extern float4x4 inverseTransposeWorldViewProjectionMatrix2; \ No newline at end of file diff --git a/raw/iw4/shader/trivial_vertcol_simple.hlsl b/raw/iw4/shader/trivial_vertcol_simple.hlsl index 1f35c409..923257ec 100644 --- a/raw/iw4/shader/trivial_vertcol_simple.hlsl +++ b/raw/iw4/shader/trivial_vertcol_simple.hlsl @@ -1,3 +1,5 @@ +#include "include/IW4.hlsl" + struct VSInput { float3 position : POSITION; @@ -12,9 +14,6 @@ struct VSOutput half2 texcoord : TEXCOORD0; }; -extern float4x4 viewProjectionMatrix; -extern float4x4 worldMatrix; - VSOutput VSMain(VSInput vin) { VSOutput vout = (VSOutput)0; diff --git a/src/ObjLoading/Shader/ShaderIncludeHandler.cpp b/src/ObjLoading/Shader/ShaderIncludeHandler.cpp index 5d236ecb..18a0148e 100644 --- a/src/ObjLoading/Shader/ShaderIncludeHandler.cpp +++ b/src/ObjLoading/Shader/ShaderIncludeHandler.cpp @@ -15,7 +15,7 @@ ShaderIncludeHandler::~ShaderIncludeHandler() = default; HRESULT ShaderIncludeHandler::Open(D3D_INCLUDE_TYPE includeType, const LPCSTR pFileName, LPCVOID pParentData, LPCVOID* ppData, UINT* pBytes) { std::ostringstream ss; - ss << "shaders/" << pFileName; + ss << "shader/" << pFileName; auto file = m_search_path->Open(ss.str()); if (!file.IsOpen() || file.m_length <= 0)