diff --git a/build/engine/shaders/base/anim.vs b/build/engine/shaders/base/anim.vs index ee12913261508a2666c6ed966f0d570d9276377b..84bdfb739d7effdf3d6ebe7b6438ac90824a64d2 100644 --- a/build/engine/shaders/base/anim.vs +++ b/build/engine/shaders/base/anim.vs @@ -4,9 +4,9 @@ mtrlskin_base.vs Базовый рендер анимационных моделей */ -#include "../struct.h" -#include "../skin.h" -#include "../const.h" +#include <struct.h> +#include <skin.h> +#include <const.h> //########################################################################## @@ -18,7 +18,7 @@ VSO_SceneCommon main(VSI_Animation IN) // OUT.vPosition = mul(OUT.vPosition, g_mWVP); OUT.vPosition = mul(OUT.vPosition, g_mW); OUT.vPosition = mul(OUT.vPosition, g_mVP); - OUT.vNormal = mul(OUT.vNormal, g_mW); + OUT.vNormal = mul(float4(OUT.vNormal, 1.0f), g_mW).xyz; OUT.vTexUV = IN.vTexUV; OUT.vPos = OUT.vPosition; diff --git a/build/engine/shaders/base/post.vs b/build/engine/shaders/base/post.vs index e3d1449920137cdf804778a3fc391a8f53c6c4d6..90f919094872022c0b9cdeff88895d781d11308f 100644 --- a/build/engine/shaders/base/post.vs +++ b/build/engine/shaders/base/post.vs @@ -4,16 +4,16 @@ pp_res_pos.vs Восстановление позиции по глубине */ -#include "../struct.h" +#include <struct.h> //########################################################################## cbuffer perFrame: register(b1) { - half4x4 g_mVP; - half4x4 g_mViewInv; - half4 g_vNearFar; - half3 g_vParamProj; + float4x4 g_mVP; + float4x4 g_mViewInv; + float4 g_vNearFar; + float3 g_vParamProj; }; //########################################################################## @@ -21,15 +21,15 @@ cbuffer perFrame: register(b1) VSO_ResPos main(VSI_PP IN) { VSO_ResPos OUT; - OUT.vPosition = half4(IN.vPosition, 1.0); + OUT.vPosition = float4(IN.vPosition, 1.0); OUT.vTexUV = IN.vTexUV.xy; - half fTanHalfFOV = tan(g_vParamProj.z * 0.5) ; - half aspectRatio = g_vParamProj.x / g_vParamProj.y; - half fFarY = fTanHalfFOV * g_vNearFar.y; - half fFarX = fFarY * aspectRatio; + float fTanHalfFOV = tan(g_vParamProj.z * 0.5) ; + float aspectRatio = g_vParamProj.x / g_vParamProj.y; + float fFarY = fTanHalfFOV * g_vNearFar.y; + float fFarX = fFarY * aspectRatio; - OUT.vEyeRay = half3(sign(OUT.vPosition.x) * fFarX, sign(OUT.vPosition.y) * fFarY, g_vNearFar.y); + OUT.vEyeRay = float3(sign(OUT.vPosition.x) * fFarX, sign(OUT.vPosition.y) * fFarY, g_vNearFar.y); OUT.vWorldRay = mul(half4(OUT.vEyeRay, 0.0), g_mViewInv).xyz; return OUT; diff --git a/build/engine/shaders/base/static.vs b/build/engine/shaders/base/static.vs index a63faf0261a0aaba803ebfd71b53049c3690240f..a0f50c618ad6750a1e939aa33fd984c4d032b730 100644 --- a/build/engine/shaders/base/static.vs +++ b/build/engine/shaders/base/static.vs @@ -13,10 +13,9 @@ VSO_SceneCommon main(VSI_Geometry IN) { VSO_SceneCommon OUT = (VSO_SceneCommon)0; - // OUT.vPosition = mul(half4(IN.vPosition, 1.f), g_mWVP); - OUT.vPosition = mul(float4(IN.vPosition, 1.f), g_mW); + OUT.vPosition = mul(float4(IN.vPosition, 1.0f), g_mW); OUT.vPosition = mul(OUT.vPosition, g_mVP); - OUT.vNormal = mul(IN.vNormal, g_mW); + OUT.vNormal = mul(float4(IN.vNormal, 1.0f), g_mW).xyz; OUT.vTexUV = IN.vTexUV; OUT.vPos = OUT.vPosition; diff --git a/build/engine/shaders/const.h b/build/engine/shaders/const.h index 69517b3f75df996c424f9951acd249ee9a87aae0..3a6ddad89181b51ef070c129f86ec9b0e594dc7c 100644 --- a/build/engine/shaders/const.h +++ b/build/engine/shaders/const.h @@ -21,6 +21,7 @@ cbuffer CDataCamera: register(b2) // float4x4 mV; float4x4 g_mVP; float4 g_vPosCam; + float4x4 g_mInvVP; }; cbuffer CDataObject: register(b1) { diff --git a/build/engine/shaders/lighting/lighting_gi.ps b/build/engine/shaders/lighting/lighting_gi.ps index f3a31a5a46566a631afdf6a6510fc6382b8518ea..c59b1377a12ab11976fd2a8ef97d631ba3611e2c 100644 --- a/build/engine/shaders/lighting/lighting_gi.ps +++ b/build/engine/shaders/lighting/lighting_gi.ps @@ -18,13 +18,9 @@ cbuffer perFrame: register(b1) //########################################################################## SamplerState g_sPointClamp: register(s0); -SamplerState g_sLinearClamp: register(s1); Texture2D g_txDepth:register(t0); Texture2D g_txNormals:register(t1); -Texture3D g_txLightVolumeRed[3]:register(t2); -Texture3D g_txLightVolumeGreen[3]:register(t5); -Texture3D g_txLightVolumeBlue[3]:register(t8); //############################################################################# @@ -40,29 +36,7 @@ PSO_Lbuffer main(VSO_ResPos IN) float3 vNormalPixel = normalize(NormalDecode(vNormals.xyz).xyz); - - // float3 vNormalPixel = normalize(IN.vNormal); - float4 SHintensity = dirToSH(-vNormalPixel); - - float r = 0.0f; - float g = 0.0f; - float b = 0.0f; - - for(uint i = 0; i < 3; ++i) - { - float3 vTexCoord = GetGridTexCoord(vPosition.xyz, i); - float4 vColorR = g_txLightVolumeRed[i].Sample(g_sLinearClamp, vTexCoord); - float4 vColorG = g_txLightVolumeGreen[i].Sample(g_sLinearClamp, vTexCoord); - float4 vColorB = g_txLightVolumeBlue[i].Sample(g_sLinearClamp, vTexCoord); - - r += saturate(dot(SHintensity, vColorR)); - g += saturate(dot(SHintensity, vColorG)); - b += saturate(dot(SHintensity, vColorB)); - } - - - - OUT.vAmdient.xyz = float3(r, g, b) / PI/* * 6.0f */; + OUT.vAmdient.xyz = GetPixelLight(vPosition.xyz, vNormalPixel); OUT.vAmdient.w = 1; OUT.vSpecular = 0; diff --git a/build/engine/shaders/lpv.h b/build/engine/shaders/lpv.h index 77b0fc0b9559c5088b97bfa88b0407f52431f542..42374e118f4a6e9b6797d918296bf58edb6369ab 100644 --- a/build/engine/shaders/lpv.h +++ b/build/engine/shaders/lpv.h @@ -7,7 +7,7 @@ // #define LPV_MAP_SIZE 32 #define KERNEL_SIZE (LPV_MAP_SIZE / LPV_POINT_COUNT) #ifdef IS_SUN -#define LPV_POINT_WEIGHT (256.0f * 256.0f * 64.0f / (float)(LPV_POINT_COUNT * LPV_POINT_COUNT)) +#define LPV_POINT_WEIGHT (256.0f * 256.0f * 10.0f / (float)(LPV_POINT_COUNT * LPV_POINT_COUNT)) #else #define LPV_POINT_WEIGHT (256.0f * 256.0f / (float)(LPV_POINT_COUNT * LPV_POINT_COUNT)) #endif @@ -41,6 +41,14 @@ cbuffer b10: register(b10) #define POSWS_BIAS_NORMAL 0.2 #define POSWS_BIAS_LIGHT 1.0 + +#ifndef NO_LPV_TEXTURES +Texture3D g_txLightVolumeRed[3]:register(t2); +Texture3D g_txLightVolumeGreen[3]:register(t5); +Texture3D g_txLightVolumeBlue[3]:register(t8); +SamplerState g_sLinearClamp: register(s1); +#endif + float4 dirToSH(float3 dir) { return float4(SH_C0, -SH_C1 * dir.y, SH_C1 * dir.z, -SH_C1 * dir.x); @@ -72,3 +80,32 @@ float3 GetGridTexCoord(float3 worldPos, uint uCascade) { return((worldPos - GetGridCenter(uCascade)) / (GetGridWorldSize(uCascade) * LPV_DIM) + 0.5f + 1.0f / (LPV_DIM * 2.0f)); } + +float3 GetPixelLight(float3 vPosition, float3 vNormalPixel) +{ + // float3 vNormalPixel = normalize(IN.vNormal); + float4 SHintensity = dirToSH(-vNormalPixel); + + + float4 vColorR = (float4)0; + float4 vColorG = (float4)0; + float4 vColorB = (float4)0; + [unroll]for(uint i = 0; i < 3; ++i) + { + float3 vTexCoord = GetGridTexCoord(vPosition, i); + vColorR += g_txLightVolumeRed[i].Sample(g_sLinearClamp, vTexCoord); + vColorG += g_txLightVolumeGreen[i].Sample(g_sLinearClamp, vTexCoord); + vColorB += g_txLightVolumeBlue[i].Sample(g_sLinearClamp, vTexCoord); + } + + float r = max(0.0f, dot(SHintensity, vColorR)); + float g = max(0.0f, dot(SHintensity, vColorG)); + float b = max(0.0f, dot(SHintensity, vColorB)); + + return(float3(r, g, b) / PI/* * 6.0f */); +} + + + + + diff --git a/build/engine/shaders/material/shadow.ps b/build/engine/shaders/material/shadow.ps index 63221c2ea0ac1c690442883b0e033c6a62e8533b..981235c2f42eb50de639642c97f34d51b56d8e40 100644 --- a/build/engine/shaders/material/shadow.ps +++ b/build/engine/shaders/material/shadow.ps @@ -6,7 +6,7 @@ gbuffer.ps #include <struct.h> #include <mtrl.h> -#include <shadow.h> +// #include <shadow.h> #include <const.h> #include <xmat.h> @@ -25,7 +25,7 @@ PSO_RSMbuffer main(PSI_XMaterial IN) // OUT.vDepth = 4.0; #else float fDepth = IN.vPos.z / IN.vPos.w; - float fBias = ShadowSlopeBias(fDepth); + // float fBias = ShadowSlopeBias(fDepth); OUT.vDepth = fDepth/* + fBias */; #endif diff --git a/build/engine/shaders/material/transparent.ps b/build/engine/shaders/material/transparent.ps index 8e12119cfa0d4242284b4e27eea8c10d78ea0a2f..3a99e54a4753aecba415c2d1b5d76ff5b078212e 100644 --- a/build/engine/shaders/material/transparent.ps +++ b/build/engine/shaders/material/transparent.ps @@ -9,6 +9,9 @@ gbuffer.ps #include <const.h> #include <xmat.h> +#define NO_LPV_TEXTURES +#include <lpv.h> + //########################################################################## cbuffer CDataClipPlanes: register(b6) @@ -34,5 +37,7 @@ float4 main(PSI_XMaterial IN):COLOR0 XMaterial mtrl = XMATERIAL_MAIN(IN); - return(mtrl.vBaseColor); + float4 fWorldPos = mul(IN.vPos, g_mInvVP); + + return(mtrl.vBaseColor * float4(GetPixelLight(fWorldPos.xyz / fWorldPos.w, mtrl.vNormal), 1.0f)); } diff --git a/build/engine/shaders/ppgensm/ppgensm_direct.ps b/build/engine/shaders/ppgensm/ppgensm_direct.ps index 6fad7bbcf92de69a0241f840acbfbde16ad8eb8c..f0d45a2121aaa6212a2a06091973ec870f471428 100644 --- a/build/engine/shaders/ppgensm/ppgensm_direct.ps +++ b/build/engine/shaders/ppgensm/ppgensm_direct.ps @@ -5,9 +5,9 @@ ppgensm_direct.ps */ #include <struct.h> -#include <shadow.h> +// #include <shadow.h> #include <mtrl.h> -#include <ps.h> +// #include <ps.h> //########################################################################## @@ -56,7 +56,7 @@ Texture2D g_txDepthShadow: register(t4); float4 main(VSO_ResPos IN):COLOR0 { float fShadow = 0.0f; - half3 vNormal = normalize(NormalDecode(g_txNormals.Sample(g_sPointClamp, IN.vTexUV).xyz).xyz); + float3 vNormal = normalize(NormalDecode(g_txNormals.Sample(g_sPointClamp, IN.vTexUV).xyz).xyz); //g_txDepthView.Sample(g_sPointClamp, IN.vTexUV) //g_txDepthShadow.Sample(g_sLinearClamp, IN.vTexUV) diff --git a/build/engine/shaders/ppgensm/ppgensm_point.ps b/build/engine/shaders/ppgensm/ppgensm_point.ps index c8ada90efd0229bda6a13235bb2c7cfdb0a432a4..2c7f60c96400524426649c987f927da4f3ca66b0 100644 --- a/build/engine/shaders/ppgensm/ppgensm_point.ps +++ b/build/engine/shaders/ppgensm/ppgensm_point.ps @@ -5,9 +5,9 @@ ppgensm_point.ps */ #include <struct.h> -#include <shadow.h> +// #include <shadow.h> #include <mtrl.h> -#include <ps.h> +// #include <ps.h> //########################################################################## diff --git a/build/engine/shaders/ppgensm/ppgensm_pssm.ps b/build/engine/shaders/ppgensm/ppgensm_pssm.ps index 1bea42987e3f28e1b5f2155f9a9608e39d15e059..f6d5ad9de456f95706cc145e874eab8e599117b1 100644 --- a/build/engine/shaders/ppgensm/ppgensm_pssm.ps +++ b/build/engine/shaders/ppgensm/ppgensm_pssm.ps @@ -5,9 +5,9 @@ ppgensm_pssm.ps */ #include <struct.h> -#include <shadow.h> +// #include <shadow.h> #include <mtrl.h> -#include <ps.h> +// #include <ps.h> //########################################################################## diff --git a/build/engine/shaders/skin.h b/build/engine/shaders/skin.h index 9bf861c9cde810b193ed14a97bacf2860e9862e8..47f149a6d021a347650b08f772dfc64cb3bea592 100644 --- a/build/engine/shaders/skin.h +++ b/build/engine/shaders/skin.h @@ -31,7 +31,7 @@ VSO_SceneCommon SkinBoneTransform(uint iBone, float weight, VSI_Animation v) iBone *= 2; float4 bpos = g_BufferBoneWorld[iBone]; float4 q = g_BufferBoneWorld[iBone + 1]; - Output.vPosition = float4((SkinRotateVec(q, v.vPosition) + bpos) * weight, 1.0); + Output.vPosition = float4((SkinRotateVec(q, v.vPosition) + bpos.xyz) * weight, 1.0); Output.vNormal = SkinRotateVec(q, v.vNormal) * weight; return(Output); @@ -74,4 +74,4 @@ VSO_SceneCommon SkinAllTransform(VSI_Animation v) Output.vPosition.w = 1.0; return(Output); -} \ No newline at end of file +} diff --git a/build/engine/shaders/struct.h b/build/engine/shaders/struct.h index a72254e4058a5af325e2eb31bf56b811f3245576..1fd16aceeb265abb259099c53b690581e5e9d89b 100644 --- a/build/engine/shaders/struct.h +++ b/build/engine/shaders/struct.h @@ -9,7 +9,7 @@ struct.h #define __STRUCT_H -#include "gdefines.h" +#include <gdefines.h> /* \name ПОСТПРОЦЕСС @{*/ diff --git a/build/gamesource/shaders/ps.h b/build/gamesource/shaders/ps.h index 9115419f9c04168d814cbdeb954cc5b22596c07f..e01e5192b99f0d41b77354d71b9739c11dfdb2b2 100644 --- a/build/gamesource/shaders/ps.h +++ b/build/gamesource/shaders/ps.h @@ -1,6 +1,6 @@ //! обертка tex2Dlod -half4 tex2Dlod2(sampler2D oSampler, half2 vTexUV, int iLod) +float4 tex2Dlod2(sampler2D oSampler, float2 vTexUV, int iLod) { - return tex2Dlod(oSampler, half4(vTexUV,0.f,iLod)); -} \ No newline at end of file + return tex2Dlod(oSampler, float4(vTexUV,0.f,iLod)); +} diff --git a/source/mtrl/IXMaterialSystem.h b/source/mtrl/IXMaterialSystem.h index 130d707c2bfb55d1c963d4ca757d9d550bfc45e9..423fc0040122011af18ab58fe2a184a308e62e9e 100644 --- a/source/mtrl/IXMaterialSystem.h +++ b/source/mtrl/IXMaterialSystem.h @@ -33,6 +33,9 @@ struct XRenderPassTexturesElement //! Слот в шейдере UINT uSlot; + + //! Тип текстуры + GXTEXTURE_TYPE type; }; #define XRENDER_PASS_TEXTURES_LIST_END() {NULL,NULL,~0u} diff --git a/source/mtrl/MaterialSystem.cpp b/source/mtrl/MaterialSystem.cpp index 88a866c9eea247ecc0f21070e699d72f3f17cfb1..b81431c1afc9d210521a701f1d5dc4c3d26304a6 100644 --- a/source/mtrl/MaterialSystem.cpp +++ b/source/mtrl/MaterialSystem.cpp @@ -981,6 +981,20 @@ static void GetAllDefines(Array<CMaterialSystem::MaterialDefine> &aAllDefines, A } } +static const char* GetTextureTypeName(GXTEXTURE_TYPE type) +{ + switch(type) + { + case GXTEXTURE_TYPE_2D: + return("Texture2D"); + case GXTEXTURE_TYPE_3D: + return("Texture3D"); + case GXTEXTURE_TYPE_CUBE: + return("TextureCube"); + } + return("<unknown>"); +} + static bool EvalCondition(CLogicExpression *pExpr, Array<CMaterialSystem::MaterialDefine*> &aStaticList) { if(!pExpr) @@ -1320,7 +1334,7 @@ void CMaterialSystem::updateReferences() Array<MaterialTexture> aTextureMap({0}, GX_MAX_TEXTURES); for(UINT j = 0, jl = pMetaPass->aTextures.size(); j < jl; ++j) { - aTextureMap[pMetaPass->aTextures[j].uSlot] = {pMetaPass->aTextures[j].szKey, GXTEXTURE_TYPE_2D}; + aTextureMap[pMetaPass->aTextures[j].uSlot] = {pMetaPass->aTextures[j].szKey, pMetaPass->aTextures[j].type}; } pPass->aVariants[s].aTextureMap = Array<MaterialTexture>({0}, GX_MAX_TEXTURES); @@ -1342,7 +1356,7 @@ void CMaterialSystem::updateReferences() { if(aTextureMap[j].szName) { - sTextures += (aTextureMap[j].type == GXTEXTURE_TYPE_2D ? String("Texture2D") : String("TextureCube")) + " g_" + aTextureMap[j].szName + ":register(t" + (int)j + ");"; + sTextures += String(GetTextureTypeName(aTextureMap[j].type)) + " g_" + aTextureMap[j].szName + ":register(t" + (int)j + ");"; } } aVariantDefines.push_back({"XMAT_MS_TEXTURES()", strdupa(sTextures.c_str())}); diff --git a/source/render/RenderPipeline.cpp b/source/render/RenderPipeline.cpp index 5710b833c8d1c1dcd3aee1b76867141289a289aa..8bc757f6c27adc96ea16a56b94b294231bbb544a 100644 --- a/source/render/RenderPipeline.cpp +++ b/source/render/RenderPipeline.cpp @@ -82,17 +82,28 @@ CRenderPipeline::CRenderPipeline(IGXDevice *pDevice): { XRenderPassTexturesElement pTextures[] = { {"GBuffer color(rgb) light(a)", "txGBufferC3L1", 0}, - {"GBuffer normals(rgb) f0(a)", "txGBufferN3F1", 1}, + // {"GBuffer normals(rgb) f0(a)", "txGBufferN3F1", 1}, {"GBuffer depth(r)", "txGBufferD1", 2}, - {"", "", 3}, // reserved slot + // {"", "3", 3}, // reserved slot // {"GBuffer roughness(r) metallic(g) thickness(b) AO(a)", "g_txGBufferR1M1T1AO1", 3}, {"Lighted scene", "txScene", 4}, + + {"LPV Red cascades", "txLightVolumeRed[3]", 5, GXTEXTURE_TYPE_3D}, + {"", "6", 6}, + {"", "7", 7}, + {"LPV Green cascades", "txLightVolumeGreen[3]", 8, GXTEXTURE_TYPE_3D}, + {"", "9", 9}, + {"", "10", 10}, + {"LPV Red cascades", "txLightVolumeBlue[3]", 11, GXTEXTURE_TYPE_3D}, + {"", "12", 12}, + {"", "13", 13}, XRENDER_PASS_TEXTURES_LIST_END() }; XRenderPassSamplersElement pSamplers[] = { {"Scene default", "sScene", 0}, {"Point clamp", "sPointClamp", 1}, + {"Linear clamp", "sLinearClamp", 2}, XRENDER_PASS_SAMPLERS_LIST_END() }; @@ -576,9 +587,11 @@ void CRenderPipeline::renderFrame() pCtx->setPSConstant(m_pSceneShaderDataPS, SCR_SCENE); m_cameraShaderData.vs.mVP = SMMatrixTranspose(gdata::mCamView * gdata::mCamProj); + m_cameraShaderData.vs.mInvVP = SMMatrixInverse(NULL, m_cameraShaderData.vs.mVP); m_cameraShaderData.vs.vPosCam = gdata::vConstCurrCamPos; m_pCameraShaderDataVS->update(&m_cameraShaderData.vs); pCtx->setVSConstant(m_pCameraShaderDataVS, SCR_CAMERA); + pCtx->setPSConstant(m_pCameraShaderDataVS, SCR_CAMERA); renderPrepare(); @@ -1341,11 +1354,19 @@ void CRenderPipeline::renderTransparent() pCtx->setDepthStencilState(m_pDepthStencilStateNoZWrite); pCtx->setBlendState(m_pBlendStateAlpha); pCtx->setSamplerState(m_pRefractionScene, 1); + pCtx->setSamplerState(gdata::rstates::pSamplerLinearClamp, 2); //m_pDevice->setTexture(m_pSceneTexture, 11); pCtx->setPSTexture(m_pGBufferColor); - pCtx->setPSTexture(m_pGBufferNormals, 1); +// pCtx->setPSTexture(m_pGBufferNormals, 1); pCtx->setPSTexture(m_pGBufferDepth, 2); - pCtx->setPSTexture(m_pGBufferParams, 3); +// pCtx->setPSTexture(m_pGBufferParams, 3); + + for(UINT i = 0; i < 3; ++i) + { + pCtx->setPSTexture(m_aLPVs[i].pGIAccumRed, 5 + i); + pCtx->setPSTexture(m_aLPVs[i].pGIAccumGreen, 8 + i); + pCtx->setPSTexture(m_aLPVs[i].pGIAccumBlue, 11 + i); + } m_iRefractiveSource = -1; IGXSurface *pSceneTarget = m_pSceneTexture->asRenderTarget(); diff --git a/source/render/RenderPipeline.h b/source/render/RenderPipeline.h index b89e14ada815116faed687843a72d9287fd78f00..e1a9bfee6146f6ea7db4b0033802a7c1730cc06e 100644 --- a/source/render/RenderPipeline.h +++ b/source/render/RenderPipeline.h @@ -127,6 +127,7 @@ protected: //SMMATRIX mV; SMMATRIX mVP; float3 vPosCam; + SMMATRIX mInvVP; } vs; //float4 vNearFarLayers; } m_cameraShaderData; diff --git a/source/render/gdata.cpp b/source/render/gdata.cpp index 5664cb63e51301e567cc9fe599d29bfa82d163ca..49c96747a8ab5994dd6d5578ff3fe76bc34148c9 100644 --- a/source/render/gdata.cpp +++ b/source/render/gdata.cpp @@ -72,7 +72,7 @@ namespace gdata ID idStencilStr; ID idStencilColumn; ID idStencilStrColumn; - ID idUnionAlpha; + //ID idUnionAlpha; }; namespace kit @@ -82,7 +82,7 @@ namespace gdata ID idStencilColumn; ID idStencilStrColumn; ID idBlendAmbientSpecDiffColor; - ID idUnionAlpha; + //ID idUnionAlpha; ID idComLightingNonShadow; ID idComLightingShadow; ID idComLightingSpotNonShadow; @@ -177,7 +177,7 @@ void gdata::shaders_id::InitAllShaders() gdata::shaders_id::ps::idComLightingPSSMShadow = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "lighting_com.ps", "lighting_com_pssm_shadow.ps", Defines_IS_PSSM_SHADOWED); gdata::shaders_id::ps::idBlendAmbientSpecDiffColor = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "lighting_blend.ps"); - gdata::shaders_id::ps::idUnionAlpha = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "pp_union_alpha.ps"); + //gdata::shaders_id::ps::idUnionAlpha = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "pp_union_alpha.ps"); GXMacro Defines_STR[] = { { "_STR_", "" }, { 0, 0 } }; gdata::shaders_id::ps::idStencilStr = SGCore_ShaderLoad(SHADER_TYPE_PIXEL, "pp_alpha_stencil_mark.ps", "pp_stencil_str.ps", Defines_STR); @@ -191,7 +191,7 @@ void gdata::shaders_id::InitAllShaders() gdata::shaders_id::kit::idStencilColumn = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idScreenOut, gdata::shaders_id::ps::idStencilColumn); gdata::shaders_id::kit::idStencilStrColumn = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idScreenOut, gdata::shaders_id::ps::idStencilStrColumn); gdata::shaders_id::kit::idBlendAmbientSpecDiffColor = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idScreenOut, gdata::shaders_id::ps::idBlendAmbientSpecDiffColor); - gdata::shaders_id::kit::idUnionAlpha = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idScreenOut, gdata::shaders_id::ps::idUnionAlpha); + //gdata::shaders_id::kit::idUnionAlpha = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idScreenOut, gdata::shaders_id::ps::idUnionAlpha); gdata::shaders_id::kit::idComLightingNonShadow = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idResPos, gdata::shaders_id::ps::idComLightingNonShadow); gdata::shaders_id::kit::idComLightingShadow = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idResPos, gdata::shaders_id::ps::idComLightingShadow); gdata::shaders_id::kit::idComLightingSpotNonShadow = SGCore_ShaderCreateKit(gdata::shaders_id::vs::idResPos, gdata::shaders_id::ps::idComLightingSpotNonShadow); diff --git a/source/render/gdata.h b/source/render/gdata.h index b50affafc65a90b9de7f39677f71ede0ee3fbe8c..3f769a1050ac7e5a17d9ee86e27c80284d336a3c 100644 --- a/source/render/gdata.h +++ b/source/render/gdata.h @@ -125,7 +125,7 @@ namespace gdata extern ID idStencilStr; extern ID idStencilColumn; extern ID idStencilStrColumn; - extern ID idUnionAlpha; + //extern ID idUnionAlpha; }; namespace kit @@ -135,7 +135,7 @@ namespace gdata extern ID idStencilColumn; extern ID idStencilStrColumn; extern ID idBlendAmbientSpecDiffColor; - extern ID idUnionAlpha; + //extern ID idUnionAlpha; extern ID idComLightingNonShadow; extern ID idComLightingSpotNonShadow; extern ID idComLightingShadow;