3Dプリンターで樹脂交換に困った

昨年FLASHFORGE Adventure3を購入しました!
初心者でも綺麗に作れて良い感じです

f:id:filot_nextd2:20210105131140p:plainf:id:filot_nextd2:20210105131229j:plain

 

 

樹脂交換の状況

さて、表題の件についてです
初期で付属している赤いフィラメントは全く問題なく取り付けれたので樹脂交換もすぐできるかと思ってたのですが困ったことになりました

樹脂交換をしようとするとフィラメントを押し出すホイールのところで詰まってるような動きをします
メニューに「樹脂交換」という項目があるので難しい操作はないはずですが壊れそうな怖い音がします

 

 

赤いフィラメントはホイールの上からヘッドまで続いています

赤色が透けて見えるので外から確認可能です
フィラメント取り付け箇所に下から新しいフィラメントを入れて押し出すようになるはずなのですが、、

ちなみにロードができない状況ですが、アンロードは問題なくできました

 

問い合わせ


とりあえずお問い合わせします


検索すると電話番号とメールアドレスがでてきました

FLASHFORGEの各種お問い合わせと連絡先について | FLASHFORGE JAPAN | 3Dプリンター

 

残念ながら営業時間外だったのでメールで問い合わせましたが、アフターサポートにはシリアルナンバーが必要とのこと
シリアルナンバーは下記内容場所に記載があるそうです
【重要】アフターサポートにSN番号が必要になります。 | FLASHFORGE JAPAN | 3Dプリンター

 

知らずにメールしてしまい、お問い合わせフォームを教えてもらいました

こちらがそのフォームのリンクです

サポート | FLASHFORGE JAPAN | 3Dプリンター


サポートを待ってる間に対処法がないか検索してみたらでてきました!
この内容と同じ状況です!

qiita.com

※お問い合わせ後にサポートしていただいた内容も同じでした

フィラメントの除去

qiita記事を参考にしてフィラメントの先を確認して切断してみます

ツールを準備
  • 六角レンチ
  • ピンセット
  • ニッパー

六角レンチは付属されているので付属品を利用します

あとは抑えたりスプリングを持っておくためにピンセットと詰まってるフィラメントを切るためにニッパーを使いました
今回、フィラメントがつかめるギリギリのところで引っかかっていたので引き出すためにピンセットより力の入るペンチの方が便利かもしれません

f:id:filot_nextd2:20210105135247j:plain

記事の通りに作業を行う

f:id:filot_nextd2:20210106111847p:plain

六角レンチで青いところを外します

特に問題なく外せました

緑色のスプリングが落ちないように注意して外して中を見ると
確かに赤いフィラメントの最後の部分が曲がってました(赤い丸の箇所)

フィラメントが少しだけ出てるので、切れる長さになるまでピンセットでひっぱります

曲がってる箇所を切って元にもどしてネジをはめます

はめるときは特に支えもなく指で抑えながらできました

樹脂交換

電源を入れて樹脂交換開始です

ちゃんとホイールも動いて問題なく取り付け完了できました!

フィラメントの色が変わるまで押し出し

フィラメントの色を黒に変更したので、手動をつかってひたすら押し出します

f:id:filot_nextd2:20210105140032j:plain

押し出されたフィラメントが黒になったので

そこで終了して樹脂交換完了です!

ちゃんと黒で出力されています

f:id:filot_nextd2:20210105140153j:plain f:id:filot_nextd2:20210105140346j:plain

次回からフィラメントの残量を注意しておかないと、、、

 

 

おまけ

樹脂を接着する際にコンビニでプラスチック用の接着材を買って使ってみました
くっつけた次の日に手でひっぱたら取れてしまいました。。。

ネットで探してみたらこちらを発見

しっかりくっついて良い感じです!
一応人体に影響はないようですが手袋して使ってます

f:id:filot_nextd2:20210105141000j:plain




 

 

 

