#pragma once #include "globals.h" #include "shader.h" // --> Neuen Shader hinzufuegen: // // in globals.h und globals.cpp ein neues Char Array fuer den Quellcode des Shader anlegen // in globals.h das Enum ShaderIndices erweitern // eine Datei im cfg Verzeichnis anlegen, die diesen Shader enthaelt // in ConfigFiles.cpp die Funktion ReadShaders() erweitern, damit die Datei in das Array eingelesen wird // den Shader in PrepareShaders compilieren void RenderLoading( int iPercent ); void PrepareShaders() { //Postprocessing Zeug g_Shaders[ PreDepth ].CompileVS(g_ShaderVSGeneral, "vs_main" ); g_Shaders[ PreDepth ].CompilePS(g_ShaderPSDepth, "ps_main" ); int iPer= 5; int iAdd= 5; RenderLoading( iPer ); g_Shaders[ PSSM_Proj ].CompileVS(g_ShaderVSFSQuad, "vs_main" ); g_Shaders[ PSSM_Proj ].CompilePS(g_ShaderPSPSSM, "ps_main" ); iPer+=iAdd; RenderLoading( iPer ); g_Shaders[ SSAO ].CompileVS(g_ShaderVSFSQuad, "vs_main" ); g_Shaders[ SSAO ].CompilePS(g_ShaderPSAmbOcc, "ps_main" ); iPer+=iAdd; RenderLoading( iPer ); g_Shaders[ SSAO_BlurH ].CompileVS(g_ShaderVSFSQuad, "vs_main" ); g_Shaders[ SSAO_BlurH ].CompilePS(g_ShaderPSAmbOcc, "ps_blur_hor" ); g_Shaders[ SSAO_BlurV ].CompileVS(g_ShaderVSFSQuad, "vs_main" ); g_Shaders[ SSAO_BlurV ].CompilePS(g_ShaderPSAmbOcc, "ps_blur_ver" ); iPer+=iAdd; RenderLoading( iPer ); g_Shaders[ DOF_Intensity ].CompileVS(g_ShaderVSFSQuad, "vs_main" ); g_Shaders[ DOF_Intensity ].CompilePS(g_ShaderPSDOF, "ps_blur_intensity" ); g_Shaders[ DOF ].CompileVS(g_ShaderVSFSQuad, "vs_main" ); g_Shaders[ DOF ].CompilePS(g_ShaderPSDOF, "ps_main" ); g_Shaders[ BlurBilH ].CompileVS(g_ShaderVSFSQuad, "vs_main" ); g_Shaders[ BlurBilH ].CompilePS(g_ShaderPSBlur, "ps_blur_bil_hor" ); g_Shaders[ BlurBilV ].CompileVS(g_ShaderVSFSQuad, "vs_main" ); g_Shaders[ BlurBilV ].CompilePS(g_ShaderPSBlur, "ps_blur_bil_ver" ); iPer+=iAdd; RenderLoading( iPer ); g_Shaders[ Ray_Mask ].CompileVS(g_ShaderVSFSQuad, "vs_main" ); g_Shaders[ Ray_Mask ].CompilePS(g_ShaderPSRay, "ps_ray_mask" ); g_Shaders[ Ray_Extrude ].CompileVS(g_ShaderVSFSQuad, "vs_main" ); g_Shaders[ Ray_Extrude ].CompilePS(g_ShaderPSRay, "ps_ray_extrude" ); g_Shaders[ Extract_InvAlpha ].CompileVS(g_ShaderVSFSQuad, "vs_main" ); g_Shaders[ Extract_InvAlpha ].CompilePS(g_ShaderPSBlur, "ps_extract_inv_alpha" ); g_Shaders[ BlurH ].CompileVS(g_ShaderVSFSQuad, "vs_main" ); g_Shaders[ BlurH ].CompilePS(g_ShaderPSBlur, "ps_blur_hor" ); g_Shaders[ BlurV ].CompileVS(g_ShaderVSFSQuad, "vs_main" ); g_Shaders[ BlurV ].CompilePS(g_ShaderPSBlur, "ps_blur_ver" ); iPer+=iAdd; RenderLoading( iPer ); // Shader fuer Objekte g_Shaders[ Phong ].CompileVS(g_ShaderVSGeneral, "vs_main" ); g_Shaders[ Phong ].CompilePS(g_ShaderPSPhong, "ps_main" ); g_Shaders[ Rainbow ].CompileVS(g_ShaderVSGeneral, "vs_main" ); g_Shaders[ Rainbow ].CompilePS(g_ShaderPSRainbow, "ps_main" ); g_Shaders[ Rainbow ].SetTextureStageSettings( 0, TI_Rainbow, TI_CLAMP ); iPer+=iAdd; RenderLoading( iPer ); g_Shaders[ Grass ].CompileVS(g_ShaderVSGeneral, "vs_main" ); g_Shaders[ Grass ].CompilePS(g_ShaderPSGrass, "ps_main" ); g_Shaders[ Grass ].SetTextureStageSettings( 0, TI_Random ); g_Shaders[ Tarmac ].CompileVS(g_ShaderVSGeneral, "vs_main" ); g_Shaders[ Tarmac ].CompilePS(g_ShaderPSTarmac, "ps_main" ); g_Shaders[ Tarmac ].SetTextureStageSettings( 0, TI_RandomCube ); iPer+=iAdd; RenderLoading( iPer ); g_Shaders[ Wall ].CompileVS(g_ShaderVSGeneral, "vs_main" ); g_Shaders[ Wall ].CompilePS(g_ShaderPSWall, "ps_main" ); g_Shaders[ Wall ].SetTextureStageSettings( 0, TI_RandomCube ); g_Shaders[ Wall ].SetTextureStageSettings( 1, TI_Rainbow, TI_CLAMP ); g_Shaders[ Sky ].CompileVS(g_ShaderVSSky, "vs_main" ); g_Shaders[ Sky ].CompilePS(g_ShaderPSSky, "ps_main" ); g_Shaders[ Sky ].SetTextureStageSettings( 0, TI_RandomCube ); iPer+=iAdd; RenderLoading( iPer ); g_Shaders[ SkyDepth ].CompileVS(g_ShaderVSSky, "vs_main" ); g_Shaders[ SkyDepth ].CompilePS(g_ShaderPSDepth, "ps_main" ); g_Shaders[ Text ].CompileVS(g_ShaderVSGeneral, "vs_main" ); g_Shaders[ Text ].CompilePS(g_ShaderPSText, "ps_main" ); }