GPU の動作原理が分かる資料

How does a GPU shader core work?
http://aras-p.info/texts/files/2018Academy%20-%20GPU.pdf

PDF の内容は SIGGRAPH で行われた Beyond Programmable Shading の Running Code at a Teraflop: How a GPU Shader Core Works などを参考にしているようなので、合わせて見てみると良いかと思います。

以下、参考資料に書かれていたページです。

Running Code at a Teraflop: How a GPU Shader Core Works
http://bps10.idav.ucdavis.edu/talks/03-fatahalian_gpuArchTeraflop_BPS_SIGGRAPH2010.pdf

A trip through the Graphics Pipeline
https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/

Optimizing GPU occupancy and resource usage with large thread groups
https://gpuopen.com/optimizing-gpu-occupancy-resource-usage-large-thread-groups/

Scalarization & Wave Intrinsics Resources,
https://twitter.com/KostasAAA/status/1063075770761916416

Scheduling the Graphics Pipeline
http://bps11.idav.ucdavis.edu/talks/05-schedulingGraphicsPipelineWithNotes-BPS2011-raganKelley.pdf

The Peak-Performance-Percentage Analysis Method for Optimizing Any GPU Workload
https://devblogs.nvidia.com/the-peak-performance-analysis-method-for-optimizing-any-gpu-workload/

Optimize your engine using compute
https://gpuopen.com/optimize-engine-using-compute-4c-prague-2018/

Life of a triangle – NVIDIA’s logical pipeline
https://developer.nvidia.com/content/life-triangle-nvidias-logical-pipeline

GPU-Driven Rendering
http://on-demand.gputechconf.com/gtc/2016/presentation/s6138-christoph-kubisch-pierre-boudier-gpu-driven-rendering.pdf

大変貴重な資料に感謝です。

仕事に対して途方に暮れる気持ち

現在進めている仕事に対して少しだけ途方に暮れる感じがあります。

明確な大タスクが存在せず、明確なミッションも無く、他で溢れた仕事が回ってきているのも多くあります。

その上で、直近でやらなくてはならない難度の高いタスクがあり、それを何からどうやって進めたら良いのか分からずに、途方に暮れてやる気が出てこない感じ。

たぶん自分の能力の限界にもぶつかっていて、焦燥感のようなモヤモヤと自己過信に過ぎない驕りの両方があるんだと思います。

この仕事が上手く行かないのは、自分のフィールドでは無いからだ。他の仕事ならきっと上手く行くはずだ」ってね。

そんな自惚れの気持ちも冷静になって考えれば自分の中から出てきそうです。本当に良く無いですね。

勉強する事は沢山あり、目の前の仕事は沢山あります。

今の自分を冷静に見つめ直し、自分がやりたい事、やらなくてはならない事を、一度振り返ってみる時間が必要かな。

Unreal Fest 2018 メモ

2018年10月18日にパシフィコ横浜で開催された Unreal Fest に参加しました。
僕は Unreal Engine の経験は無かったですが、とても勉強になる1日でした。

Unreal Engine 4を使って地球を衛る方法

Unreal Engine 4.19.2 を使用
プロトタイプ時は Modular Assets を活用していたが後に廃止。

UE4 を使う際の数字のセオリーはどうなのか?
例えば ACTOR 数はどれくらい出せるのか、という最適化の目安を探っていた。

UE4 では破壊表現に Destructible Mesh を使用する。
破壊は Destructible Troubleshooting Guild というのがあるので参考になる
https://wiki.unrealengine.com/Destructible_Troubleshooting_Guide

Stat Scenerendering レンダリングで統計を確認。

Unreal Engine 4.19 では Dynamic Resolution が組み込まれている。
処理負荷に応じて描画解像度を下げられる。

Collision は中々に処理負荷になりがち。Simple と Complex とでは、大きく違う。

Unreal Engine 4 物理ボディhttp://api.unrealengine.com/JPN/Engine/Physics/PhAT/HowTo/EditPhATPhysicsBodies/

物理エンジンと衝突処理 (6/7)
https://www.tuyano.com/index3?id=3456003&page=6

UE4を扱うアーティストがつまづき易いポイントはここだ。
Epic Gamesが解説する注意点と回避法
https://www.4gamer.net/games/210/G021013/20160830082/

Unreal Engine 4 Object pool パターンというものを使う。
Spawn が重いのであらかじめて Object Pool というのを活用。

個人的メモ

UE4 のネットワーク周りは Dedicated Server が使われる。

Dedicated Server Guide (Windows & Linux)
https://wiki.unrealengine.com/Dedicated_Server_Guide_(Windows_%26_Linux)

ゲーム記事のまとめ

Texture Streaming in Titanfall 2
https://www.gdcvault.com/play/1024418/Efficient-Texture-Streaming-in-Titanfall

2000 ギガピクセルのテクスチャの処理
https://www.unrealengine.com/ja/blog/two-thousand-gigapixels-of-textures-anyone

ロード時間とメモリ使用量を徹底削減! 次世代テクスチャストリーミング「Granite SDK」レビュー
https://cgworld.jp/feature/201709-Granite.html

テクスチャ ストリーミング
http://api.unrealengine.com/JPN/Engine/Content/Types/Textures/Streaming/index.html

New: Proxy LOD Improvements
https://docs.unrealengine.com/en-US/Builds/4_20#new:proxylodimprovements

Unreal Engine 4 は、最近独自の LOD 生成システムを持つようになったようです。

GRAPHINE
https://graphinesoftware.com/

「モンスターハンター:ワールド」におけるファイルI/O最適化
http://cedil.cesa.or.jp/cedil_sessions/view/1786

最新タイトルのグラフィックス最適化事例
http://cedil.cesa.or.jp/cedil_sessions/view/1897

「モンスターハンター:ワールド」の最適化事例 現代機のスペックを活かすための取組
http://cedil.cesa.or.jp/cedil_sessions/view/1775

壊れ物への取り組み: いかにベイクを美しく魅せるか!?
http://cedil.cesa.or.jp/cedil_sessions/view/1708

コンテナ、AI、データ、ブロックチェーン、ゲーム開発者とIBM最新技術との交差点
http://cedil.cesa.or.jp/cedil_sessions/view/1931

サーバレスアーキテクチャによるゲームサーバ開発
http://cedil.cesa.or.jp/cedil_sessions/view/1785

コンシューマー・モバイルタイトルでIPv4/IPv6デュアルスタックなP2P通信をサポートしてきた中でやった事 ~ ここ数年のネットワーク環境の変化と社内検証環境の変化
http://cedil.cesa.or.jp/cedil_sessions/view/1820

ゲーム開発に最適なサーバーサイドKotlin Kotlinの導入と基盤ができるまで~http://cedil.cesa.or.jp/cedil_sessions/view/1801

Webプロトコル最前線
http://cedil.cesa.or.jp/cedil_sessions/view/1790

WordPress の設置場所をサブディレクトリに移動

今まで domain.tech でアクセスしていた blog を domain.tech/blog のサブディレクトリに移動しました。
今後、また変えるかもしれないので、手順を忘れないようにメモします。

wordpress の管理画面より、設定 -> 一般設定から WordPress アドレスとサイトアドレスの両方を、
https://domain.tech から https://domain.tech/blog に書き換え

その後、ルートディレクトリに設置していた /var/www/html にある wordpress ファイルを /var/www/html/blog に移動させました。
mv ./* blog
これだけでトップページアクセスは変更出来ました。

先に、サイトアドレスを書き換える必要があるのですが、忘れた場合は wp_options テーブルの siteurl と home のレコードを直接書き換えれば大丈夫みたいです。

その後、各ページのリンク設定でエラーになっていたので、パーマリンク設定の書き換え。
/var/www/html にある .htaccess を書き換えました。

パーマリンク設定で404。
mod_rewriteが有効じゃないと発覚した時。
https://cquery.net/modrewrite_parmlink_404.html

こちらのページが非常に参考になりました。
素晴らしい記事に感謝です。

Frustum Culling

【Unity】【数学】視錐台(Frustum)について(第2回)
http://logicalbeat.jp/blog/831/

View Frustum’s Shape
http://www.lighthouse3d.com/tutorials/view-frustum-culling/view-frustums-shape/

Frustum Culling Gamedev
https://www.gamedev.net/articles/programming/general-and-gameplay-programming/frustum-culling-r4613/

Math for Game Developers – Frustum Culling
https://www.youtube.com/watch?v=4p-E_31XOPM

Calculating the Viewing Frustum in a 3D Space
https://stackoverflow.com/questions/13665932/calculating-the-viewing-frustum-in-a-3d-space

どれも素晴らしい記事です。とても参考になりました。