【问题标题】:Passing parameters to shader with OpenFL使用 OpenFL 将参数传递给着色器
【发布时间】:2018-01-02 14:03:22
【问题描述】:

我想将向量数组或浮点数组传递给 OpenFL 中的着色器,这可能吗?

现在我只能使用这样的方式传递浮点数:

var param: ShaderParameter<Float> = new ShaderParameter<Float>();
param.value = [2.0];
this.data.some = param; // In the Shader class 

但是,如果我尝试使用 Array&lt;Float&gt; 而不是 Float 它会编译但值不会加载到着色器中。

有什么想法吗?

【问题讨论】:

    标签: shader haxe openfl


    【解决方案1】:

    我不认为你真的应该以这种方式将数组传递给着色器。 有没有试过直接通过 shader.data.param.value 设置值?

    【讨论】:

    • 是的,但是值没有加载到着色器中
    【解决方案2】:

    这个答案可能为时已晚,但是您是否尝试在着色器构造函数的 super() 调用之前设置 ShaderParameter?在扩展 Shader 类(例如 DisplayObjectShader)之前,我没有运气让自定义参数亲自工作,在 super() 之前设置我想要的参数,然后在 super() 调用之后做其他一切正常(例如将任何值分配给我的参数的“值”字段)。对我来说,潜在的问题似乎与时间有关,因为如果在我的着色器的父构造函数执行后分配参数将不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      • 1970-01-01
      • 2019-09-11
      • 2013-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多