unity3d-jp / UnityChanToonShaderVer2_Project

UnityChanToonShaderVer2 Project / v.2.0.9 Release

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Inconsistent Behavior of Baked Normal for Outline

crna-ruka opened this issue · comments

Hi, I love this amazing shader.
I've noticed that the results of Baked Normal for Outline seem to vary according to rotations of objects.

To Reproduce

  1. Open the sample scene in Baked Normal directory.
  2. Set Y rotations of each objects to 180. Much of the outlines disappear.

Screenshot
screenshot_

Possible Solution

How about calculating the tangentTransform, at both line 76 of UCTS_Outline.cginc and line 82 of UCTS_Outline_Tess.cginc, in local space?

from
float3x3 tangentTransform = float3x3(o.tangentDir, o.bitangentDir, o.normalDir);

to
float3 bitangent = cross(v.normal, v.tangent.xyz) * v.tangent.w;
float3x3 tangentTransform = float3x3(v.tangent.xyz, bitangent, v.normal);