回答編集履歴

1

追記

2022/03/01 13:24

投稿

katsuko
katsuko

スコア3471

test CHANGED
@@ -7,4 +7,25 @@
7
7
  キャプチャ処理も、`UwcWindow.RequestCapture`メソッドを呼び出し、**`UwcWindow.OnCaptured`イベントを受け取ってキャプチャ処理の完了を受けてから**、`UwcWindow.texture`プロパティにアクセスしてキャプチャ画像を取り出すようになっているようです。
8
8
  `UwcWindow.OnCaptured`イベントが発生しない限りは、テクスチャにアクセスしてもダメだと思いますが、その辺りはいかがですか。
9
9
 
10
+ -----
10
11
 
12
+ > 関数内でRawImageにテクスチャを直接セットしたところ正しい画像が確認されているので、最初からテクスチャが空であるというわけではないのだろうと思います。
13
+
14
+ 確認というのは、目視ですよね。
15
+ セットした時点では灰色の状態でも、1,2フレーム後にテクスチャにキャプチャ画像に書き換えられても、灰色の状態は1,2フレームしか表示されないので、目視では確認しづらいのではないですか。
16
+ (下手をすると、表示される前に書き換えられているかもしれませんし)
17
+ だから、まずキャプチャされるタイミングを疑っています。
18
+
19
+ 試しに、数フレーム待ってから`GetPixels`して試してみたらいかがですか。
20
+
21
+ -----
22
+
23
+ と書こうと思って質問文を読み返していたら、「5.一応の解決方法」を読み忘れていることに気づきました。すいません。
24
+ (でも、一応先に書いた事も疑った方がいいと思います)
25
+
26
+ これを見る限り、GPUのみで処理されていて、CPUにはデータがないのではないかなぁ。(CPU→GPUのピクセル転送するのに、
27
+ `SetPixels`でCPUのピクセル値を設定して、`Apply`でCPUからGPUへ転送するのとは逆に、`GetPixels`する前にGPUからCPUに転送する`Apply`みたいな処理が必要)
28
+
29
+ 解決法の通りの手段を取るのが無難ですが、`renderTexture`→`readableTexture2D`→`trimmedTexture`の順に転送していますが、せっかく`ReadPixels`で座標を指定できるのだから、`trimmedTexture`で`ReadPixels`してしまえば`readableTexture2D`は不要になり、無駄な処理が省けてある程度軽くなると思います。
30
+
31
+