フォト

Google AdSense

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

« 2016年6月 | トップページ | 2016年8月 »

2016.07.27

EidosがR&Dしてる新しいエンジンのレンダリングとカリングの話

EidosがR&Dしてる新しいエンジンのレンダリングとカリングの話が出てますね。

Deferred+: Next-Gen Culling and Rendering for Dawn Engine
https://community.eidosmontreal.com/blogs/next-gen-dawn-engine

まだあまり読めてないですが、Dawn Engineというエンジンが新しく作ってるエンジンで、それのカリングの話とレンダリングの話が続いてますね。

読んでる感じでは、Direct3D12やVulkanへの移行に合わせて新しいアプローチにチャレンジしてるようですね(DX11世代をまるまる移植みたいなことではなく)。

カリングの方はGPUをがっつり使ったCompute Shaderベースな用ですなぁ。


レンダリングの方はDeferred RenderingベースだけどDeferred+という新手法を考えてるみたいですね。マテリアルIDを16bit Depthに書き込んで、マテリアルが複数でも対応できるようなアプローチなようですね。

なんでDepthに書き込むか考えてみたけど、Depthならピクセルシェーダなしで頂点シェーダだけ実行して書き込めるかー。ライトの扱いはTiledやClusteredということみたいですねー。

わりとDirect3D12やVulkanへの移行がスムーズだとWindows 7や8.xをサポートしない海外のゲーム会社多そうだなぁ。

CataclysmデモのNVIDIAの記事

CataclysmデモについてNVIDIAの開発者blogでも記事が出てますね。

Cataclysm: a FLIP Solver with GPU Particles
https://developer.nvidia.com/cataclysm-flip-solver-gpu-particles

2016.07.25

NVIDIAの新しい流体デモCataclysmの動画とUE4インテグレーション

NVIDIAが新しい流体シミュレーションのSolverを試したCataclysm なるデモの動画とUnreal Engine 4向けのインテグレーションのリポジトリが公開になっています。

Cataclysm (UE4やGameWorksと紐づいたGitHubアカウントがないと見れないかも)
https://github.com/NvPhysX/UnrealEngine/tree/CataclysmDemo

結構広域でも行けそうですね。

UE4でのデフォルトは512 x 512 x 256のボクセル(一応解かない部分はSparse Voxelの模様)でGPUで解くみたいですねぇ。

続・マルチGPUの話Alternate Frame Rendering

先日マルチGPUの話を書いたけど、,Alternate Frame Renderingについてちょうど”Rise of the Tomb Raider”の話とかOpenGLのNV_gpu_multicast拡張などの話題が出てタイムリーだったので、書いておいた。

マルチGPUの話 Direct3D12とOpenGLのAlternate Frame Renderingの話
http://www.shader.jp/?p=1765

SIGGRAPH 2016 : Physically Based Shading in Theory and Practiceの動画

SIGGRAPH 2016のPhysically Based Shading in Theory and Practiceがライブストリーミングしていて、そのあとも動画が公開されています。

SIGGRAPH 2016 Course: Physically Based Shading in Theory and Practice(スライドなどはこちらに上がる予定)
http://blog.selfshadow.com/publications/s2016-shading-course/

一部権利関係で見れないセッションがありますが、それでも見れるのがいいですね。

NVIDIAが公開していたVulkan C++ラッパーがKhronos Groupのリポジトリに移行

NVIDIAが公開していたVulkan C++ラッパーがKhronos Groupのリポジトリに移行したようですね。

Vulkan-Hpp
https://github.com/KhronosGroup/Vulkan-Hpp

なかなかCだとつらい部分があったので、これがKhronos Groupの方でメンテされていくとありがたいですね。

2016.07.16

Direct3D12のマルチGPU使用方法について書いた

MicrosoftがマルチGPUの新しいサンプル公開したのをきっかけにちょっとまとめました。

Direct3D12のマルチGPU使用方法
http://www.shader.jp/?p=1752

Radeon RX 480のCrossfireに関連してMicrosoftがマルチGPUの利用に関しては簡単に利用できるようにAPIサンプルやライブラリを公開するという話でしたが、この話題でしたね。

2016.07.12

最近

久々に締め切りのある仕事の締め切りを片付けて、人間ドックですが、なかなかバリウムがなー。

2016.07.02

HPG 2016 : Infinite Resolution Textures

High-Performance Graphics 2016(HPG 2016)のプログラムのページで発表スライドが公開され始めてるのですが、"Infinite Resolution Textures"というのはちょっと気になりました。


論文
https://www.researchgate.net/publication/303939596_Infinite_Resolution_Textures

スライド
http://www.highperformancegraphics.org/wp-content/uploads/2016/Reshetov2016.pdf

いわゆる超解像度技術と言える気もしますが、低解像度テクスチャを高解像度に見せる手法ですが、スライドでの紹介見てると将来のGPU機能に組み込まれてシェーダからInfinite Resolution Texturesへのサンプリングができそうなイメージはいいです。

手法としては大雑把には、テクスチャの高周波成分と低周波成分をわけて考えて、高周波成分の部分は事前生成した滑らかなシルエットベースのエッジ情報を使って、低周波成分は元のラスターイメージを使うみたいですね(そこからどうやって最終的な絵を作るかはこれから見ます)。

シェーダでのサンプリングのイメージは下記のような感じで、ランタイムで計算したduvというパラメータをuvに加えて与えるみたいですね。これは距離をベースにしたパラメータのようですが、ちょっと論文を読まないといけませんね。

float4 color = colorMap.SampleLevel(colorSampler, uv + duv, lod);

今後、4K、8Kとディスプレイ解像度が上がっていくとしたらエッジ情報のサイズが(メモリ的に)小さければ、なかなか活用できるシーンは多いかもしれないですね。

もちろんこの手法でも細かな部分での解像度の不足は完全には解消できないかもしれませんが、元画像の n 倍までなら気にならないとかあれば、元画像はそこまでは用意しておく、でいいんじゃないかとは思います。

« 2016年6月 | トップページ | 2016年8月 »