Submit Search
Upload
【GTMF2018OSAKA】ScriptableRenderPipelineでアプリに最適な描画をしよう
•
6 likes
•
4,823 views
Unity Technologies Japan K.K.
Follow
2018/6/27に開催されたGTMF2018OSAKAの講演資料です。 講師:黒河 優介(ユニティ・テクノロジーズ・ジャパン合同会社)
Read less
Read more
Technology
Report
Share
Report
Share
1 of 95
Download now
Download to read offline
Recommended
UniTask入門
UniTask入門
torisoup
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法
小林 信行
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
UnityTechnologiesJapan002
Unity dojo amplifyshadereditor101_jpn-jp
Unity dojo amplifyshadereditor101_jpn-jp
小林 信行
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
Unity Technologies Japan K.K.
【Unity道場】新しいPrefabワークフロー入門
【Unity道場】新しいPrefabワークフロー入門
Unity Technologies Japan K.K.
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
エピック・ゲームズ・ジャパン Epic Games Japan
Recommended
UniTask入門
UniTask入門
torisoup
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法
小林 信行
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
UnityTechnologiesJapan002
Unity dojo amplifyshadereditor101_jpn-jp
Unity dojo amplifyshadereditor101_jpn-jp
小林 信行
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
【CEDEC2018】Scriptable Render Pipelineを使ってみよう
Unity Technologies Japan K.K.
【Unity道場】新しいPrefabワークフロー入門
【Unity道場】新しいPrefabワークフロー入門
Unity Technologies Japan K.K.
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
エピック・ゲームズ・ジャパン Epic Games Japan
Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編
Unity Technologies Japan K.K.
Unityアニメーションシステムの 今と未来の話
Unityアニメーションシステムの 今と未来の話
Unity Technologies Japan K.K.
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
Makoto Goto
UE4におけるレベル制作事例
UE4におけるレベル制作事例
エピック・ゲームズ・ジャパン Epic Games Japan
UniRx完全に理解した
UniRx完全に理解した
torisoup
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
historia_Inc
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
Takehito Gondo
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
エピック・ゲームズ・ジャパン Epic Games Japan
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
エピック・ゲームズ・ジャパン Epic Games Japan
中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~
ProjectAsura
Observableで非同期処理
Observableで非同期処理
torisoup
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
torisoup
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作
UnityTechnologiesJapan002
若輩エンジニアから見たUniRxを利用したゲーム開発
若輩エンジニアから見たUniRxを利用したゲーム開発
Hirohito Morinaga
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
historia_Inc
出張ヒストリア ブループリントを書くにあたって大切なこと
出張ヒストリア ブループリントを書くにあたって大切なこと
historia_Inc
GCC2016 ゲームエフェクト制作の現状報告
GCC2016 ゲームエフェクト制作の現状報告
t h
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
UnityTechnologiesJapan002
日本一詳しい人が教えるUE4
日本一詳しい人が教えるUE4
エピック・ゲームズ・ジャパン Epic Games Japan
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
エピック・ゲームズ・ジャパン Epic Games Japan
【GTMF2018TOKYO】ScriptableRenderPipelineでアプリに最適な描画をしよう
【GTMF2018TOKYO】ScriptableRenderPipelineでアプリに最適な描画をしよう
Unity Technologies Japan K.K.
Unity名古屋セミナー [Shadowgun]
Unity名古屋セミナー [Shadowgun]
MakotoItoh
More Related Content
What's hot
Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編
Unity Technologies Japan K.K.
Unityアニメーションシステムの 今と未来の話
Unityアニメーションシステムの 今と未来の話
Unity Technologies Japan K.K.
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
Makoto Goto
UE4におけるレベル制作事例
UE4におけるレベル制作事例
エピック・ゲームズ・ジャパン Epic Games Japan
UniRx完全に理解した
UniRx完全に理解した
torisoup
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
historia_Inc
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
Takehito Gondo
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
エピック・ゲームズ・ジャパン Epic Games Japan
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
エピック・ゲームズ・ジャパン Epic Games Japan
中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~
ProjectAsura
Observableで非同期処理
Observableで非同期処理
torisoup
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
torisoup
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作
UnityTechnologiesJapan002
若輩エンジニアから見たUniRxを利用したゲーム開発
若輩エンジニアから見たUniRxを利用したゲーム開発
Hirohito Morinaga
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
historia_Inc
出張ヒストリア ブループリントを書くにあたって大切なこと
出張ヒストリア ブループリントを書くにあたって大切なこと
historia_Inc
GCC2016 ゲームエフェクト制作の現状報告
GCC2016 ゲームエフェクト制作の現状報告
t h
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
UnityTechnologiesJapan002
日本一詳しい人が教えるUE4
日本一詳しい人が教えるUE4
エピック・ゲームズ・ジャパン Epic Games Japan
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
エピック・ゲームズ・ジャパン Epic Games Japan
What's hot
(20)
Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編
Unityアニメーションシステムの 今と未来の話
Unityアニメーションシステムの 今と未来の話
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
それを早く言ってよ〜パフォーマンスを出すエフェクト制作のポイント
UE4におけるレベル制作事例
UE4におけるレベル制作事例
UniRx完全に理解した
UniRx完全に理解した
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
【出張ヒストリア2017】新しいUnreal AudioEngineでインタラクティブサウンドコンテンツはどこまでつくれるか!?
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
ガルガンチュア on Oculus Quest - 72FPSへの挑戦 -
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
初心者向け UE4 映像制作での シーケンサー と Movie Render Queue の使い方
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
中級グラフィックス入門~シャドウマッピング総まとめ~
中級グラフィックス入門~シャドウマッピング総まとめ~
Observableで非同期処理
Observableで非同期処理
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作
【Unite Tokyo 2019】HDRPコワクナイ! HDRPで目指す小規模で高品質な映像制作
若輩エンジニアから見たUniRxを利用したゲーム開発
若輩エンジニアから見たUniRxを利用したゲーム開発
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
出張ヒストリア ブループリントを書くにあたって大切なこと
出張ヒストリア ブループリントを書くにあたって大切なこと
GCC2016 ゲームエフェクト制作の現状報告
GCC2016 ゲームエフェクト制作の現状報告
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
【Unite Tokyo 2018】Audio機能の基礎と実装テクニック
日本一詳しい人が教えるUE4
日本一詳しい人が教えるUE4
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
Similar to 【GTMF2018OSAKA】ScriptableRenderPipelineでアプリに最適な描画をしよう
【GTMF2018TOKYO】ScriptableRenderPipelineでアプリに最適な描画をしよう
【GTMF2018TOKYO】ScriptableRenderPipelineでアプリに最適な描画をしよう
Unity Technologies Japan K.K.
Unity名古屋セミナー [Shadowgun]
Unity名古屋セミナー [Shadowgun]
MakotoItoh
Kobe.R #15 - Incanter チョットシッテル
Kobe.R #15 - Incanter チョットシッテル
tnoda
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
Takahito Tejima
ICCV2019読み会「Learning Meshes for Dense Visual SLAM」
ICCV2019読み会「Learning Meshes for Dense Visual SLAM」
Sho Kagami
php5-gd で画像を弄る話
php5-gd で画像を弄る話
Yo Ya
シリコンスタジオの最新テクノロジーデモ技術解説
シリコンスタジオの最新テクノロジーデモ技術解説
Silicon Studio Corporation
勉強会20140319 rspec_capybara
勉強会20140319 rspec_capybara
Shugo Numano
Deep Learningの基礎と応用
Deep Learningの基礎と応用
Seiya Tokui
シェーダー伝道師 第一回
シェーダー伝道師 第一回
hixi365
AGA_CVPR2017
AGA_CVPR2017
nonane
UE4.17で入る新機能を一気に紹介・解説!
UE4.17で入る新機能を一気に紹介・解説!
エピック・ゲームズ・ジャパン Epic Games Japan
Kashiwa.R#1 画像解析とパターン認識における R の利用
Kashiwa.R#1 画像解析とパターン認識における R の利用
nmaro
『こなへん』ができるまで ☆リリース直前編☆
『こなへん』ができるまで ☆リリース直前編☆
5mingame2
Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning
Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning
Kohei Nishimura
Scalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミング
Jun Saito
Houdini study rev01_slide_data
Houdini study rev01_slide_data
Masato Tsuzuki
シェーダーしよっ☆ Let's play shaders!
シェーダーしよっ☆ Let's play shaders!
Yuichi Higuchi
UE4を使った クロスシミュレーションと、 ハイエンド・モバイルゲーム制作の奥義を伝授!
UE4を使った クロスシミュレーションと、 ハイエンド・モバイルゲーム制作の奥義を伝授!
エピック・ゲームズ・ジャパン Epic Games Japan
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例
tecopark
Similar to 【GTMF2018OSAKA】ScriptableRenderPipelineでアプリに最適な描画をしよう
(20)
【GTMF2018TOKYO】ScriptableRenderPipelineでアプリに最適な描画をしよう
【GTMF2018TOKYO】ScriptableRenderPipelineでアプリに最適な描画をしよう
Unity名古屋セミナー [Shadowgun]
Unity名古屋セミナー [Shadowgun]
Kobe.R #15 - Incanter チョットシッテル
Kobe.R #15 - Incanter チョットシッテル
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ICCV2019読み会「Learning Meshes for Dense Visual SLAM」
ICCV2019読み会「Learning Meshes for Dense Visual SLAM」
php5-gd で画像を弄る話
php5-gd で画像を弄る話
シリコンスタジオの最新テクノロジーデモ技術解説
シリコンスタジオの最新テクノロジーデモ技術解説
勉強会20140319 rspec_capybara
勉強会20140319 rspec_capybara
Deep Learningの基礎と応用
Deep Learningの基礎と応用
シェーダー伝道師 第一回
シェーダー伝道師 第一回
AGA_CVPR2017
AGA_CVPR2017
UE4.17で入る新機能を一気に紹介・解説!
UE4.17で入る新機能を一気に紹介・解説!
Kashiwa.R#1 画像解析とパターン認識における R の利用
Kashiwa.R#1 画像解析とパターン認識における R の利用
『こなへん』ができるまで ☆リリース直前編☆
『こなへん』ができるまで ☆リリース直前編☆
Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning
Soft Rasterizer: A Differentiable Renderer for Image-based 3D Reasoning
Scalatronで楽しく学ぶ関数型プログラミング
Scalatronで楽しく学ぶ関数型プログラミング
Houdini study rev01_slide_data
Houdini study rev01_slide_data
シェーダーしよっ☆ Let's play shaders!
シェーダーしよっ☆ Let's play shaders!
UE4を使った クロスシミュレーションと、 ハイエンド・モバイルゲーム制作の奥義を伝授!
UE4を使った クロスシミュレーションと、 ハイエンド・モバイルゲーム制作の奥義を伝授!
Direct xとopenglの隠蔽実装例
Direct xとopenglの隠蔽実装例
More from Unity Technologies Japan K.K.
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
Unity Technologies Japan K.K.
UnityのクラッシュをBacktraceでデバッグしよう!
UnityのクラッシュをBacktraceでデバッグしよう!
Unity Technologies Japan K.K.
Unityで始めるバーチャルプロダクション
Unityで始めるバーチャルプロダクション
Unity Technologies Japan K.K.
ビジュアルスクリプティング (旧:Bolt) で始めるUnity入門3日目 ゲームをカスタマイズしよう
ビジュアルスクリプティング (旧:Bolt) で始めるUnity入門3日目 ゲームをカスタマイズしよう
Unity Technologies Japan K.K.
ビジュアルスクリプティングで始めるUnity入門2日目 ゴールとスコアの仕組み - Unityステーション
ビジュアルスクリプティングで始めるUnity入門2日目 ゴールとスコアの仕組み - Unityステーション
Unity Technologies Japan K.K.
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
Unity Technologies Japan K.K.
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
Unity Technologies Japan K.K.
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
Unity Technologies Japan K.K.
Unity教える先生方注目!ティーチャートレーニングデイを体験しよう
Unity教える先生方注目!ティーチャートレーニングデイを体験しよう
Unity Technologies Japan K.K.
「原神」におけるコンソールプラットフォーム開発
「原神」におけるコンソールプラットフォーム開発
Unity Technologies Japan K.K.
FANTASIANの明日使えない特殊テクニック教えます
FANTASIANの明日使えない特殊テクニック教えます
Unity Technologies Japan K.K.
インディーゲーム開発の現状と未来 2021
インディーゲーム開発の現状と未来 2021
Unity Technologies Japan K.K.
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
Unity Technologies Japan K.K.
Burstを使ってSHA-256のハッシュ計算を高速に行う話
Burstを使ってSHA-256のハッシュ計算を高速に行う話
Unity Technologies Japan K.K.
Cinemachineで見下ろし視点のカメラを作る
Cinemachineで見下ろし視点のカメラを作る
Unity Technologies Japan K.K.
徹底解説 Unity Reflect【開発編 ver2.0】
徹底解説 Unity Reflect【開発編 ver2.0】
Unity Technologies Japan K.K.
徹底解説 Unity Reflect【概要編 ver2.0】
徹底解説 Unity Reflect【概要編 ver2.0】
Unity Technologies Japan K.K.
Unityティーチャートレーニングデイ -認定プログラマー編-
Unityティーチャートレーニングデイ -認定プログラマー編-
Unity Technologies Japan K.K.
Unityティーチャートレーニングデイ -認定3Dアーティスト編-
Unityティーチャートレーニングデイ -認定3Dアーティスト編-
Unity Technologies Japan K.K.
Unityティーチャートレーニングデイ -認定アソシエイト編-
Unityティーチャートレーニングデイ -認定アソシエイト編-
Unity Technologies Japan K.K.
More from Unity Technologies Japan K.K.
(20)
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
建築革命、更に更に進化!便利さ向上【Unity Reflect ver 3.0 】
UnityのクラッシュをBacktraceでデバッグしよう!
UnityのクラッシュをBacktraceでデバッグしよう!
Unityで始めるバーチャルプロダクション
Unityで始めるバーチャルプロダクション
ビジュアルスクリプティング (旧:Bolt) で始めるUnity入門3日目 ゲームをカスタマイズしよう
ビジュアルスクリプティング (旧:Bolt) で始めるUnity入門3日目 ゲームをカスタマイズしよう
ビジュアルスクリプティングで始めるUnity入門2日目 ゴールとスコアの仕組み - Unityステーション
ビジュアルスクリプティングで始めるUnity入門2日目 ゴールとスコアの仕組み - Unityステーション
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
ビジュアルスクリプティングで始めるUnity入門1日目 プレイヤーを動かそう
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
Unity教える先生方注目!ティーチャートレーニングデイを体験しよう
Unity教える先生方注目!ティーチャートレーニングデイを体験しよう
「原神」におけるコンソールプラットフォーム開発
「原神」におけるコンソールプラットフォーム開発
FANTASIANの明日使えない特殊テクニック教えます
FANTASIANの明日使えない特殊テクニック教えます
インディーゲーム開発の現状と未来 2021
インディーゲーム開発の現状と未来 2021
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
建築革命、更に進化!デジタルツイン基盤の真打ち登場【概要編 Unity Reflect ver 2.1 】
Burstを使ってSHA-256のハッシュ計算を高速に行う話
Burstを使ってSHA-256のハッシュ計算を高速に行う話
Cinemachineで見下ろし視点のカメラを作る
Cinemachineで見下ろし視点のカメラを作る
徹底解説 Unity Reflect【開発編 ver2.0】
徹底解説 Unity Reflect【開発編 ver2.0】
徹底解説 Unity Reflect【概要編 ver2.0】
徹底解説 Unity Reflect【概要編 ver2.0】
Unityティーチャートレーニングデイ -認定プログラマー編-
Unityティーチャートレーニングデイ -認定プログラマー編-
Unityティーチャートレーニングデイ -認定3Dアーティスト編-
Unityティーチャートレーニングデイ -認定3Dアーティスト編-
Unityティーチャートレーニングデイ -認定アソシエイト編-
Unityティーチャートレーニングデイ -認定アソシエイト編-
【GTMF2018OSAKA】ScriptableRenderPipelineでアプリに最適な描画をしよう
1.
ScriptableRenderPipelineでアプリに最適な描画をしよう 2018/6/27 講演者名 黒河 優介 所属団体
Unity Technologies Japan 肩書・役職 Developer Relation Engineer
2.
• • • • •
3.
• Unity RenderPipeline •
ScriptableRenderPipeline(SRP) •
4.
※ ForwardRendering
5.
Unity • • • Shadow
6.
Opaque → Depth Test Transparent →
7.
Opaque
8.
Opaque
9.
Opaque
10.
Opaque Z-Buffer ZTest Z-Test
11.
Transparent
12.
Transparent
13.
Transparent
14.
Transparent
15.
• Camera Depth •
Renderer sortingLayerName • Renderer sortingOrder • MeshRenderer sortingOrder • Material.renderQueue
16.
地面の部分は3つのオブジェクトを描画後に描画して、塗るピクセル数を 減らしてほしいが、一番最初に描画されてしまっています。
17.
これはRendererのBoundingBoxの中心位置で手前・奥の判定を行っている ため、地面が一番手前と判定されてしまっています。
18.
まず最初に三つのオブジェクトが描画されて…
19.
その後に地面が描画されることが理想形です。
20.
Unity …
21.
vertex
22.
このようにポイントライト3つ あるシーンを描画する場合…
23.
まず、ポイントライト適応前の状態を描画します
24.
その後、ポイントライト一つ一つ当たった状態のオブ ジェクトを描画して加算合成していきます。 そのため余計な描画負荷を伴います
25.
Point Light....
26.
Shadow Shadow QualitySettings
27.
Shadow …
28.
Unity
29.
ScriptableRenderPipeline(SRP) • SRP • LightWeightRenderPipeline(LWRP) •
30.
SRP • Unity SRP • • • Shadow •
31.
SRP // 描画時にコールバックされます。引数contextに対して描画命令を発行していきます void OnRender(ScriptableRenderContext
context, Camera[] cameras) { foreach (var camera in cameras){ // まず Camera毎のShader のパラメーターセットアップして… SetupShaderParams(camera); // スクリプトで決めたルールでカリングをして… var res = CullResults.Cull(ref cullingParams, context, ref cull); // そしてカリングして得た Rendererを引数で指定したルールで描画します context.DrawRenderers(res.visibleRenderers, ref settings, filterSettings); } }
32.
SRP 1.RenderPipelineAsset/RenderPipeline 2. RenderPipelineAsset Asset GraphicsSettings.renderPipelineAsset 3.Shader
Renderpipeline LightMode
33.
1. [ExecuteInEditMode] public class MySRPAsset
: RenderPipelineAsset{ protected override IRenderPipeline InternalCreatePipeline(){ return new MyScriptableRenderPipelineInstance(); } } public class MyScriptableRenderPipelineInstance : RenderPipeline{ // 描画のタイミングでコールバックされます public override void Render(ScriptableRenderContext context, Camera[] cameras){ base.Render(context, cameras); foreach (var camera in cameras){ // 描画処理をここに書いていきます } } }
34.
2-1. GraphicsSettings var instance
= ScriptableObject.CreateInstance<MySRPAsset>(); AssetDatabase.CreateAsset(instance, "Assets/MyScriptableRenderPipeline.asset"); 上記のようなEditor拡張で、独自のRenderPipelineAsset のアセットを作成します
35.
2-2. GraphicsSettings 先ほど作成したRenderPipelineAssetを指定します
36.
3. Shader RenderPipeline Renderer
ShaderPassName Pass Shader Pass LightMode
37.
var settings =
new DrawRendererSettings(camera, new ShaderPassName("BasicPass")); settings.sorting.flags = SortFlags.CommonOpaque; var filterSettings = new FilterRenderersSettings(true) { renderQueueRange = RenderQueueRange.opaque, layerMask = 1 << LayerDefine.BG }; context.DrawRenderers(cull.visibleRenderers, ref settings, filterSettings); SubShader{ Tags { "Queue"=“Geometry" "RenderType"=“Opaque"} Pass{ Tags { "LightMode" = "BasicPass"} ....処理等 } } C#側の処理 Shader側
38.
var settings =
new DrawRendererSettings(camera, new ShaderPassName("BasicPass")); settings.sorting.flags = SortFlags.CommonOpaque; var filterSettings = new FilterRenderersSettings(true) { renderQueueRange = RenderQueueRange.opaque, layerMask = 1 << LayerDefine.BG }; context.DrawRenderers(cull.visibleRenderers, ref settings, filterSettings); SubShader{ Tags { "Queue"=“Geometry" "RenderType"=“Opaque"} Pass{ Tags { "LightMode" = "BasicPass"} ....処理等 } } C#側の処理 Shader側 描画設定で指定したShaderPassNameと ShaderのLightModeを一致させる必要が あります。
39.
SRP
40.
SRP Camera ImageEffect public class MyScriptableRenderPipelineInstance
: RenderPipeline{ // 描画のタイミングでコールバックされます public override void Render(ScriptableRenderContext context, Camera[] cameras){ base.Render(context, cameras); foreach (var camera in cameras){ // 描画処理をここに書いていきます } // ImageEffect等の実装はココで実行されるようにする等が必要です } }
41.
SRP Surface Shader SRP vertex
shader / fragment shader 2018.1 ShaderGraph Shader
42.
ScriptableRender Pipeline
43.
LightWeightRenderPipeline(LWRP) SRP 0 Unity LightWeithRenderPipeline(LWRP) HDRenderPipeline(HDRP)
44.
LightWeightRenderPipeline(LWRP) Unity (Built-In) RenderPipeline LWRP
URL https://blogs.unity3d.com/jp/2018/02/21/the-lightweight-render- pipeline-optimizing-real-time-performance/
45.
LightWeightRenderPipeline(LWRP) 標準のレンダリングパイプラインで問題だったポイントライトの加算問題も LWRPでは起こりません。ピクセルシェーダー側でキチンとポイントライトを 扱い1パスで描画されます
46.
LWRP • PackageManager • • github • https://github.com/Unity-Technologies/ScriptableRenderPipeline
47.
PackageManager LWRP LightweightRenderPipelineをInstall するだけです
48.
LWRP • Shader LWRP •
Unity Shader Material Editor
49.
LWRP • Shader LWRP •
LightMode LightweightForward • ShadowMapTexture Shadow 参考URL https://connect.unity.com/p/lightweightrenderpipelinexiang-kenishaderwoshu-itemita
50.
LWRP • LightWeightRenderPipeline • PostProcessingStack
v2 • ShaderGraph • Core RP
51.
• [ShaderIncludePath] • Stripping
scriptable shader variants(2018.2 )
52.
[ShaderIncludePath] • Unity Shader
include • Assets or
53.
[ShaderIncludePath] public class ShaderIncludePathSetting{ [ShaderIncludePath] public
static string[] GetPaths(){ return new[]{ "Assets/SRP/Core/", "Assets/SRP/LightWeightPipeline/", }; } } Shader内のincludeをコチラからの相対パスで 指定できるようになります。
54.
[ShaderIncludePath] • Github LWRP Shader
ShaderIncludePath
55.
Stripping scriptable shader
variants • Shader variants Shader • • 参考URL https://blogs.unity3d.com/2018/05/14/stripping-scriptable-shader-variants/
56.
Stripping scriptable shader
variants LWRP • LWRP 2.0 Stripping scriptable shader variants • LWRP 2.x Unity2018.1 • LWRP 2.0 Renderpipeline
57.
• 0 RenderPipeline •
LWRP RenderPipeline
58.
0 RenderPipeline
59.
キャラクターは板ポリゴンに スプライトを貼っただけ
60.
RenderPipeline …
61.
RenderPipeline … Transparentは奥から手前を 遵守します
62.
RenderPipeline … Materialの切り替えを都度しな がら奥から手前へ描画します
63.
RenderPipeline … そのため、描画するのに非常に多くの Material切り替えが発生しました
64.
Material … …
65.
ScriptableRender Pipeline
66.
… var pass =
new ShaderPassName("BasicPass"); var settings = new DrawRendererSettings(camera, pass); settings.sorting.flags = SortFlags.CommonOpaque; var filterSettings = new FilterRenderersSettings(true){ renderQueueRange = RenderQueueRange.transparent, layerMask = 1 << LayerDefine.BG }; context.DrawRenderers(cull.visibleRenderers, ref settings, filterSettings);
67.
… var pass =
new ShaderPassName("BasicPass"); var settings = new DrawRendererSettings(camera, pass); settings.sorting.flags = SortFlags.CommonOpaque; var filterSettings = new FilterRenderersSettings(true){ renderQueueRange = RenderQueueRange.transparent, layerMask = 1 << LayerDefine.BG }; context.DrawRenderers(cull.visibleRenderers, ref settings, filterSettings); 描画する時のShaderのPass名 を指定できます
68.
… var pass =
new ShaderPassName("BasicPass"); var settings = new DrawRendererSettings(camera, pass); settings.sorting.flags = SortFlags.CommonOpaque; var filterSettings = new FilterRenderersSettings(true){ renderQueueRange = RenderQueueRange.transparent, layerMask = 1 << LayerDefine.BG }; context.DrawRenderers(cull.visibleRenderers, ref settings, filterSettings); 描画する時のソート順を指 定できます
69.
… var pass =
new ShaderPassName("BasicPass"); var settings = new DrawRendererSettings(camera, pass); settings.sorting.flags = SortFlags.CommonOpaque; var filterSettings = new FilterRenderersSettings(true){ renderQueueRange = RenderQueueRange.transparent, layerMask = 1 << LayerDefine.BG }; context.DrawRenderers(cull.visibleRenderers, ref settings, filterSettings); 描画する対象のオブジェクトの Opaque・Transparent等を指定 できます。
70.
… var pass =
new ShaderPassName("BasicPass"); var settings = new DrawRendererSettings(camera, pass); settings.sorting.flags = SortFlags.CommonOpaque; var filterSettings = new FilterRenderersSettings(true){ renderQueueRange = RenderQueueRange.transparent, layerMask = 1 << LayerDefine.BG }; context.DrawRenderers(cull.visibleRenderers, ref settings, filterSettings); Layer単位で描画するオブジェクト を切り替えられます。
71.
Shader Z Pre-Pass
72.
SubShader{ Tags { "Queue"="Transparent"
"RenderType"="Transparent"} // Z Pre-Pass Pass{ Tags { "LightMode" = "ZPrepass"} ZWrite On ColorMask 0 //...実際の処理 } // 実際の描画用のパス Pass{ Tags { "LightMode" = "BasicPass"} ZWrite Off ZTest Equal Blend SrcAlpha OneMinusSrcAlpha //...実際の処理 } }
73.
SRP
74.
Depth αが一定値以下の場合はdiscard して描画を行うShader Pass 「ZPrepass」で一旦キャラク ターを描画します。 ※Z Bufferの様子です
75.
その後 床を描画します
76.
キャラクターを通常のShaderPassで描画します。 この時、マテリアル切り替えを最小に抑える順番になるように sorting.flagに「SortFlags.OptimizeStateChanges」を指定します
77.
最後に影を描画します
78.
Z Pre-Pass ※α …
79.
Z BufferのZ値と一致した部分のピクセルでない と、Zテストを通らず、ピクセルが塗られないた め絵が破綻しません
80.
Material
81.
LWRP 背景からキャラクター。 キャラクターから背景への影 はリアルタイムShadowで、他 は焼いたShadowです。
82.
LWRP わかりやすくするため、 リアルタイムのShadowのみ青 くしました。
83.
… Shadow → Shadow → → →
84.
LWRP … 焼いたShadowの上からリアル タイムのShadowも描いてしま います
85.
LWRP … それを防ごうとすると、 キャラクターへのShadowが なくなってしまいます
86.
• Shadow • Shadow •
87.
始めにキャラクターだけの ShadowMapを生成します
88.
キャラクターだけのShadowMapを 適応して背景を描きます
89.
キャラクターだけのShadowMapに 背景オブジェクトも描き足します。
90.
最後にキャラクターを描画します。
91.
// 描画時にコールバックされます。引数contextに対して描画命令を発行していきます void OnRender(ScriptableRenderContext
context, Camera[] cameras) { foreach (var camera in cameras){ // 「Chara」レイヤーだけ先にShadowを処理します ShadowPass( 1 << Layers.Chara); // 「Chara」レイヤー以外のオブジェクトをレンダリングします DrawObjects( ~( 1<< Layers.Chara) ); // 「Chara」レイヤー以外のShadowを処理します ShadowPass( ~( 1 << Layers.Chara) ); // 「Chara」レイヤーのオブジェクトだけをレンダリングします DrawObjects( 1<< Layers.Chara ); } }
92.
通常では、SelfShadowが発 生してしまいます 今回の特殊パスを用いれば、 キャラクターのSelfShadowのみオフ に出来ます
93.
SRP ShadowPass
94.
ScriptableRenderPipeline • • • Shadow • Unity
LWRP
95.
Appendix 0 https://github.com/wotakuro/CustomScriptRenderPipelineTest LWRP https://github.com/wotakuro/MixedShadowSample SRP https://connect.unity.com/u/5768a3b332b306001aaf2d1f
Download now