質問編集履歴

1

書式の改善

2019/03/07 23:30

投稿

torano
torano

スコア92

test CHANGED
File without changes
test CHANGED
@@ -1,23 +1,31 @@
1
1
  何がしたいか
2
2
 
3
+ ---
4
+
3
5
  3Dモデルのテクスチャに直接書き込むようなペイントアプリを作成しようとしています。書き込む方法として、投影テクスチャマッピング用のシェーダーをGraphics.Blitを使いテクスチャに適用します。カメラからレイをとばしヒットした場所に書き込むようにするのですが、投影テクスチャリング用に疑似カメラを用意し、そのカメラのプロパティをシェーダーに渡すことで、特定の位置に書き込む(テクスチャを投影する)ようにしています。(投影テクスチャマッピングではなく、単にヒットした位置のUVをシェーダーに渡しその位置を中心にしてブラシ用のテクスチャも張り付ける方法も考え、試してみましたが、モデルのUVに大きく依存するので辞めました。)
4
6
 
5
7
 
6
8
 
7
9
  何ができなかったか
8
10
 
11
+ ---
12
+
9
13
  投影テクスチャリングは実現できた(シェーダーコードは下にあります)のですが、Graphics.Blitで結果をテクスチャに直接反映しようとするとうまくいきません。一応塗られますが、位置が全然違います。
10
14
 
11
15
 
12
16
 
13
17
  試したこと
14
18
 
19
+ ---
20
+
15
21
  まず投影テクスチャリングが失敗の原因なのかわからなかったので、以下のように、投影と投影後に動的にテクスチャに書き込むことができるスクリプトをつくってみました。このスクリプトで投影できることは確認できたのですが、投影した場所にテクスチャが書き込まれません。
16
22
 
17
23
 
18
24
 
19
25
  スクリプトの説明と再現方法
20
26
 
27
+ ---
28
+
21
29
  投影されるモデルにこのスクリプトと投影用のシェーダーでつくったマテリアルを付けます。マテリアルのプロパティでブラシ用(投影される)テクスチャを適当に設定します。さらに、空のGameObjectをつくり、モデルのインスペクタからprojectorに設定します。色を設定し、プレイモードにすると、そのprojectorのオブジェクトのz方向に投影が行われます。インスペクタのねじマークからBakeを押すとGraphics.Blitによりテクスチャに投影結果が塗られます。
22
30
 
23
31
 
@@ -42,9 +50,11 @@
42
50
 
43
51
  環境など
44
52
 
53
+ ---
54
+
45
55
  Unity 2018.3.0f1(アップデート予定)
46
56
 
47
- VRアプリで考えてます。
57
+ VRアプリで考えてますが、とりあえずwindowsでプラットフォーム設定はデフォルトです
48
58
 
49
59
 
50
60