Skip to content

Commit 6006f99

Browse files
committed
fix double accretion disk issue with the start position optimization
1 parent 157b7da commit 6006f99

File tree

4 files changed

+9
-239
lines changed

4 files changed

+9
-239
lines changed

Singularity/Shaders/SingularityShaders/Assets/Editor/ExportAssetBundle.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ static void BuildAllAssetBundles ()
1515
{
1616
// Put the bundles in a folder called "AssetBundles"
1717
//var outDir = "Assets/AssetBundles";
18-
var outDir = "D:/gh/Steam/steamapps/common/Kerbal Space Program/GameData/Singularity/shaders";
19-
var outDir2 = "D:/gh/Steam/steamapps/common/Kerbal Space Program 1.8.1/GameData/Singularity/shaders";
18+
var outDir = "C:/Steam/steamapps/common/Kerbal Space Program/GameData/Singularity/shaders";
19+
var outDir2 = "C:/Steam/steamapps/common/Kerbal Space Program 1.8.1/GameData/Singularity/shaders";
2020

2121
if (!Directory.Exists (outDir))
2222
Directory.CreateDirectory (outDir);

Singularity/Shaders/SingularityShaders/Assets/Shaders/BlackHole.shader

Lines changed: 0 additions & 224 deletions
This file was deleted.

Singularity/Shaders/SingularityShaders/Assets/Shaders/BlackHole.shader.meta

Lines changed: 0 additions & 9 deletions
This file was deleted.

Singularity/Shaders/SingularityShaders/Assets/Shaders/BlackHoleAccretionDisk.shader

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -239,9 +239,11 @@
239239
//acretion disk base vectors
240240
float3 base1 = normalize(cross(diskNormal, diskNormal.zxy)); //move this to plugin precomputation, check if 2nd vector is equal to first and re-change it
241241
float3 base2 = normalize(cross(base1, diskNormal)); //move this to precomputation?
242-
#endif
243242

243+
for (int i = 0; i < 40; i++)
244+
#else
244245
for (int i = 0; i < 35; i++)
246+
#endif
245247
{
246248
currentObject = -1;
247249
currentDistance = INFINITY;
@@ -352,14 +354,15 @@
352354
{
353355
i.worldPos.xyz/=i.worldPos.w;
354356
float3 viewDir = normalize(i.worldPos.xyz-_WorldSpaceCameraPos);
357+
float3 blackHoleOrigin = i.blackHoleOrigin.xyz/i.blackHoleOrigin.w;
355358

356359
float3 startPosition = _WorldSpaceCameraPos;
357360

358361
//move the starting ray position to the closest point on the enclosing mesh
359-
float sphereDist = sphereDistance(startPosition, viewDir, float4(i.blackHoleOrigin.xyz/i.blackHoleOrigin.w, enclosingMeshRadius));
360-
startPosition = (sphereDist == INFINITY) ? startPosition : startPosition + viewDir * sphereDist;
362+
float sphereDist = sphereDistance(startPosition, viewDir, float4(blackHoleOrigin, enclosingMeshRadius));
363+
startPosition = (sphereDist == INFINITY) || (length(startPosition - blackHoleOrigin) < enclosingMeshRadius) ? startPosition : startPosition + viewDir * sphereDist;
361364

362-
float4 color = raytrace(startPosition, viewDir, i.blackHoleOrigin.xyz/i.blackHoleOrigin.w);
365+
float4 color = raytrace(startPosition, viewDir, blackHoleOrigin);
363366
return color;
364367
}
365368
ENDCG

0 commit comments

Comments
 (0)