MTLLoadAction.clearの役割

Metalシェーダで頂点を動かす練習をいろいろしようと思い、手始めにただの2D描画の頂点でも動かそう、とやってみたら、

こうなった。

左下の頂点をタイマーで動かしているのだが、フラグメントシェーダでの描画範囲外の領域でそれまでの描画が残っているような挙動。

そこで、こうしていたところに、

renderPassDescriptor.colorAttachments[0].texture = drawable.texture

こうしていたところに、

renderPassDescriptor.colorAttachments[0].loadAction = MTLLoadAction.clear

この1行を追加するといい感じになった。(このサンプルがいい感じかどうかは別として。)

Appleのサンプルだとたいてい.loadActionプロパティは指定されてるのだが、書籍等で解説を書く際はなるべく実装をシンプルにしたくて、どっちでも結果が同じになる場合は省いていた。結果のわかりやすい事例がたまたまできて、本に追記しようと思ったけどちょうどいい追記場所(章)が今のところなかったので、とりあえずここに書いておいた。

この続きをみるには

この続き:0文字
記事を購入する

MTLLoadAction.clearの役割

shu223

100円

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

2

shu223

日々の学びメモ

技術的なメモ、思いついたアイデア、考えたこと、お金の話等々、頭をよぎった諸々を気軽に垂れ流していきたいと思います。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。