Вопрос Imgui blur directx 11

Начинающий
Статус
Оффлайн
Регистрация
13 Сен 2023
Сообщения
18
Реакции[?]
1
Поинты[?]
1K
блять как это сделать. нашел максимум блюр для дх9, но там ваще не то
 
Начинающий
Статус
Оффлайн
Регистрация
8 Сен 2023
Сообщения
42
Реакции[?]
8
Поинты[?]
8K
HvH Legend
Пользователь
Статус
Оффлайн
Регистрация
23 Окт 2022
Сообщения
405
Реакции[?]
99
Поинты[?]
29K
Пользователь
Статус
Оффлайн
Регистрация
22 Июн 2020
Сообщения
190
Реакции[?]
75
Поинты[?]
47K
там direct9 пастер
пастерок, если все правильно сделать, то на чем угодно будет нормально блюр работать, а уж на директ икс 11 тем более

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

немного потыкать сурсы другие с блюром можно link
ну и еще можно подебажить как делает это игра с помощью мощной штучки -
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Пользователь
Статус
Оффлайн
Регистрация
8 Июн 2020
Сообщения
202
Реакции[?]
65
Поинты[?]
33K
пастерок, если все правильно сделать, то на чем угодно будет нормально блюр работать, а уж на директ икс 11 тем более


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

немного потыкать сурсы другие с блюром можно link
ну и еще можно подебажить как делает это игра с помощью мощной штучки -
Пожалуйста, авторизуйтесь для просмотра ссылки.
А если у меня нормальная видюха а не nvidia будет работать ?
 
Пользователь
Статус
Оффлайн
Регистрация
22 Июн 2020
Сообщения
190
Реакции[?]
75
Поинты[?]
47K
Начинающий
Статус
Оффлайн
Регистрация
8 Сен 2023
Сообщения
42
Реакции[?]
8
Поинты[?]
8K
пастерок, если все правильно сделать, то на чем угодно будет нормально блюр работать, а уж на директ икс 11 тем более


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

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


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

немного потыкать сурсы другие с блюром можно link
ну и еще можно подебажить как делает это игра с помощью мощной штучки -
Пожалуйста, авторизуйтесь для просмотра ссылки.
дак ещё и dx11 блюрчик незя там урезаны шейдеры
 
Пользователь
Статус
Оффлайн
Регистрация
22 Июн 2020
Сообщения
190
Реакции[?]
75
Поинты[?]
47K
ты сам нихуя не знаешь
да ты че, правда что ли? ну ладно, значит каким то чудом я сделал блюр который хавает 0 фпс
дак ещё и dx11 блюрчик незя там урезаны шейдеры
мне кажется у тебя мозг урезан, если ты не можешь документацию почитать и понять, что все там круто, и круче чем dx9
 
Начинающий
Статус
Оффлайн
Регистрация
31 Мар 2024
Сообщения
97
Реакции[?]
23
Поинты[?]
26K
Мега хардово наверное накидать / найти шейдеры под дх11 блюр да...

blurX:
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:
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;
}
 
Пользователь
Статус
Оффлайн
Регистрация
22 Июн 2020
Сообщения
190
Реакции[?]
75
Поинты[?]
47K
Мега хардово наверное накидать / найти шейдеры под дх11 блюр да...

blurX:
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:
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;
}
Ну это же очень малая часть, так ещё и со статическим размером блюра, хотя +- норм
 
Последнее редактирование:
Похожие темы
Сверху Снизу