パリティミラーで時計を表示する

パリティミラーを触ってみました



パリティミラーとは空中に映像を表示させるディスプレイのことで
パリティ・イノベーションズさんの製品です


画像のようにパリティミラーと表示する対象物光源が必要となります
公式から画像をお借りしてきました

f:id:filot_nextd2:20201209181819j:plain

 

実物はこんな感じです
カメラの焦点が合わずぼやけた感じに見えます

f:id:filot_nextd2:20201209183046j:plain

手前にある青いシールは向きを示すものでこちらが手前になるようにセットします
シールは簡単に外れるので注意が必要です
サイズは150mm角のものを購入しました


ミラーの素材はアクリルで切断可能だそうですがそのまま使います
また特殊インクを利用してるそうなので汚れに注意です


画面に時計を表示したディスプレイを写してみました

目視だと立体的に見えますが、撮影はちょっと難しいですね


パリティミラーにはつるつるした面とザラザラした面があります
どちらを上にするかで表示が変わるそうです

f:id:filot_nextd2:20201209190740j:plain

上の画像はつるつるした面を上にしてセットしています
パリティミラーの面自体のムラが少なく見えるとのこと

 

f:id:filot_nextd2:20201209190749j:plain

こちらはザラザラした面を上にしてセットしています
より高コントラストで映像が表示されます



時計表示に使ったものはこちらです
・パリティミラー

・Airbar

・高輝度ディスプレイ

・ガムテープ
・ボード
後はwindowsのPCを繋ぎました

f:id:filot_nextd2:20201209191459j:plain


PCの上にディスプレイを乗せてボードで囲みました
後日3Dプリンターを使って周りの筐体を作ってみたいです

ちょっと崩れてるとこですがこんな感じです

f:id:filot_nextd2:20201209192149j:plain


角度が難しかったですが、綺麗に映像が表示できました
もっとエフェクトとか追加してどう見えるのか試してみたいです


 







 

OculusQuestでオリジナルハンドジェスチャを使う

※以下を参考
https://www.downtocode.com

そこそこな力技。

 

ざっくりやり方

・OculusHandComponentを継承。以下継承したBP上で実施。


・全ての手のBoneのLocation(Vector)を取得し、ジェスチャ名(String)とLocation(Vector、配列)の構造体を.savに保存。イベントは好きなインプットアクションに設定。

f:id:filot_nextd2:20201202130321p:plain

 

・Editor上で好きにジェスチャーを登録


・Recognized用のTimerを設置、Timer毎にBoneのLocation(Vector)を取得し、ジェスチャー判定する。あとはイベント飛ばすなどしてお好きに。

f:id:filot_nextd2:20201202130621p:plain

f:id:filot_nextd2:20201202130652p:plain

 

以上。

頑張ればモーション登録もできそう。

visual studio 2017でコンソールプロジェクト作成方法

とっても久しぶりにvisual studioを利用したところ、C++でコンソールプロジェクトの作成ができなくて戸惑いました




結論
 visual studio Installer のオプションから落としてくる必要がある




以下、やったことをそのまま(間違いも含めて)記載します

 

  1. [ファイル]->[新規作成]->[プロジェクト] C++の中をみてもコンソールプロジェクトが見つからない

  2. スタートメニューからインストーラーを起動
    f:id:filot_nextd2:20201116111422p:plain:w400

  3. 思ってた画面じゃない
    プロジェクトをインストールしたいけどどこからいくのかわからない
    f:id:filot_nextd2:20201116111644p:plain:w400

  4. 新しいプロジェクト作成の左下にリンクを発見
    f:id:filot_nextd2:20201116113210p:plain:w200

  5. 欲しかったページにたどり着く
    f:id:filot_nextd2:20201116112144p:plain:w400
    (※3の画像の変更からいける)

  6. 右のほうにあるオプションにチェックを入れる
    f:id:filot_nextd2:20201116112527p:plain:w200

  7. .....インストール.....

  8. これで作成できる!
    f:id:filot_nextd2:20201116112654p:plain:w400




オンラインにあるのかと思って探して手間取りました
迷って見つけたこちらは拡張機能でした


f:id:filot_nextd2:20201116114350p:plain:w200
f:id:filot_nextd2:20201116113816p:plain:w400


marketplace.visualstudio.com

APDS9960ジェスチャーセンサーで電源切り替え

 

やりたいこと

ジェスチャーセンサーを利用してスマートコンセントと赤外線LEDの電源切り替え操作をする

 

利用するもの

・APDS9960ジェスチャーセンサー

・Espr Developer Rev.4(2G) : wifi接続用

・Arduino Uno R3 

・Kasa スマートプラグ

(N極対応プラグ変換アダプタ)

・赤外線リモコン - ライト

・赤外線リモコン受信モジュール

・その他抵抗やコンデンサ、ブレッドボードなど


環境

・windows10

・Arduino IDE 1.8.12

・IFTTT

・Kasa Smartアプリ

 

※IFTTTが有料化されてました!

 

接続

f:id:filot_nextd2:20201007171611j:plain

APDS9960ジェスチャーセンサー秋月電子通商で購入しました

センサー基盤裏のJP1とJP2 を結線しておきます

 

ツール

・ユニバーサル基盤に配置する際はmarmeloというエディタを利用しました

配置を反転させるのに便利でした

カラー抵抗早見表も便利でした

 

実装

Arduino Unoでサンプル実行

目的 : 左右上下の手の動きを取得する

Arduino IDEを使って書き込みます

SparkFunのLibが使えるらしいので使います

サンプルも一緒になっているので、そちらを参考にするとジェスチャーによる判定ができます

明るさやRGBを読み取るサンプルも入っているので遊んでみると楽しいです

ジェスチャーのセンサー範囲ですが、おおよそ20cmほどまでのようでした

遮るものがあったりあまり遠くなると判定できません

また、NEARとFARは難しく、反応したりしなかったりでした

ゆっくり動かすと反応しやすいです

手を動かして出力した結果は以下の画像のような感じで出力されます

f:id:filot_nextd2:20201007200817p:plain

Espr Developer Rev.4でWifi接続

シリアル通信を使うため、ATコマンドの確認をします

 ArduinoとEsprDevはTx-Rxとなるように接続します

ArduinoUno EspDeveloper
Rx Tx
Tx Rx

 

SoftwareSerialについてはいろんなところで詳しく書かれているので割愛します

シリアル通信ができ、ATコマンドを打てることが確認できたらOKです

 

私はこちらを参考にさせてもらいました

 

-- 注意点 --
EsprDeveloperには2つのモードがあります
IO0ピンの接続が間違っていると動きません

モード 説明 IO0ピン接続

Flash Boot Mode

(実行モード)

ATコマンドでやりとり、書き込んだスケッチを実行する IO0 ピン HIGH

UART Download Mode

(書き込みモード)

スケッチを書き込み、ファームウェアアップデートを行う IO0 ピン LOW

 

もしEsprDeveloperにスケッチを書き込んだ場合はファームウェアの書き直しが必要になります


ATコマンドについてはこちら

 

ATコマンドが使えればWifi接続も可能なはずです

SSIDを使って接続する場合はこちらの人がスケッチをアップしてくれていました

そのまま動くと思います

 

私はprintlnを使ってATコマンドを書き込み、WPSを利用しました

 コマンドは以下を使っています

wifi変数で利用しているメソッドはESP8266libのメソッドです

AT+UART_DEF
AT+CIPSTA?
AT+CWMODE_CUR=1
wifi.setOprToStation()
AT+WPS=1
wifi.disableMUX
wifi.createTCP

 

IFTTTとスマートプラグ

目的 : RIGHTやLEFTが来た時にスマートプラグの電源を切り替える

先ほど左右のイベントは取得できているので、まずはスマートプラグとIFTTT連携をします

IFTTTのアカウントを作成し、webhookを使ったアプレット作成をします

「If This」を選んで「webhook」を選択し、イベント名を入力してスマートプラグのONとOFFのイベントを追加します

f:id:filot_nextd2:20201007203048p:plain
f:id:filot_nextd2:20201007203052p:plain
f:id:filot_nextd2:20201007203055p:plain

次にスマートプラグの設定をします

スマートプラグのアプリ「Kasa Smart」を入れてアカウントを作成します

プラスアイコンから端末を追加=>スマートプラグ=>スマートプラグ「ライト」/「ミニ」を選択します

特に問題もなく簡単に設定できるので、Kasaの説明書通りに進めて設定してください

スマートプラグの設定をしたらIFTTTの設定をします

「create your own」ページの「Then That」を選択します

そこでスマートプラグの名称で検索してKasaで作成したアカウントで操作するデバイスを選択すればスマートプラグとの連携完了です

maker_webhookページのDocumentationを押下するとWebhookのURLが確認できます

f:id:filot_nextd2:20201008152233p:plain

あとはジェスチャーイベント発生時にこのURLを利用すればONOFFできるようになります

 

 

ジェスチャーのイベントはサンプル実行で取得できていますので

そこにONOFFトリガを追加します

ESP8266libのメソッドであるsendを使って通信しました

 

 

赤外線リモコンとLED照明

目的 : UPやDOWNが来た時に照明のONOFFを切り替える

赤外線の規格は各会社によって異なるようです
なので、実際にリモコン操作をしてフォーマットをみてみます
一旦いろいろ繋げていた物をArduinoUnoから外します

赤外線リモコン受信モジュールとIRemoteというLibを使って規格を調べます

データシートがあるのでInOutをみてArduinoUnoと繋げます

ArduinoUno 赤外線受信モジュール
5V Vcc

11(受信するピン)

Output
GND GND

 

あとはLibのソースをそのまま使います

IRecvDumpを実行してリモコン操作をすればデータが受信できるはずです

シリアルモニタは9600kbpsなので注意してください

 

データが取得できたと思いますので、ジェスチャーイベントが発生した際にIRemoteを使ってsendするだけです

これで照明のONOFFができます 

 

ケース作成 

ケースには3Dプリンタを使いました
モデリングにはFusion360を使ってます

無償版を利用してみましたが、上蓋と土台が接触しているかを確認することができてよかったです

また、初心者でも使いやすかったです

使い方はUdemyで勉強しました

 

実行結果

f:id:filot_nextd2:20201008165137g:plain

UP : 照明OFF

DOWN : 照明ON

RIGHT : スマートプラグOFF

LEFT : スマートプラグON

スマートプラグと携帯電話を繋いでいます
小さくて見えづらいですがONにすると充電中に切り替わります

青く光っているのはジェスチャーが読み取れた場合です
何かわからなかった場合は赤く光るようにしています

 

エラーなどでひっかかったところ

スケッチを書く前段階、環境を設定するまでにひっかかった内容を過去にFacebookにアップしています

ページトップに[困った問題 => 解決法]を書いてます


エラーではありませんが、スケッチでprintlnする際にFマクロを使うとSRAM使用量が少なくなることを初めて知りました

また、赤外線がカメラ越しなら光っていることがわかるということも今回初めて知りました

 

 

MediaPipeを使ってみた

公式ページを参考にMediaPipeのデモを使ってみます
どれも試してみたいですが、とりあえず使ってみたいのはMediaPipe Handsです

環境

macOS 10.14.4 Desktop (HandsにはAndroid, iOS, Desktop, Webの環境がある)

インストール

MediaPipeのページが詳しいのでそのまま進めていきます

Hello Worldの実行でエラーがでました

bazel run --define MEDIAPIPE_DISABLE_GPU=1   mediapipe/examples/desktop/hello_world:hello_world
ERROR: Analysis of target ‘//mediapipe/examples/desktop/hello_world:hello_world’ failed; build aborted: Either the path attribute of android_sdk_repository or the ANDROID_HOME environment variable must be set.
INFO: Elapsed time: 0.161s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (0 packages loaded, 0 targets configured)
FAILED: Build did NOT complete successfully (0 packages loaded, 0 targets configured)
  currently loading: @rules_foreign_cc//tools/build_defs/shell_toolchain/toolchains
  Fetching @local_config_cc_toolchains; fetching

公式ページのAndroidのところに

MediaPipe recommends setting up Android SDK and NDK via Android Studio (and see below for Android Studio setup). However, if you prefer using MediaPipe without Android Studio, please run setup_android_sdk_and_ndk.sh to download and setup Android SDK and NDK before building any Android example apps.

とあるので入れてみました

再度実行すると無事表示Hello World実行できました!

I20200918 14:23:55.252943 380831168 hello_world.cc:56] Hello World!
I20200918 14:23:55.254393 380831168 hello_world.cc:56] Hello World!
I20200918 14:23:55.254407 380831168 hello_world.cc:56] Hello World!
I20200918 14:23:55.254418 380831168 hello_world.cc:56] Hello World!
I20200918 14:23:55.254428 380831168 hello_world.cc:56] Hello World!
I20200918 14:23:55.254437 380831168 hello_world.cc:56] Hello World!
I20200918 14:23:55.254446 380831168 hello_world.cc:56] Hello World!
I20200918 14:23:55.254456 380831168 hello_world.cc:56] Hello World!
I20200918 14:23:55.254465 380831168 hello_world.cc:56] Hello World!
I20200918 14:23:55.254477 380831168 hello_world.cc:56] Hello World!

こちらにしたがって進めていきます

デモ実行

どれも問題なく実行できて、サンプル画像の通りの結果になりました

Face Detection

6つのランドマークとマルチフェイスサポートを備えた超高速の顔検出ソリューション

実行コマンド

bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/face_detection:face_detection_cpu
GLOG_logtostderr=1 bazel-bin/mediapipe/examples/desktop/face_detection/face_detection_cpu \
  --calculator_graph_config_file=mediapipe/graphs/face_detection/face_detection_desktop_live.pbtxt

横を向いても追従してきます
ちなみにマスクをしてみても追従してきました
顔を画面からはみ出させても追従してきます
画面に顔が一つもない状態で顔が認識されるということがありました
判定されたものは小物だったりバッグだったり、目鼻口に見えるものがあったわけではありません

Face Mesh

リアルタイムで468の3D顔ランドマークを推定する顔ジオメトリソリューション

実行コマンドはFace Detectionを参考にファイル名を変更するだけです

f:id:filot_nextd2:20200930173509p:plain:w100 f:id:filot_nextd2:20200930181357p:plain:w100 f:id:filot_nextd2:20200930181519p:plain:w100
こちらもマスク着用で判定され、少し横を向いても横から覗き込んでも追従してきました
真横になると判定できないようです
f:id:filot_nextd2:20201001170026p:plain:w80
複数顔が写った画像も試してみましたが1人しか認識されませんでした ついでに目と鼻っぽい3点があれば認識されるのだろうかと思ってプーさんに登場してもらいました
f:id:filot_nextd2:20201001175506p:plain:w100

顔として認識されているようですが、やっぱり人間とは違っておかしいです

ついでに会社のマスコットキャラのトドも試してみました
f:id:filot_nextd2:20201001175559p:plain:w100

こちらは顔とすら認識されませんでした

Iris

虹彩、瞳孔、目の輪郭を含むランドマークをリアルタイムで追跡

f:id:filot_nextd2:20201001155705p:plain:w80f:id:filot_nextd2:20201001155753p:plain:w80 f:id:filot_nextd2:20201001160010p:plain:w100f:id:filot_nextd2:20201001155837p:plain:w100 f:id:filot_nextd2:20201001160024p:plain:w130

目の輪郭を追跡ということでしたが、顔の認識もしてくれてるのでこちらもマスクをしてみました
見えていない鼻と口が多少ゆがんでます 片目を隠した状態でも同じように歪みましたが画面に写ってる目はしっかり追跡されました
f:id:filot_nextd2:20201001161729p:plain:w70
目をつむった場合はちゃんと目の輪郭が一本になりました

こちらもプーさんに登場してもらいました
かろうじて顔として認識されていますが、やはり目鼻口の位置はわからないようです
Faceの枠は表示されたり消えたりするので顔としての認識は怪しいです またトドも登場させてみましたが認識されませんでした 鼻と口の問題なのでしょうか。。

Hands

画像全体を操作し、方向付けられた手のバウンディングボックスを返す手のひら検出モデル

f:id:filot_nextd2:20201001150604p:plain:w100 f:id:filot_nextd2:20201001150320p:plain:w100f:id:filot_nextd2:20201001150340p:plain:w100f:id:filot_nextd2:20201001150407p:plain:w100f:id:filot_nextd2:20201001150450p:plain:w100
手の表裏と左右、指が見えないように縦にしたりしてみました すべて右手なのですが、掌がわからない状態だとLeftになる場合がありました
はじめに掌か手の甲を見せて認識させて動かすと良いようです 早い動きにも問題なく付いてきます

f:id:filot_nextd2:20201001161058p:plain:w100f:id:filot_nextd2:20201001161309p:plain:w90

指が5本見える状態で手の向きなどを変えた場合は問題なく認識されました

Pose

BlazePoseの調査を利用して、RGBビデオフレームから25の2D上半身ランドマークを推測する、忠実度の高い上半身ポーズ追跡用のMLソリューション

上半身のポーズ追跡をやってみました カメラから遠ざかるのでスクショはできませんでしたが、サンプル通りの結果になりました
画面から顔や体を半分はみ出させても追従されます アクロバティックにY字バランスポーズなどもやってみましたが足が手と認識されることはありませんでした
横向きは認識されなかったり、奥側にまわる腕の認識が点滅したりしてました
後ろ向きはでも認識され、目もそれっぽいところに配置されていました

広い部屋(後ろに何もない場所)で試してみると横向きになっても奥に位置する腕も認識されました

Hair Segmentation

DesktopはLinux対応なようなので、webで実行しました
f:id:filot_nextd2:20201002141657p:plain:w110 f:id:filot_nextd2:20201002141735p:plain:w100 f:id:filot_nextd2:20201002142014p:plain:w100
RGB(0,0,255)に設定されてます 少し下を向くと全体青くなりました
跳ねてる髪まで色が変わってますが前髪は変化しないときもありました
赤と緑もしてみました
青にしたときより黒髪が目立つ気がします
f:id:filot_nextd2:20201002142449p:plain:w100 f:id:filot_nextd2:20201002142839p:plain:w100 f:id:filot_nextd2:20201002151828p:plain:w100 f:id:filot_nextd2:20201002151848p:plain:w90

ついでにEdge Detectionもやってみました
f:id:filot_nextd2:20201002143104p:plain:w100
細かい髪の毛まで検出されてます こちらは参考にしてるページに詳細が載ってません

Object Detection

f:id:filot_nextd2:20201001185159p:plain:w100 f:id:filot_nextd2:20201001185314p:plain:w100

机にあったものが黒や青しかなかったせいなのか、ペンしか認識されませんでした
手を横から入れてみるとノートも認識されました プーさんは認識率が良いですね テディベアとして認識されています

会社の棚も撮ってみました
f:id:filot_nextd2:20201002150543p:plain:w150
ボトルはどれも似てるから判定されると思ったのですがそうでもないようです

