トップページ > 記事閲覧
DrawPolygonIndexed3Dについて
名前:C++初心者マン 日時: 2025/05/14 23:05

お世話になります。 MakeScreen()で作成した1024x1024の画像をDrawPolygonIndexed3D()で表示した際、 正常に表示されなくて困っています(画像の左上1ピクセルのみが全体に引き伸ばされて正方形が表示されてしまう)。 作成した画像について、DrawGraphで2D描画した場合は正常に描画されることを確認しております。 また、検証用のコードですが、作成する画像に DrawBox(0, 0, 64, 64, GetColor(255, 0, 0), TRUE); とすると赤色の正方形が表示され、 上記に加えて、 DrawBox(1, 1, 64, 64, GetColor(0, 255, 0), TRUE); としても赤色の正方形が表示されるため、前述の通り「画像の左上1ピクセルのみが全体に引き伸ばされて正方形が表示されてしまう」と判断しました。 DrawPolygonIndexed3Dに入れた引数ですが、 座標[0]=100,100,0 座標[1]=-100,100,0 座標[2]=100,100,0 座標[3]=-100,-100,0 使用座標={ 0, 1, 2, 3, 2 ,1 }; ポリゴン数:2 です。 いろいろ試したのですが上手くいかず、解決策をご教授いただけないでしょうか。
メンテ

Page: 1 |

Re: DrawPolygonIndexed3Dについて ( No.1 )
名前:C++初心者マン 日時:2025/05/14 23:07

申し訳ありません。 座標[0]=100,100,0 座標[1]=-100,100,0 座標[2]=100,-100,0 座標[3]=-100,-100,0 の誤りです。
メンテ
Re: DrawPolygonIndexed3Dについて ( No.2 )
名前:管理人 日時:2025/05/15 05:00

DrawPolygonIndexed3D に渡す頂点データ VERTEX3D構造体には 描画座標を指定するためのメンバー変数 pos 以外に、描画する画像の どの部分を描画するのかを指定するためのメンバー変数 u, v があります こちらを Vertex[0].u = 1.0; Vertex[0].v = 1.0; Vertex[1].u = 0.0; Vertex[1].v = 1.0; Vertex[2].u = 1.0; Vertex[2].v = 0.0; Vertex[3].u = 0.0; Vertex[3].v = 0.0; としていただくことで 1024x1024 の画像全体が描画されるようになると思いますので よろしければお試しください
メンテ
Re: DrawPolygonIndexed3Dについて ( No.3 )
名前:C++初心者マン(解決) 日時:2025/05/15 22:20

管理人様、ご回答ありがとうございます。 ご教授いただいたコードで正常に表示できました。
メンテ

Page: 1 |

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

   クッキー保存