0

Starlingスプライトのアルファ(マスクの一種)を反転させるStarling用のシェーダーを作成しようとしています。

var fragmentProgramCode:String =
// Get texture
"tex ft1, v0, fs0 <2d,linear,nomip>" + "\n" +
// make 1 - pixel alpha
"sub ft1.w, fc0, ft1.w" + "\n" +
// Send result
"mov oc, ft1"

このコードはfc0=1で動作しますが、fc0で遊んで、それに.5を入れても違いがないため、理由はよくわかりません。私はどこが間違っていますか?1ピクセルアルファを適切に行う方法は?

4

1 に答える 1

0

正しいコードは:"sub ft1.w, fc0.x, ft1.w" + "\n" +

アルファ量は最初のエントリを介してフラグメントシェーダーに渡されたため、fc0.xを使用する必要があります(fc0にはxyzとwの4つのコンポーネントがあります)。

ここに最終フィルターがあります:https ://gist.github.com/simsoft/5169715

アルファインバーターフィルター

于 2013-03-15T13:03:27.290 に答える