NEUROMANTIC

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

2019-05-01から1ヶ月間の記事一覧

Raytracerの進捗

neuliliilli.hatenablog.com の続きです。 チュートリアルを見ながらも、自分なりのスタイルで実装しております。

今週は…

github.com 上の記事を参考にしながらレイトレーシングを使用したレンダラー(リアルタイムではない)を作ってみたいと思います。 ですけどチュートリアルのコードをそのまま書くのではなくて、DyUtils(DyExpression、DyMathなどの自作ユティリティライブラ…

簡単なRayMarching(レイマーチング)を実装してみた。

「ShaderToyでカメラのテストをやってみた。」に続き、半分くらい本格的なRayMarching(レイマーチング)を使用した描画を実装してみました。 面白かった!というか、数学の重要性が切実に感じられた気がします。まだ複雑なモデルは実装してみませんでしたが…

最近読んだ記事まとめ

別途で記事を書くにはちょっと曖昧だったものを一つずつ短くまとめてみます。 note.mu コンシューマゲームとソーシャルゲームでのゲームデザイン、またはゲーム性での接近するやり方の違いに関して考察して記事です。自分はコンシューマゲームのゲームデザイ…

ボロノイ図(Voronoi)をUE4マテリアルでレンダリングしてみた。

マテリアル編集画面 UE4の勉強兼、ボロノイ図を実装して見ました。基本的なものですが、実装するために様々なページを探してみたりしましたのでいい経験でした。(かもしれない)

おまけ。ShaderToyの機能の使い方を集めた記事

Special Shadertoy featuresshadertoyunofficial.wordpress.com 前の「ShaderToyで線が引きたくて実装・メモを書いてみた。」のShaderToyページで、ある方が助言をくれました。これを参考にして見ると良いよということでしょうね。ありがとうございます。

ShaderToyで線が引きたくて実装・メモを書いてみた。

ShaderToy又はKodeLifeなど、glslを使っているところでシェーダーで線が引きたくて実装をやってみました。 私が作った線分レンダリング関数は、 線分の太さが調整可能 線分の位置を任意に配置可能 線分の色を単色かグラデーションで指定可能 の機能を持って…

ShaderToyでカメラのテストをやってみた。

「レイマーチング」*1を実装させるために、まず下準備としてカメラを実装してみました。 こっちで使うカメラは、View・Projectionマトリックスを使いません。(Projectionはあとで複雑になると使うかもしれませんね) なぜならシェーダーではViewの代わりに…

「Understaning BCn Texture Compression Formats」を読んでメモ

www.reedbeta.com GPUで支援しているBCnというテクスチャフォーマットはBC1からBC7まである。 BCnテクスチャフォーマットらの特徴は、読み込みをする時で圧縮されたデータが解凍されるのではなくて、GPUからあるテクセルの部分を使うときだけその一部分のデ…

「Heartfelt」を分析・KodeLifeで応用してみた。

www.shadertoy.com 分析しにくかったシェーダー効果でしたけど、なんとか分析して変数をuniformで作成してKodeLifeで実装してみました。(なお、不必要なコードも削除) CHEAP_NORMALSは除きます。コメントでは2倍見にくくなるよと書いていたんですが、実際…

「Advanced Terrain Texture Splatting」記事を分析・KodeLifeで実装してみた。

www.gamasutra.com 分析メモ 記事では2つの地形テクスチャマップに対して、3つの方法を提示しています。 単純にover operatorを使用してマップをブレンディング。(頭悪い) 各テクスチャのDisplacementかHeightマップの値をお互いに比較して、テクスチャ…

「Cathode」を参照・分析・応用してみた。

ブラウン管みたいにスキャンライン、そして色の滲みを表現するポストプロセッシングシェーダーを分析、応用してみました。

ゆらゆら・ShaderToyのテンプレートコードのメモ

ゆらゆら www.shadertoy.com void mainImage( out vec4 fragColor, in vec2 fragCoord ) { // Normalized pixel coordinates (from 0 to 1) vec2 uv = fragCoord/min(iResolution.x, iResolution.y); float speed = 0.5f; vec2 p = uv * 5.0f; for (int i = …

「Blistering Paint」シェーダーをShadeで真似してみた。

内容 成功例が出せてから後ほど追加します。🙏 Shade実装動画(失敗例) youtu.be 参照 GDC 2017: Substance pipeline and toolset for Paragon heroes w/ Brad Smith - YouTube https://www.artstation.com/artwork/xzDLvX

超簡単な炎シェーダーを実装してみた。

youtu.be 今更ですが、「Shade」というiOSのシェーダー作成アプリケーションを使用して超簡単な炎を作ってみました。「Shade」というアプリケーションにはHLSLまたはGLSLのdiscardとか、lerp(mix)という関数の機能を提供してくれるノードがないため、ちょ…

「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をクリアしました。

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