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

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

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

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

3DCG

コンピュータの演算により、3次元空間の仮想物体を、2次元平面上で表現する手法である。

DXライブラリ

DXライブラリとは、DirectXを使ったWindowsソフトの開発に必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。

Q&A

解決済

1回答

1673閲覧

DrawPolygonIndexed3D()関数が画面に表示できない理由が知りたい

退会済みユーザー

退会済みユーザー

総合スコア0

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

3DCG

コンピュータの演算により、3次元空間の仮想物体を、2次元平面上で表現する手法である。

DXライブラリ

DXライブラリとは、DirectXを使ったWindowsソフトの開発に必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。

0グッド

0クリップ

投稿2020/03/30 11:05

コメント部のif文部ですがエラーで出ているなら-1がreturn するのでexit(1);が実行されて強制終了するはずですが強制終了されないので関数のエラーで出ておらずその下のコードでは頂点データをどんな場所かか確認していますがちゃんと全部カメラ内に表示されているので頂点データも大丈夫です。では何を間違えたのでしょうか?
※参考サイトより関数の引数を確認しましたが問題ありません頂点情報でしょうか?

参考サイト:https://dxlib.xsrv.jp/function/dxfunc_3d_draw.html#R14N7

#define RANGE 3 VERTEX3D vertex_data[4]; WORD Index[3]; void Game::DrawUpdate() { SetCameraPositionAndTarget_UpVecY(VGet(cameraX, 0, -20), VGet(0, 0, cameraZ)); vertex_data[0].pos.x = -RANGE; vertex_data[0].pos.y = RANGE; vertex_data[0].pos.z = 10; vertex_data[0].norm = VGet(0, 0, 0); vertex_data[0].dif = GetColorU8(255,255,255,0); vertex_data[0].spc = GetColorU8(0, 0, 0, 0); vertex_data[0].u = 0.0f; vertex_data[0].v = 0.0f; vertex_data[1].pos.x = RANGE; vertex_data[1].pos.y = RANGE; vertex_data[1].pos.z = 10; vertex_data[1].norm = VGet(0, 0, 0); vertex_data[1].dif = GetColorU8(255, 255, 255, 0); vertex_data[1].spc = GetColorU8(0, 0, 0, 0); vertex_data[1].u = 0.0f; vertex_data[1].v = 0.0f; vertex_data[2].pos.x = -RANGE; vertex_data[2].pos.y = -RANGE; vertex_data[2].pos.z = 10; vertex_data[2].norm = VGet(0, 0, 0); vertex_data[2].dif = GetColorU8(255, 255, 255, 0); vertex_data[2].spc = GetColorU8(0, 0, 0, 0); vertex_data[2].u = 0.0f; vertex_data[2].v = 0.0f; vertex_data[3].pos.x = RANGE; vertex_data[3].pos.y = -RANGE; vertex_data[3].pos.z = 10; vertex_data[3].norm = VGet(0, 0, 0); vertex_data[3].dif = GetColorU8(255, 255, 255, 0); vertex_data[3].spc = GetColorU8(0, 0, 0, 0); vertex_data[3].u = 0.0f; vertex_data[3].v = 0.0f; Index[0] = 0; Index[1] = 1; Index[2] = 2; if ( DrawPolygonIndexed3D(vertex_data,4,Index,1,DX_NONE_GRAPH,true) == -1)/////// { return exit(1); } DrawLine3D(VGet(vertex_data[0].pos.x, vertex_data[0].pos.y, 10), VGet(vertex_data[1].pos.x, vertex_data[1].pos.y, 10), GetColor(255, 255, 255)); for(int i = 0; i< 4;i ++){ DrawLine3D(VGet(vertex_data[i].pos.x, vertex_data[i].pos.y, 10), VGet(vertex_data[i + 1].pos.x, vertex_data[i + 1].pos.y, 10), GetColor(255, 255, 255)); } //DrawTriangle3D(VGet(0, 0, 10), VGet(0, 0, 10), VGet(5, 5, 10), GetColor(255, 255, 255), true); //DrawTriangle3D(VGet(0, 0, 10), VGet(0, 5, 10), VGet(5, 5, 10), GetColor(255, 255, 255), true); DrawFormatString(0, 0, GetColor(255, 255, 255), "x: %.2f z: %.2f", cameraX, cameraZ); DrawFormatString(0, 40, GetColor(255, 255, 255), " test x: %.2f z: %.2f", xx, zz); }

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

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

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

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

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

guest

回答1

0

ベストアンサー

norm 法線情報を0,0,0にしていたて表示されませんでした。修正して各頂点情報を0,0,-1にしました

投稿2020/04/05 07:05

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問