Как передать равномерный массив float во фрагментный шейдер в Qml shadder Effect? - PullRequest
1 голос
/ 30 сентября 2019

Q: Как передать равномерный массив с плавающей точкой фрагментному шейдеру в Qml shadder Effect? ​​

Его работа с обычным свойством, таким как

property var myValue: 0.4;
[...]
fragmentShader: "
  uniform float myValue;
  void main()
  {

     vec4 col = vec4(myValue, 0, 0.0, 1.0);
     gl_FragColor = vec4(col);
  }"

, но не с массивом вещественного типа.

   import QtQuick 2.0


    ShaderEffect {
      id: shader
      width: 400
      height: 400
      property var myArray: [0.4, 0.5, 1.0];
      fragmentShader: "
      uniform float myArray[2];
      void main()
      {

         vec4 col = vec4(myArray[0], 0, 0.0, 1.0);
         gl_FragColor = vec4(col);
      }"

     }

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Я искал другое решение для воспроизведения поведения затенения с полным преимуществом openglcontext и обнаружил, что qtquick-scenegraph-openglunderqml это решит мою проблему, и теперь я могу отправить массив QVector2D с: setUniformValueArray()

0 голосов
/ 30 сентября 2019

К сожалению, на данный момент это невозможно, вы можете проверить и проголосовать за проблему здесь: https://bugreports.qt.io/browse/QTBUG-50493

...