Skip to content

Fix Transparency Rim using rim value already modified by TintColor Rim - #183

Merged
sakumanaoki merged 1 commit into
mainfrom
bugfix/transparent_rim
Apr 6, 2026
Merged

Fix Transparency Rim using rim value already modified by TintColor Rim#183
sakumanaoki merged 1 commit into
mainfrom
bugfix/transparent_rim

Conversation

@sakumanaoki

Copy link
Copy Markdown
Contributor

概要

TintColor RimとTransparency Rimが同一のrim変数を共有しており、TintColorRimのGetRimValue(smoothstep)で変換された値がTransparency Rimにそのまま渡されていました。

詳細

前提として、

  • TintColor の Mode が Rim
  • TransparencyRim が有効

の2つが併用されている必要があります。

以下でRimlightを計算しているのですが、

#if defined(_TRANSPARENCY_BY_RIM) || defined(_TINT_AREA_RIM)
half rim = 1.0 - abs(dot(input.normalWS, input.viewDirWS));
#endif

rim 変数を使いまわしている関係で

#ifdef _TINT_AREA_RIM
half tintRimProgress = _TintRimProgress + GET_CUSTOM_COORD(_TintRimProgressCoord);
half tintRimSharpness = _TintRimSharpness + GET_CUSTOM_COORD(_TintRimSharpnessCoord);
rim = GetRimValue(rim, tintRimProgress, tintRimSharpness, _InverseTintRim);
tintBlendRate *= _TintBlendRate * rim;
#endif

以下にも影響してしまっています。

// Rim Transparency
#ifdef _TRANSPARENCY_BY_RIM
half rimTransparencyProgress = _RimTransparencyProgress + GET_CUSTOM_COORD(_RimTransparencyProgressCoord);
half rimTransparencySharpness = _RimTransparencySharpness + GET_CUSTOM_COORD(_RimTransparencySharpnessCoord);
ApplyRimTransparency(color, 1.0 - rim, rimTransparencyProgress, rimTransparencySharpness);
#endif

修正方針

TintColor Rimでrim変数を上書きしていた箇所を、tintRimローカル変数に格納するように変更しました。

挙動確認

対応前

TintColor の Sharpness を変更すると透過領域も変化してしまっています。

Before.mov

対応後

TintColor の Sharpness を変更しても、透過領域が変化しません。

After.mov

確認したこと

  • Transparencyのrimが引きずられないこと
  • テストが通ること

@sakumanaoki
sakumanaoki marked this pull request as ready for review April 3, 2026 05:00
@sakumanaoki
sakumanaoki merged commit e5a1b4c into main Apr 6, 2026
1 check passed
@sakumanaoki
sakumanaoki deleted the bugfix/transparent_rim branch April 6, 2026 06:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants