フォト

Google AdSense


  • AdSense
無料ブログはココログ

2018.02.19

Xbox OneのHDRスクリーンキャプチャ機能を使ったHDRタイトルの分析

HDR games analysed
https://www.resetera.com/threads/hdr-games-analysed.23587/

Xbox OneのHDRスクリーンキャプチャ機能を使ったHDRタイトルの分析について書いてる記事があります。

Xbox OneはSとXがHDR対応(ただし、4Kでグラフィックス強化のエンハンスモード選ぶならXを選ぶといいです)なので、そのスクリーンキャプチャをHDRで行って輝度に応じて、輝度マップに変換して分析ということをやってるみたいですね(ちなみに、Windows 10 Fall Creators UpdateではHDRキャプチャはできません)。

通常、HDRのゲームはユーザー環境のディスプレイの輝度をハードウェア的に取得することはできないので手動で調整させて、それをもとにトーンマップしますが、スクリーンキャプチャではトーンマップ前のが取れてるようですね。

タイトルごとに、最大nitsの違いとか興味深いですね。世の中では、500~1,500nitsぐらいのテレビやモニタが多いと思うのですが、ゲーム自体は4,000nitsぐらいまでは行けるようなゲームは多いようですね。

ハードウェアの進歩とかすぐでしょうから、テレビとか市販のデバイスが500~1,500nitsが多くてもライティングの部分などをセーブして調整するということをしなくても良さそうですね(トーンマップで解決)。

いくつかのタイトルではシーン内で一番起動が高いだろう太陽は10,000nits(本当はもっと高いですが、規格の上限)なんかで設定されているのがわかりますね。

あと、日本のタイトルだとFF15とかモンハンワールドとかありますね。

この手法は、HDRに対応しようという開発者にはなかなか興味深いですね。Xbox One Xが検証用に欲しくなりますね。もちろんHDRテレビやディスプレイに接続しないとHDRモードにできないので、それも必要かと思います。


2018.01.28

Visibility BufferとCluster CullingとTriangle filteringを振り返る2018頭

GPU Zen 2の執筆者募集のタイミングで公開されたThe Forgeですが、最初に公開されたときよりVisibility Buffer(Examples_3)のサンプルが更新されたので動かしてみました。

vb

https://github.com/ConfettiFX/The-Forge

最初のビルドではAssimpまわりのライブラリの設定があったんですが、それはしなくてよくなりましたね(アセットはGitHubにはないのでWindowsならPRE_BUILD.batで取ります)。自分の環境(Win 10 + GeForce GTX 1080)ではDX12/Vulkan両方動きました。

今回の実装に関しては、GitHubのサンプルのDocumentに資料があります。

https://github.com/ConfettiFX/The-Forge/tree/master/Examples_3/Visibility_Buffer/Documentation

この実装は、もともとはWolfgang Engel氏がGDC Europe 2016で紹介した下記のリンクの話でしたが、上記の発表よりも手法のフォローが増えているように見えますので、今読むなあら上がいいんでしょうね。


https://www.gdcvault.com/play/1023792/4K-Rendering-Breakthrough-The-Filtered

この実装は、Visibility Bufferに目が行きますが、Cluster CullingとTriangle filteringなども実装されたものになっています。

・Visibility Buffer
Visibility Buffer自体は、2013年に提案されたものでしたね。

http://jcgt.org/published/0002/02/04/

すぐ、使おうという人が多くなかったのは、おそらく今と違ってまだ4Kへの対応の必要性が少なかったからかと思います。

G-bufferの帯域の問題というのは、1080pの時に比較してゲームの4K対応なって問題としてあげられることが増えてきました。

あとは、まだ実装例を見れていないですがメモリが遅いモバイルなどで通常のDeferred Renderingとどちらが良いかという議論はありそうですね。Metal 2やVulkanの世代では実装例が出るか気になるところですね(既存のゲームエンジンを使用せずにフルスクラッチでレンダリングのコードを書くようなタイトルがあれば...ですが)。

・Cluster CullingとTriangle filtering

Cluster CullingやTriangle filteringに関してSIGGRAPH 2015: Advances in Real-Time Rendering in GamesのGPU-Driven Rendering Pipelinesかと思います。

http://advances.realtimerendering.com/s2015/aaltonenhaar_siggraph2015_combined_final_footer_220dpi.pdf

これは、Assassin’s Creed Unityの大規模なパリの街の描画に使われた手法で、メッシュを64頂点のストリップを1 Clusterとして画面内での可視判定(こっちがCluster Culling)を行って、描画に積むメッシュのClusterを決定する(描画に使う三角形を抽出するのがTriangle filteringでしょう)というものですね。

こうした技術が使えるようになったのはOpenGL/DX12/VulkanなどのMulti DrawやExecute Indirectのような描画命令の発達が背景にあるわけですね。特にDeferred RenderingのG-buffer描き込みなどはシェーダのバリエーションがあまりないので相性がいいわけですね。

Cluster Cullingは、AMDはサンプルを公開していますし、Wolfgang Engel氏の発表などになるわけですね。

GeometryFX 1.2 – Cluster Culling
https://gpuopen.com/geometryfx-1-2-cluster-culling/

Cluster CullingとTriangle filteringに関しては、Visibility Bufferでない環境でも有効ですので、こちらだけ採用してみたいというのもありなんでしょうね。

なお、これらを一歩進めよう(マテリアル周りのことも考慮しつつ)としているのが、Eidos MontrealのDawn EngineのDeferred Plusでしょうね。これに関しては下記に記事がありますが、GPU Zenの1に記事がありますのでそちらを見るとよいかと思います。

DEFERRED+: NEXT-GEN CULLING AND RENDERING FOR DAWN ENGINE
https://eidosmontreal.com/en/news/deferred-next-gen-culling-and-rendering-for-dawn-engine

・まとめ

従来型のDeferred Renderingの問題である帯域の問題やマルチレイヤーマテリアルへの柔軟な対応(G-bufferにDiffuse AlbedoやMetalic, Roughnessなどのパラメータを1種類しか格納できない)などの改善に関しては、DX12/Vulkan/Metalの世代にあった描画パイプラインの提案は今年あたりから様々提案がされてきそうですね。

その出発として、このサンプルやこの記事で紹介している技術を学ぶのは良いんじゃないかと思います。

2017.12.25

HDRモニタ導入

職場では使っていたのですが、自宅にもHDRモニタを導入しました。

今回は、自分の周りで使用している人がいなかったBen-QのSW271ですね。

http://www.benq.co.jp/product/monitor/sw271/

テレビも含めてWindows 10にはHDRモニタをいろいろとつないでいますが、こいつは最大輝度に関しては高くはない印象ですが、Windows 10のHDRモードでもデスクトップが使えるのが良いですね。試した経験では、輝度の高いディスプレイなどデスクトップの発色がきつい印象のものがあったりしたので。

ちなみに、最近ようやくWindowsでChromeでYoutube HDR動画が見れるようになったり、NetflixのWindows 10のアプリ版やEdgeで見れるようになったりと、タイミング的に見るものが増えてよかったです。

あと、自宅に導入されたことでShader.jpで記事を書いたりサンプルを公開することは増えるとは思います。

2017.11.20

USB Type-CしかないPCはHDR出力できるのか?

Surface Book 2とかUSB Type-CしかないPCはHDR出力できるのか気になってるんですが、自分で試してみるしかなさそうですなぁ、つづく。

なお、Type-Cの帯域が10Gbpsと聞いて、18Gbpsないのかよ...って感じで若干、あきらめムードではありますが解像度下げれば出るとかであれば、信号の出力は何とかできそうな感じはありますね。

