GaussianBlur.qml 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. // Copyright (C) 2020 The Qt Company Ltd.
  2. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
  3. import QtQuick
  4. import QtQuick3D
  5. Effect {
  6. property real amount: 2 // 0 - 10
  7. Shader {
  8. id: vertical
  9. stage: Shader.Vertex
  10. shader: "qrc:/qtquick3deffects/shaders/blurvertical.vert"
  11. }
  12. Shader {
  13. id: horizontal
  14. stage: Shader.Vertex
  15. shader: "qrc:/qtquick3deffects/shaders/blurhorizontal.vert"
  16. }
  17. Shader {
  18. id: gaussianblur
  19. stage: Shader.Fragment
  20. shader: "qrc:/qtquick3deffects/shaders/gaussianblur.frag"
  21. }
  22. Buffer {
  23. id: tempBuffer
  24. name: "tempBuffer"
  25. format: Buffer.RGBA8
  26. textureFilterOperation: Buffer.Linear
  27. textureCoordOperation: Buffer.ClampToEdge
  28. bufferFlags: Buffer.None // aka frame
  29. }
  30. passes: [
  31. Pass {
  32. shaders: [ horizontal, gaussianblur ]
  33. output: tempBuffer
  34. },
  35. Pass {
  36. shaders: [ vertical, gaussianblur ]
  37. commands: [
  38. BufferInput {
  39. buffer: tempBuffer
  40. }
  41. ]
  42. }
  43. ]
  44. }