【ゲーム制作】No.18 ビルボード(Direct3D11)

今回は ビルボードになります。ビルボードとは何なのか、まったく知識が無い状態で始めたのでこのテストもゼロからの構築となりました。ビルボードは比較的Web上に多く情報があった為参考になりました。 今回参考になったサイトは以下です。 ①「指定の形状が…

【ゲーム制作】No.17 シャドウマッピング②(Direct3D11)

グレーのボックスはバウンディングボックス、赤いボックスは最小最大ベクトルから作成したボリュームになります。画像には含めていませんが視錐台(light_frustum)を表示することも出来ます。 ・前回の更新日は2033年6月28日あたりでしたので 約9月ぶ…

【D3DX】D3DX備忘録

今現在DirectX9時代のD3DXライブラリの調査をしていまして、 その備忘録になります。 Living without D3DX | Games for Windows and the DirectX SDK blog にDirectX10/11におけるD3DXを使用しない代替方法を示しています。 例えばID3DXMeshならば以下のライ…

【imgui】No.3 ボタンを無効化したい場合

imguiでボタンやチェックボックスを無効化したい場合 のソースはこちら。 static bool b_test = false; ImGui::BeginDisabled(true); // この行を記入する。 ImGui::Checkbox("test", &b_test); ImGui::EndDisabled(); // この行を記入する。

【ゲーム制作】No.16 PN-AEN テッセレーション(Direct3D11)

今回は テッセレーションの分割の種類のひとつであるPN-AEN(Crack-Free Point-Normal Triangles using Adjacent Edge Normals)の実装になります。 前回行ったPN Triangles テッセレーションでは、一部のポリゴンの継ぎ目で穴があく「クラック」という現象が…

【ゲーム制作】No.15 PNTriangles11サンプル(Direct3D11)

今回は DirectXSDK(June 2010)のサンプルのひとつであるPNTriangles11サンプルの移植になります。Direct3Dのテッセレーション機能を使う最もシンプルなデモみたいです。PNTriangles11自体は以前から実装されていたみたいなんですが、私の中で存在を忘れてま…

【ゲーム制作】No.14: ハーフランバートライティング(Direct3D11)

今回はライティングエフェクトのひとつであるハーフランバートライティングの実装になります。ハーフライフで使われていたことで有名ですね。 ハーフランバートライティングで検索すれば多数ヒットしますので説明は省略します。簡単に言うと、このライティン…

【ゲーム制作】No.13: VPDファイルの読み込みと描画(Direct3D11)

今回はMMDファイル関連であるVPDファイルの読み込みと描画になります。MMDファイルでいうと、モデル(PMDファイル/PMXファイル)、モーション(VMDファイル)、ポーズ(VPDファイル)の中で三番目のポーズ機能(VPDファイル)になります。 ①VPDフ…

【ゲーム制作】No.12: 無限平面の描画(Direct3D11)

今回は無限平面の描画エフェクトの実装になります。以下みたいな実装のことですね。 自分が勝手に思っているだけなんですが、無限平面の描画というのは、ゲームプログラミングにおいて必ず通る道みたいなものでありただ実装するには必要となる数学も結構必要…

【ゲーム制作】No.11: 動的LOD(レベルオブディテール)

