Skip to content

ライティングリファレンス ​

第 39 課 のデモで試せます。

概要と互換性 ​

静止した立方体、球、円柱で、アンビエント、ディレクショナル、ポイント、スポットのライトを比較します。ライトを切り替え、強度/範囲と球のメタリック/ラフネスを調整し、スタジオ環境ライティングと影の投影を有効にするか、スポットライトの周回を再生します。ポイントライトとスポットライトは、元の滑らかな範囲減衰を使うか、設定可能な基準距離とともに逆二乗減衰を選べます。レンダラーは、sRGB からリニアへ変換した入力とフィルム調トーンマッピングで、GGX の直接照明を使います。LDR パノラマまたは Radiance HDR 画像が、球面調和の拡散照明と、split-sum BRDF ルックアップを伴うプリフィルタされた反射を提供します。

パラメータと制限 ​

すべてのパラメータ、既定値、制限は英語の詳細リファレンスを参照してください。

castShadow: true のディレクショナル、ポイント、スポットライトは、同時に最大二つまで影を落とし、3 × 3 PCF でフィルタされます。各ライトは shadowStrength(0–1)、shadowSoftness(0–4 テクセル)、shadowBiasScale(0–4)、shadowNormalBias(0–10 キャンバス単位)を設定できます。既定値は元の見え方を保ちます。各メッシュは material3d.castShadow と material3d.receiveShadow で、影を落とすことと受けることを別々に無効にできます(どちらも既定は true)。ディレクショナルマップは現在のメッシュに合わせます。半角 85° 未満のスポット円錐は透視マップを一つ使い、より広い円錐とポイントライトはアトラス面を六つ使います。アトラス面の継ぎ目での PCF サンプルは、端のテクセルを繰り返さず、隣の面をサンプルします。コントロール、マップサイズ、API の詳細は ライティングの例 を参照してください。

自己発光する面は、material3d.emissiveFactor と emissiveStrength で、シーンライトを追加せずに発光を制御します。glTF の KHR_materials_emissive_strength はマテリアルとともに読み込みと書き出しを行います。ライティングの例 の立方体の発光スライダーを試してください。

照明に依存しない単色には material3d.unlit があり、シーンライトとトーンマッピングを迂回しつつ、ベースカラーテクスチャとアルファは残します。glTF の KHR_materials_unlit は読み込みと GLB 書き出しで保持されます。ライティングの例 の立方体トグルで、発光と比較してください。

テクスチャの切り抜きと半透明な面には、material3d.alphaMode の mask と blend があります。影の挙動と順序の制限は 3D メッシュの透明度の例 を参照してください。

WebGL1 のフラグメントシェーダーは、ユニフォーム配列を読むときに定数インデックスを必要とします。レンダラーは WebGL1 で、ライトデータとシャドウ行列に対して範囲を限定した参照を生成します。WebGL2 と WebGPU はネイティブなインデックスを保ちます。マテリアルのシェーディングは色を main() へ返すので、unlit マテリアルでも WebGL1 の出力変換が実行されます。ブラウザの回帰テストは WebGL1 を強制し、頂点色、接線空間の法線マップ、複数ライト、ディレクショナル/ポイントの影を検査します。

Released under the MIT License.