diff options
| author | yum <yum.food.vr@gmail.com> | 2025-03-26 00:25:26 -0700 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2025-03-26 00:25:26 -0700 |
| commit | 70f30643e6c392535cfbf0b82054bd4b53868833 (patch) | |
| tree | 9c684658c09f36318f94a8fc8ec3f8baf51be34d /2ner.cginc | |
| parent | 274f601c9c49f69e4acef24b56982190b5b0bf93 (diff) | |
Finish adding tessellation; add 4 channels to shatterwave
Diffstat (limited to '2ner.cginc')
| -rw-r--r-- | 2ner.cginc | 18 |
1 files changed, 12 insertions, 6 deletions
@@ -71,10 +71,13 @@ v2f vert(appdata v) { float3 tgt_normal = normalize(o.objPos.xyz);
float3 tgt_tangent = normalize(float3(tgt_normal.y, -tgt_normal.x, 0));
float3 tgt_pos = tgt_normal * _Spherize_Radius;
- o.normal = normalize(lerp(o.normal, tgt_normal, _Spherize_Strength));
- o.objPos.xyz = lerp(o.objPos.xyz, tgt_pos, _Spherize_Strength);
+ v.normal = normalize(lerp(v.normal, tgt_normal, _Spherize_Strength));
+ v.vertex.xyz = lerp(v.vertex.xyz, tgt_pos, _Spherize_Strength);
}
#endif
+#if !defined(_TESSELLATION) && defined(_SHATTER_WAVE)
+ shatterWaveVert(v.vertex.xyz, v.normal, v.tangent);
+#endif
#if defined(OUTLINE_PASS)
[branch]
@@ -154,10 +157,9 @@ v2f vert(appdata v) { o.eyeVec.w = 1;
// These are used to convert normals from tangent space to world space.
- o.normal = UnityObjectToWorldNormal(v.normal);
- o.tangent = UnityObjectToWorldDir(v.tangent.xyz);
- o.binormal = cross(o.normal, o.tangent) * v.tangent.w *
- unity_WorldTransformParams.w;
+ o.normal = v.normal;
+ o.tangent = v.tangent.xyz;
+ o.binormal = cross(o.normal, o.tangent) * v.tangent.w;
UNITY_TRANSFER_LIGHTING(o, v.uv0);
UNITY_TRANSFER_FOG_COMBINED_WITH_EYE_VEC(o, o.pos);
@@ -179,6 +181,10 @@ float4 frag(v2f i // Not necessarily normalized after interpolation
i.normal = normalize(i.normal);
+ i.normal = UnityObjectToWorldNormal(i.normal);
+ i.tangent = UnityObjectToWorldNormal(i.tangent);
+ i.binormal = UnityObjectToWorldNormal(i.binormal);
+
#if defined(_SHATTER_WAVE)
shatterWaveFrag(i.normal, i.objPos);
{
|
