Пользователь
- Статус
- Оффлайн
- Регистрация
- 26 Авг 2017
- Сообщения
- 387
- Реакции
- 33
При заходе на карту, моделька темнеет и матерал для модельки применяется к небу и так же окрашивается. Как фиксить?
C++:
void ApplyMaterial(int32_t iMaterial, bool bIgnoreZ, Color aColor, bool bCustom, bool bShotChams)
{
m_renderview()->SetColorModulation(1.0f, 1.0f, 1.0f); //-V807
IMaterial* pRenderMaterial = nullptr;
static IMaterial* materials[] =
{
fCreateMaterial(true, crypt_str(R"#("VertexLitGeneric"
{
"$basetexture" "vgui/white"
"$ignorez" "0"
"$envmap" " "
"$nofog" "1"
"$model" "1"
"$nocull" "0"
"$selfillum" "1"
"$halflambert" "1"
"$znearer" "0"
"$flat" "0"
"$wireframe" "0"
}
)#")),
fCreateMaterial(true, crypt_str(R"#("VertexLitGeneric"
{
"$basetexture" "vgui/white"
"$ignorez" "0"
"$envmap" "env_cubemap"
"$normalmapalphaenvmapmask" "1"
"$envmapcontrast" "1"
"$nofog" "1"
"$model" "1"
"$nocull" "0"
"$selfillum" "1"
"$halflambert" "1"
"$znearer" "0"
"$flat" "1"
"$wireframe" "0"
}
)#")),
fCreateMaterial(false, crypt_str(R"#("UnlitGeneric"
{
"$basetexture" "vgui/white"
"$ignorez" "0"
"$envmap" " "
"$nofog" "1"
"$model" "1"
"$nocull" "0"
"$selfillum" "1"
"$halflambert" "1"
"$znearer" "0"
"$flat" "1"
"$wireframe" "0"
}
)#")),
m_materialsystem()->FindMaterial(crypt_str("models/inventory_items/dogtags/dogtags_outline"), nullptr), //-V807
m_materialsystem()->FindMaterial(crypt_str("models/inventory_items/trophy_majors/crystal_clear"), nullptr),
m_materialsystem()->FindMaterial(crypt_str("models/inventory_items/cologne_prediction/cologne_prediction_glass"), nullptr),
m_materialsystem()->FindMaterial(crypt_str("dev/glow_armsrace.vmt"), nullptr),
m_materialsystem()->FindMaterial(crypt_str("models/inventory_items/wildfire_gold/wildfire_gold_detail"), nullptr),
fCreateMaterial(true, crypt_str(R"#("VertexLitGeneric"
{
"$additive" "1"
"$envmap" "models/effects/cube_white"
"$envmaptint" "[1 1 1]"
"$envmapfresnel" "1"
"$envmapfresnelminmaxexp" "[0 1 2]"
"$alpha" "0.8"
}
)#")),
fCreateMaterial(true, crypt_str(R"#("VertexLitGeneric"
{
"$basetexture" "dev/zone_warning"
"$additive" "1"
"$envmap" "editor/cube_vertigo"
"$envmaptint" "[0 0.5 0.55]"
"$envmapfresnel" "1"
"$envmapfresnelminmaxexp" "[0.00005 0.6 6]"
"$alpha" "1"
Proxies
{
TextureScroll
{
"texturescrollvar" "$baseTextureTransform"
"texturescrollrate" "0.25"
"texturescrollangle" "270"
}
Sine
{
"sineperiod" "2"
"sinemin" "0.1"
"resultVar" "$envmapfresnelminmaxexp[1]"
}
}
}
)#"))
};
pRenderMaterial = materials[iMaterial];
if (!pRenderMaterial)
return;
m_StudioRender->SetAlphaModulation(aColor.a() / 255.0f);
pRenderMaterial->ColorModulate(g_cfg.player.type[ENEMY].chams_color[0] / 255.0f,
g_cfg.player.type[ENEMY].chams_color[1] / 255.0f,
g_cfg.player.type[ENEMY].chams_color[2] / 255.0f);
pRenderMaterial->IncrementReferenceCount();
pRenderMaterial->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, false);
m_StudioRender->ForcedMaterialOverride(pRenderMaterial);
m_modelrender()->ForcedMaterialOverride(pRenderMaterial);
auto alpha = (float)g_cfg.player.type[ENEMY].chams_color.a() / 255.0f;
float normal_color[3] =
{
g_cfg.player.type[ENEMY].chams_color[0] / 255.0f,
g_cfg.player.type[ENEMY].chams_color[1] / 255.0f,
g_cfg.player.type[ENEMY].chams_color[2] / 255.0f
};
m_StudioRender->SetAlphaModulation(alpha);
pRenderMaterial->ColorModulate(g_cfg.player.type[ENEMY].chams_color[0] / 255.0f,
g_cfg.player.type[ENEMY].chams_color[1] / 255.0f,
g_cfg.player.type[ENEMY].chams_color[2] / 255.0f);
pRenderMaterial->IncrementReferenceCount();
pRenderMaterial->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZ, true);
m_StudioRender->ForcedMaterialOverride(pRenderMaterial);
m_modelrender()->ForcedMaterialOverride(pRenderMaterial);
}