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

回答編集履歴

1

単語の修正漏れを訂正、プロパティのデフォルト値を@aa_debdebさんの方式と同じに変更

2019/12/12 21:36

投稿

Bongo
Bongo

スコア10816

answer CHANGED
@@ -26,12 +26,12 @@
26
26
  {
27
27
  Properties
28
28
  {
29
- _Color ("Color", Color) = (1,1,1,1)
29
+ _Color ("Color", Color) = (0.8, 0.5, 0.5, 0.1)
30
30
  _MainTex ("Albedo (RGB)", 2D) = "white" {}
31
31
  _Glossiness ("Smoothness", Range(0,1)) = 0.5
32
32
  _Metallic ("Metallic", Range(0,1)) = 0.0
33
- _Refraction ("Refraction Index", Float) = 1.33
33
+ _Refraction ("Refraction Index", Range(1.0, 3.0)) = 1.33
34
- _Distance ("Refraction Distance", Float) = 1.0
34
+ _Distance ("Refraction Distance", Float) = 10.0
35
35
  }
36
36
  SubShader
37
37
  {
@@ -65,7 +65,7 @@
65
65
  #define DISTANCE_DIVISOR 16.0
66
66
  #define ITERATION_COUNT 32
67
67
  #define DEPTH_THRESHOLD 0.1
68
- #define EDGE_BLENDING_MULTIPLIER 4.0
68
+ #define EDGE_BLENDING_EXPONENT 4.0
69
69
 
70
70
  // まず屈折方向を求め...
71
71
  float3 eyeDir = normalize(IN.worldPos - _WorldSpaceCameraPos);
@@ -105,7 +105,7 @@
105
105
  // 検出された衝突点のデプスがある程度ずれているようなら誤検出と見なして検出を取り消す
106
106
  // また、判定境界の部分に発生するノイズを軽減するため、境界付近では判定値をなめらかに変える
107
107
  float depthDelta = abs(backgroundDepth + refractionViewPos.z);
108
- hit = hit * saturate(1.0 - pow(depthDelta / DEPTH_THRESHOLD, EDGE_BLENDING_MULTIPLIER));
108
+ hit = hit * saturate(1.0 - pow(depthDelta / DEPTH_THRESHOLD, EDGE_BLENDING_EXPONENT));
109
109
 
110
110
  // 衝突していると判定された場合はグラブテクスチャの色を、そうでなければ
111
111
  // リフレクション用キューブマップの色を屈折色として採用する