Вопрос Imgui blur directx 11

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Сен 2023
Сообщения
18
Реакции
1
блять как это сделать. нашел максимум блюр для дх9, но там ваще не то
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
там direct9 пастер
пастерок, если все правильно сделать, то на чем угодно будет нормально блюр работать, а уж на директ икс 11 тем более

блять как это сделать. нашел максимум блюр для дх9, но там ваще не то
лучше всего изучить как работают шейдеры (в частности пиксель шейдеры)
Пожалуйста, авторизуйтесь для просмотра ссылки.

немного потыкать сурсы другие с блюром можно link
ну и еще можно подебажить как делает это игра с помощью мощной штучки -
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
пастерок, если все правильно сделать, то на чем угодно будет нормально блюр работать, а уж на директ икс 11 тем более


лучше всего изучить как работают шейдеры (в частности пиксель шейдеры)
Пожалуйста, авторизуйтесь для просмотра ссылки.

немного потыкать сурсы другие с блюром можно link
ну и еще можно подебажить как делает это игра с помощью мощной штучки -
Пожалуйста, авторизуйтесь для просмотра ссылки.
А если у меня нормальная видюха а не nvidia будет работать ?
 
пастерок, если все правильно сделать, то на чем угодно будет нормально блюр работать, а уж на директ икс 11 тем более


лучше всего изучить как работают шейдеры (в частности пиксель шейдеры)
Пожалуйста, авторизуйтесь для просмотра ссылки.

немного потыкать сурсы другие с блюром можно link
ну и еще можно подебажить как делает это игра с помощью мощной штучки -
Пожалуйста, авторизуйтесь для просмотра ссылки.
ало долбаёб ты сам нихуя не знаешь и подпёздываешь дак и ещё сурсы на кс 2 кидаешь
пастерок, если все правильно сделать, то на чем угодно будет нормально блюр работать, а уж на директ икс 11 тем более


лучше всего изучить как работают шейдеры (в частности пиксель шейдеры)
Пожалуйста, авторизуйтесь для просмотра ссылки.

немного потыкать сурсы другие с блюром можно link
ну и еще можно подебажить как делает это игра с помощью мощной штучки -
Пожалуйста, авторизуйтесь для просмотра ссылки.
дак ещё и dx11 блюрчик незя там урезаны шейдеры
 
ты сам нихуя не знаешь
да ты че, правда что ли? ну ладно, значит каким то чудом я сделал блюр который хавает 0 фпс
дак ещё и dx11 блюрчик незя там урезаны шейдеры
мне кажется у тебя мозг урезан, если ты не можешь документацию почитать и понять, что все там круто, и круче чем dx9
 
Мега хардово наверное накидать / найти шейдеры под дх11 блюр да...

blurX:
Expand Collapse Copy
struct PS_INPUT {
    float4 pos : SV_POSITION;
    float4 col : COLOR0;
    float2 uv : TEXCOORD0;
};

Texture2D tex_source : TEX_SOURCE;
sampler tex_sampler;

cbuffer pixel_buffer : register(b0) {
    float2 clamp_coordinats;
    float texel_width;
};

static const float offsets[3] = { 0.0f, 1.3846153846f, 3.2307692308f };
static const float weights[3] = { 0.2270270270f, 0.3162162162f, 0.0702702703f };

float4 main(PS_INPUT input) : SV_Target {
    float4 color = tex_source.Sample(tex_sampler, input.uv);
    color *= weights[0];
    
    for (int i = 1; i < 3; ++i) {
        float left = clamp(input.uv.x - texel_width * offsets[i], clamp_coordinats.x, clamp_coordinats.y);
        float right = clamp(input.uv.x + texel_width * offsets[i], clamp_coordinats.x, clamp_coordinats.y);
        color += tex_source.Sample(tex_sampler, float2(left, input.uv.y)) * weights[i];
        color += tex_source.Sample(tex_sampler, float2(right, input.uv.y)) * weights[i];
    }

    return color;
}