デスクの上を動画に撮って認識させてみましたが、イヤホンやメガネははさみとして認識されました
ファイルはmp4で試しました
角度や背景にもコツが必要なのかもしれません
ボトルが並んでるところもmp4で試してみましたがどれも認識されませんでした
mp4で認識させると認識率が下がる気がします

Box Tracking

personやcell phoneは認識されますが、ペンは認識されませんでした
イヤホン(結んだ状態)は認識されるときもありましたがすぐ外れました
ノートも認識されるノートとされないノートがありました
こちらはなかなかコツが必要そうです

Face Tracking

ちょうどこの記事を書こうとしていたときにMediaPipeを使ったセミナーがあったので参加してみました

顔に画像を貼り付けて追従させるものです
会社のマスコットであるトドフェイスを貼り付けてみました

f:id:filot_nextd2:20201001200717j:plain:w100 f:id:filot_nextd2:20201001195446p:plain:w80

サンプル画像として用意されていた画像(目鼻口がちゃんと人の顔の通りになっている)だとやはりいい感じでした

これだけ簡単で正確に認識できるのでMediaPipeを使って色々遊べそうです
Hands機能を使ってハンドジェスチャーの認識をやってみたいです

UE4公式オンラインラーニングの備忘録を作る_5

目的

UE4公式オンラインラーニングの備忘録を作る_1
本記事の目的は↑を参照のこと

後で振り返りそうな内容のみ記載

今回の題材

リアルタイムレンダリング基礎入門
リアルタイムレンダリング基礎~リアルタイムレンダリング詳細
※ログイン必要

感想

エンジンに特化した内容ではなく、
レンダリング、シェーダー周りの用語やフローといった、全体像が知れる。

リアルタイムレンダリング基礎

リアルタイムレンダリングの裏側

r.ShadowQuality = 0~5

リアルタイムレンダリングのパフォーマンス

t.MaxFPS = xxx
stat fps
stat unit
Game -> CPU
stat rhi
stat scenerendering

リアルタイムレンダリングの詳細

リアルタイムレンダリングの詳細

透過処理は、フォワードレンダリングの方がディファードレンダリングより有利
world Settingss -> Pre Computed Visibility(Pre Computed Visibility Volume)
freezerenderingコマンド

ジオメトリのレンダリング (パート 1)

ドローコール

ジオメトリのレンダリング (パート 2)

UE4 <--> RenderDocの使い方
パフォーマンスに適するマージの条件
Instanced Static Mesh

ラスタライズ、オーバーシェーディング、GBuffer

GBufferと取得方法 -> High Resolution Screen Shot(Render Custom Depth Pass、Use Custom Depth as a mask、Include Buffer Visualization Targetsの設定必要)

リアルタイムレンダリングの詳細 - 反射

Plane Reflection(Capture Every Frame)
Post Process Volume(Screen Space Reflection)
優先度:Screen Space Reflection -> Plane Reflection -> Reflection Capture
短所を補うために3つを組み合わせる
Project Settingで反射の詳細設定可能(Reflection Capture Resolution)
r.SSR.Quality
SkyLightでワールド全体のバックアップ

静的ライティング

WorldSettingsからライトマップの確認可能
Lightmass Importance Volume(Indirect Lighting Cache)
Lightmass Character Indirect Detail Volume

動的ライティング

Cascade Shadow
Distance Field Shadow
Inset Shadow
Contact Shadow
Capsule Shadow
動的ライトと静的ライトの併用

フォグと透過処理

透過コスト高い
Sub Surface Rendering
Reflection
Displacement Mapping
Screen Space Ambient Occlusion
UI Rendering
Decals

リアルタイムレンダリングの詳細 - ポストプロセス

Light Bloom
Depth Of Field/Blurring
Lensflares
LightShafts
Vignette
ToneMapping/Color Collection
Exposure
Motion Blur