トップページ > 記事閲覧
描画モードを増やしてほしい
名前:タニシン 日時: 2025/05/20 19:20

お世話になっております。 SetDrawMode の描画モードを増やしていただきたいなと思っています。 現状、2D においてはバイリニア法とニアレストネイバー法があると思いますが、 最近では性能も上がってきていて多少重い描画モードでも手軽に変更できる選択肢があったほうが良いと思うのと、 マスク処理も併用すればかなり精度の高い拡大縮小ができるのではと考えています。 少し調べてみたら以下の2つが有効そうだと思いました。 ・バイキュービック法 ・ランツォシュ法 お忙しいところ恐縮ですが、ご検討のほどよろしくお願いします。 ちなみに DX_DRAWMODE_OTHER がどのような用途で使われるのか気になりました。
メンテ

Page: 1 |

Re: 描画モードを増やしてほしい ( No.1 )
名前:管理人 日時:2025/05/21 21:46

> ・バイキュービック法 > ・ランツォシュ法 DrawGraph や DrawExtendGraph などの複雑な変形を行わない描画でしたらピクセルシェーダーを 工夫することでバイキュービックやランツォシュによる描画も問題なく行えそうですが DrawRotaGraph や DrawModiGraph などの回転・変形描画となると期待した描画結果と ならないかもしれません… ミップマップを使うことでシェーダーを使用すること無く DX_DRAWMODE_BILINEAR による 縮小よりも綺麗な描画結果が得られると思うので、現在別案件の対応を行っていて すぐにはできませんが、別案件が終了したらミップマップを使う機能を追加してみようと思います m(_ _)m 因みにリファレンスには載っていませんが、GraphFilter や GraphFilterBlt 等で使用できるフィルタータイプとして バイキュービック法とランツォシュ法による拡大縮小機能があったりします ( GraphFilter なので DrawGraph や DrawRotaGraph などのような汎用性はありませんが… ) int GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_BICUBIC_SCALE, int DestSizeX = スケーリング後の横ピクセル数, int DestSizeY = スケーリング後の縦ピクセル数 ) ; int GraphFilter( int GrHandle, int FilterType = DX_GRAPH_FILTER_LANCZOS3_SCALE, int DestSizeX = スケーリング後の横ピクセル数, int DestSizeY = スケーリング後の縦ピクセル数 ) ; > ちなみに DX_DRAWMODE_OTHER がどのような用途で使われるのか気になりました。 3Dモデル描画の際はテクスチャフィルタリングモードの設定が2D描画の場合よりも少し複雑になり 2D描画の描画モードとは一致しないテクスチャフィルタリングモード設定となることがあるので、 3D描画の後2D描画をする際にテクスチャフィルタリングモードを再設定する必要がある、 ということの目印として DX_DRAWMODE_OTHER が使用されています
メンテ
Re: 描画モードを増やしてほしい ( No.2 )
名前:タニシン 日時:2025/05/22 23:42

ありがとうございます。 お待ちしています。 > DrawRotaGraph や DrawModiGraph などの回転・変形描画となると期待した描画結果と > ならないかもしれません… なるほど、回転などが入ると考慮することが増えるのですね。 > 因みにリファレンスには載っていませんが、GraphFilter や GraphFilterBlt 等で使用できるフィルタータイプとして > バイキュービック法とランツォシュ法による拡大縮小機能があったりします 特定の描画で使えそうなので、使う機会があれば使って見ます。 > 3D描画の後2D描画をする際にテクスチャフィルタリングモードを再設定する必要がある、 > ということの目印として DX_DRAWMODE_OTHER が使用されています そういう使い方もあるのですね。 個人的には3D用に DX_DRAWMODE_ANISOTROPIC を使っていて必要に応じて描画モードを変えているので新しい視点で見れそうです。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存