今回は動的LOD(レベルオブディテール)の実装になります。DirectXでいうDirect3D8のプログレッシブメッシュですね。実装方法については以下の書籍に実装方法がありそれをそのまま実装しています。(20年も経ってる!!古っ!!個人的にこの書籍にはとても役に…

【ゲーム制作】No.10: 動的頂点バッファ/インデックスバッファの設定について

お久しぶりです。前回の更新が2021年10月13日ですから、約17ヶ月ぶりの更新になってしまいました。いろいろ生活は代わりましたが、ゲーム開発はそのまま続けています。 環境もDirectX11( Microsoft DirectX SDK (June 2010) ) + Windows11のままです。今後も…

【ゲーム制作】No.9: シャドウマッピング①

シャドウマッピングによる影生成の整備を行っています。 ただしシャドウマッピングはDirect3D9時代に作ったソースが既にありますので、作業はそれの移植がメインになります。 今はUniformShadowmap_Spotlightのシャドウマッピングは完成済で、PerspectiveSha…

【日記】2021年10月8日

今日は、 脳神経外科へ外来受診の日でした。 次回入院して行う手術の内容を説明して頂きました。腫瘍の除去を行う手術だが言語に関わる箇所が腫瘍に沿うように存在する為、適当に取ると言語機能に障害が残る可能性がある。そのリスクを下げる為、意識を覚醒…

【ゲーム制作】No.8: 動的環境マッピング⑤

PMD/PMXモデルでの動的キューブ環境マッピングに対応しました。 屈折モデルへの対応などやるべき課題はまだいろいろありますが環境マップ対応は今回で終了にしたいと思います。 次回からは別課題への対応を行います。

【ゲーム制作】No.7: 動的環境マッピング④

今日はPMD/PMXモデルを動的キューブ環境マップに表示する機能を追加しました。 残りはPMD/PMXモデルを反射モデルにするパターンぐらいですかね。 今回は作っていて処理の重さが気になりました。メッシュもそれほど表示してないのに30FPS切っていてこれではま…

【ゲーム制作】No.6: 動的環境マッピング③

とりあえずキューブ環境マップを表示することが出来ました。 左の球が動的キューブ環境マップ、右のその他のオブジェクトは静的キューブ環境マップになります。 以前、動的キューブ環境マップはボックスに設定して表示すると書きましたが、その認識は誤って…

【ゲーム制作】No.5: OMSetRenderTargets()のワーニング

一応環境マッピングの作成はちゃんと進んでいるのですが 以下のワーニングが出て作業が止まっている状態です。 D3D11 WARNING: ID3D11DeviceContext::OMSetRenderTargets: Resource being set to OM DepthStencil is still bound on input! [ STATE_SETTING …

【ゲーム制作】No.4: 動的環境マッピング②

前回に引き続き、細かい環境構築を行いました。 加えて、動的環境マッピング用のカメラボックスを作りました。 このカメラボックスを用いて次回から環境マッピングの実装に入る予定です。

【ゲーム制作】No.3: 環境整理その他

動的環境マッピング作成環境の構築をいろいろやっていました。 あと物理エンジンの動作の確認。結構ちゃんと動いているようです。 ただボールとボックスがめり込んでしまう・・ 衝突判定部分にはバグがあるのかな・・? まあとりあえずこの環境で環境マッピ…

【日記】2021年9月27日

今日は、 姉に対し母親のお友達より自分の病気へのお見舞いを頂きました。今月の治療費が予定より多くかかっていた為、困ったいたとのことでとても喜んでいました。どうもありがとうございます。体が治ったらお返しします。 先日も言った右足根本の内出血で…

【ゲーム制作】No.2: 3Dテキストの作成①

動的環境マッピングを行うには、環境マップ用のテクスチャであるキューブマップを用意し、 6枚あるテクスチャ面にそれぞれカメラをセットして3Dの画像をキャプチャする必要があります。 キャプチャする際、カメラの上下や面の順番などを間違う可能性があり…

【日記】2021年9月25日

今日は、 庭(駐車場)の草むしりをしました。とりあえず奥一台分を途中まで。明日も続きを行う予定です。 先日脳血管造影検査を行ったのですが、カテーテル注射をした右足根本が結構腫れているのに気が付きました。弱いですが鈍い痛みも感じます。様子をみ…

【ゲーム制作】No.1: 動的環境マッピング①

今ゲームプログラム制作は、主に動的環境マッピング部分の構築を行っています。DirectX SDK (June 2010) の CubeMapGS_2010 を元に構築しているのですが、もう全然進んでいません。構造はすでに調査済みで後はコードを組むだけなのですがやる気が出ない・・ …

【日記】2021年9月24日

今日は、 脳神経外科へ外来受診の日でした。前回行った検査の結果と、今後の診療方針の説明を受けました。来月半ばごろに入院し脳腫瘍切除手術(2回目)を行う方針になりました。通常の麻酔で完全に眠らせて行う手術ではなく、意識を覚醒した状態で行うこと…

【日記】2021年9月23日

かなり久しぶりだが、何かの為になるかと思うので日記付けを再開していこうと思う。 現在自分は脳腫瘍の病気を患っておりその治療をメインに日々過ごしている。 病気の為仕事も辞めている状態。 今日は、 車のバッテリーが上がってしまっていたので修理した…

【imgui】imguiの画像が乱れる

imguiのGUI画像を表示すると、GUI画像が乱れて表示されました。 原因として、GUI画像の前に他のポリゴンをレンダリングしていたのですが その終了時にジオメトリシェーダのクリアをしていなかった為でした。 私のソースだとレンダリング終了時に以下の行を挿…

【DXGI】IDXGIOutput::GetDisplayModeList()がDXGI_ERROR_MORE_DATAを返し失敗する

原因はGetDisplayModeList()の引数「UINT *pNumModes」の値がゼロだった為でした。GetDisplayModeList()は引数「DXGI_MODE_DESC *pDesc」がNULLでない時pNumModesにpDescのサイズを入れて渡さなければいけない様です。