summaryrefslogtreecommitdiffstats
path: root/halos.cginc
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2024-09-15 18:25:19 -0700
committeryum <yum.food.vr@gmail.com>2024-09-15 18:25:19 -0700
commit5f5cdb6cac392d681e8a57cdfb2bfc55d11e2194 (patch)
tree3889c11e06b3848651264a11d0ef8e1a849f4202 /halos.cginc
parentbc0339ef792df8580d155fbcb7321b2659355905 (diff)
Bugfix: misspelled _WorldSpaceCameraPos
Diffstat (limited to 'halos.cginc')
-rw-r--r--halos.cginc12
1 files changed, 8 insertions, 4 deletions
diff --git a/halos.cginc b/halos.cginc
index aa0b731..d2601ab 100644
--- a/halos.cginc
+++ b/halos.cginc
@@ -77,7 +77,7 @@ float3 halo00_calc_normal(float3 p, Halo00Params params)
void __halo00_march(float3 ro, float3 rd, Halo00Params params, out Halo00PBR result)
{
float total_distance_traveled = 0.0;
- const float MINIMUM_HIT_DISTANCE = 0.001;
+ const float MINIMUM_HIT_DISTANCE = 0.0001;
const float MAXIMUM_TRACE_DISTANCE = 10.0;
ro -= (1 - (params.count % 2)) * params.period * 0.5;
@@ -123,9 +123,13 @@ Halo00PBR halo00_march(float3 worldPos, float2 uv)
params.count = 5;
params.uv = uv;
- float3 camera_position = mul(unity_WorldToObject, float4(_WorldSpaceCameraPos.xyz, 1));
- float3 ro = camera_position;
- float3 rd = normalize(mul(unity_WorldToObject, float4(worldPos - _WorldSpaceCameraPos.xyz, 1)));
+#define COORD_SCALE 2
+#define SCALEF4(f4, scale) float4((f4).x * (scale), (f4).y * (scale), (f4).z * (scale), (f4).w)
+#define F42OBJ(f4) mul(unity_WorldToObject, (SCALEF4(f4, COORD_SCALE))).xyz
+ float3 cam_pos = F42OBJ(float4(_WorldSpaceCameraPos, 1)).xyz;
+ float3 mesh_pos = F42OBJ(float4(worldPos, 1)).xyz;
+ float3 ro = cam_pos;
+ float3 rd = normalize((mesh_pos - cam_pos).xyz);
__halo00_march(ro, rd, params, result);