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

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

Realtime Raytracing 資料

■ DirectX Raytracing

Getting Started with Raytracing
http://forums.directxtech.com/index.php?topic=5860.0

GDC DirectX Raytracing
https://msdnshared.blob.core.windows.net/media/2018/03/GDC_DXR_deck.pdf

Announcing Microsoft DirectX Raytracing!
https://blogs.msdn.microsoft.com/directx/2018/03/19/announcing-microsoft-directx-raytracing/

■ Metal

Metal for Accelerating Ray Tracing
https://developer.apple.com/documentation/metalperformanceshaders/metal_for_accelerating_ray_tracing

Metal for Ray Tracing Acceleration
https://developer.apple.com/videos/play/wwdc2018/606/
https://devstreaming-cdn.apple.com/videos/wwdc/2018/606id8hzoex3kf/606/606_metal_for_ray_tracing_acceleration.pdf?dl=1

Metal の Raytracing は MPS として提供されています
https://developer.apple.com/documentation/metalperformanceshaders

使った事は無いので詳しくないですが、Metal Performance Shader は Metal の上位レイヤーとして提供されているライブラリー (framework) の事で、MPS を使うことで、各 iOS や Mac に最適化された機械学習やレイトレーシングの機能を利用出来るようになるみたいです。

GPU を使った機能なので shader という名前が付いています。恒例的に仕方ないのは分かるのですが、ニューラルネットワークの機能も提供しているフレームワークの名称が shader  って、何だかややこしいですね。

■ Vulkan

NVIDIA RTX: Enabling Ray Tracing in Vulkan
http://on-demand-gtc.gputechconf.com/gtcnew/on-demand-gtc.php?searchByKeyword=s8521&searchItems=&sessionTopic=&sessionEvent=&sessionYear=2018&sessionFormat=&submit=&select=
http://on-demand.gputechconf.com/gtc/2018/presentation/s8521-advanced-graphics-extensions-for-vulkan.pdf

Vegtation系に関するSSS表現のドキュメント

Arion Sub-Surface Scattering
http://support.randomcontrol.com/display/AF33/Sub-Surface+Scattering

#OpenLightBook Chapter 7
https://www.creativeshrimp.com/translucent-grass-lighting-tutorial-book-07.html

Best terrain & vegetation asset/shader
https://forum.unity.com/threads/best-terrain-vegetation-asset-shader.519660/

PORTRAYING LEAVES WITH V-RAY FOR 3DS MAX
https://www.chaosgroup.com/blog/portraying-leaves-with-vray-for-3ds-max

素晴らしい記事です。