• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Исходник Background blur

  • Автор темы Автор темы XVII
  • Дата начала Дата начала
alive forever
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
21 Июн 2017
Сообщения
688
Реакции
400
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код не идеальный ,делался давно и на коленке.
При включении меню можно блюрить фон кс. В меню не работает,поэтому делайте проверку на IsInGame.

Объявляем:
Код:
Expand Collapse Copy
static ITexture* mirrorTexture = NULL;

In pt hook:
Код:
Expand Collapse Copy
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 :
Код:
Expand Collapse Copy
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();

    
}

CreateMaterial :
Код:
Expand Collapse Copy
 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();

Итог:
1576417412144.png
 
Назад
Сверху Снизу