とりあえず、HDR対応をうたうType-C変換や18Gbps対応ケーブルはありました。

2017.09.27

OpenGLの赤本みたいなMetalのSwift本

OpenGLの赤本のところからSwiftでMetalの本"Metal Programming Guide: Tutorial and Reference via Swift"が出るようですね。

出版社の紹介ページ
https://www.pearson.com/us/higher-education/program/Clayton-Metal-Programming-Guide-Tutorial-and-Reference-via-Swift/PGM1255392.html

Metalを直接書くことなんてあるかな...と思いつつも目次(Contentsのところ)見てるとPart III: Data Parallel Programmingで、あまり3Dグラフィックスの本で見かけないタイプの内容も扱うようですね。

Chapter 15: The Metal Compute Pipeline
Chapter 16: Image Processing in Metal
Chapter 17: Machine Vision
Chapter 18: Metal Performance Shaders Framework
Chapter 19: Neural Network Concepts
Chapter 20: Convolutional Neural Networks

2017.09.14

GPD Pocketでゲームするためにゲームパッド購入

GPD PocketはGPD Winと違って本体にゲームパッドの機能がないので、ゲームパッドどうしようかと探してみたけど、BluetoothでXInput互換のゲームパッドがあったので購入しました。

このサイズなら一緒に持ち運んでも問題なさそうですね。

2017.08.09

GPD Pocket使ってみて





最近は、日本のAmazonでも6万円台(クラウドファウンディングの早期じゃない価格が$499なので、そんなにレートは悪くない?)でGPD Pocketがすぐに送られるという状態のものが増えてきたわけですが、入手して結構立ってきたので感想書いておきます。

■前提となる話

GPD Pocketを買うまではカンファレンスのメモ端末としてはiPad Pro 9.7もしくはSurface 3を使っていました。

カンファレンスのメモ端末は、バッテリーの駆動時間がながく(モバイルバッテリーで充電ができる)、軽量でキーボードが物理的に確保されていて、ひざ上に乗せてタイピングができて、通信ができることですね。このうち通信はテザリングとかあるのでプライオリティはちょいと低いですね。

軽さ、薄さ、動作の快適さではiPad Pro 9.7が便利な感じですね。どちらもSIMがささるので通信環境は変わらない(ただし、海外はApple SIM内蔵のiPadの方が便利)し、1日のカンファレンスであればバッテリーの差はあまりないですね。

■端末のサイズ
端末のサイズ、重量ではGPD Pocketがぶっちぎりにいいですね。

正直、iPad Pro 9.7の時点であまり不満がなかったのです。自分の持ってるバッグでもこれ以上小さくする必要もなかったので。

ただ、Surface 3との比較としてはいいですね。

■入力、「キーボード
GPD PocketはタッチパネルとLenovoとかにあるようなポインタがあるんですが、自分はタッチパネルがあればOKですね。

キーボードは結構クセがあると思ってたんですが、確かにクセがありますねぇ。まだ慣れてないです。

キーピッチが狭い部分と英字キーボード(これは英字の方が好きな人は問題ないと思います)が問題になるかと思いましたが、":"(コロン)とか";"(セミコロン)がちょっとイレギュラーな位置にあるので、これらを使うプログラミング言語での開発では苦労するかも。

■画面サイズ

これはWindowsが悪い気がしますが、情報量は解像度の差もあってiPad Pro 9.7の方が快適ではありますね。

■プログラミング

iPad Pro 9.7ではなくこちらメインで持ち歩くようになったのはやっぱりVisual Studioが動くところですね。

Visual Studioはフルでなく、Visual Studio Codeでも良いかもしれませんね。

あと速度は遅いですが、GPUはDX12は一応動きます。

バッテリー駆動でデバッグビルドのMiniEngineが5 fpsという感じですね。




■ソフトウェア

あとは、Officeがまるまる動くのはよいですね。PowerPointのプレゼンテーションはそのまま行くので。

