ぶち

関東の専門学校に通う学生プログラマ。 現在は主にDirectX12と戦っています。

ぶち

関東の専門学校に通う学生プログラマ。 現在は主にDirectX12と戦っています。

マガジン

  • Dx12でゲームエンジンを作ろう!

    学生プログラマがDx12を使ってゲームエンジンを制作するマガジンです。 DirectXの解説や入門補助をする記事ではなく、あくまでも開発日誌というか雑記というか、とにかくそんな感じです。 なのでソースコードは公開しないし、載せるとしても自慢できる出来のコードだけです。 あくまでも僕がこうしている、ということを書いているだけですが、同じくDirectXの勉強をしている方たちの参考になれば幸いです。

最近の記事

  • 固定された記事

【プロフィール】ぶちとは何者

◆自己紹介 ぶちです。関東の専門学校に通っているプログラマ志望の学生です。 ◆ここで何をするか ここでは主にDirectX12で自作ゲームエンジンを作る記事、クラス設計の考え方やc++でのコーディングtipsなどプログラミングに関わる雑多な記事を書いていきたいと思います。 ◆前もって ガチで未熟な人間なので間違い等ありましたらご指摘ください。 ◆どんな方におすすめのnoteか プログラマ志望の学生が成長していく過程を見て楽しめる方、同じくDirectX12を勉強している

    • Node+express+TypeScript on herokuの環境構築(自分用)

      三回やって三回忘れてるので書きます… ◆必要なもののインストールとファイルの作成 ・githubでリポジトリ管理するなら git clone node_init(URL)cd node_init ・node初期化 npm init -y//editorconfig作成(自由)type nul> .editorconfig ・TypeScriptの導入、初期化 npm install typescript --save npx tsc --init ・ex

      • ポストエフェクトをかけよう!!シェーダコード編

        皆さんこんにちは。 前回までで、一度レンダリングした結果をテクスチャとして利用できるようになったので 今回はこのテクスチャをピクセルシェーダで加工してポストエフェクトを実装します。 テクスチャを画面全体に貼り付けるには、平行投影でプロジェクション行列を、ワールド変換行列は画面サイズに合わせたスケール行列にして描画でOKです。 これで一回描画した結果を貼り付けただけの状態。 ここからいろいろエフェクトを盛って、古いカメラ風の画面を目指していきます。 ホワイトノイズ

        • ポストエフェクトをかけよう!!マルチパスレンダリング編

          皆さんこんにちは。 今回からはDx12でポストエフェクトをかけていく記事です。 まずはポストエフェクトの定義から。 ポストエフェクトをざっくり説明すると レンダリング結果そのものにかけるエフェクト、です。 代表的なモノとして発光表現に使うブルーム、ピントを再現する被写界深度などがあります。 どの表現も、 一回レンダリングする→その結果を画像として使用し、もう一度レンダリング→その際のピクセルシェーダでエフェクトをかける。 この流れで実現されます。 今回はこの「レンダリン

        • 固定された記事

        【プロフィール】ぶちとは何者

        • Node+express+TypeScript on herokuの環境構築(自分用)

        • ポストエフェクトをかけよう!!シェーダコード編

        • ポストエフェクトをかけよう!!マルチパスレンダリング編

        マガジン

        • Dx12でゲームエンジンを作ろう!
          16本

        記事

          3Dオブジェクトの輪郭線表現

          皆さんこんにちは。 3Dモデルの輪郭線描画を実装したのでここに置いておきます この記事を参考に実装しました。 この記事は前後編ともに、グラフィック系の実装をする上ですこぶる役立つ情報が満載なのでスーパーおすすめです。マジで。 一つ目の動画のような非透過オブジェクトの場合PSO一つでもジオメトリシェーダを利用してアウトライン描画ができるのですが、二つ目のような半透明オブジェクトは深度のコントロールの都合上PSO一つで実装する方法が思いつきませんでした。無念。 輪郭線描画の

          3Dオブジェクトの輪郭線表現

          モーション編その③ IKを適用しよう!

          皆さんこんにちは。 フルスクラッチでゲームエンジンを作ろう!第十三回です。 前回3DモデルにFKを適用できるようになったので、今回はIKを実装していきます。 まずはIKとは何なのかという説明から。 前回実装したFKは肩を回転させる→肘を回転させる→手首を回転させる→手の位置を決定する、という流れでボーンを変形させるものです。 上位のボーンから子のボーンに向かって姿勢が決定するので順運動学、なのですがIKは逆運動学、名の通り逆の流れで姿勢が決定していきます。 先に最も下位の

          モーション編その③ IKを適用しよう!

          モーション編その② FKを適用しよう!

          皆さんこんにちは。 フルスクラッチでゲームエンジンを作ろう!第十二回です。 前回3Dモデルに基本的なスキンアニメーションをさせるのに最低限必要なものをそろえたので、それらを仕様して人体のモデルにFK、順運動をさせていきます。 まずFKとは何なのかという説明です。 各ボーンの姿勢は一つ上位のボーンの姿勢の影響を100%受け、その上位のボーンもまた上位ボーンの影響を受け…を繰り返して決定されます。 人体で言えば、手首の姿勢は自身の回転と肘の回転具合によって決定し、肘は肩、肩は

          モーション編その② FKを適用しよう!

          モーション編その① 下準備をしよう!

          皆さんこんにちは。 フルスクラッチでゲームエンジンを作ろう!第十一回です。 今回からは3Dモデルにスキンアニメーションさせるためにアレコレ頑張っていきます。 基本的なスキンアニメーションを実現するためには大きく分けて以下の要素が必要です。 ・回転、移動するボーン ・ボーンの姿勢を決定するポ-ズと、フレームの経過によってポ-ズがどう変化するかの情報を持つキーフレームデータの集合(=モーションデータ) ・頂点に格納されたボーンのインデックスを基に、頂点群を変形する頂点シェー

          モーション編その① 下準備をしよう!

          FBXをSDK無しで使おう!の資料

          学校の技術研究の授業で、「FBXをSDK無しで使おう!」という発表しました。 内容はnoteで以前書いた記事の省略、簡易版です。 その時に使った資料です。

          FBXをSDK無しで使おう!の資料

          正多角形ポリゴンを作ろう!の資料

          学校で発表した、正多角形ポリゴンの作成についての発表の資料です。 カンタンな内容ですが、先生が配っている資料だけで同級生達が円(正多角形)のポリゴンを作るのは難しそうに思えたので自主的にやりました。

          正多角形ポリゴンを作ろう!の資料

          3Dモデル編その⑤SDK無しでFBXを解析しよう!

          皆さんこんにちは。 フルスクラッチでゲームエンジンを作ろう!第十回です。 前回読み込んだFBXの情報を、今回は独自形式に変換して描画するところまで行きたいと思います。 今回参考にした文献はこちらのAutodeskのSDKのリファレンスです。 もちろん、SDKで加工されたデータの扱いやSDKの機能などを見ても何の役にも立ちませんが、用語の解説などが載っているので、SDK無しでやろうとする場合でも最低限必要な知識はここから得ることができます。 今回例として Blender

          3Dモデル編その⑤SDK無しでFBXを解析しよう!

          3Dモデル編その④FBXをSDKなしで読み込もう!

          皆さんこんにちは。 フルスクラッチでゲームエンジンを作ろう!第九回です。 今回はFBXデータを変換して描画するために、FBXを読み込んで格納していこうと思います。 今回参考にする資料はこちらの blenderが2013年に公開したドキュメントです。 大分古いですが、載っているのはFBXフォーマットの根幹的な部分の情報なので現在でも全然参考になります。 それとこの Autodeskが公開しているドキュメントも参考にしましたが、大したことは書いてなかったです。 まず読み

          3Dモデル編その④FBXをSDKなしで読み込もう!

          3Dモデル編その③PMXを変換しよう!

          皆さんこんにちは。 フルスクラッチでゲームエンジンを作ろう!第八回です。 今回からは前回つくった3Dモデルデータの形式に、ほかの3Dモデルのデータを変換していきます。 複雑雑多奇々怪々と言われているFBXをいきなり変換するのはハードルが高いので、今回の目標はMMDで使われているモデルデータ、PMXを変換します。 PMXはとても親切な仕様書が公開されており中身の構造も明かされていて、とても簡単に読み込むことができます。 こんな感じできれいに畳やインパクトドライバーをPMX

          3Dモデル編その③PMXを変換しよう!

          3Dモデル編その②独自形式を作ろう!

          皆さんこんにちは。 フルスクラッチでゲームエンジンを作ろう!第七回です。 今回はモデルデータを司る独自フォーマットとマテリアルデータを司る独自フォーマットの仕様を決めようと思います。 モデルのフォーマット名はButi 3DModel Dataの略でB3M、マテリアルはButi Material Dataの略でBMAとします。 データ構造は各所で読みやすいと評判のPMXファイル(MMDのモデルデータ)をめちゃくちゃ参考にします。 PMXエディターについてきているPMX仕様

          3Dモデル編その②独自形式を作ろう!

          3Dモデル編その①マテリアルを適用しよう

          皆さんこんにちは。 フルスクラッチでゲームエンジンを作ろう!第六回です。 今回から3Dモデルをファイルから読み込んで描画するために頑張っていこうと思います。 しばらくの目標は、さまざまなアプリケーションから出力できて、ゲーム業界でもよく使われているFBXファイルを読めるようになることです。 まず、FBXってどんな形式で、何のデータが入っているのでしょう。 Wikipediaによると、 FBXは、カナダ企業であるKaydaraの、モーションキャプチャーデバイスからのデー

          3Dモデル編その①マテリアルを適用しよう

          インプットレイアウトの生成を楽にしよう!

          皆さんこんにちは。 フルスクラッチでゲームエンジンを作ろう!第五回です。 今回はインプットレイアウトを作成するのに必要なINPUT_ELEMENT_DESCの配列をhlslファイルから作成するのが目標です。 現在はリソースフォルダにシェーダーのファイルをそのまま入れているのでそれを使います。 ゆくゆくはコンパイル済みシェーダーを使うつもりですがその時はその時で考えます。インプットレイアウト用のバイナリファイルを作ればいいのでしょうか。 なので今回はDirectXの話という

          インプットレイアウトの生成を楽にしよう!