teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

テクスチャ3D適応後の調整の仕方についての質問を追記しました

2020/12/13 05:34

投稿

911RSR
911RSR

スコア13

title CHANGED
File without changes
body CHANGED
@@ -96,4 +96,20 @@
96
96
  適用しているオブジェクトが、sphereを楕円球にしたものを複数合成させたものになりますので、形状が複雑だから適用できないのかと思い単純なCubeにもD&Dを試みたのですが、やはり無理でした。。
97
97
 
98
98
  texture3Dの適用には何か独特な手順が必要なのでしょうか。
99
- ご教示頂けますと幸甚です。
99
+ ご教示頂けますと幸甚です。
100
+
101
+ ***12/13追記
102
+ テクスチャ3Dを反映できました!ここまで本当にありがとうございます。
103
+
104
+ あと一歩、いや1.5歩のように思います!
105
+
106
+ 例のsphereの合成体にこのテクスチャ3Dを反映したところ、以下の結果が得られました。
107
+ ![現状](2fb53d3278520413dddb3d889bc4a97a.jpeg)
108
+
109
+ 理想的には、下の図の緑の部分のように、例えばinspecterで表示される地球儀マップ状のテクスチャを、そのままsphereの合成体に貼り付けたいと思っています。
110
+ ![緑の部分を切り抜いて](bf9880f371647eb13a57ade7ed792bb6.jpeg)
111
+ ↓理想とする結果
112
+ ![![理想の結果](c5371e5efc5be9f7e6d2ab411587aa65.jpeg)](a81890058cee08fbc56ca66966815923.jpeg)
113
+
114
+ 現状ではsphere上にテクスチャ3Dが繰り返し表示され、また目的の場所が切り取られないというのが問題に思いますが、スクリプトを改変することで理想は達成できそうでしょうか。
115
+ 自動的に必要な部分のuv座標を計算させ、リアルタイムに反映させるのは難しいように思いますので、少なくともtiling等をいじって画像が何列もダブって表示されるのだけでも解消しようと試みたのですが、tilingを0.1や10等に変えてもテクスチャ自体には変化が起こりませんでした。

2

生成されたテクスチャの適用についての質問を追記させて頂きました。

2020/12/13 05:34

投稿

911RSR
911RSR

スコア13

title CHANGED
File without changes
body CHANGED
@@ -22,4 +22,78 @@
22
22
  いろいろと疑問ばかりで申し訳ございませんが、少しでも先達の方々のお知恵を拝借できれば幸甚です。
23
23
  よろしくお願いいたします。
24
24
 
25
+ 12/10追記
26
+ 無事Texture3Dは生成できたのですが、オブジェクトへの適用でつまずいております。。
27
+
28
+ 引き続き上記、凹みさんのページを参照し、Texture3Dを参照するシェーダのスクリプトを書いたのですが、オブジェクトにドラッグ&ドロップできません。。
29
+
30
+ ```C#
31
+ Shader "VolumeRendering/3D Texture"
32
+ {
33
+
34
+ Properties
35
+ {
36
+ _Volume("Volume", 3D) = "" {}
37
+ }
38
+
39
+ CGINCLUDE
40
+
41
+ #include "UnityCG.cginc"
42
+
43
+ struct appdata
44
+ {
45
+ float4 vertex : POSITION;
46
+ };
47
+
48
+ struct v2f
49
+ {
50
+ float4 vertex : SV_POSITION;
51
+ float3 uv : TEXCOORD0;
52
+ };
53
+
54
+ sampler3D _Volume;
55
+
56
+ v2f vert(appdata v)
57
+ {
58
+ v2f o;
59
+ o.vertex = UnityObjectToClipPos(v.vertex);
60
+ float4 wpos = mul(unity_ObjectToWorld, v.vertex);
61
+ o.uv = wpos.xyz * 0.5 + 0.5;
62
+ return o;
63
+ }
64
+
65
+ fixed4 frag(v2f i) : SV_Target
66
+ {
67
+ return tex3D(_Volume, i.uv);
68
+ }
69
+
70
+ ENDCG
71
+
72
+ SubShader
73
+ {
74
+
75
+ Tags
76
+ {
77
+ "RenderType" = "Opaque"
78
+ }
79
+
80
+ Pass
81
+ {
82
+ CGPROGRAM
83
+ #pragma vertex vert
84
+ #pragma fragment frag
85
+ ENDCG
86
+ }
87
+
88
+ }
89
+
90
+ }
91
+ コード
92
+ ```
93
+
94
+ 毎度毎度初歩的な質問ばかりで申し訳ございません。。
95
+
25
- ![イメー説明](341a48c387e72d634e235c26c4c5c8bf.gif)![イメージ説明](8241a19bebdac111e32a2d79636e0c19.gif)
96
+ 適用しているオブェクトが、sphereを楕円球にしたものを複数合成させたものになりますので、形状が複雑だから適用できないのかと思い単純なCubeにもD&Dを試みたのですが、やはり無理でした。。
97
+
98
+ texture3Dの適用には何か独特な手順が必要なのでしょうか。
99
+ ご教示頂けますと幸甚です。

1

ダブって生成されたtextureの画像です

2020/12/10 02:46

投稿

911RSR
911RSR

スコア13

title CHANGED
File without changes
body CHANGED
@@ -20,4 +20,6 @@
20
20
  とありますが、rawデータをドラッグ&ドロップとは、このフォルダごとプロジェクトウィンドウにドラッグすればよいということでしょうか。(ちなみにdicomファイルをdngに変換はできたのですが、rawに変換するのも苦慮しています。。)
21
21
 
22
22
  いろいろと疑問ばかりで申し訳ございませんが、少しでも先達の方々のお知恵を拝借できれば幸甚です。
23
- よろしくお願いいたします。
23
+ よろしくお願いいたします。
24
+
25
+ ![イメージ説明](341a48c387e72d634e235c26c4c5c8bf.gif)![イメージ説明](8241a19bebdac111e32a2d79636e0c19.gif)