質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

Q&A

解決済

1回答

2605閲覧

OpenGLでUVマッピング

ShiiTakumi

総合スコア15

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

0グッド

0クリップ

投稿2018/10/04 07:31

編集2018/10/12 01:35

Metasequoiaで作った3DCGモデル(.mqo)をOpenGL(言語はC)で指定したテクスチャでUVマッピングしたいのですが、やり方がわからないです。

glBindTexture()を使ってみても何も起こらなかったです。
(OpenGLの固定機能パイプラインで確認)

実装方法等を調査してみたのですが現在詰んでいる状態です。

本やネットで今後も調べていますが、ご助言いただけますと幸いです。
よろしくお願いいたします。

[追記]-----------------------------------------------
・実装の流れ
1.Metasequoiaで3DCGモデルを作成
2.mqo形式ファイルとして名前を付けて保存
3.VIsualStudioにてGLMetaseqライブラリを使ってモデルのロード、描画
4.その描画された3DCGモデルに対してテクスチャマッピングして目標達成

現在4が全く上手くいかず(涙目)、詰んでいるといった感じです。
mqo形式3DCGモデルはテクスチャマッピングの仕方が特殊なのか、使い方というものがあるのか…原因が未だ不明です。

ソースは以下のようになっております。

C

1// 作成したモデル(.mqo)を格納するための変数宣言(OK) 2MQO_MODEL test_model; 3 4// その変数に作成したモデルを格納(読み込み)(OK) 5test_model = mqoCreateModel([作成した3DCGファイル], 1.0); 6 7// テストとしてテクスチャを用意する(複数の形式を試す・・・全部同じエラー) 8unsigned char test[] = "test.BMP"; 9//unsigned char test[] = "test.jpg"; 10//unsigned char test[] = "test.png"; 11 12glEnable(GL_TEXTURE_2D); //テクスチャマッピング有効 13glPushMatrix(); 14mqoCallModel(test_model); //モデルを呼び出す(OK) 15 16glBindTexture(GL_TEXTURE_2D, []); // テクスチャの割り当て 17//エラー発生(黒や青紫などの単色がランダムに描画されたり、エラーコード「-1073741819」が吐き出される) 18glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0,[],[],GL_BGR, GL_UNSIGNED_BYTE, test); 19 20glPopMatrix(); 21glDisable(GL_TEXTURE_2D); //テクスチャマッピング無効

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ShiiTakumi

2018/10/12 01:04

大変遅くなりました、、、。はい、それらも参考にいたしましたが、進捗に変化はございませんでした。また、質問内容にちょっと不足があったので補足いたします。
guest

回答1

0

ベストアンサー

glTexSubImage2Dにテクスチャデータとしてtest...つまり「test.BMP」という文字列そのものを渡してしまっているように見えますが、画像ファイルの内容を色データの配列として読み込む機能は実装されていますでしょうか?

tiitoiさんからご提示いただいた床井研究室 - 第18回 テクスチャオブジェクトの中の

C

1・・・ 2 3/* 4** 初期化 5*/ 6static void init(void) 7{ 8 /* テクスチャの読み込みに使う配列 */ 9 GLubyte texture[TEXHEIGHT * TEXWIDTH * 4]; 10 FILE *fp; 11 12#if 0 13 /* テクスチャ画像の読み込み */ 14 if ((fp = fopen(texture1, "rb")) != NULL) { 15 fread(texture, sizeof texture, 1, fp); 16 fclose(fp); 17 } 18 else { 19 perror(texture1); 20 } 21#endif 22 23 /* テクスチャ名を1個生成する */ 24 glGenTextures(1, texname); 25 26 /* テクスチャ画像はワード単位に詰め込まれている */ 27 glPixelStorei(GL_UNPACK_ALIGNMENT, 4);

や、OpenGLの使い方:テクスチャ編 - Qiitaの「画像の読み込み」の節で紹介されているライブラリを用いるなりして、画像ファイルの中身を取り出してやる必要がありそうです。

※念のため補足しますと、床井氏の場合はファイルの中身そのものをテクスチャデータとして読み込んでおります。ですので、画像ファイルは床井研究室 - 第1回 画像の読み込みで言及されている「RAW画像」...ヘッダなどの余計なデータを含まず、圧縮もされていない画像である必要があるでしょう。

投稿2018/11/01 21:04

Bongo

総合スコア10807

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問