optimized vertex streams part3

This commit is contained in:
turanszkij
2017-05-22 01:03:21 +02:00
parent 942830dfc2
commit 19a3797ffc
5 changed files with 348 additions and 156 deletions
@@ -30,7 +30,7 @@ void TiledForwardRenderableComponent::RenderScene(GRAPHICSTHREAD threadID)
{
wiRenderer::SetAlphaRef(0.25f, threadID);
}
wiRenderer::DrawWorld(wiRenderer::getCamera(), getTessellationEnabled(), threadID, SHADERTYPE_ALPHATESTONLY, nullptr, true, true);
wiRenderer::DrawWorld(wiRenderer::getCamera(), getTessellationEnabled(), threadID, SHADERTYPE_DEPTHONLY, nullptr, true, true);
}
wiProfiler::GetInstance().EndRange(threadID);
+5 -1
View File
@@ -40,7 +40,7 @@ enum SHADERTYPE
SHADERTYPE_DEFERRED,
SHADERTYPE_FORWARD,
SHADERTYPE_TILEDFORWARD,
SHADERTYPE_ALPHATESTONLY,
SHADERTYPE_DEPTHONLY,
SHADERTYPE_ENVMAPCAPTURE,
SHADERTYPE_SHADOW,
SHADERTYPE_SHADOWCUBE,
@@ -103,6 +103,7 @@ enum VSTYPES
VSTYPE_OBJECT_DEBUG,
VSTYPE_OBJECT_COMMON,
VSTYPE_OBJECT_SIMPLE,
VSTYPE_OBJECT_POSITIONSTREAM,
VSTYPE_OBJECT_COMMON_TESSELLATION,
VSTYPE_OBJECT_SIMPLE_TESSELLATION,
VSTYPE_SHADOW,
@@ -135,6 +136,7 @@ enum VSTYPES
// pixel shaders
enum PSTYPES
{
PSTYPE_NULL,
PSTYPE_OBJECT_DEFERRED,
PSTYPE_OBJECT_DEFERRED_NORMALMAP,
PSTYPE_OBJECT_DEFERRED_POM,
@@ -203,6 +205,7 @@ enum PSTYPES
// geometry shaders
enum GSTYPES
{
GSTYPE_NULL,
GSTYPE_SHADOWCUBEMAPRENDER,
GSTYPE_SHADOWCUBEMAPRENDER_ALPHATEST,
GSTYPE_STREAMOUT,
@@ -249,6 +252,7 @@ enum CSTYPES
// vertex layouts
enum VLTYPES
{
VLTYPE_OBJECT_DEBUG,
VLTYPE_OBJECT_POS,
VLTYPE_OBJECT_POS_TEX,
VLTYPE_OBJECT_ALL,
+2 -2
View File
@@ -106,12 +106,12 @@ void wiHairParticle::LoadShaders()
SAFE_INIT(qps[i]);
}
ps[SHADERTYPE_ALPHATESTONLY] = static_cast<PixelShader*>(wiResourceManager::GetShaderManager()->add(wiRenderer::SHADERPATH + "grassPS_alphatestonly.cso", wiResourceManager::PIXELSHADER));
ps[SHADERTYPE_DEPTHONLY] = static_cast<PixelShader*>(wiResourceManager::GetShaderManager()->add(wiRenderer::SHADERPATH + "grassPS_alphatestonly.cso", wiResourceManager::PIXELSHADER));
ps[SHADERTYPE_DEFERRED] = static_cast<PixelShader*>(wiResourceManager::GetShaderManager()->add(wiRenderer::SHADERPATH + "grassPS_deferred.cso", wiResourceManager::PIXELSHADER));
ps[SHADERTYPE_FORWARD] = static_cast<PixelShader*>(wiResourceManager::GetShaderManager()->add(wiRenderer::SHADERPATH + "grassPS_forward_dirlight.cso", wiResourceManager::PIXELSHADER));
ps[SHADERTYPE_TILEDFORWARD] = static_cast<PixelShader*>(wiResourceManager::GetShaderManager()->add(wiRenderer::SHADERPATH + "grassPS_tiledforward.cso", wiResourceManager::PIXELSHADER));
qps[SHADERTYPE_ALPHATESTONLY] = static_cast<PixelShader*>(wiResourceManager::GetShaderManager()->add(wiRenderer::SHADERPATH + "qGrassPS_alphatestonly.cso", wiResourceManager::PIXELSHADER));
qps[SHADERTYPE_DEPTHONLY] = static_cast<PixelShader*>(wiResourceManager::GetShaderManager()->add(wiRenderer::SHADERPATH + "qGrassPS_alphatestonly.cso", wiResourceManager::PIXELSHADER));
qps[SHADERTYPE_DEFERRED] = static_cast<PixelShader*>(wiResourceManager::GetShaderManager()->add(wiRenderer::SHADERPATH + "qGrassPS_deferred.cso", wiResourceManager::PIXELSHADER));
qps[SHADERTYPE_FORWARD] = static_cast<PixelShader*>(wiResourceManager::GetShaderManager()->add(wiRenderer::SHADERPATH + "qGrassPS_forward_dirlight.cso", wiResourceManager::PIXELSHADER));
qps[SHADERTYPE_TILEDFORWARD] = static_cast<PixelShader*>(wiResourceManager::GetShaderManager()->add(wiRenderer::SHADERPATH + "qGrassPS_tiledforward.cso", wiResourceManager::PIXELSHADER));
+1
View File
@@ -236,6 +236,7 @@ struct Material
bool IsWater() const { return water; }
bool HasPlanarReflection() const { return planar_reflections || IsWater(); }
bool IsCastingShadow() const { return cast_shadow; }
bool IsAlphaTestEnabled() const { return alphaRef <= 1.0f - 1.0f / 256.0f; }
RENDERTYPE GetRenderType() const
{
if (IsWater())
File diff suppressed because it is too large Load Diff