Skip to content
This repository was archived by the owner on Jun 12, 2022. It is now read-only.

Commit e5fd5c1

Browse files
committed
fix(shaderlab): fix example shader
1 parent c93560a commit e5fd5c1

File tree

3 files changed

+49
-34
lines changed

3 files changed

+49
-34
lines changed

Source/SharpX.Examples.ShaderLab/HLSL/GeometryShader.cs

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ private SlFloat2 GetUVFromOptions(SlFloat2 a, SlFloat2 b, SlFloat2 c)
2727
return c;
2828

2929
default:
30-
return new SlFloat2(0);
30+
return new SlFloat2(0, 0);
3131
}
3232
}
3333

@@ -81,7 +81,7 @@ private SlFloat3 GetMovedVertexForHolograph(SlFloat3 vertex, SlFloat3 normal, Sl
8181
);
8282
}
8383

84-
private Geometry2Fragment GetStreamDataForVoxelization(SlFloat3 vertex, SlFloat3 normal, SlFloat2 uv, SlFloat2 oNormal)
84+
private Geometry2Fragment GetStreamDataForVoxelization(SlFloat3 vertex, SlFloat3 normal, SlFloat2 uv, SlFloat3 oNormal)
8585
{
8686
#if SHADER_SHADOWCASTER
8787
var pos1 = GetMovedVertexForVoxelization(vertex, (SlFloat3) oNormal);
@@ -124,7 +124,7 @@ private Geometry2Fragment GetStreamDataForHolograph(SlFloat3 vertex, SlFloat3 no
124124
private Geometry2Fragment GetStreamDataForNonGeometry(SlFloat3 vertex, SlFloat3 normal, SlFloat2 uv, SlFloat3 localPos)
125125
{
126126
#if SHADER_SHADOWCASTER
127-
var pos1 = GetMovedVertexForVoxelization(vertex, (SlFloat3) oNormal);
127+
var pos1 = GetMovedVertexForVoxelization(vertex, normal);
128128
var cos = Builtin.Dot(normal, Builtin.Normalize(UnityCg.UnityWorldSpaceLightDir(pos1)));
129129
var pos2 = pos1 - normal * UnityCg.UnityLightShadowBias.Z * Builtin.Sqrt(1 - cos * cos);
130130

@@ -202,9 +202,9 @@ public void GeometryMain([InputPrimitive(InputPrimitiveAttribute.InputPrimitives
202202
}
203203
}
204204

205-
var p1 = i[0].Vertex;
206-
var p2 = i[1].Vertex;
207-
var p3 = i[2].Vertex;
205+
var p1 = i[0].WorldPos.XYZ;
206+
var p2 = i[1].WorldPos.XYZ;
207+
var p3 = i[2].WorldPos.XYZ;
208208

209209
var center = ((p1 + p2 + p3) / 3).XYZ;
210210

@@ -253,10 +253,10 @@ public void GeometryMain([InputPrimitive(InputPrimitiveAttribute.InputPrimitives
253253

254254
var n = CalcNormal(a, b, c);
255255

256-
stream.Append(GetStreamDataForVoxelization(a + f, n, uv, (SlFloat2) o));
257-
stream.Append(GetStreamDataForVoxelization(b + f, n, uv, (SlFloat2)o));
258-
stream.Append(GetStreamDataForVoxelization(c + f, n, uv, (SlFloat2)o));
259-
stream.Append(GetStreamDataForVoxelization(d + f, n, uv, (SlFloat2)o));
256+
stream.Append(GetStreamDataForVoxelization(a + f, n, uv, o));
257+
stream.Append(GetStreamDataForVoxelization(b + f, n, uv, o));
258+
stream.Append(GetStreamDataForVoxelization(c + f, n, uv, o));
259+
stream.Append(GetStreamDataForVoxelization(d + f, n, uv, o));
260260
stream.RestartStrip();
261261
}
262262

@@ -269,10 +269,10 @@ public void GeometryMain([InputPrimitive(InputPrimitiveAttribute.InputPrimitives
269269

270270
var n = CalcNormal(a, b, c);
271271

272-
stream.Append(GetStreamDataForVoxelization(a + f, n, uv, (SlFloat2)o));
273-
stream.Append(GetStreamDataForVoxelization(b + f, n, uv, (SlFloat2)o));
274-
stream.Append(GetStreamDataForVoxelization(c + f, n, uv, (SlFloat2)o));
275-
stream.Append(GetStreamDataForVoxelization(d + f, n, uv, (SlFloat2)o));
272+
stream.Append(GetStreamDataForVoxelization(a + f, n, uv, o));
273+
stream.Append(GetStreamDataForVoxelization(b + f, n, uv, o));
274+
stream.Append(GetStreamDataForVoxelization(c + f, n, uv, o));
275+
stream.Append(GetStreamDataForVoxelization(d + f, n, uv, o));
276276
stream.RestartStrip();
277277
}
278278

@@ -285,10 +285,10 @@ public void GeometryMain([InputPrimitive(InputPrimitiveAttribute.InputPrimitives
285285

286286
var n = CalcNormal(a, b, c);
287287

288-
stream.Append(GetStreamDataForVoxelization(a + f, n, uv, (SlFloat2)o));
289-
stream.Append(GetStreamDataForVoxelization(b + f, n, uv, (SlFloat2)o));
290-
stream.Append(GetStreamDataForVoxelization(c + f, n, uv, (SlFloat2)o));
291-
stream.Append(GetStreamDataForVoxelization(d + f, n, uv, (SlFloat2)o));
288+
stream.Append(GetStreamDataForVoxelization(a + f, n, uv, o));
289+
stream.Append(GetStreamDataForVoxelization(b + f, n, uv, o));
290+
stream.Append(GetStreamDataForVoxelization(c + f, n, uv, o));
291+
stream.Append(GetStreamDataForVoxelization(d + f, n, uv, o));
292292
stream.RestartStrip();
293293
}
294294

@@ -301,10 +301,10 @@ public void GeometryMain([InputPrimitive(InputPrimitiveAttribute.InputPrimitives
301301

302302
var n = CalcNormal(a, b, c);
303303

304-
stream.Append(GetStreamDataForVoxelization(a + f, n, uv, (SlFloat2)o));
305-
stream.Append(GetStreamDataForVoxelization(b + f, n, uv, (SlFloat2)o));
306-
stream.Append(GetStreamDataForVoxelization(c + f, n, uv, (SlFloat2)o));
307-
stream.Append(GetStreamDataForVoxelization(d + f, n, uv, (SlFloat2)o));
304+
stream.Append(GetStreamDataForVoxelization(a + f, n, uv, o));
305+
stream.Append(GetStreamDataForVoxelization(b + f, n, uv, o));
306+
stream.Append(GetStreamDataForVoxelization(c + f, n, uv, o));
307+
stream.Append(GetStreamDataForVoxelization(d + f, n, uv, o));
308308
stream.RestartStrip();
309309
}
310310

@@ -317,10 +317,10 @@ public void GeometryMain([InputPrimitive(InputPrimitiveAttribute.InputPrimitives
317317

318318
var n = CalcNormal(a, b, c);
319319

320-
stream.Append(GetStreamDataForVoxelization(a + f, n, uv, (SlFloat2)o));
321-
stream.Append(GetStreamDataForVoxelization(b + f, n, uv, (SlFloat2)o));
322-
stream.Append(GetStreamDataForVoxelization(c + f, n, uv, (SlFloat2)o));
323-
stream.Append(GetStreamDataForVoxelization(d + f, n, uv, (SlFloat2)o));
320+
stream.Append(GetStreamDataForVoxelization(a + f, n, uv, o));
321+
stream.Append(GetStreamDataForVoxelization(b + f, n, uv, o));
322+
stream.Append(GetStreamDataForVoxelization(c + f, n, uv, o));
323+
stream.Append(GetStreamDataForVoxelization(d + f, n, uv, o));
324324
stream.RestartStrip();
325325
}
326326

@@ -333,10 +333,10 @@ public void GeometryMain([InputPrimitive(InputPrimitiveAttribute.InputPrimitives
333333

334334
var n = CalcNormal(a, b, c);
335335

336-
stream.Append(GetStreamDataForVoxelization(a + f, n, uv, (SlFloat2)o));
337-
stream.Append(GetStreamDataForVoxelization(b + f, n, uv, (SlFloat2)o));
338-
stream.Append(GetStreamDataForVoxelization(c + f, n, uv, (SlFloat2)o));
339-
stream.Append(GetStreamDataForVoxelization(d + f, n, uv, (SlFloat2)o));
336+
stream.Append(GetStreamDataForVoxelization(a + f, n, uv, o));
337+
stream.Append(GetStreamDataForVoxelization(b + f, n, uv, o));
338+
stream.Append(GetStreamDataForVoxelization(c + f, n, uv, o));
339+
stream.Append(GetStreamDataForVoxelization(d + f, n, uv, o));
340340
stream.RestartStrip();
341341
}
342342
#elif SHADER_TRIANGLE_HOLOGRAPH
@@ -350,7 +350,7 @@ public void GeometryMain([InputPrimitive(InputPrimitiveAttribute.InputPrimitives
350350
{
351351
for (SlInt j = 0; j < 3; j++)
352352
{
353-
var vertex = i[j].Vertex.XYZ;
353+
var vertex = i[j].WorldPos.XYZ;
354354
var uv = i[j].TexCoord;
355355

356356
stream.Append(GetStreamDataForHolograph(vertex, normal, uv, localPos));

Source/SharpX.Examples.ShaderLab/HLSL/Globals.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ public static class Globals
4646
[DefaultValue(@"""white"" { }")]
4747
public static Sampler2D MainTexture { get; }
4848

49+
[GlobalMember]
50+
[NotExportToInspector]
51+
[Property("_MainTex_ST")]
52+
public static SlFloat4 MainTextureST { get; }
53+
4954
[GlobalMember]
5055
[Property("_Color")]
5156
[DisplayName("Main Color")]
@@ -280,8 +285,8 @@ public static class Globals
280285
public static CompareFunction StencilCompare { get; }
281286

282287
[GlobalMember]
283-
[Property("_StencilKeep")]
284-
[DisplayName("Stencil Keep")]
288+
[Property("_StencilPass")]
289+
[DisplayName("Stencil Pass")]
285290
[Enum("UnityEngine.Rendering.StencilOp")]
286291
[DefaultValue(StencilOp.Keep)]
287292
public static StencilOp StencilPass { get; }

Source/SharpX.Examples.ShaderLab/Shader/SakuraShader.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using System.Collections.Immutable;
22

3+
using Mochizuki.SakuraShader;
4+
35
using SharpX.Examples.ShaderLab.HLSL;
46
using SharpX.Library.ShaderLab.Abstractions;
57
using SharpX.Library.ShaderLab.Attributes;
@@ -13,6 +15,14 @@ internal class SakuraShader : ShaderLabDefinition
1315
{
1416
private static readonly ImmutableArray<SubShaderDefinition> Shaders = ImmutableArray.Create<SubShaderDefinition>(new SakuraShaderLod0());
1517

16-
public SakuraShader() : base("NatsunekoLaboratory/Sakura Shader/Avatars", typeof(Globals), Shaders) { }
18+
public SakuraShader() : base("NatsunekoLaboratory/Sakura Shader/Avatars", typeof(Globals), Shaders)
19+
{
20+
CustomEditor = typeof(AvatarsGui);
21+
}
1722
}
23+
}
24+
25+
namespace Mochizuki.SakuraShader
26+
{
27+
internal class AvatarsGui { }
1828
}

0 commit comments

Comments
 (0)