そういや、自分は下記のようなUSB Type-Cハブを買っておきました。HDMI出力ができるようにしました。まぁ、ディスプレイ出力はmicro HDMIがもともとあるのでそれを変換でもいいのでしょうが。



■通信
iPad Pro 9.7やSurface 3ではSIMがささって便利だったんですが、ないのは少し不便ですが、まぁテザリングですかね。

逆に海外ではSIMで通信しなかったりするので困らなさそうではあります。

■ストレージ
ひとまず128GBは合格だと思いますが、microSDスロット欲しかったですね。

ソースコードとかそっち置きたくなるので。

■バッテリー
まだあんまり検証できていません。

おそらくCEDECで1日カンファレンスどれだけ保つかわかりそうです。

ちなみに、わりとほかの方がレビューやTips書いてますが、スリープの挙動は賢くないです。Surface 3はよく電源管理しっかりしてたんで、OSというよりはハードの問題なんですかね?割と毎回切ってます。

■ケース
ケースは結局下記のを買いました。すぐに出し入れできてスリムなのが理由ですね。



■総評

今のところ購入してよかったとは思いますが、CEDECで持参してみてというところですね。

あとは、とにかく外出時のプログラミング用途とかプレゼンマシンとしての活用ですよね。、結局のところプログラミングしないならiPad Pro 9.7で問題ないわけだったので。

2017.08.01

SIGGRAPH 2017のCall of Duty: Infinite Warfareのマルチレイヤーマテリアルのセッションスライド

SIGGRAPH 2017 Course: Physically Based Shading in Theory and Practice
http://blog.selfshadow.com/publications/s2017-shading-course/

SIGGRAPH 2017 Course: Physically Based Shading in Theory and PracticeのPractical Multilayered Materials in Call of Duty: Infinite Warfareが今年のゲーム出身のセッションとして興味深いですね。

Practical Multilayered Materials in Call of Duty: Infinite Warfare
https://research.activision.com/t5/Research-Papers/Practical-Multilayered-Materials-in-Call-of-Duty-Infinite/ba-p/10337316

近年のフォトリアルのレンダリングのゲームでは物理ベースレンダリングなどが取り入れられてきていますが、ゲームのマテリアルでは1つのピクセルのマテリアルは1つのBRDFパラメータだけを処理するということが多いです(例外的に自動車など用にClear Coatを専用処理することはある)。

現実の世界では、光を吸着する物体、オイルが塗られた物体やラッカーが塗られた物体、薄い膜などのスキャッタリングする物体など複雑な表現の物体があるわけですが、こうしたマルチレイヤーのマテリアルの実装についてのアプローチを紹介しています。

なお、Call of Duty: Infinite WarfareではForward+ が採用されているようですね。従来型のDeferred RenderingのG-bufferではなかなかパラメータを格納しきるのが難しいということなんでしょうね(1つのパラメータのマテリアルの格納が限界なため)。

上記とは違ったアプローチで同じように複雑なマテリアルへの対応を目指そうとしているのはEidos MontrealのDAWN ENGINEのDeferred+なのかもしれませんね(DEFERRED+はマテリアルの拡張以外に、カリングやDraw Callをまとめたりなど描画のパイプライン全体に大きな手が入ってるわけですが)。

DEFERRED+: NEXT-GEN CULLING AND RENDERING FOR DAWN ENGINE
https://eidosmontreal.com/en/news/deferred-next-gen-culling-and-rendering-for-dawn-engine

Deferred+については上記記事のほかに以前出たGPU Zenが参考になります。

今年から来年にかけてマルチレイヤーのPBRや複雑なマテリアルへの対応を果たす、タイトルやエンジンというのは増えてくるのかもしれないですね。そう考えるとPBRマテリアルが1つしか格納できないDeferred Renderingのタイトルなどは古い画みたいな話になるのかもしれないですね。

