【问题标题】:Writing only red color component to AGAL pixel shader output仅将红色分量写入 AGAL 像素着色器输出
【发布时间】:2013-04-11 03:14:46
【问题描述】:

我想要一个像素着色器 om AGAL,它不是简单地将从顶点着色器传递给它的颜色复制到输出,而是只从传递的颜色复制红色分量并将绿色和蓝色分量设置为零。在伪代码中:

temp = 0
temp.red = in.red
temp.alpha = in.alpha
out = temp

我不知道如何在 AGAL 中编写此代码。以下不这样做:

mov ft0.ra, v0.ra
mov oc, ft0

我怎样才能得到我想要的结果?

【问题讨论】:

  • 您的代码原样得到什么结果?
  • 与我将 v0 的所有组件复制到 oc 的结果相同。我试过 mov ft0.rgba, v0.rrra。没有区别。
  • 你能发布你的整个着色器吗?

标签: fragment-shader pixel-shader agal


【解决方案1】:

你一定要记住

  • 在目标寄存器右侧使用“.something”表示您正在使用掩码
  • 在源寄存器右侧使用“.something”表示您正在使用 swizzles。

假设

  • fc0 在第一个组件中包含一个零
  • v0 包含要从中提取红色分量的颜色

这是你的片段着色器:

// shader.
mov ft0, fc0.xxxx     // fill ft0 with zeros
mov ft0.xw, v0.xxxw   // fill ft0.x with v0.x and ft0.w with v0.w
mov oc, ft0

来源:我将 Minko 的 ActionScript 3 编写到 AGAL 编译器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 2013-06-23
    • 2015-11-10
    相关资源
    最近更新 更多