alive forever
-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код не идеальный ,делался давно и на коленке.
При включении меню можно блюрить фон кс. В меню не работает,поэтому делайте проверку на IsInGame.
Объявляем:
In pt hook:
RV hook :
CreateMaterial :
Итог:
При включении меню можно блюрить фон кс. В меню не работает,поэтому делайте проверку на IsInGame.
Объявляем:
Код:
static ITexture* mirrorTexture = NULL;
Код:
if (!Materials::mirrorTexture) {
g_pMatSystem->forceBeginRenderTargetAllocation();
Materials::mirrorTexture = g_pMatSystem->createFullFrameRenderTarget("blur_test");
g_pMatSystem->forceEndRenderTargetAllocation();
}
if (auto renderCtx = g_pMatSystem->GetRenderContext()) {
renderCtx->PushRenderTargetAndViewport();
renderCtx->SetRenderTarget(Materials::mirrorTexture);
renderCtx->PopRenderTargetAndViewport();
int w, h;
g_pEngine->GetScreenSize(w, h);
renderCtx->DrawScreenSpaceRectangle(
Materials::blur_mat,
0, 0, w, h,
0, 0, w, h,
w, h,
nullptr, 1, 1);
renderCtx->Release();
}
RV hook :
Код:
void __fastcall RenderView(void* thisptr, void*, CViewSetup& setup, CViewSetup& hudViewSetup, unsigned int nClearFlags, int whatToDraw)
{
oRenderView(thisptr, setup, hudViewSetup, nClearFlags, whatToDraw);
int w, h;
g_pEngine->GetScreenSize(w,h);
CViewSetup view;
view.x = 0;
view.y = 0;
view.width = w;
view.height = h;
view.m_bOrtho = false;
view.m_bDoBloomAndToneMapping = true;
view.m_bRenderToSubrectOfLargerScreen = true;
view.m_bDrawWorldNormal = true;
auto renderCtx = g_pMatSystem->GetRenderContext();
renderCtx->PushRenderTargetAndViewport();
renderCtx->SetRenderTarget(Materials::mirrorTexture);
oRenderView(g_pRenderView, view, hudViewSetup, VIEW_CLEAR_COLOR | VIEW_CLEAR_FULL_TARGET | VIEW_CLEAR_OBEY_STENCIL, 0);
renderCtx->PopRenderTargetAndViewport();
renderCtx->Release();
}
Код:
static IMaterial* blur_mat = NULL;
std::ofstream("csgo\\materials\\blured.vmt") << R"#("Refract"
{
"$normalmap" "models/inventory_items/cologne_prediction/cologne_prediction_glass"
"$refracttint" "[1 1 1]"
"$bluramount" "100"
"$refractamount" ".0"
}
)#";
Materials::blur_mat = g_pMatSystem->FindMaterial("blured", "Other textures");
Materials::blur_mat->IncrementReferenceCount();