Update model.cpp
This commit is contained in:
@@ -609,14 +609,60 @@ void Model::Draw(const glm::mat4& model, SkeletonInstance* instance /*= nullptr*
|
||||
|
||||
g_renderDevice->SetCullFace(true);
|
||||
g_renderDevice->SetDepthTest(true);
|
||||
{
|
||||
g_renderDevice->SetDepthWrite(true);
|
||||
|
||||
bool isTransparent = false;
|
||||
if (isTransparent)
|
||||
{
|
||||
// Enable blending
|
||||
g_renderDevice->SetBlending(true);
|
||||
g_renderDevice->SetBlendingFunction(BF_SRC_ALPHA, BF_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
glm::vec4 color = glm::vec4(1.f, 1.f, 1.f, .5f);
|
||||
g_shaderSystem->SetUniformFloat4(shader, UNIFORM_CUSTOM_COLOR, glm::value_ptr(color));
|
||||
}
|
||||
else
|
||||
{
|
||||
g_renderDevice->SetBlending(false);
|
||||
|
||||
//glm::vec4 color = glm::vec4(1.f, 1.f, 1.f, 1.f);
|
||||
//g_shaderSystem->SetUniformFloat4(shader, UNIFORM_CUSTOM_COLOR, glm::value_ptr(color));
|
||||
}
|
||||
|
||||
g_renderDevice->SetVerticesBuffer(m_data.vb);
|
||||
if (m_data.ib)
|
||||
g_renderDevice->SetIndicesBuffer(m_data.ib);
|
||||
|
||||
g_shaderSystem->SetShader(shader);
|
||||
g_shaderSystem->SetUniformMatrix(shader, UNIFORM_MODEL_MATRIX, &model[0]);
|
||||
|
||||
g_shaderSystem->SetUniformMatrix(shader, UNIFORM_PROJ_MATRIX, &g_render->GetProjectionMatrix()[0]);
|
||||
g_shaderSystem->SetUniformMatrix(shader, UNIFORM_VIEW_MATRIX, &g_render->GetViewMatrix()[0]);
|
||||
|
||||
glm::mat4 mvp = glm::identity<glm::mat4>();
|
||||
mvp = g_render->GetProjectionMatrix() * g_render->GetViewMatrix() * model;
|
||||
g_shaderSystem->SetUniformMatrix(shader, UNIFORM_MVP_MATRIX, &mvp[0]);
|
||||
|
||||
|
||||
if (!m_AlbedoTexture)
|
||||
m_AlbedoTexture = g_texturesManager->LoadTexture2D("asdfasdf");
|
||||
|
||||
g_texturesManager->SetTexture(0, m_AlbedoTexture);
|
||||
g_shaderSystem->SetUniformSampler(shader, SAMPLER_ALBEDO, 0);
|
||||
|
||||
if (instance)
|
||||
g_shaderSystem->SetUniformMatrix(shader, UNIFORM_BONE_MATRICES, instance->m_finalMatrices.data(), instance->m_finalMatrices.size());
|
||||
|
||||
if (m_data.ib)
|
||||
|
||||
|
||||
g_renderDevice->DrawElements(PT_TRIANGLES, m_data.ibcount, 0, NULL);
|
||||
else
|
||||
g_renderDevice->DrawArrays(PT_TRIANGLES, 0, m_data.vbcount);
|
||||
|
||||
}
|
||||
|
||||
// debug draw
|
||||
if (instance)
|
||||
{
|
||||
glm::mat4 worldMat;
|
||||
glm::mat4 worldMatParent;
|
||||
for (int i = 0; i < instance->m_jointMatrices.size(); i++)
|
||||
|
||||
Reference in New Issue
Block a user