「Metalでテクスチャから補正せずにサンプリングする」の版間の差分

編集の要約なし
編集の要約なし
 
(同じ利用者による、間の2版が非表示)
3行目: 3行目:
*https://developer.apple.com/documentation/metal/hello_compute?language=objc
*https://developer.apple.com/documentation/metal/hello_compute?language=objc


これは[[コンピュートシェーダー]]で[[テスクチャ]]を画像処理して新たなテクスチャを得て、それをフ[[ラグメントシェーダー]]で描画するという内容であり、いわゆる[[ハロワ]]に相当するものだ。
これは[[コンピュートシェーダー]]で[[テクスチャ]]を画像処理して新たなテクスチャを得て、それを[[フラグメントシェーダー]]で描画するという内容であり、いわゆる[[ハロワ]]に相当するものだ。


ただ、これは[[フラグメントシェーダー]]での描画の際に画像補正がかかってしまっている。
ただ、これは[[フラグメントシェーダー]]での描画の際に画像補正がかかってしまっている。
25行目: 25行目:
一方、[[Metal]]のサンプラーにはMinFilterやMgFilterにPOINT相当の設定がなく、サンプラーを経由すると強制的に補正がかかってしまう。このため等倍表示であっても画像がボヤけるという欠陥がある。
一方、[[Metal]]のサンプラーにはMinFilterやMgFilterにPOINT相当の設定がなく、サンプラーを経由すると強制的に補正がかかってしまう。このため等倍表示であっても画像がボヤけるという欠陥がある。
<source>
<source>
     constexpr sampler textureSampler (mag_filter::linear,
     constexpr sampler textureSampler(mag_filter::linear,
                                       min_filter::linear);
                                       min_filter::linear);
     const half4 colorSample = colorTexture.sample (textureSampler, in.textureCoordinate);
     const half4 colorSample = colorTexture.sample (textureSampler, in.textureCoordinate);