ページ 11

画像を加工する?

Posted: 2010年1月10日(日) 16:57
by KA
Dxライブラリを使ってゲームを作っているのですが、どうしてもわからないことがあったので質問します。

画像を曲げて画面に表示させたいのですが、それをどうやってやれば良いのかわかりません。
自分がやりたいのは、棒の画像を曲げて円弧のようにし、それを複数表示して円のようにすることです。

どうかよろしくお願いします。

Re:画像を加工する?

Posted: 2010年1月10日(日) 17:08
by チルチル
画像を変形させて描画したいって事ですよね?

DrawModiGraph関数とか

http://homepage2.nifty.com/natupaji/DxL ... html#R3N11

非公開関数ですがDrawPolygonBase関数とかでどうですか?

Re:画像を加工する?

Posted: 2010年1月10日(日) 17:40
by KA
四角形の変形なら簡単なのですが、四角形画像を曲線にしたいのでDrawModiGraph関数だと頂点数が少ないかと…

DrawPolygonBase関数は自分の力が足りないためよくわかりません
どこか解説しているサイト等ありませんか?

Re:画像を加工する?

Posted: 2010年1月10日(日) 17:47
by kazuoni
以前、ここの回答者であるyuさんがサンプルを作っていらっしゃったので貼っておきます。
まだサンプルは健在の様子です。

http://www.play21.jp/board/formz.cgi?ac ... &from=tree

Re:画像を加工する?

Posted: 2010年1月10日(日) 17:55
by チルチル
まあ本家で解説されていない関数を解説している所はそうそう無いでしょうね

DrawModiGraph関数で曲線が表現できない事は無いですよ
頂点の話で言うとDrawPolygonBase関数も同じと言えば同じですし

DrawModiGraph関数では4個の頂点を使って変形が可能ですが
隣り合った頂点に同じ座標を渡せば三角形になります

これを細かく敷き詰めれば円になります
まあ表示が汚くなると思うのでDrawPolygonBase関数とかの方が良いとは思いますが
仕様が複雑なのでDrawModiGraph関数から始めた方が取っ付きやすい感じです

>kazuoniさん

そういえば前にありましたね
サンプルを見れば一目瞭然だと思います

Re:画像を加工する?

Posted: 2010年1月10日(日) 18:03
by KA
すごいですね。
これを応用すれば自分の思っているものも作れそうです。

本当にありがとうございました。

Re:画像を加工する?

Posted: 2010年1月10日(日) 20:07
by yu
解決されたようで何よりですが、
サンプルを実行して、魔方陣が大きいときにプログラムを止めて貰うと分かるのですが
画像が縮小されすぎて潰れている箇所があります;

原因はテクスチャアドレスタイプがクランプだけれど
無理やり画像をリピートさせようとしていたからです orz
SetTextureAddressMode関数でラップに変えるとうまくいきました。
(後、何で描画モードをネアレストネイバー法でやっているんだろう...)

一応直したサンプルを置いておきますね
http://www1.axfc.net/uploader/He/so/260179
画像

Re:画像を加工する?

Posted: 2010年1月10日(日) 20:43
by KA
わざわざありがとうございます。
とても参考になります。本当にありがとうございました。

Re:画像を加工する?

Posted: 2010年1月10日(日) 22:02
by 素人
もうあれから5カ月も経ったのか・・
あの、yuさん
// アドレスモード変更
SetTextureAddressMode(DX_TEXADDRESS_WRAP);
を使ったあと、
このモードをもとに戻す時は、なんという関数を使えばいいのでしょうか?

Re:画像を加工する?

Posted: 2010年1月10日(日) 22:27
by yu
DXライブラリはデフォルト状態で DX_TEXADDRESS_CLAMP だと思うので

SetTextureAddressMode(DX_TEXADDRESS_CLAMP);

これでデフォルト状態に戻すことができますよ。

Re:画像を加工する?

Posted: 2010年1月10日(日) 22:36
by 素人
>yuさん
ありがとうございます。助かりました。