GameBaseDx11界隈
学校で使ってるゲームエンジンで、あれやりたいこれやりたい集
キャラクターの真下にShaderを使って丸い影を描く(投影丸影)
🎯 この影の作り方のイメージプレイヤーの下に「黒い丸いライト」を当てて、地面をちょっとだけ暗く見せるという工夫です。ライトなので、授業でやった点光源がわかっていれば全く同じように実装できます。し...
地形生成してみるンゴ
いつものエンジンで、地形を生成して自分のゲームに読みこんで、キャラクターを絶たせるまでの軌跡
自分でランダムな地形?を作って表示する。テクスチャもつける
🌱 ステップ①:データの設計(どんな情報を使うか?)地形を作るには「たくさんの点(てん)」が必要です。この点は「頂点(ちょうてん)」と呼ばれていて、1つ1つの頂点には次のような情報があります:名...
必要なクラス(Terrain class)を作っていく
🛠 ステップ⑤:Terrain クラスを作ろう!ゲームに出てくる「地面」や「山」をつくるために、Terrain(テレイン)という 地形クラス を作ります。これは「地形を作ったり、描いたり、調べた...
ランダムな三角形で地形を作っていく
🌱 地形の高さをランダムに決めて、頂点を作ろう!💡目的:地面の形を作るには、まず「高さのある点(=頂点)」をたくさん並べます。そしてこの点の高さをランダムに決めることで、でこぼこした地形になりま...
GPUリソースを作っていく!→ Draw関数
🎮 GPUリソースを作るってどういうこと?💡まずはイメージ!「頂点の情報(場所や高さなど)」を作るだけでは、画面に出せません。作った情報を GPU に渡して、「これを描いて!」とお願いしないとい...
地形にプレイヤー立たせて丸影
地形にプレイヤー立たせて丸影を落とします。毎フレーム、レイキャストとかやってるとしんどいので、地形データを使って高さを補間で算出してプレイヤーを立たせます。(よく考えるとレイキャストとあんまり計...
シャドウマップへの道(険しい)
自作のDx11ベースエンジンにシャドウマップを組み込む
その1
第1章:シャドウマップの考え方 この章の目的 コードを書く前に、なぜ「ライトから見たZ値」を比べると影がわかるのかを理解する。 この章は説明だけ。コード変更はしない。 1. 普通のライト計算だ...
その2
第2章:ライトを仮想カメラとして扱う この章の目的 シャドウマップを作るには、ライトから見た画面が必要になる。 そのために、ライト用のビュー行列と射影行列を追加する。 この章では、まだ画面は変わ...
その3
第3章:シャドウマップ用テクスチャを作る この章の目的 ライトから見たZ値を保存するためのテクスチャを作る。 まだそのテクスチャには何も描かない。 この章でも画面は変わらない。 考え方 シャド...
その4
第4章:深度だけを書く ShadowMap.hlsl を作る この章の目的 ライト視点で深度だけを書くための専用シェーダーを作る。 通常描画用の Simple3D.hlsl とは別に、Shado...
その5
第5章:モデルをシャドウマップに描けるようにする この章の目的 通常描画用の Draw() とは別に、シャドウマップ作成用の DrawShadow() を追加する。 この章でも画面は変わらない。...
その6
第6章:描画を2パス構成にする この章でやること Stage::Draw() の描画を2回に分けます。 パス1:ライト視点で深度だけ描く(シャドウパス) パス2:カメラ視点で普通に描く(メインパ...
その7
第7章:Simple3D.hlslで深度比較して影を出す この章でやること Simple3D.hlsl のピクセルシェーダーで、シャドウマップを読んで影を判定します。 この章で初めて画面に影が出...
その8
第8章:比較サンプラーで影のエッジをなめらかにする この章でやること 影のエッジのジャギー(ギザギザ)を改善します。 第7章では Sample() で1点だけ読んで影を判定していました。 この章...
その9(おまけ)
第9章:影が出ないときの確認ポイント 目的 つまずきやすいところを、症状別に確認できるようにする。 1. 影がまったく出ない 確認すること Stage::Draw() で Direct3D:...
DirectXTKを使ったオーディオマネジメント
DirectXTKを使ったオーディオマネジメントXAudio2を楽に使うためのライブラリを使って、ちょろっとSEとBGMを管理するマネージャ的なものを作ってみよう。の会
DirectXTKとAudio
Step 00 DirectXTK Audio の基本 この回の目的 この回では、DirectXTK Audio で使う基本的なクラスの役割を整理します。 音を鳴らすプログラムでは、いきなりコー...
前準備その2 スマポ
スマートポインタ入門 目的 この資料では、C++ の std::unique_ptr の基本的な使い方を学びます。 今回の目標は、スマートポインタを深く理解することではありません。 まずは、次の...
01 音を鳴らしてみるだけ
第1回 DirectXTK Audioで音を1回鳴らす この回に入る前に 先にDirectXTKとAudio を読み、次の3つの役割を確認しておきます。 AudioEngine ...
02 Engineに組み込んでゆくぅ
第2回 Audio機能をEngineに組み込んでゆくぅ 目標 この回では、第1回で TestScene に直接書いた音声処理を、エンジン側の機能として分離します。 最終的に、ゲーム側から次のよう...
03 SEとBGMを別扱いに(なんで?)
第3回 効果音とBGMを分ける 目標 この回では、Audio機能を次の2種類に分けます。 SE : 効果音。短い音。何度も鳴る。 BGM : 背景音楽。長い音。基本的に1曲を流し続ける。 最...
04 サウンドのコントロール機能(簡単なのだけ)
第4回 音量管理とBGMフェード 目標 この回では、オーディオエンジンに音量管理を追加します。 次の3種類の音量を扱います。 MasterVolume : 全体の音量 SEVolume ...
05 応用編 3D音響
第5回 AudioSourceと3D Audio 目標 この回では、音に位置を持たせます。 通常の効果音は、画面全体に同じように聞こえます。 3D Audioでは、音源の位置とカメラの位置を使っ...