はかせのラボ

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

学習系技術記事

C# 参照渡しの3つのキーワードについて違いを語る ~in、out、ref~

あいさつ 参照渡しと値渡し ref out in あとがき あいさつ どうも、はかせです。先日メソッドから複数の値を取得する方法を 投稿しました。 hakase0274.hatenablog.comその後Twitterの方でですね 「outは?」 というコメントを頂きました。確かに複数の値を…

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

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

DirectX12 ボーンオフセット行列と初期姿勢行列

あいさつ ボーンオフセット行列 初期姿勢行列 あとがき あいさつ どうも、はかせです。今日はボーン勉強会その二です。今回のテーマはボーンについて調べてるとしょっちゅう出てくる ボーンオフセット行列と 初期姿勢行列です。 ボーンオフセット行列 ボーン…

DirectX12 ボーンについて調べてみた話 ~そもそもボーンとは~

あいさつ ボーンとは あとがき あいさつ どうも、はかせです。 前回Lat式ミクさんの顔の異常を修正し 無事描画することに成功しました。ただまだ完全とは言えませんね。 前回の記事でも少しだけ触れましたが トゥーンレンダリングもできていません。それに本…

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の描画の勉強を始めます。 第…

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

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

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

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

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

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

DirectX12 DirectX12を触ってみる

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

C# Span構造体なるものがあるらしい

あいさつ Span構造体 is 何? 使ってみる ref構造体? Span is 使えない子? あとがき あいさつ どうも、はかせです。 今日は学校にいるときも家に帰ってからも IL2CPPで吐いたソリューションのビルドが出来ず あーでもないこーでもないとやってました。結果…

C# BindingFlagsについて調べてみた話

あいさつ BindingFlagsとは Public NonPublic InvokeMethod Instance つまり前回のデストラクタの探し方は あとがき あいさつ どうも、はかせです。 前回デストラクタの取得で結構詰まってしまいました。原因はBindingFlagsの設定がミスってたからなんですが…

IL コンストラクタの次はデストラクタを作ろうとしてハマった話

あいさつ デストラクタとは どういう扱いなんだろう 作ってみる 救世主が現れた あとがき あいさつ どうも、はかせです。 前回コンストラクタでハマった話を上げました。コンストラクタやったならデストラクタもやってみたい。ということでやりました。 デス…

IL コンストラクタ作ろうとしてハマってた話

あいさつ ILでコンストラクタを作る方法 ハマった点 コンストラクタ引数 コンストラクタの最初で呼び出す親のコンストラクタ あとがき あいさつ どうも、はかせです。 前回メソッドプロキシでの自動メモ化を頑張りました。 hakase0274.hatenablog.com今回の…

C# 悲しい結果になっていたメソッドプロキシの速度を改善した話

あいさつ 前回のコード 遅くなった原因 改善 あとがき あいさつ どうも、はかせです。 前回の記事読んでいただけたでしょうか? hakase0274.hatenablog.com自動メモ化をいろんな方法で試して 高速化してみるという内容の記事でした。その中でアスペクト指向…

IL 自動メモ化の実装をあれこれ考えたけど結局ネタ被りしたから速度勝負に切り替えた話

あいさつ やり方 まずはメモ化なしのを置いておく Dictionaryの拡張メソッドを作る アスペクト指向で処理の間にキャッシュを挟み込む IL生成でメソッドをオーバーライドする ちなみに あとがき あいさつ どうも、はかせです。 今回は前回やったメモ化の自動…

C# メモ化

あいさつ メモ化とは? 実際に作ってみる あとがき あいさつ どうも、はかせです。今日もILをやろうとネタを集めていたんですが、 そんな中こんな記事を見つけました。qiita.com内容はILを使ってメモ化を行うというものです。そこで一つ私の頭の中にはてなマ…

IL IL命令でLdc_I4とLdc_I4_SみたいにSが付いてるやつと付いてないやつの違いを調べてみた話

あいさつ Ldc_I4_SとかのSの意味は? どゆこと?? なんで分かれてるの? 実際問題そこ気にした方がいいの? あとがき あいさつ どうも、はかせです。 今日は前回作った拡張メソッドを改造していたのですが、 その中でSが付いてるものと付いてないものの違い…

IL 同じミスはもうしたくないから拡張メソッドでお茶を濁す

あいさつ やること あとがき あいさつ どうも、はかせです。前回ILでループ処理を作ろうとしたら まさかのstaticメソッドとインスタンスメソッドを間違うという ポカをやらかしてしまいました(´;ω;`)前回 hakase0274.hatenablog.comもう同じ過ちを繰り返し…

IL ループ処理をやってみる(はかせは小学生未満だったことが発覚してしまった)

あいさつ ILでのループ あとがき あいさつ どうも、はかせです。 とりあえずAssemblybuilderとDynamicMethodを使った IL書きはなんとなくわかりました。基本がわかったら次は応用です。 今回はループをやってみます。 ILでのループ とりあえず下記のコードを…

C# ボックス化

あいさつ ボックス化とは? ボックス化は悪? 今どきの言語でボックス化って起こってるん? ボックス化回避はできるの? あとがき あいさつ どうも、はかせです。 最近ILの勉強をしていて ようやくC#という言語が それとなくわかってきたような気がしなくも…

IL C#のルールを超える禁術 ~DynamicMethod~

あいさつ DynamicMethodとは何ぞや?AssemblyBuilderとの違いは? DynamicMethod使ってみる あとがき あいさつ どうも、はかせです。前回の記事ではAssemblyBuilderを使って、 動的にdllとexeを生成してみました。 hakase0274.hatenablog.com今回はDynamicMe…

IL ILを手書きで出力してみる

あいさつ ILを書く方法 AssemblyBuilderを使う exeを吐かせてみる あとがき 参考 あいさつ どうも、はかせです。IL、ひいては機械語眺めてると どういう風にデータが動いていくのかが 見えるので見てるだけで楽しいですね。永遠と自分が過去に作ったexeとか…

IL DnSpyが神ツールだった件

あいさつ DnSpyとは ほめてばっかりもあれなんで・・・ あとがき あいさつ どうも、はかせです。 昨日から黒魔術士を目指してILを学び始めました。所感としてはなんか楽しいです。 つよつよプログラマになったと錯覚できるからですかね。 (実態はよわよわプ…