На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела "Программирование графики"
1) Данный раздел предназначен для обсуждения проблем, возникающих при программировании задач, связанных с чтением, сохранением, обработкой, созданием, отрисовкой графической информации (в том числе - 3D [OpenGL, Direct3D] и анимации [в т.ч. VFW, DirectShow, OpenDML]).
Флэш обсуждают здесь!.

2) Если вы хотите получить совет для конкретной платформы/языка программирования, обязательно укажите их в вопросе.

3) Уважаемые новички! Мы приветствуем Ваше желание научить всех посетителей раздела правильному программированию. Но огромная просьба, перед тем, как писать поучения в старых (последний ответ - "старее" месяца, а особенно, если вопрошавший не появляется на форуме уже не первый месяц, в чем можно убедиться в его профиле) темах, хорошо подумать, будет ли кому-нибудь, кроме Вас cамих, это интересно.



Ваше мнение о модераторах: user posted imageBarazuk, user posted imageOpenGL, user posted imageMikle
Модераторы: OpenGL, Mikle
  
> Реализация алгоритма Unsharp masking
    Добрый день!

    Нашел в сети реализацию по моему данного алгоритма.
    https://github.com/lettier/3d-game-shaders-...ions/sharpen.md

    У меня уже есть подготовленная матрица для вывода

    ExpandedWrap disabled
      vec3 rgb;
      gl_FragColor = vec4(rgb, 1);


    Мне не понятно как сделать данное преобразование из примера.
    ExpandedWrap disabled
      vec3 color =
              texture(sharpenTexture, vec2(gl_FragCoord.x + 0, gl_FragCoord.y + 1) / texSize).rgb
            * neighbor
            + texture(sharpenTexture, vec2(gl_FragCoord.x - 1, gl_FragCoord.y + 0) / texSize).rgb
            * neighbor
            + texture(sharpenTexture, vec2(gl_FragCoord.x + 0, gl_FragCoord.y + 0) / texSize).rgb
            * center
            + texture(sharpenTexture, vec2(gl_FragCoord.x + 1, gl_FragCoord.y + 0) / texSize).rgb
            * neighbor
       
            + texture(sharpenTexture, vec2(gl_FragCoord.x + 0, gl_FragCoord.y - 1) / texSize).rgb
            * neighbor
            ;


    Добавлено
    Думаю я не прав, так сделать, нельзя

    Добавлено
    Возможно есть другая реализация?
      Я OpenGL (и GLSL) не знаю. Но по смыслу мне кажется, что нужно перенести "texSize" так в каждой строке:
      ExpandedWrap disabled
        texture(sharpenTexture, vec2(gl_FragCoord.x + 1 / texSize, gl_FragCoord.y + 0)).rgb * neighbor

      Ну и "1 / texSize" рассчитывать заранее и передавать в шейдер константой (если не ошибаюсь, это называется "юниформ").
        Реализовал через post-processing
        Если кому интересно, здесь
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0273 ]   [ 15 queries used ]   [ Generated: 27.04.24, 11:29 GMT ]