「Metalでテクスチャから補正せずにサンプリングする」の版間の差分
Administrator (トーク | 投稿記録) 編集の要約なし |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| (同じ利用者による、間の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); | ||