blurY:
Expand Collapse Copy
struct PS_INPUT {
    float4 pos : SV_POSITION;
    float4 col : COLOR0;
    float2 uv : TEXCOORD0;
};

Texture2D tex_source : TEX_SOURCE;
sampler tex_sampler;

cbuffer pixel_buffer : register(b0) {
    float2 clamp_coordinats;
    float texel_height;
};

static const float offsets[3] = { 0.0f, 1.3846153846f, 3.2307692308f };
static const float weights[3] = { 0.2270270270f, 0.3162162162f, 0.0702702703f };

float4 main(PS_INPUT input) : SV_Target {
    float4 color = tex_source.Sample(tex_sampler, input.uv);
    color *= weights[0];
    
    for (int i = 1; i < 3; ++i) {
        float upper = clamp(input.uv.y - texel_height * offsets[i], clamp_coordinats.x, clamp_coordinats.y);
        float bottom = clamp(input.uv.y + texel_height * offsets[i], clamp_coordinats.x, clamp_coordinats.y);
        color += tex_source.Sample(tex_sampler, float2(input.uv.x, upper)) * weights[i];
        color += tex_source.Sample(tex_sampler, float2(input.uv.x, bottom)) * weights[i];
    }

    return color;
}
 
Мега хардово наверное накидать / найти шейдеры под дх11 блюр да...

blurX:
Expand Collapse Copy
struct PS_INPUT {
    float4 pos : SV_POSITION;
    float4 col : COLOR0;
    float2 uv : TEXCOORD0;
};

Texture2D tex_source : TEX_SOURCE;
sampler tex_sampler;

cbuffer pixel_buffer : register(b0) {
    float2 clamp_coordinats;
    float texel_width;
};

static const float offsets[3] = { 0.0f, 1.3846153846f, 3.2307692308f };
static const float weights[3] = { 0.2270270270f, 0.3162162162f, 0.0702702703f };

float4 main(PS_INPUT input) : SV_Target {
    float4 color = tex_source.Sample(tex_sampler, input.uv);
    color *= weights[0];
  
    for (int i = 1; i < 3; ++i) {
        float left = clamp(input.uv.x - texel_width * offsets[i], clamp_coordinats.x, clamp_coordinats.y);
        float right = clamp(input.uv.x + texel_width * offsets[i], clamp_coordinats.x, clamp_coordinats.y);
        color += tex_source.Sample(tex_sampler, float2(left, input.uv.y)) * weights[i];
        color += tex_source.Sample(tex_sampler, float2(right, input.uv.y)) * weights[i];
    }

    return color;
}

blurY:
Expand Collapse Copy
struct PS_INPUT {
    float4 pos : SV_POSITION;
    float4 col : COLOR0;
    float2 uv : TEXCOORD0;
};

Texture2D tex_source : TEX_SOURCE;
sampler tex_sampler;

cbuffer pixel_buffer : register(b0) {
    float2 clamp_coordinats;
    float texel_height;
};

static const float offsets[3] = { 0.0f, 1.3846153846f, 3.2307692308f };
static const float weights[3] = { 0.2270270270f, 0.3162162162f, 0.0702702703f };

float4 main(PS_INPUT input) : SV_Target {
    float4 color = tex_source.Sample(tex_sampler, input.uv);
    color *= weights[0];
  
    for (int i = 1; i < 3; ++i) {
        float upper = clamp(input.uv.y - texel_height * offsets[i], clamp_coordinats.x, clamp_coordinats.y);
        float bottom = clamp(input.uv.y + texel_height * offsets[i], clamp_coordinats.x, clamp_coordinats.y);
        color += tex_source.Sample(tex_sampler, float2(input.uv.x, upper)) * weights[i];
        color += tex_source.Sample(tex_sampler, float2(input.uv.x, bottom)) * weights[i];
    }

    return color;
}
Ну это же очень малая часть, так ещё и со статическим размером блюра, хотя +- норм
 
Последнее редактирование:
Назад
Сверху Снизу