トップページ > 記事閲覧
3D描画の際、画像でなく白い平面が表示される
名前:lawer 日時: 2018/08/10 23:47

DrawPolygon3Dを利用したDraw3d関数を定義し、三角形ポリゴン2つに画像(1024*1024)を貼り付けることで3D描画を行おうと検討しています。 しかしメモリに読み込んだ画像が表示されるのではなく、白い平面が表示されるという現象に陥っています。 以下のソースにおける問題点等があれば教えていただけると非常にありがたいです。 tile01 = LoadGraph("dat/tile01.png"); double ds(double deg) { return sin(deg*0.0174533); } double dc(double deg) { return cos(deg*0.0174533); } void Draw3d(double x, double y, double z, double xang, double sx, double sy, int img) { VERTEX_3D Vertex[6]; int sizex, sizey; GetGraphSize(img, &sizex, &sizey); { Vertex[0].pos.x = Vertex[2].pos.x = Vertex[4].pos.x = x - sx / 2; Vertex[1].pos.x = Vertex[3].pos.x = Vertex[5].pos.x = x + sx / 2; Vertex[0].pos.y = Vertex[1].pos.y = Vertex[5].pos.y = y + sy * ds(xang); Vertex[2].pos.y = Vertex[3].pos.y = Vertex[4].pos.y = y - sy * ds(xang); Vertex[0].pos.z = Vertex[1].pos.z = Vertex[5].pos.z = z + sy * dc(xang); Vertex[2].pos.z = Vertex[3].pos.z = Vertex[4].pos.z = z - sy * dc(xang); Vertex[0].u = Vertex[2].u = Vertex[4].u = 0.0; Vertex[1].u = Vertex[3].u = Vertex[5].u = sx / sizex; Vertex[0].u = Vertex[1].u = Vertex[5].u = 0.0; Vertex[2].u = Vertex[3].u = Vertex[4].u = sy / sizey; } for (int i = 0; i < 6; i++) { Vertex[i].r = Vertex[i].g = Vertex[i].b = Vertex[i].a = 255; } DrawPolygon3D(Vertex, 2, img, FALSE); } // Game() は毎frame呼び出される関数 void Game() { InputKey(); ClearDrawScreen();//裏画面消す SetDrawScreen(DX_SCREEN_BACK);//描画先を裏画面に Draw3d(0.0, 0.0, 512.0, 0.0, 640.0, 512.0, tile01); // //-----その他2D描画等の処理--------- // ScreenFlip();//裏画面を表画面にコピー } 2D描画では正常に画像が表示され、画像の読み込みは正常に処理されていると考えられます。また該当の画像をフォルダから除去した場合白い平面すら表示されなくなります。 代替案としてmqoファイル(3Dモデルデータ)の平面に画像を張り付けてモデルデータとしての描画も試しましたが同様に白い平面のみが表示されました。
メンテ

Page: 1 |

Re: 3D描画の際、画像でなく白い平面が表示される ( No.1 )
名前:lawer 日時:2018/08/11 07:00

DXライブラリのバージョンは最新。 DrawBillboard3D関数は使用可能だが、x軸回転を使用したいため不適。
メンテ
Re: 3D描画の際、画像でなく白い平面が表示される ( No.2 )
名前:2D 日時:2018/08/11 12:37

Vertex[].vが設定されていないのでは
メンテ
Re: 3D描画の際、画像でなく白い平面が表示される ( No.3 )
名前:lawer 日時:2018/08/11 13:17

おっしゃる通りです... コピペの際、誤ってVertex[].vでなくVertex[].uのまま放置していました。 ご指摘ありがとうございます。
メンテ

Page: 1 |

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

   クッキー保存