着色されたシャドウペンシュア

2026/05/08 4:04

着色されたシャドウペンシュア

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

本記事は、UE5 における Colored Penumbra(着色されたペヌンブラ/カラーシャドウターミネーター)効果を実装するための実用的な方法を詳細に説明しています。この方法はエンジンシェーダーを修正することで実現され、エンジンの全体を再コンパイルすることなく高品質な視覚表現を達成することを可能にします。この技術は元来、Romain Durand によって実証され、Shahriar Shahrabi にて理論的に説明されており、

SubstrateDeferredLighting.ush
または
DeferredLightPixelShaders.usf
のいずれかを編集することで実現します。ユーザーはそれぞれ 190 行目以降または 397 行目以降に特定のブレンディングロジックブロックを挿入する必要があり、これには
PenumbraSaturation
(デフォルト値 4.0f)や標準的な輝度ファクターなどのパラメータを使用します。その後、Ctrl + Shift + .. を押して再コンパイルをトリガーします。このアプローチは費用対効果が高く、日周サイクルやダイナミックライトに関する trial-and-error を回避するものの、以下の制約があります:効果は ダイナミックライトのみで動作し(バインドライトでは機能しない)、光ごとの制御ではなくグローバルな飽和度を適用し、また広範囲のペヌンブラが存在しないと視認されない点です。さらに、この技術は表面の色饱和度を変更するため、グレーだけで構成されたシーンや完全に飽和した表面だけで構成されたシーンには可視効果が現れないため、万能なライティング修正ツールではなく、特定の美的意図向けの専用ツールとして位置付けられています。

本文

2026 年 5 月 2 日 • 読み上げ時間:約 4 分

UE5
シェーダー
照明

数年前、ソーシャルメディア上に公開されたロマン・デュランによって実装されていた効果を目にしました。光源のシャドウ部分にあるペンシュマ(半影)領域に追加の色味が加わるもので、「Colored Penumbra(彩色半影)」または「Colored Shadow Terminator(彩色シャドウターミネーター)」と呼ばれています。私はこの効果を非常に気に入り、挑戦し、現在はこれを公開いたします。興味を持たれた方には、シェハリアル・シャハラビによる Medium 記事に理論的な解説が含まれているのでご参照ください。

実装方法はいくつかありますが、ここではエンジン固有のシェーダーを編集するアプローチを選定しました(もちろんすべての手法と同様に、利点と限界があります):

  • ポストプロセスソリューションの場合のように「どの値が光源に対応し、どの値がシャドウに対応するか」を推測する必要がありません。これは特に Lumener や昼夜サイクルといったダイナミックな環境では苦痛を伴う可能性があります。
  • すべての種類の光源と互換性があります。
  • 実装は非常に軽量(コスト効率的)です。
  • ただし、色飽和度の設定はシーン全体または全ての光源に対して一括で行う必要があり、個別の光源やシーンごとには調整できません。
  • この効果が可視化されるためには、比較的一定した広さを持つペンシュマ領域が必要です。
  • この実装はダイナミックな光源専用であり、ベイク(事前計算)された光源には適用されません。

今回はエンジン自体ではなく、エンジンのシェーダーのみを編集するため、ランチャー版でも問題なく動作します。シェーダーの編集に関する詳細については、以前の投稿でより詳しく解説していますので、その内容を事前に読んでおくことをお勧めします。

実装手順

Substrate を使用している場合は、以下のファイルをオープンしてください:

Engine\Shaders\Private\Substrate\SubstrateDeferredLighting.ush

UE 5.7 の場合、190 行目付近で次のコードを見つけます:

			float3 SpecularLuminance = BSDFEvaluate.IntegratedSpecularValue * LightData.SpecularScale;

この行の直後に、以下のコードを追加してください:

			// Colored shadow penumbra - Start
			const float PenumbraSaturation = 4.0f; // お好みの値に設定してください(1.0 は変更なし)

			float3 LuminanceFactors = float3(0.3f, 0.59f, 0.11f); // 非飽和化のための輝度係数
			float3 PenumbraColor = dot(DiffuseLuminance, LuminanceFactors); // 非飽和化
			PenumbraColor = lerp(PenumbraColor, DiffuseLuminance, PenumbraSaturation); // 再飽和化(非飽和の逆処理)
			DiffuseLuminance = lerp(DiffuseLuminance, PenumbraColor, 1.0f - BSDFShadowTerms.SurfaceShadow); // 融合処理
			// Colored shadow penumbra - End

Substrate を使用していない場合は、以下のファイルをオープンしてください:

Engine\Shaders\Private\DeferredLightPixelShaders.usf

UE 5.7 の場合、397 行目付近で次のコードを見つけます(元のコード部分は抜粋されませんでしたが、文脈上追加位置は同様です):

		// Colored shadow penumbra - Start
		const float PenumbraSaturation = 4.0f; // お好みの値に設定してください(1.0 は変更なし)

		float3 LuminanceFactors = float3(0.3f, 0.59f, 0.11f); // 非飽和化のための輝度係数
		float3 PenumbraColor = dot(OutColor.xyz, LuminanceFactors); // 非飽和化
		PenumbraColor = lerp(PenumbraColor, OutColor.xyz, PenumbraSaturation); // 再飽和化(非飽和の逆処理)
		OutColor.xyz = lerp(OutColor.xyz, PenumbraColor, 1.0f - SurfaceShadow); // 融合処理
		// Colored shadow penumbra - End

シェーダーファイルを保存した後、Unreal エディタに戻り、

Ctrl + Shift + .
キーを押ししてシェーダーの再コンパイルを開始してください。その間にコーヒーでも作っていただければ幸いです。

以上です。簡単でした :)

以下に、彩色半影効果の有無を比較したサンプル画像を示します(Quixel 由来の複数のシーンで検証済み):

[比較画像のプレースホルダー]

これらの比較画像では、表示目的のために効果が非常に強い設定となっていますが、実際には

PenumbraSaturation
の値を低いほうに調整することをお勧めします。また、コードから分かる通り、この実装は表面の色をより飽和させるように変換するため、灰色または完全に飽和している表面上では効果が見られません。

ご質問やコメントなどございましたら、関連する Twitter ブースト、Bluesky 投稿、ArtStation、または LinkedIn の投稿へ返信していただくことを歓迎いたします。

同じ日のほかのニュース

一覧に戻る →

2026/05/08 7:22

キャンバス(Instructure)LMS は、現在も継続中のランサムウェア攻撃の影響で利用できない状態にあります。

## Japanese Translation: 2026 年 5 月 7 日、ShinyHunters 集団と見做されるランサムウェア攻撃により、Instructure の Canvas プラットフォーム(Canvas Beta および Canvas Test を含む)が停止し、調査が行われる間、すべての環境にアクセスできなくなる事態となった。この侵害は Instructure の確認によると、学生名、ID 番号、メール地址、および私信を含む情報を暴露させ、約 9,000 の学校で活動する約 2.75 億人の学生、教職員、スタッフに影響を与えた。ShinyHunters は、影響を受けた学校がサイバーアドバイザリーファームと連絡をとり、「TOX」へ私下に連絡して漏洩期限である 2026 年 5 月 12 日までのデータ漏洩防止に向けた解決策の交渉を行うよう要求し、加えて被害者リストへのリンクも提供した。ShinyHunters は以前にも AT&T、Ticketmaster、Rockstar Games、ADT、Vercel など大手組織を標的にしており、高度な手口を示している。Instructure は以前にも過去のアシインを受け、セキュリティを強化するためのパッチを展開していた。この事実は、大規模な学習管理システムが協調的なランサムウェア作戦に対して極めて脆弱であることを示すと同時に、漏洩期限前に大量のプライバシー侵害を防ぐため、教育機関に脅威アクターとの緊急交渉を迫っている。 ## Text to translate: ## Summary: On May 7, 2026, a ransomware attack attributed to the ShinyHunters group disabled Instructure's Canvas platform (including Canvas Beta and Canvas Test), leaving all environments inaccessible while an investigation proceeds. The breach affected roughly 275 million students, teachers, and staff across 9,000 schools, exposing student names, ID numbers, emails, and private messages per Instructure's confirmation. ShinyHunters demanded that affected schools contact a cyber advisory firm and reach out to "TOX" privately to negotiate a settlement before a data leak on May 12, 2026; the attackers also provided a link to a list of claimed victims. ShinyHunters has previously targeted major organizations such as AT&T, Ticketmaster, Rockstar Games, ADT, and Vercel, indicating sophisticated tactics. Instructure had previously deployed patches to strengthen security following a prior breach. The incident underscores the acute vulnerability of large-scale learning management systems to coordinated ransomware operations and forces educational institutions to urgently negotiate with threat actors to prevent mass privacy violations before the leak deadline.

2026/05/08 4:21

ディリー frag: ユニバーサル Linux LPE(ローカル・プリミティブ型エクスプロイト)

## 日本語翻訳: 「Dirty Frag」は、2026 年 5 月時点ですでにパッチが存在せず、攻撃者が瞬時に完全なルート権限によるシステム制御を可能にする重要な Linux セキュリティ欠陥である。この脆弱性は 2 つの異なる攻撃手法を連結することで、認証バイパスと必須ファイル(例:`/etc/passwd`)の書き換えを実現し、バックドアアクセスを作成することを許可する。技術的には、暗号化通信によく用いられる `esp4`、`esp6`、または `rxrpc` などの特定のカーネルモジュールを標的にしており、サンボクس化された環境内での「ESP 認証バイパス」トリックを用いたり、システムページのキャッシュに悪意のあるルートシェルを記述したりすることで攻撃を行う。通常のソフトウェアアップデートとは異なり、深刻さの理由から情報公開が制限されており、まだ正式な CVE(Common Vulnerabilities and Exposures)は存在しない。影響を受けるユーザーは、手動で脆弱なモジュールをカーネル設定から無効化しない限り、即時に完全なる侵害のリスクに直面している。管理者は、システムパスワード内の特定のバイトシグネチャを確認することで、自らの環境が曝されているかを検証できる。この状況は、「Copy Fail」といった以前にもある脆弱性と類似しており、これもまた別個のバグを連結させていた。「Dirty Frag」に対するパッチが開発されるまで、組織は不正な権限昇進と主要な Linux ディストリビューション全体にわたるデータ漏洩を防ぐため、これらの危険なコンポーネントを能動的に取り除く必要がある。

2026/05/08 8:02

一時的に新しいソフトウェアをインストールしない方がいいかもしれません。

## Japanese Translation: この文書は、Anubis ソフトウェアリリース版 v1.25.0-46-gd3a00da のための情報クレジットとして機能し、マスコットデザインを CELPHASE に帰属させ、サイトは🇨🇦(カナダ)で❤️(愛)を持って構築されたことを示しています。また、ウェブサイトは Techaro セキュリティインフラストラクチャによって保護されていることも記載されています。これら全ての要素は、視覚的な制作の帰属、開発の場所、セキュリティパートナーシップを確認するためのアトリビューションタグとして機能し、より広い歴史的背景や分析的な文脈を提供していません。 ## Text to translate: This passage serves as an informational credit for the Anubis software release, v1.25.0-46-gd3a00da. It attributes the mascot design to CELPHASE and indicates that the site was built with ❤️ in 🇨🇦 (Canada). The text also notes that the website is protected by Techaro security infrastructure. Collectively, these elements function as attribution tags that confirm visual authorship, location of development, and security partnerships, while offering no broader historical or analytical context.