アニメーションに画像を貼り付ける

matlabとOpenGLを使用して作成された、赤 色[ 1.0 0.0 0.0 1 ]の直方体が近づいてくるアニメーションがあります。コードはお出しすることができないのですが申し訳ありません。
私はこの直方体に画像を貼り付けることで、その画像が近づいてくるようなアニメーションを作成したいと考えているのですが、このようなことはできますでしょうか?

1 件のコメント

Atsushi Ueno
Atsushi Ueno 2021 年 6 月 23 日
「MATLABとOpenGLを使用して」というのが引っ掛かります。
C/C++環境でOpenGLプログラミングをされているのでしょうか?そうであればテクスチャマッピングを行うOpenGLの関数はglTexImage2D() 関数等を用います。MATLABの話ではないので詳細は割愛致します。
MATLAB環境であれば、MATLABからOpenGLの関数を直接呼び出す事は無いはずです。(するとしたらC/C++のOpenGL関数をMATLABから呼び出して実行?) 通常のMATLABグラフィックス関数を用いて直方体を描画し、その表面の設定をテクスチャマッピング使用にすれば目的の事が出来るはずです。

サインインしてコメントする。

 採用された回答

Atsushi Ueno
Atsushi Ueno 2021 年 6 月 23 日

1 投票

MATLABのグラフィックス関数を用いた描画の表面にテクスチャマッピングを行う設定があります。動画の例ではfindobjやset関数を使っていますが、surf関数の引数設定で同じ事が出来ます。詳細は下記ドキュメント(名前と値のペアの引数:'FaceColor', 'texturemap')を参照ください。

6 件のコメント

Atsushi Ueno
Atsushi Ueno 2021 年 6 月 23 日
以下は余談です
Image Processing Toolboxには更に様々な処理があるようです。(詳細はあまり知りません)
各種グラフィックス処理がOpenGLで処理されるかどうかは意識しなくても良いと思いますが、パフォーマンス向上などの目的でレンダラの確認や設定が出来ます。(詳細は下記参照。説明は割愛致します。)
akasa
akasa 2021 年 6 月 24 日
今回もご回答ありがとうございます。
surf関数を使えばできそうな気がします!
もう一つ聞きたいことがあるのですが、赤い直方体に画像を貼り付けたいと考えているので、画像の赤い部分の座標を表示できる関数があれば教えていただきたいです。
またその座標をax,貼り付けたい画像の配列をCとしたときsurf(ax,C,'FaceColor','texturemap')であっていますでしょうか?
Atsushi Ueno
Atsushi Ueno 2021 年 6 月 24 日
「matlabとOpenGLを使用して作成された、赤 色[ 1.0 0.0 0.0 1 ]の直方体が近づいてくるアニメーション」のソースコードを読む事が出来ない状態なのでしょうか?(そうではないはずと想定しています)
コードの中で赤い直方体の座標を持っているはずなので、そのデータを直接参照出来ると思います。また、surf関数か何かで直方体の座標を指定して面を描画しているはずなので、その関数に表面のプロパティ指定を追記すれば目的の事が出来ると思います。
その様な表記が見つからないとすれば、私の想定するような状況ではない可能性が考えられます。
akasa
akasa 2021 年 6 月 24 日
matlabとOpenGLそれぞれ初心者なため、分からないことが多く理解できていない箇所も数多くあるという状態だと思います。
このコードでは
glTranslatef(0, 1, -5);%ここに移動して
glutSolidCube(0.5);%立方体を描く
ということをしています。後々、直方体にしようと思っていたので今は立方体です。
Atsushi Ueno
Atsushi Ueno 2021 年 6 月 24 日
当初の懸念が顕在化しました。
OpenGL APIはC言語関数群の形で提供されます。glTranslatef()やglutSolidCube()はC/C++のAPIで呼び出します。MATLABで実行しているとすれば、glTranslatef()やglutSolidCube()を呼び出すC/C++コードをMATLABから呼び出して動かしているのでしょう。
現状のプログラムに対し、MATLABのグラフィック機能でテクスチャマッピングを付け足す事は不可能です。OpenGLの関数を使ってテクスチャマッピングを行う事が出来ます。
以上の事が判ったので回答内容を変更します。
akasa
akasa 2021 年 6 月 24 日
ご回答ありがとうございます。
そうなのですね。
私自身が無知なため説明が下手で手間どらせてしまい申し訳ないです。
内容変更の件よろしくお願いします。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchangeライティング、透明度、およびシェーディング についてさらに検索

製品

リリース

R2021a

質問済み:

2021 年 6 月 23 日

コメント済み:

2021 年 6 月 24 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!