カテゴリー別アーカイブ: OpenGL

Syysgraph 2018のEA SEED の発表 Modern Graphics Abstractions & Real-Time Ray Tracingのスライド

Syysgraph 2018のModern Graphics Abstractions & Real-Time Ray Tracingスライドが公開になっています.

Modern Graphics Abstractions & Real-Time Ray Tracing
https://www.ea.com/seed/news/syysgraph-2018-modern-graphics-abstractions-real-time-ray-tracing

今年のHalcyonの発表は色々とありましたが,集大成的な発表になっています.

  • Vulkan版対応の話
  • Render Graphの話
  • マルチGPUでのGPUの仮想化
  • Machine Learning対応
  • アセットパイプライン
  • シェーダ
    • マルチプラットフォーム対応
    • Wave / Subgroup対応
  • レイトレーシング
  • ハイブリッドレンダリング
  • Transparent Shadow
  • Transparency & Translucency
  • GI
  • デノイズ

VulkanでGeForce RTXシリーズ向けレイトレーシング拡張とドライバの公開

VulkanでGeForce RTXシリーズのレイトレーシング機能を使用する拡張(VK_NV_ray_tracing)の仕様書が出たようです.

https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VK_NV_ray_tracing

ドライバは416.81以降となるようです.

http://www.nvidia.com/Download/driverResults.aspx/139606/en-us

ShaderConductor : Microsoftのオープンソースシェーダ言語変換ツール

MicrosoftがShaderConductorというシェーダ変換ツールを公開しています.

ShaderConductor
https://github.com/Microsoft/ShaderConductor

このツールは,HLSLから以下のシェーダを出力ができるものになっています.

  • DXIL (Direct3D12)
  • SPIR-V (Vulkan)
  • GLSL (OpenGL)
  • ESSL (OpenGL ES)
  • MSL (Metal)
  • HLSL (Direct3D9/10/11)

DXILとSPIR-V はDirectXShaderCompilerから出力を行い,残りはSPIR-VをSPIR-V-Crossを使って出力するというものになっています.

DirectXShaderCompilerによるVulkan向けSPIR-V出力に関しては下記の記事などが参考になると思います.EA SEEDの事例ですがVulkan向けのシェーダをHLSLで開発する話があります.DirectXShaderCompilerからのフローはだいぶ完成度が高まっている感じはあります.

Running Microsoft FXC in Docker
https://www.wihlidal.com/blog/pipeline/2018-09-17-linux-fxc-docker/

Khronos Munich 2018 – Halcyon and Vulkan
https://www.ea.com/seed/news/khronos-munich-2018-halcyon-vulkan

日本語での関連記事は新masafumi’s Diaryの方で書いています.

EA SEEDのHalcyonのDirect3D12やVulkan向けのシェーダの話
http://masafumi.cocolog-nifty.com/masafumis_diary/2018/10/ea-seedhalcyond.html

HalcyonのVulkan対応の話
http://masafumi.cocolog-nifty.com/masafumis_diary/2018/10/halcyonvulkan-c.html

VulkanからRTXのレイトレーシングを行うNVIDIAの記事

NVIDIAの開発者向けサイトでIntroduction to Real-Time Ray Tracing with Vulkanという記事が公開されています.

Introduction to Real-Time Ray Tracing with Vulkan
https://devblogs.nvidia.com/vulkan-raytracing/

この記事ではVK_NVX_raytracing拡張からRTXを利用することが紹介されています(この記事執筆時点では公開されていない拡張です).

記事を読むとわかりますが,VK_NVX_raytracingによるレイトレーシングはOptiXやDXRと比較的近い構造になっています.シェーダはGLSLで記述をします.

TuringアーキテクチャのGPUの新機能のOpenGL/Vulkan拡張の記事

NVIDIAのCyril Crassin氏がTuringアーキテクチャのGPUの新機能のOpenGLとVulkan拡張をまとめた記事を書いています.

NVIDIA Turing Vulkan/OpenGL extensions
https://blog.icare3d.org/2018/09/nvidia-turing-vulkanopengl-extensions.html

今回OpenGLとVulkanの拡張として公開されているのは以下の機能です.以前の記事で公開された新機能以外のものも入っています.

  • Ray-Tracing Acceleration
  • Mesh Shading
  • Variable Rate Shading
  • Exclusive Scissor Test
  • Texture Access Footprint
  • Derivatives in Compute Shader
  • Barycentric Coordinates and manual attributes interpolation
  • Ptex Hardware Acceleration
  • Representative Fragment Test
  • Multi-View Rendering

Filament : Googleのオープンソースリアルタイムレンダリングエンジン

GoogleがFilamentというオープンソースのリアルタイムレンダリングエンジンを公開しています.

Filament
https://github.com/google/filament

このエンジンはC++とJava/JNIがあり,Android,Linux,macOS,Windowsをサポートします.

バックエンドとしてOpenGL 4.1, OpenGL ES 3.0(Android), Vulkanがあります.macOSはOpenGLかMoltenVkによるVulkanで動作させる形になるようです.

物理ベースのクラスターフォワードレンダリングを採用していますが,ライトの単位なども物理的な単位ベースのようです.

  • Clustered forward renderer
  • Cook-Torrance microfacet specular BRDF
  • Lambertian diffuse BRDF
  • HDR/linear lighting
  • Metallic workflow
  • Clear coat
  • Anisotropic lighting
  • Approximated translucent (subsurface) materials (direct and indirect lighting)
  • Cloth shading
  • Normal mapping & ambient occlusion mapping
  • Image-based lighting
  • Physically-based camera (shutter speed, sensitivity and aperture)
  • Physical light units
  • Point light, spot light and directional light
  • ACES-like tone-mapping
  • Temporal dithering
  • FXAA or MSAA
  • Dynamic resolution (on Android)

将来サポートしたい機能としては以下のような要素があるようです.

  • IES light profiles
  • Area lights
  • Fog
  • Color grading
  • Bloom
  • TAA
  • etc.

AMD Compressonator 3.0リリース

AMD Compressonatorの3.0がリリースになっています.

Compressonator V3.0 Release Brings Powerful New 3D Model Features

https://gpuopen.com/compressonator-v3-0-release-brings-powerful-new-3d-model-features/

今回のバージョンからテクスチャの圧縮機能に加えてメッシュの最適化やメッシュの圧縮などが入ってきています.メッシュの圧縮にはGoogleのDracoに対応したようです.

V-EZ : Vulkanを簡易化したライブラリをAMDが公開

AMDがVulkanを簡単に使用できるようにV-EZというフレームワークをGitHubで公開しています.

V-EZ brings “Easy Mode” to Vulkan
https://gpuopen.com/v-ez-brings-easy-mode-vulkan/

V-EZリポジトリ
https://github.com/GPUOpen-LibrariesAndSDKs/V-EZ

VulkanのAPIの構造を図示したものとV-EZを図示したものがリポジトリで提示されています.

GLSLのシェーダからすぐに描画できるような構造になっているようですね.