Soumettre la recherche
Mettre en ligne
RenderTextureの正しいα値は?
•
Télécharger en tant que PPTX, PDF
•
3 j'aime
•
6,254 vues
K
KLab Inc. / Tech
Suivre
Aiming × KLab コラボMeetup! RenderTextureの正しいα値は?
Lire moins
Lire la suite
Logiciels
Affichage du diaporama
Signaler
Partager
Affichage du diaporama
Signaler
Partager
1 sur 35
Télécharger maintenant
Recommandé
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
Takahito Tejima
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Unity Technologies Japan K.K.
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
dena_study
UE4をレンダラとした趣味的スピード背景ルックデブ(UE4 Environment Art Dive)
UE4をレンダラとした趣味的スピード背景ルックデブ(UE4 Environment Art Dive)
エピック・ゲームズ・ジャパン Epic Games Japan
UniRx完全に理解した
UniRx完全に理解した
torisoup
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
Unity Technologies Japan K.K.
Observableで非同期処理
Observableで非同期処理
torisoup
Recommandé
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
Takahito Tejima
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Unity Technologies Japan K.K.
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
dena_study
UE4をレンダラとした趣味的スピード背景ルックデブ(UE4 Environment Art Dive)
UE4をレンダラとした趣味的スピード背景ルックデブ(UE4 Environment Art Dive)
エピック・ゲームズ・ジャパン Epic Games Japan
UniRx完全に理解した
UniRx完全に理解した
torisoup
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
Unity Technologies Japan K.K.
Observableで非同期処理
Observableで非同期処理
torisoup
大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化
DeNA
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
エピック・ゲームズ・ジャパン Epic Games Japan
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
エピック・ゲームズ・ジャパン Epic Games Japan
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
Unityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
torisoup
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
Unity Technologies Japan K.K.
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
エピック・ゲームズ・ジャパン Epic Games Japan
【Unity道場】VectorGraphicsで作る エモい表現
【Unity道場】VectorGraphicsで作る エモい表現
Unity Technologies Japan K.K.
【Unity】より良い表現のためのライティング戦略
【Unity】より良い表現のためのライティング戦略
Takayasu Beharu
Riderはいいぞ!
Riderはいいぞ!
UnityTechnologiesJapan002
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
Game Tools & Middleware Forum
ゲームの仕様書を書こうまとめ
ゲームの仕様書を書こうまとめ
Sugimoto Chizuru
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
エピック・ゲームズ・ジャパン Epic Games Japan
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
エピック・ゲームズ・ジャパン Epic Games Japan
猫でも分かる UE4のAnimation Blueprintの運用について
猫でも分かる UE4のAnimation Blueprintの運用について
エピック・ゲームズ・ジャパン Epic Games Japan
UE4におけるエフェクトの為のエンジン改造事例
UE4におけるエフェクトの為のエンジン改造事例
エピック・ゲームズ・ジャパン Epic Games Japan
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
エピック・ゲームズ・ジャパン Epic Games Japan
UE4におけるキャラクタークラス設計
UE4におけるキャラクタークラス設計
Masahiko Nakamura
Fortniteを支える技術
Fortniteを支える技術
エピック・ゲームズ・ジャパン Epic Games Japan
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
KLab Inc. / Tech
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
KLab Inc. / Tech
Contenu connexe
Tendances
大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化
DeNA
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
エピック・ゲームズ・ジャパン Epic Games Japan
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
エピック・ゲームズ・ジャパン Epic Games Japan
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
エピック・ゲームズ・ジャパン Epic Games Japan
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
Unityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
torisoup
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
Unity Technologies Japan K.K.
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
エピック・ゲームズ・ジャパン Epic Games Japan
【Unity道場】VectorGraphicsで作る エモい表現
【Unity道場】VectorGraphicsで作る エモい表現
Unity Technologies Japan K.K.
【Unity】より良い表現のためのライティング戦略
【Unity】より良い表現のためのライティング戦略
Takayasu Beharu
Riderはいいぞ!
Riderはいいぞ!
UnityTechnologiesJapan002
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
Game Tools & Middleware Forum
ゲームの仕様書を書こうまとめ
ゲームの仕様書を書こうまとめ
Sugimoto Chizuru
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
エピック・ゲームズ・ジャパン Epic Games Japan
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
エピック・ゲームズ・ジャパン Epic Games Japan
猫でも分かる UE4のAnimation Blueprintの運用について
猫でも分かる UE4のAnimation Blueprintの運用について
エピック・ゲームズ・ジャパン Epic Games Japan
UE4におけるエフェクトの為のエンジン改造事例
UE4におけるエフェクトの為のエンジン改造事例
エピック・ゲームズ・ジャパン Epic Games Japan
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
エピック・ゲームズ・ジャパン Epic Games Japan
UE4におけるキャラクタークラス設計
UE4におけるキャラクタークラス設計
Masahiko Nakamura
Fortniteを支える技術
Fortniteを支える技術
エピック・ゲームズ・ジャパン Epic Games Japan
Tendances
(20)
大規模ゲーム開発における build 高速化と安定化
大規模ゲーム開発における build 高速化と安定化
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
「Press Button, Drink Coffee」 UE4における ビルドパイプラインとメンテナンスの全体像
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
Unityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
【Unity道場】VectorGraphicsで作る エモい表現
【Unity道場】VectorGraphicsで作る エモい表現
【Unity】より良い表現のためのライティング戦略
【Unity】より良い表現のためのライティング戦略
Riderはいいぞ!
Riderはいいぞ!
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
ゲームの仕様書を書こうまとめ
ゲームの仕様書を書こうまとめ
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
バイキング流UE4活用術 ~BPとお別れするまでの18ヶ月~
猫でも分かる UE4のAnimation Blueprintの運用について
猫でも分かる UE4のAnimation Blueprintの運用について
UE4におけるエフェクトの為のエンジン改造事例
UE4におけるエフェクトの為のエンジン改造事例
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
UE4におけるキャラクタークラス設計
UE4におけるキャラクタークラス設計
Fortniteを支える技術
Fortniteを支える技術
Plus de KLab Inc. / Tech
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
KLab Inc. / Tech
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
KLab Inc. / Tech
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
KLab Inc. / Tech
生成AIが切り拓く新しいゲームの創り方・遊び方
生成AIが切り拓く新しいゲームの創り方・遊び方
KLab Inc. / Tech
表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス
表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス
KLab Inc. / Tech
モバイルオンラインゲームでの大規模観戦とチート対策 〜自社製リアルタイム通信システム「WSNet2」の事例〜
モバイルオンラインゲームでの大規模観戦とチート対策 〜自社製リアルタイム通信システム「WSNet2」の事例〜
KLab Inc. / Tech
他業界からゲーム業界へ転向したときの話
他業界からゲーム業界へ転向したときの話
KLab Inc. / Tech
KLabのゲーム開発を支える開発環境
KLabのゲーム開発を支える開発環境
KLab Inc. / Tech
ゲーム開発を知らない人にも分かるKLabのゲーム開発運営
ゲーム開発を知らない人にも分かるKLabのゲーム開発運営
KLab Inc. / Tech
「リアルISUCON」としてのモバイルオンラインゲーム開発
「リアルISUCON」としてのモバイルオンラインゲーム開発
KLab Inc. / Tech
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
KLab Inc. / Tech
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
KLab Inc. / Tech
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
KLab Inc. / Tech
KLabのチャットシステム インフラ変遷
KLabのチャットシステム インフラ変遷
KLab Inc. / Tech
Ganglia のUIにGrafanaを追加する話
Ganglia のUIにGrafanaを追加する話
KLab Inc. / Tech
KLabのインフラエンジニア 〜 こんな感じで働いてます 〜
KLabのインフラエンジニア 〜 こんな感じで働いてます 〜
KLab Inc. / Tech
属人化して詰まってた作業を自動化で楽しようとした話
属人化して詰まってた作業を自動化で楽しようとした話
KLab Inc. / Tech
見よう見まねでやってみる2D流体シミュレーション
見よう見まねでやってみる2D流体シミュレーション
KLab Inc. / Tech
モバイルオンラインゲームにおけるUIエンジニアの業務紹介
モバイルオンラインゲームにおけるUIエンジニアの業務紹介
KLab Inc. / Tech
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
KLab Inc. / Tech
Plus de KLab Inc. / Tech
(20)
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
大規模モバイルオンラインゲーム開発における チーム組成とワークフロー最適化
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
運用中の大規模オンラインゲームで 8年ぶりにPHPバージョンアップをした話
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
AirLab導入でテストコストの大幅削減と品質向上! 数十台の端末を一斉に全自動テストできる社内DeviceFarmについてご紹介
生成AIが切り拓く新しいゲームの創り方・遊び方
生成AIが切り拓く新しいゲームの創り方・遊び方
表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス
表も裏もすべて見せます! KLab謹製大規模オンラインゲームの リアルタイムチャットマイクロサービス
モバイルオンラインゲームでの大規模観戦とチート対策 〜自社製リアルタイム通信システム「WSNet2」の事例〜
モバイルオンラインゲームでの大規模観戦とチート対策 〜自社製リアルタイム通信システム「WSNet2」の事例〜
他業界からゲーム業界へ転向したときの話
他業界からゲーム業界へ転向したときの話
KLabのゲーム開発を支える開発環境
KLabのゲーム開発を支える開発環境
ゲーム開発を知らない人にも分かるKLabのゲーム開発運営
ゲーム開発を知らない人にも分かるKLabのゲーム開発運営
「リアルISUCON」としてのモバイルオンラインゲーム開発
「リアルISUCON」としてのモバイルオンラインゲーム開発
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
KLabのチャットシステム インフラ変遷
KLabのチャットシステム インフラ変遷
Ganglia のUIにGrafanaを追加する話
Ganglia のUIにGrafanaを追加する話
KLabのインフラエンジニア 〜 こんな感じで働いてます 〜
KLabのインフラエンジニア 〜 こんな感じで働いてます 〜
属人化して詰まってた作業を自動化で楽しようとした話
属人化して詰まってた作業を自動化で楽しようとした話
見よう見まねでやってみる2D流体シミュレーション
見よう見まねでやってみる2D流体シミュレーション
モバイルオンラインゲームにおけるUIエンジニアの業務紹介
モバイルオンラインゲームにおけるUIエンジニアの業務紹介
VyOSで作るIPv4 Router/IPv6 Bridge
VyOSで作るIPv4 Router/IPv6 Bridge
RenderTextureの正しいα値は?
1.
RenderTextureの 正しいα値は? KLab株式会社 クライアントエンジニア 中島将浩 1
2.
自己紹介 氏名: 中島将浩 経歴 筑波大学(数学専攻)→HAL東京→KLab2016年入社 得意分野 クライアントサイド、設計やロジック グラフィックAPI周辺 好きなゲーム アクション、音ゲー、JRPG 2
3.
RenderTextureに書き込まれているα値を 気にしたことありますか? 3
4.
RenderTextureとは 普通はカメラを置いて画面に描く RenderTextureとは、画面の代わりにテクスチャに描画する技術 描画結果は当然テクスチャであるため、ポリゴンに貼り付けることができる 例えば、テレビモニタで中継しているような表現が可能 4
5.
RenderTexture活用事例 Anima2DやLive2Dを利用した、パーツごとに動かす類のアニメーション このキャラクターをα値を使ってフェードアウトすると…… 重なった部分が出ちゃう 許容しているケースが多いが、Live2Dだと 結構悲惨なことになる 5
6.
RenderTexture活用事例 そこでRenderTexture RenderTextureを経由して出すことで重なり部分も綺麗にフェードアウト 6
7.
ところが 7
8.
RenderTextureの問題 画面に直接 RenderTexture経由 微妙に色味が違う 8
9.
RenderTextureの問題 Q. これの正体は? A. カメラのClearColor 9
10.
RenderTextureの問題 なぜこんな問題が? 画面に直接描画した場合 背景画像 + オブジェクト
のαブレンド RenderTextureを経由して描画した場合 背景画像 + (ClearColor + オブジェクト) のαブレンド 10
11.
αブレンドのおさらい αブレンドとは二つの色X, Yを、合計が1になるような係数で線形和を取ること 例 0.3 *
X + 0.7 * Y 0.5 * X + 0.5 * Y など 色の重み付き平均と言ってもよい 0.7とか0.5といった係数をα値という 11
12.
αブレンドのおさらい Q. 画面に描く場合は? A. すでに書かれている色と、これから描こうとする色のαブレンド DstColorの上にSrcColorを重ねようとした場合には↓の式になる (1
- α) * DstColor + α * SrcColor 12
13.
αブレンドのおさらい (1 - α)
* DstColor + α * SrcColor 実はこの式の(1 - α)やαの部分はある程度好きな係数にカスタマイズ可能 アルファブレンドのシェーダーではこうなっているというだけ ・1 ・0 ・α ・1 - α ・書き込み先のα値 などから好きな係数にカスタマイズ可能 13
14.
αブレンドのおさらい 例 1 * DstColor
+ α * SrcColor : α付き加算合成 1 * DstColor + 1 * SrcColor : αなし加算合成 0 * DstColor + 1 * SrcColor : 一方的な上書き (1 - α) * DstColor + (1 - α) * SrcColor : 謎合成 14
15.
RenderTextureの問題 なぜこんな問題が? 画面に直接描画した場合 背景画像 + オブジェクトのαブレンド RenderTextureを経由して描画した場合 背景画像
+ (ClearColor + オブジェクト) のαブレンド 問題1: ClearColorの色が混ざってしまっている 問題2: RenderTextureのα値が正しく制御されていない 15
16.
図解(全てα=0.5とする) 背景 0.25倍 パーツA 0.25倍 パーツB 0.5倍 背景 ClearColor 0.25倍 パーツA 0.25倍 パーツB 0.5倍 16
17.
図解 さも当然のようにClearColorが背景の居場所に鎮座している…… 背景 ClearColor 0.25倍 パーツA 0.25倍 パーツB 0.5倍 17
18.
方針 1. ClearColorをなかったことにする 2. ClearColorにかかっている係数は本来背景にかかるはずのものなので、それ をRenderTextureのα値に書き込んでおく 3.
RenderTextureのRGBは「α反映済みのRGB」として扱う P-MAPに近い これで、背景のような顔をして居座っているClearColorを追い出せる 背景 ClearColor 0.25倍 パーツA 0.25倍 パーツB 0.5倍 18
19.
ClearColorをなかったことにする ClearColorのRGBを0にしてしまえばよい 方針 背景 ClearColor 0.25倍 パーツA 0.25倍 パーツB 0.5倍 19
20.
背景 ClearColor 0.25倍 パーツA 0.25倍 パーツB 0.5倍 ClearColorにかかっている係数は本来背景にかかるはずのものなので、それを RenderTextureのαとして残す ClearColorにかかっている係数とは? (1 - A.A)
* (1 - B.A) * … の形になっているはず * (1 - A.A) * (1 - B.A) 方針 20
21.
背景 ClearColor 0.25倍 パーツA 0.25倍 パーツB 0.5倍 Unityではα値のブレンド係数を次のように変更することで実現 (1 - α)
* DstColor + 0 * SrcColor 併せて、ClearColorのα値を1にしておくことで … * (1 - B.A) * (1 - A.A) * 1 = (1 - A.A) * (1 - B.A) * … の形にすることができる * (1 - A.A) * (1 - B.A) 方針 21
22.
背景 ClearColor 0.25倍 パーツA 0.25倍 パーツB 0.5倍 RenderTextureのRGBは「α反映済みのRGB」として扱う 背景の上に描画する際のブレンド設定を次のようにすればよい α * DstColor
+ 1 * SrcColor * (1 - A.A) * (1 - B.A)* (1 - A.A) * (1 - B.A) 方針 22
23.
α * DstColor
+ 1 * SrcColor DstColorは背景色でαはRenderTextureのα値のこと RenderTextureのα値には(1 - A.A) * (1 - B.A)が入っているはず SrcColorはRenderTextureのRGBで、こちらも0.25 * A + 0.5 * Bが入っているはず なので、係数は1でよい 方針 背景 ClearColor 0.25倍 パーツA 0.25倍 パーツB 0.5倍 * (1 - A.A) * (1 - B.A)* (1 - A.A) * (1 - B.A) 23
24.
背景 0.25倍 パーツA 0.25倍 パーツB 0.5倍 背景 ClearColor 0.25倍 パーツA 0.25倍 パーツB 0.5倍 * (1 -
A.A) * (1 - B.A)* (1 - A.A) * (1 - B.A) 方針 24
25.
RenderTextureに描画する際のClearColorを(0, 0, 0,
1)にする RenderTextureに描画する際のα値のブレンド設定を下のようにする (1 - α) * DstColor + 0 * SrcColor RenderTextureを画面に描画する際のRGBのブレンド設定を下のようにする α * DstColor + 1 * SrcColor 手順まとめ 25
26.
RenderTextureに描画する際のClearColorを(0, 0, 0,
1)にする Unity上での手順 26
27.
RenderTextureに描画する際のα値のブレンド設定を下のようにする (1 - α)
* DstColor + 0 * SrcColor RenderTextureを画面に描画する際のRGBのブレンド設定を下のようにする α * DstColor + 1 * SrcColor Unity上での手順 27
28.
結果 同じになった!! 28
29.
短所がいくつか ・同じ実装なのに複数箇所に実装がばらけている(ひとつでも欠けたら死ぬ) ・実装から意図が読みづらいし、コメントを書こうにも一箇所にまとまってない ・理屈をコメントだけで説明しづらい とはいえ、ひとつだけ欠けた場合の見た目がわりかしわかりやすいので、こけた 時の発見は早い そもそもα値のせいで起こる問題なので、ディザ合成にすることで回避も可能 補足 29
30.
実装当時は全然記事がなかったが、二日前にQiitaの記事に上がっていた! 詳細な理屈は省かれているので、併せて参考にしてもらえれば幸いです https://qiita.com/luckin/items/43a8a98a88a3ba20e92b 補足 30
31.
ご清聴ありがとうございました 31
32.
今回紹介した方法は、RenderTextureのα値として正しい値なのではなく、このロ ジックを成立させるためのピースでしかないように見えるかもしれない ところが、実はそこそこ正しい値で、正確にいうと今回の (1 - A.A)
* (1 - B.A) * … は(1 - α)に相当する値である そのまま背景色に乗算している点とも辻褄が合っている 補足 32
33.
α値というのは、自然現象に置き換えると遮光率と言える (α値が0.9だったら、後ろの光を0.1だけ通している) つまり(1 - α)は透過率で、複数枚重ねた時の透過率はそれぞれの積で求まる、と いうのが直感的に正しそう つまり、透過率は次の式 (1
- α1) * (1 - α2) * (1 - α3) * … 補足 33
34.
透過率 + 遮光率
= 1 となるのがアルファブレンドなので、透過率が (1 - α1) * (1 - α2) * (1 - α3) * … なら遮光率(つまりα値)は 1 - ((1 - α1) * (1 - α2) * (1 - α3) * …) の形になる 補足 34
35.
今回の (1 - A.A)
* (1 - B.A) * … は(1 - α)に相当する値であると書いたが、つまり遮光率ではなく透過率の方を保 存していることになる(だから、背景色にそのまま係数として掛けてよい) 本質的には遮光率を残そうが透過率を残そうが大した違いはないが、厳密には正 しいα値が残っているとは言えない 補足 35
Télécharger maintenant