Enabled new shader flags
Former-commit-id: df06f4faf4c7275c702338eee1ed14a2445662a1
This commit is contained in:
parent
67ecefd380
commit
aeec8ee0f4
|
|
@ -121,10 +121,12 @@ enum nzShaderFlags
|
||||||
{
|
{
|
||||||
nzShaderFlags_None = 0,
|
nzShaderFlags_None = 0,
|
||||||
|
|
||||||
nzShaderFlags_Deferred = 0x1,
|
nzShaderFlags_Billboard = 0x1,
|
||||||
nzShaderFlags_Instancing = 0x2,
|
nzShaderFlags_Deferred = 0x2,
|
||||||
|
nzShaderFlags_Instancing = 0x4,
|
||||||
|
nzShaderFlags_VertexColor = 0x8,
|
||||||
|
|
||||||
nzShaderFlags_Max = nzShaderFlags_Instancing*2-1
|
nzShaderFlags_Max = nzShaderFlags_VertexColor*2-1
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // NAZARA_ENUMS_GRAPHICS_HPP
|
#endif // NAZARA_ENUMS_GRAPHICS_HPP
|
||||||
|
|
|
||||||
|
|
@ -248,10 +248,11 @@ const NzUberShader* NzMaterial::GetShader() const
|
||||||
|
|
||||||
const NzUberShaderInstance* NzMaterial::GetShaderInstance(nzUInt32 flags) const
|
const NzUberShaderInstance* NzMaterial::GetShaderInstance(nzUInt32 flags) const
|
||||||
{
|
{
|
||||||
if (!m_shaders[flags].uberInstance)
|
const ShaderInstance& instance = m_shaders[flags];
|
||||||
|
if (!instance.uberInstance)
|
||||||
GenerateShader(flags);
|
GenerateShader(flags);
|
||||||
|
|
||||||
return m_shaders[flags].uberInstance;
|
return instance.uberInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
float NzMaterial::GetShininess() const
|
float NzMaterial::GetShininess() const
|
||||||
|
|
@ -690,8 +691,10 @@ void NzMaterial::GenerateShader(nzUInt32 flags) const
|
||||||
m_normalMap.IsValid() || m_heightMap.IsValid() || m_specularMap.IsValid());
|
m_normalMap.IsValid() || m_heightMap.IsValid() || m_specularMap.IsValid());
|
||||||
list.SetParameter("TRANSFORM", m_transformEnabled);
|
list.SetParameter("TRANSFORM", m_transformEnabled);
|
||||||
|
|
||||||
|
list.SetParameter("FLAG_BILLBOARD", static_cast<bool>(flags & nzShaderFlags_Billboard));
|
||||||
list.SetParameter("FLAG_DEFERRED", static_cast<bool>(flags & nzShaderFlags_Deferred));
|
list.SetParameter("FLAG_DEFERRED", static_cast<bool>(flags & nzShaderFlags_Deferred));
|
||||||
list.SetParameter("FLAG_INSTANCING", static_cast<bool>(flags & nzShaderFlags_Instancing));
|
list.SetParameter("FLAG_INSTANCING", static_cast<bool>(flags & nzShaderFlags_Instancing));
|
||||||
|
list.SetParameter("FLAG_VERTEXCOLOR", static_cast<bool>(flags & nzShaderFlags_VertexColor));
|
||||||
|
|
||||||
ShaderInstance& instance = m_shaders[flags];
|
ShaderInstance& instance = m_shaders[flags];
|
||||||
instance.uberInstance = m_uberShader->Get(list);
|
instance.uberInstance = m_uberShader->Get(list);
|
||||||
|
|
@ -759,7 +762,7 @@ bool NzMaterial::Initialize()
|
||||||
}
|
}
|
||||||
|
|
||||||
uberShader->SetShader(nzShaderStage_Fragment, fragmentShader, "ALPHA_MAPPING ALPHA_TEST AUTO_TEXCOORDS DIFFUSE_MAPPING");
|
uberShader->SetShader(nzShaderStage_Fragment, fragmentShader, "ALPHA_MAPPING ALPHA_TEST AUTO_TEXCOORDS DIFFUSE_MAPPING");
|
||||||
uberShader->SetShader(nzShaderStage_Vertex, vertexShader, "FLAG_INSTANCING TEXTURE_MAPPING TRANSFORM UNIFORM_VERTEX_DEPTH");
|
uberShader->SetShader(nzShaderStage_Vertex, vertexShader, "FLAG_BILLBOARD FLAG_INSTANCING FLAG_VERTEXCOLOR TEXTURE_MAPPING TRANSFORM UNIFORM_VERTEX_DEPTH");
|
||||||
|
|
||||||
NzUberShaderLibrary::Register("Basic", uberShader.get());
|
NzUberShaderLibrary::Register("Basic", uberShader.get());
|
||||||
uberShader.release();
|
uberShader.release();
|
||||||
|
|
@ -799,8 +802,8 @@ bool NzMaterial::Initialize()
|
||||||
vertexShader.Set(reinterpret_cast<const char*>(compatibilityVertexShader), sizeof(compatibilityVertexShader));
|
vertexShader.Set(reinterpret_cast<const char*>(compatibilityVertexShader), sizeof(compatibilityVertexShader));
|
||||||
}
|
}
|
||||||
|
|
||||||
uberShader->SetShader(nzShaderStage_Fragment, fragmentShader, "FLAG_DEFERRED ALPHA_MAPPING ALPHA_TEST DIFFUSE_MAPPING EMISSIVE_MAPPING LIGHTING NORMAL_MAPPING PARALLAX_MAPPING SPECULAR_MAPPING");
|
uberShader->SetShader(nzShaderStage_Fragment, fragmentShader, "FLAG_DEFERRED ALPHA_MAPPING ALPHA_TEST AUTO_TEXCOORDS DIFFUSE_MAPPING EMISSIVE_MAPPING LIGHTING NORMAL_MAPPING PARALLAX_MAPPING SPECULAR_MAPPING");
|
||||||
uberShader->SetShader(nzShaderStage_Vertex, vertexShader, "FLAG_DEFERRED FLAG_INSTANCING COMPUTE_TBNMATRIX LIGHTING PARALLAX_MAPPING TEXTURE_MAPPING TRANSFORM UNIFORM_VERTEX_DEPTH");
|
uberShader->SetShader(nzShaderStage_Vertex, vertexShader, "FLAG_BILLBOARD FLAG_DEFERRED FLAG_INSTANCING FLAG_VERTEXCOLOR COMPUTE_TBNMATRIX LIGHTING PARALLAX_MAPPING TEXTURE_MAPPING TRANSFORM UNIFORM_VERTEX_DEPTH");
|
||||||
|
|
||||||
NzUberShaderLibrary::Register("PhongLighting", uberShader.get());
|
NzUberShaderLibrary::Register("PhongLighting", uberShader.get());
|
||||||
uberShader.release();
|
uberShader.release();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue