はかせのラボ

私の頭の中を書いていく雑記ブログです

C++

C++ ビットフィールド ~ビット単位でメモリ管理を行う~

C++

あいさつ どうも、hakaseです。 最近は遊戯王マスターデュエルにお熱でずっとランクマにこもっています。 そのうちマスターデュエルの記事も上げだすかもしれません。 いつぞやのポケモンみたく、 またなんかゲームの記事上げてんなくらいに思って置いてくだ…

C++ std::vectorのポインタから特定インデックスの要素を取り出す5つの方法

あいさつ 前提 ①一旦実体を別で格納し使う ②()と[]の合わせ技 ③0番地を使う ④std::vectorのatを使う ⑤イテレーターを使う あとがき あいさつ どうも、はかせです。今日は以前上げたボーンの理屈に従って カタカタコード打っていました。その中でstd::vector…

DirectX12 Lat式ミクさんを正常に描画出来た話

あいさつ 前回のやつ 黒くなっている原因 対処法 血まみれ問題原因 成果 あとがき 参考 ちなみに あいさつ どうも、はかせです。 前回表示したモデルにテクスチャを貼り付けてみました。概ね正常にできていたのですが、 顔の部分だけおかしくなっていました…

DirectX12 MMDモデルにテクスチャを貼りたい

あいさつ モデルのテクスチャマッピングに必要なもの モデルのマテリアルデータ モデルに紐づくテクスチャ 実行してみる あとがき あいさつ どうも、はかせです。 前回はメモリリークを解消しながら ComPtrの動きについて学びました。今回は前に上げた白塗り…

DirectX12 ComPtrに直接値を代入したりするのは危険だっていう話

あいさつ リークしていたメモリ テクスチャ周りの解放 RootSignature他の解放 あとがき あいさつ どうも、はかせです。前回ID3D12DebugDeviceを使って どのオブジェクトが破棄されていないのかを確認しました。 hakase0274.hatenablog.com今回はその内容の確…

DirectX12 ID3D12DebugDeviceのReportLiveDeviceObjectsを使ってメモリリークを確認する

あいさつ ID3D12DebugDeviceとは ID3D12DebugDeviceの作り方 ReportLiveDeviceObjectsの呼び方 あとがき あいさつ どうも、はかせです。 今日も今日とてPMDファイルの描画・・・ と言いたいところなんですが、 昨日作ったプログラムを実行すると メモリリー…

DirectX12 PMDファイルの表示に成功した話 ~犯人は変換行列~

あいさつ 進捗 やったこと なぜ今までできていなかったのか あとがき あいさつ どうも、はかせです。今日はついにPMDファイルの描画に(一部)成功したので その話です。 進捗 細かい話を始める前にまずは本日の成果です。 ミクさんの形だけですが描画すること…

DirectX12 発生していたD3D12ERRORを片っ端から潰していった話

あいさつ SET_VERTEX_BUFFERS_INVALID INVALID_DESCRIPTOR_HANDLE、COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST DEVICE_REMOVAL_PROCESS_AT_FAULT COMMAND_LIST_CLOSED あとがき あいさつ どうも、はかせです…

DirectX12 デスクリプタヒープと友達になりたい

あいさつ デスクリプタヒープとは 使い方 デスクリプタヒープ内のデスクリプタを参照する あとがき あいさつ どうも、はかせです。 前回はMMDもといPMDを出すために PMDファイルの読み込みをやりました。読み込んだら後は表示するだけ~なんて思ってたんです…

DirectX12 MMD表示の初歩を刻む ~ファイル読み込みの話~

あいさつ PMDファイル 実際に読み込む あとがき 参考 あいさつ どうも、はかせです。 あらかた自分が使う機能の移植(ほぼ新規開発)が終わりましたので 今回からまたDirectX12の勉強を開始していきます。そんなわけで今回からMMDの描画の勉強を始めます。 第…

C++ GetKeyboardStateでキーボードの入力を取得する

あいさつ GetKeyboardStateとは あとがき あいさつ どうも、はかせです。 今日も今日とて過去にD3D11で使ってた 便利クラス的なものの移植をやってました。その中でDirectInputを使った入力クラスがありました。 もちろん今後何らかの検証やデバッグをしてい…

C++ FPS固定と計測を作り直したので改めて解説してみる

あいさつ FPS固定 FPS計測 あとがき あいさつ どうも、はかせです。 私は以前FPS固定について色々調べたり 実装したりしてました。 hakase0274.hatenablog.com hakase0274.hatenablog.comこういった機能って色んなとこで使うし、 ほぼ処理が変わりません。な…

DirectX 死体になった私はResources Barriersを調べた

あいさつ 今日の進捗 Resources Barriers あとがき 参考 あいさつ どうも、はかせです。 今日も今日とてGPUと友達になるべく がんばります。 今日の進捗 DXRやろうとして DirectX12のサンプルで遊んでて 「ガッシ!ボカッ!」 はかせは死んだ。スイーツ(笑) …

DirectX DirectX12でのWICを使ったpngの描画

あいさつ pngを描画したい どうやってやる? テクスチャ読み込み CoInitializeとCoInitializeEx あとがき 参考 あいさつ どうも、はかせです。 今日は昨日のオムライスの逆襲なのか 飯テロを食らいました。@hakase70945250 pic.twitter.com/yOYc5GQ1nF— 転生…

C++ コンストラクタの後ろにコロンつけてるやつの話 ~初期化子リスト~

あいさつ こいつは一体何? こいつのメリットは何? 効率がいい const変数の初期化が行える あとがき あいさつ どうも、はかせです。 今日はなんだかイマイチ頭が回らないので DirectX12の勉強はお休みしました。そのため今日は久しぶりのTips記事になります…

DirectX12 なんか知らん子がたくさん出てきた(´・ω・`)

あいさつ デスクリプタヒープ ルートシグネチャ フェンス あとがき 参考 あいさつ どうも、はかせです。 前回DirectX12の簡単な概要的なものを 読んでみました。今回はより細かいところをということで 実際の実装を追ってみました。そしたら知らんことがたく…

DirectX12 DirectX12を触ってみる

あいさつ サンプルコード DirectX12の描画フロー 描画の仕方 パイプラインの構築 あとがき あいさつ どうも、はかせです。 札幌でCEDECが開催されますね。 もちろん私は行きますよ。そこでセッション内容を見てたら 結構DirectX12系のセッションが多そう。こ…

C++ ファイルI/Oが超絶楽になるfilesystem

あいさつ 環境 include カレントディレクトリ取得、移動 フォルダ生成 フォルダ削除 フォルダコピー、移動 フォルダ階層取得 あとがき 参考 あいさつ どうも、はかせです。 前回フォルダ操作をWinAPIで実装してみた記事を上げました。 hakase0274.hatenablog…

C++ フォルダ操作

あいさつ include カレントディレクトリの取得と移動 フォルダの生成 フォルダの削除 あとがき あいさつ どうも、はかせです。今回はフォルダ操作する際に使う カレントディレクトリの取得と移動 フォルダの生成 フォルダの削除 この三つをWinAPIを用いて実…

プログラミング ComPtrのダブルポインタが欲しい場合はGetAddressOf()を使おう

あいさつ ComPtrの&演算子 ComPtrのGet系 ComPtr<T>.Get() ComPtr<T>.GetAddressOf() ComPtr<T>.ReleaseAndGetAddressOf() 実行結果 あとがき あいさつ どうも、はかせです。 今回は前回の描画されない問題を解決できたので そのまとめです。 ComPtr…

プログラミング DirectX最小構成をクラス分けした話

あいさつ コード あとがき あいさつ どうも、はかせです。 今回は前回やるって言ってたクラス分けして 呼び出すだけで使えるようにしたやつです。 コード 全体はgithubに上げたのでここでは前回との差分をば。 //ウィンドウの横幅 static const UINT WindowW…

落ちモノパズル 詰めテト作ってみた

あいさつ 実装しようとした経緯 実装 あとがき あいさつ どうも、はかせです。 今回は詰めテトを作ってみたので その紹介です。 実装しようとした経緯 以前Tスピン実装の記事をあげたとき 私が下手で確認が出来ないって嘆いていたら 詰めテトとか作ってみた…

落ちモノパズル フォント変更を出来るようにした・改

あいさつ 改造内容 問題の原因 問題の解決 改造結果 あとがき 参考 あいさつ どうも、はかせです。 今回はフォント変更の改造編です。 改造内容 ちょっと前にフォントを変更できるようにしました。 hakase0274.hatenablog.comただこのときフォントが異なって…

C++ std::mapを試そうとしたらstd::wcoutに詰まった

あいさつ std::map std::wcout なぜ触ったか 私がハマった沼 理由 あとがき あいさつ どうも、はかせです。 今回はstd::mapとstd::wcoutの話です。 std::map 連想配列クラスといわれるものです。 C#のDictionaryに該当するものですね。 特定のkey値とそれに…

落ちモノパズル フォント変更を出来るようにした

あいさつ 文字のフォントを変える 手放しで喜ぶことは出来なかった あとがき あいさつ どうも、はかせです。 今回は文字のフォントを変えれるようにしました。 文字のフォントを変える 私の今まで実装してきた文字まわりの機能は以下の記事にあります↓ hakas…

C++ ファイル書き出し

あいさつ 実装方法 あとがき 参考 あいさつ どうも、はかせです。 今回はファイル書き出しをやってみます。 実装方法 やり方は簡単でofstreamっていうものを使います。 このストリームはコンストラクタかopen関数にパスを渡すことで ファイルを開くor生成し…

落ちモノパズル 今更ながら今作っているもののクラス図をば

あいさつ 設計 あとがき あいさつ どうも、はかせです。 今回は今作っているもののクラス図を出して どういう設計でやっているのかという話をしてみたいと思います。 設計 まずクラス図です。 基本は前回の弾幕シューティングの時同様 核となるものはDXGameO…

落ちモノパズル 指摘を受けた部分の修正

あいさつ Componentの判定の最適化 指摘を受けたが未修整の部分 あとがき あいさつ どうも、はかせです。 今回は就活の中で作品を見せたときにもらった 意見を作品に反映してみたり その他細かい点の修正を行いました。 Componentの判定の最適化 大分初期に…

落ちモノパズル 透過処理出来てたっぽい

あいさつ 絶望とは 絶望の正体 ブレンド適用の確認 深度バッファの確認 実行結果はいかに あとがき あいさつ どうも、はかせです。 今回はついに絶望から解放された話です。 絶望とは 私が今まで味わってきた絶望の詳細は下記に詳しいです。 hakase0274.hate…

落ちモノパズル 絶望は忘れたころにやってくる

あいさつ 実装 そして奴はやってくる あとがき あいさつ どうも、はかせです。 今回は消去時のエフェクトを付けてみようとした話です。 実装 テトリスは消去時消えるラインが真っ白になったのち 光が走るエフェクトが入ります。なので ①消去するピースを真っ…