私は現在、ゲーム用の簡単なUIを作成しており、2つのパイプライン状態(それぞれに同じ頂点シェーダ)を使用するために必要な各ボタンを描画しています。 1つは、境界線のラインストリップを描画し、静的カラーフラグメントシェーダを使用し、1つは波紋のグラデーションを使用してボタンの内側を描画します。1つのMTLRenderCommandEncoderで複数のMTLRenderPipelineStatesを使用できますか?
let encoder = command.makeRenderCommandEncoder(descriptor: renderPassDesc)
encoder.setRenderPipelineState(stateWithStaticFragmentShader)
// encode some buffers and draw line-strips
encoder.setRenderPipelineState(stateWithGradientFragmentShader)
// encode some buffers and draw button background
encoder.endEncoding()
ありがとうございました。私は考えましたが、わかりませんでした。 –