Connect 2021 キーノート以外の技術的話題

Connect 2021におけるJohn Carmackのキーノート以外の雑多なまとめです。ザッカーバーグの基調講演の外でも色々興味深い話がConnect講演やTwitter上などで行われていました。
2
Kenji Iguchi @needle

Bozへ:「Facebookアカウントをリンク解除してFBアカウントを削除しても、これまでに買ったVRコンテンツを所有・使用し続けることができる?」 twitter.com/hmltn/status/1…

2021-10-29 22:24:16
Ian Hamilton 🚘 GDC 2023 @hmltn

I’m still kinda unclear here, will I be able to unlink my Facebook account and delete it and keep and use my purchased VR content with Quest 2? @boztank

2021-10-29 11:10:07

John Carmackの喋りきれなかった発表メモ

Kenji Iguchi @needle

カーマックがキーノートのためにまとめていたメモ、本人の覚え書きなので意味がわからない所も多いけど、漏れた話も色々あって面白い twitter.com/ID_AA_Carmack/…

2021-10-29 14:59:47
John Carmack @ID_AA_Carmack

Here are the raw notes that I took preparing for my Connect 2021 talk. There was a good bit more I wanted to cover, as well as a lot of cryptic notes for consideration. dropbox.com/s/ruv739914jzq…

2021-10-29 09:41:19
Kenji Iguchi @needle

放熱の話: 人体をヒートシンク、血液をクーラントとして扱っては?という冗談(おいおいw) コントローラー: Questコントローラーを適当に掴むと大抵左右が違う方になってるの、USB-Aを一発で正しく刺せないのに似ている。色分けで区別する?

2021-10-29 15:02:21
Kenji Iguchi @needle

・コンテンツ量を手軽に増やすのに鏡のように左右反転した世界を作る(意外と新鮮に感じる)、Daedalus等でやってる ・そもそもiOSとAndroidで同じアプリを二度作らなきゃいけない現状が悲劇なので、更に個別対応を増やすべきで無い

2021-10-29 15:05:38
Kenji Iguchi @needle

・フレームの姿勢予測が上手くいってない場合、コンポジターは表示合成時点でそれがわかってる。そういうフレームは低コントラストでよく見えないように表示したほうが快適なのでは?(すげえ発想だ!) ・ちゃんとチューニングすればOculus Browserはあと50%は速くできる

2021-10-29 15:08:50
Kenji Iguchi @needle

Q-Syncって何回か出てくるけど何のことだ…?

2021-10-29 15:11:56
Kenji Iguchi @needle

・ヘッドセット被ってるほうがKN95マスク付けてるより幸せだ(??) ・Air LinkでH.264/265の代わりにコンピュートシェーダーベースのコーデック? ・サーバーサイドで音声を頭部姿勢に合わせてステレオミックスし、ローカルでtimewarp的に補正するべきか? 等々。

2021-10-29 15:16:51

性能70%アップの可能性を謳うApplication Spacewarp

Kenji Iguchi @needle

Application Spacewarp。アプリをQuestで36fpsで動作させ、モーションベクトルとデプスから間のフレームを予測することで72Hzの滑らかな表示を実現する。処理時間に70%ほど余裕ができる。PCのASWとは別の技術で、アプリ側で有効無効を設定できる。 facebook.com/watch/?v=29685… #Connect2021 pic.twitter.com/bmY0IcFsqr

2021-10-29 10:42:10
拡大
Kenji Iguchi @needle

フレームレートが半減したら当然レイテンシーは倍になるため、対策が色々必要になる。レンダリングパイプラインを端から端まで確認して3つの遅延対策を実装した。Phase Sync, Late Latching, Positional Timewarp。 #Connect2021 pic.twitter.com/891WK2Smvp

2021-10-29 10:45:41
拡大
Kenji Iguchi @needle

Application Spacewarp + Positional Timewarp (PTW)を使って36fps動作しているアプリの頭位置の反映遅延は、現行のストアに出ているフルフレームレートのPTWなしアプリよりも「短くなる」。マジすか。 #Connect2021

2021-10-29 10:48:13
Kenji Iguchi @needle

Phase Syncはメインスレッドやレンダリングスレッドの開始を多少遅らせ、コンポジット開始直前ギリギリで完了するようにすることで遅延を低減する。処理が軽いアプリほど大きくずらせるのでより遅延を削れる。 #Connect2021 pic.twitter.com/KkDytNvc7m

2021-10-29 10:53:08
拡大
Kenji Iguchi @needle

処理が重いアプリほどPhase Syncの恩恵は小さくなるが、逆にLate Latchingの恩恵が大きくなる。従来はレンダリングスレッド開始のBのタイミングで頭と手の姿勢情報を更新するが、Late LatchingではGPUにコマンドを投げる直前のCのタイミングでもう一回更新する。 #Connect2021 pic.twitter.com/AlcMzx04GR

2021-10-29 11:02:16
拡大
Kenji Iguchi @needle

C-Bの分だけ、つまりレンダリングスレッドの実行時間いっぱいまで遅延を削れるため、理論上ASW利用アプリで最大25ms、通常のアプリでも最大13ms削ることが可能。UnityやUnrealで使用可能。LLはアプリ側の実装となるため、ネイティブ開発者の場合は自分で組み込む必要がある。 #Connect2021

2021-10-29 11:02:16
Kenji Iguchi @needle

最後にPositional Timewarp。通常のTimewarpは頭の回転の補正を表示直前に行えるが、平行移動の補正は行えない。これを行うのがPTW。元々Application Spacewarpにはモーションベクトルとデプスバッファが必要なので、これを利用し、頭の位置移動に合わせて深度を再投影する。 #Connect2021 pic.twitter.com/uAN3s3ifrj

2021-10-29 11:07:37
拡大
Kenji Iguchi @needle

たとえアプリケーションのレンダリングが36fpsに落ちていても、コンポジターは常にフルフレームレートで動いている。このため、TWおよびPTWは2fに1回のApplication Spacewarpによって予測生成されたフレームに対しても適用できる。 #Connect2021

2021-10-29 11:08:47
Kenji Iguchi @needle

この3つの遅延対策の中で、Phase SyncはOpenXRベースのアプリ全てでデフォルト有効になるので、恩恵にあやかるのが最も簡単。Positional Timewarpは必要なバッファ情報を生成してさえいれば利用できる。Late Latchingは場合によっては手動実装が必要。 #Connect2021

2021-10-29 11:11:07
Kenji Iguchi @needle

もちろんApplication Spacewarpは銀の弾丸ではなく、適さない場面もある。1つのピクセルはそれぞれモーションベクトルとデプスを1つずつしか持てないため、半透明で重なっているものなどは苦手。遠くならあまり気にならないが、手やパーティクルなど、近くで速く動くものには向かない #Connect2021 pic.twitter.com/Drr8Ks3uak

2021-10-29 11:15:16
拡大
Kenji Iguchi @needle

また、Spacewarpは絵を変形する技術であるため、規則的な模様などの上に動く要素がある場合は歪みが目に付く可能性がある。 #Connect2021 pic.twitter.com/Qb8YOrblhf

2021-10-29 11:18:29
拡大
Kenji Iguchi @needle

高速に回転している物体など、モーションベクトルが正確に取れないくらい速い場合も予測フレームが正確に出せない可能性がある。速度を下げるか、そこだけシェーダーを使ってモーションベクトルを切ってしまう手もある。 #Connect2021 pic.twitter.com/NQhIyhqaYH

2021-10-29 11:20:28
拡大
Kenji Iguchi @needle

モーションベクトルをどう出力するかはアプリ開発者に委ねられているため、見栄えが良くなるように色々工夫してみるのをお勧めする。詳しくはドキュメントを参照。 #Connect2021

2021-10-29 11:22:16