NEUROMANTIC

自分でC/C++/UE4/Graphics/ゲームなどをやったことをメモするブログ

2019-01-01から1年間の記事一覧

「2D多角形の内部、外部判定のやり方」のメモ

bowbowbow.tistory.com 判定とは一体 Aは外部にあって、Bは内部にあることが分かる。 2Dの多角形に対し、AまたはBみたいな点が図形の内部にあるか外部なのかを判別することを示す。 図形の内部に位置する点の特徴は Aは交点が偶数。Bは奇数のことがわかる。 …

超簡単なBehaviour Treeを実装してみた

Finite-State Machineとは(Behaviour Treeの以前に。。。) en.wikipedia.org Finite-State Machineは人工知能または条件による行動の分岐を実装する基本的な方法の一つである。 人工知能の各行動をモジュール化させたので、ある程度に柔軟さは持っているが…

「8 Most Common 3D File Formats in 2019」のメモ

all3dp.com 3Dファイルの基本的な目的は、3D情報をテキストまたは特定のテンプレートを持ったバイナリファイルに込めたものである。 3D情報とは、Geometry, Appereance, SceneそしてAnimationsがある。3Dモデルのファイルの中では一部しか込められないものも…

「ゲームプログラマの実力向上法」のメモ

게임 프로그래머 실력향상법 자료조사 from Daeyoung Hwang www.slideshare.net 「コンシューマ>オンライン>モバイル>順でプラットフォームによって実力が優れているわけでもない。 昔はそうだったが、UnityかUE4のエンジンが登場し、モバイルに写った開…

C++のCovarient Return Typesを検証してみた

C++

en.m.wikibooks.org C++でvirtualの関数を継承(Override)したりして関数を書き直すことになると、普通はリターンタイプを同じにして返すのが普通ですね。 しかし継承したタイプのOverrideした関数のリターン値がベース仮想関数の返す型を継承としたものとな…

DirectX11でGPUの作業時間を測定してみた

ImGuiで作業時間を測定する reedbeta.com DirectX11を勉強しながら、サンプルのGPUの各作業時間を測定するため検索してみたところ、ID3D11Queryというのを用いてGPUの時間を測定することがわかりました。 SH-D3D11サンドボックスプロジェクトのサンプル1と…

今更ですがCELESTEのA-Sideをクリアしました。

就活がほぼ最後に入り、暇が出来たのでスイッチでやってみました。今は難しいプラットフォームアクションゲームが多いし、ストーリー展開でのステージは平均のゲームに比べてはちょうど良い難易度のゲームだったと思います。 ストーリーだけ進行しようとする…

Primitive ShaderとかMesh Shaderとかを調べてみた。

今のGPUそしてグラフィックスで通用されているシェーダーレンダリングのパイプラインを纏めると以下になりそうです。 レンダリングパイプライン 独立パイプライン ~OpenGL 3.0 固定パイプライン なし ~OpenGL 4.0 VS > GS > FS なし OpenGL 4.0~ VS > TCS > …

UE4のマテリアルのCustomノードでの拡張テクニック

UE4

forums.unrealengine.com UE4でいろいろとマテリアルを触る時に、基本的に与えられたノードだけじゃ複雑なものがちゃんと書けないことがありました。という時に使ってこなすのがCustomというノードで、これは直接HLSLコードを書いてシェーダーを作成すること…

最近GDC Vaultで見た動画まとめ

gdcvault.com 2017年に販売されたFPSゲーム、「Destiny」の多彩多様のグラフィック表現を描画するために独自のシェーダー言語「TFX」の仕組みとその周りのツール操作、最適化などのあらすじを発表したもの。 未だ技術の知識が足りない関係で個人としては30分…

C++の類似デストラクタ(Pseudo-Destructor)のメモ

C++

Pseudo Destructorとは Pseudo Destructorは、単語通りに「類似」のデストラクタです。 テンプレートプログラミングなどをして、型引数 Tがデストラクタを持っているかないかにかかわらず挙動を同じにさせる時に良く使われるらしいです。 クラスではないタイ…

プロジェクトをVS2019に移しました。

Dy

本日Visual Studio 2019が出たので、早速VS2017から作業環境を変えました。 性能的にはVS2017からもメモリ占有率か使用容量が1/4までに減ったそうですので期待をもって移してみましたが、そんなに減ることじゃなかったです。多分Reshaper C++のせいでメモリ…

How is Vulkan defferent from previous graphics APIs?のメモ

developer.samsung.com OpenGLのような昔のグラフィックスAPIは現在のGPUのデザインとは結構違う時期に設計されたものである。 現代のGPUは無数なコアがあって、それを並列的に処理させてレンダリングなどに必要となる演算量をカバーすることになっている。 …

再度報告。DyのSDFフォントジェネレーターに機能を追加しました。

Dy

190227バージョン 「About」窓を作りました。後のFixedバージョンではAbout窓に使ったライブラリの名前、そして製作者のブログの遷移先を実装します。 フォントのSDFマップの生成手順のロジックを変えました。以前まではstd::asyncとstd::futureを使用しまし…

Vulkanを触ってみました。

objファイルと、テクスチャーファイルを読み込みして、MSAAまで適用した姿 vulkan-tutorial.com 上のVulkanの基礎的な部分のチュートリアルサイトを参考にして、一番簡単な「オブジェクトの頂点読み込み」「Uniformバッファの値入力」「レンダリング」「MSAA…

imguiで日本語文字を出力するためにOSからのフォントを読み込みしたこと。

github.com imgui(厳密にいうとDear ImGui)というGUIライブラリーはC++環境でUI窓を作らせてくれる便利なライブラリです。QtまたはNana、Juceなどに比べればちょっと違った構造を持っていますが、プロトタイプまたは既存のビデオゲームなどでのデバッグUI…

Windows+VS環境でabort()をハンドルする方法

C++

やり方 Windowsでのabort()は基本的にはSIGABRTというシグナルを出します。 -NIX系列のOSではsigactionなどの関数でシグナルをハンドリングすることが出来ますが、Windowsのデバッグ環境で呼び出されるabort()から出るシグナルをハンドリングは以下のような…

nlohmann::json「JSON for Modern C++」の浮動小数点数の減らし方のメモ

C++

はじめに github.com nlohmann氏のJSONライブラリである「JSON for Modern C++」はC++環境でのJSONシリアルライズ文字列を読み込みするときに有用に使えるライブラリです。 速度面としては「RapidJSON」のようなライブラリには勝てないんですが、STLの操作面…