そうしたことから次のステップを考える時期が来ているのかもしれませんね。

2017.07.10

Deferred+のサイトの復活

Eidos MotrealのWebサイトが大幅リニューアルした際に、Deferred+の記事が消えてしまったのですが、最近復活していたことに気づきました。

DEFERRED+: NEXT-GEN CULLING AND RENDERING FOR DAWN ENGINE
https://eidosmontreal.com/en/news/deferred-next-gen-culling-and-rendering-for-dawn-engine

GPU Zenも発売されましたし、そのあたりで復活 + 書籍の紹介が追加されていますね。

おそらく、これから1年ぐらいは従来型のDeferred Renderingの問題点を解消するような様々な発明が出てきそうではあります(Forward+やClustered ForwardのようなForwardに戻るケースもあるでしょうが)が、このDeferred+がまずは議論のきっかけにはなりそうですね。

2017.05.21

GPU ZenというGPUテクニック集めた新しい書籍

GPU Proなどの編集務めたWolfgang Engel氏のGPUテクニック集めた新しい書籍が出たようですね。

書籍のサイト
http://gpuzen.blogspot.jp/

Amazonを見ているとKindle版が、紙に比べて格段に値段が安いのでデジタルで読むのがいいのかもしれないですね。ただ、Kindleの電子ペーパーのやつでは対応しないようなのでiPadとかタブレットいると思います。

目次なんかを見ていると以前,Eidos Montreaのblogで公開されていた"Deferred+: Next-Gen Culling and Rendering for Dawn Engine"の詳細な記事が入っていますが、Webの記事消えちゃったので再度見たかったんですよね(ちなみに、購入してみました30ページ近くの解説.シェーダの提示もありでした。)。

Table of Content

Geometry Manipulation (Christopher Oat)
1.Attributed Vertex Clouds by Willy Scheibel, Stefan Buschmann, Matthias Trapp, and Jürgen Döllner
2.Rendering Convex Occluders with Inner Conservative Rasterization by Marcus Svensson and Emil Persson

Lighting (Carsten Dachsbacher)
1.Rendering stable indirect illumination computed from reflective shadow maps by Louis Bavoil and Holger Gruen
2.Real-Time Participating Media Effects Using Extruded Light Volumes by Nathan Hoobler, Andrei Tatarinov and Alex Dunn

Rendering (Mark Chatfield)
1.Deferred+: Next-Gen Culling and Rendering for Dawn Engine by Hawar Doghramachi and Jean-Normand Bucci
2.Programmable per-pixel sample placement with conservative rasterizer by Rahul P. Sathe
3.Mobile Toon Shading by Felipe Lira, Flávio Villalva, Jesus Sosa, Kléverson Paixão and Teófilo Dutra
4.High-Quality GPU-efficient Image Detail Manipulation by Kin-Ming Wong and Tien-Tsin Wong
5.Real-Time Linear-Light Shading with Linearly Transformed Consines by Eric Heitz and Stephen Hill
6.Profiling and Optimizing WebGL Application Using Google Chrome by Gareth Morgan

Screen-Space (Wessam Bahnassi)
1.Scalable Adaptive SSAO by Filip Strugar
2.Robust Screen Space Ambient Occlusion in 1 ms in 1080p on PS4 by Wojciech Sterna
3.Practical Gather-based Bokeh Depth of Field by Wojciech Sterna


Virtual Reality (Eric Haines)
1.Efficient Stereo and VR Rendering by Iñigo Quilez
2.Understanding, Measuring and Analyzing VR Graphics Performance by James Hughes, Reza Nourai, and Ed Hutchins

Compute (Wolfgang Engel)
1.Optimizing the Graphics Pipeline with Compute by Graham Wihlidal
2.Real Time Markov Decision Processes for Crowd Simulation by Sergio Ruiz and Benjam´ın Hernández

より以前の記事一覧