物理ベースシェーディング
RenderManのPxrSkinシェーダー - レイヤリング表面下散乱マテリアルのPxrLMSubsurfaceに置き換えられ、RenderMan 21でPxrLM系シェーダーがPxrLayerSurfaceシェーダーに置き換えられた。PxrSkin及びPxrLM系シェーダーはRenderMan 22で廃止された。
V-RayのVRaySkinMtl - V-Ray NextでVRayFastSSS2及びVRayALSurfaceMtlに置き換えられた。
層化 (レイヤー) はベースマテリアルに薄膜マテリアルなどを足す時に使われる。層化には、非物理的ではあるものの、層同士の線形合成 (lerp) が用いられてきた。その後、より物理的な層化モデルも登場したが、計算が複雑であるため、あまり用いられていない。
RenderMan 24以降のMaterialX LamaのLamaLayerのRough Coatingモード
ヘアシェーダーの鏡面反射では、1989年に登場したKajiya-Kayモデルで異方性反射が導入され、2003年に登場したMarschner反射モデルで縦方向と方位角の反射が分離され、その後、2011年のd'Eon et al.の論文でMarschner反射モデルが改良されて「エネルギー保存の法則」を満たすようになった。
ヘアシェーダーの拡散反射では、Marschnerベースの反射モデルに近接場の問題があり、1989年に登場したKajiya-Kayモデルの拡散反射が長らく使われていた。2007年に近接場散乱モデルのZinkeモデルが登場した。
2016年、Walt Disney Animation Studiosは、鏡面反射のd'Eonモデルと拡散反射のZinkeモデルをベースに改良したChiang et al.の論文を公表した。
また、ファー向けのシェーダーモデルも開発された。動物の毛は人毛と異なりメデュラ(毛髄質)が目立つため、それを考慮したYan et al.の論文が2015年に登場し、2017年にはそれを高速化するためのファーモデルが登場した。
しかしながらMarschner反射モデル以降に存在する縦方向と方位角の反射の分離は物理的ではなく、2022年にはそれらを統合して扱うMicrofacet Hairモデルが登場した。
物理ベースより前のMarschner鏡面反射モデルでは、一次鏡面反射 (Primary Specular; R (反射))、二次鏡面反射 (Secondary Specular; TRT (透過-反射-透過))、透過鏡面反射 (Transmit Specular; TT (透過-透過))のそれぞれに反射色や鏡面反射の角度シフトを指定していた。また、これらとは別に拡散反射色を指定することもあった。
物理ベースの後は反射パスを分けずに、髪色および角度シフトの指定を単一で行うようになった。また、髪色は基本色だけでなくメラニン色素ベースの指定も可能となった。d'Eon et al. (2014)の論文では、メラニン色素とRGB吸収係数との関係に以下を提示している (定数はそれぞれの吸収断面積を表す):
RGB吸収係数 = ユーメラニン濃度 * [0.419, 0.697, 1.37] + フェオメラニン濃度 * [0.187, 0.4, 1.05]
RenderManのPxrMarschnerHair - 拡散反射にZinkeモデルを採用している (古いKajiya-Kay拡散モデルへの切り替えも可能)。物理ベースの髪色指定にはPxrHairColorノードが必要。
Arnold 5以降のStandard Hairシェーダー - 鏡面反射にd'Eonモデル、拡散反射にZinkeモデルを採用している。
V-Ray NextのVRayHairNextMtl - Chiang et al.及びYan et al.の論文を参照して実装された。
Blender 2.8以降のPrincipled Hair BSDF - Chiang et al.の論文を参照して実装された。
ボリュームシェーダーでは簡易的なHenyey-Greenstein位相関数が長らく用いられてきた。1993年、Henyey-Greenstein位相関数を単純化したSchlick位相関数が登場した。Henyey-Greenstein位相関数とSchlick位相関数ではパラメータが異なるため、パラメータの変換が必要となる。
また、1987年のNishita, et al.の論文において、極小粒子向けのレイリー散乱理論に基づくRayleigh位相関数、小さな粒子向けのミー・ローレンツ理論 (ミー散乱) の近似であるMie-Hazy位相関数及びMie-Murky位相関数が示された。これら位相関数は計算の容易な位相関数のフィッティング先に使われており、例えばmental rayではこれらの位相関数に相当するパラメータ値を提示していた。
その後、雲の散乱において雨滴粒径分布 (DSD) 毎のミー・ローレンツ位相関数の事前計算が行われるようになったものの、ミー・ローレンツ位相関数にはサンプリングが難しいという問題があり、ミー・ローレンツ位相関数の回折ピークを切り落とすという手法が登場した。
当初、輝度のみの解析的なスカイモデルとして、1993年にPerezスカイモデルが登場し、1994年にそれを少し変更したCIEスカイモデルが登場した。しかし、これらのモデルはパラメータが多く使い難い上、輝度のみにしか対応していないため色が無く、レンダリングには適さないものであった。
一方、色のあるものとしてはシミュレーションベースのスカイモデルが登場した。1993年には大気の散乱をベースとするNishitaスカイモデル (1993年版) が登場したものの単一散乱のみの考慮となっており、1996年には大気の多重散乱を考慮するNishitaスカイモデル (1996年版) が登場した。2005年にはHaberらによって大気の異方性散乱、湿度や温度による大気の屈折率、オゾン層の吸収が導入され、その後も関与粒子の分布を考慮した晴天モデルのKutz (2012)や、季節や地理を考慮したモデルのGuimera, Gutierrez and Jarabo (2018)などが登場したものの高度なスカイモデルは速度が遅く、シミュレーションベースのスカイモデルでは高速なNishitaスカイモデルが多くのソフトウェアで採用されていった。
また解析的なスカイモデルでも、1999年に色へと対応するPreethamスカイモデルが登場し、レンダリングに広く使われるようになった。このPreethamスカイモデルは、Perezの解析的なスカイモデルをベースに、Nishitaのシミュレーション的なスカイモデルの生成結果を当て嵌めた上でパラメータを単純化したものであり、色に対応しながらもシンプルであるため広く使われたものの、夕焼けや濃い濁度に弱く、2012年にはそれらを改善して地表面アルベドにも対応させたHosek-Wilkieスカイモデルが登場した。しかしながら既存の解析的なスカイモデルは水平線より上の太陽しか考慮されていないものとなっており、2021年には水平線より下の太陽などにも対応したPRG Clearスカイモデルが登場した。
ゲーム向けでは事前計算によって正確性と速度を向上させたルックアップテーブル (LUT) ベースのスカイモデルも登場した。2005年にはGPU Gems 2においてNishitaスカイモデル (1993年版)をベースとしたGPUによるリアルタイム大気散乱が登場したものの単一散乱のみとなっており、2008年にはBrunetonとNeyretによって多重散乱や地表面アルベドに対応する4D LUTベースのPrecomputed Atmospheric Scatteringが登場したものの高い計算量となっていた。2009年、惑星の影を無視することによって3D LUTに収めたElekモデルが登場したものの水平線でのアーティファクトの問題があり、2013年にはその問題を軽減したYusovモデルが登場したものの、大気の濃い場合にはまだ問題が残っていた。またこれらは他の既存技術と組み合わせてもソフトなボリュームシャドウに未対応という問題も抱えていた。その後、2020年にはこれらの問題を解決するUnreal Engineスカイモデルの技術が「A Scalable and Production Ready Sky and Atmosphere Rendering Technique」として公開された。
実装によりスカイモデルの正確さやパラメータが異なる。
太陽の方向をベクトルで指定するもの (Blenderなど) や、地平座標 (方位角/仰角) で指定するもの (Arnoldなど) がある。シーンの地理座標 (緯度/経度) と日時と北方向補正で指定できるレンダラーもある (OctaneやMODOなど)。
太陽の大きさを指定する。角直径で指定するもの (Blenderなど) や半径で指定するもの (Octaneなど) がある。
高度 (Altitude)
標高 (平均海面からの高度) を指定する。
空気 (Air)
レイリー散乱を引き起こす空気分子の密度を指定する。
ダスト (ちり、濁度、Haze)
ミー散乱を引き起こす空気中の粉塵や霧などの大気エアロゾル粒子の密度を指定する。
解析的モデルでは濁度 (Turbidity)を指定していたが、物理的モデルではダスト密度又はHaze係数を指定する。
減衰を引き起こすオゾン層のオゾン分子の密度を指定する。
地表面反射により大気へと影響を与える地表面の色を指定する。
Octane Render 4以降のPlanetary Environment及びOctane Daylight - Nishitaスカイモデルに対応している。
Blender 2.9以降のSky Textureノード - Nishitaスカイモデル (1993年版)を単純化したスカイモデルに対応している。なお旧来のHosek-Wilkieスカイモデル及びPreethamスカイモデルにも引き続き対応している。
NishitaAtmos.osl - 無料のNishitaスカイモデル実装。OSLシェーダー対応のレンダラーで使用可能。
Corona Renderer 6以降 - PRG Clearスカイモデル(旧Improvedスカイモデル)が搭載されている。
V-Ray 5以降のVRaySky - Corona Rendererと同じPRG Clearスカイモデルが搭載されている。なお旧来のHosek-Wilkieスカイモデル、Preethamスカイモデル及びCIEスカイモデルにも引き続き対応している。
Redshift 3.5.14以降 - PRG Clearスカイモデルが搭載されている。
ArnoldのPhysical Sky - Hosek-Wilkieスカイモデルをベースとしている。
RenderManのPxrEnvDayLight - Preethamスカイモデルをベースとしている。
UnityのHDRPのPhysically Based Sky - Precomputed Atmospheric Scatteringを採用している。
Unreal Engine - 「A Scalable and Production Ready Sky and Atmosphere Rendering Technique」が基となっている。
Precomputed Atmospheric Scattering - 同名の論文の新実装。BSDライセンス。
Unreal Engine Sky Atmosphere Rendering Technique - 「A Scalable and Production Ready Sky and Atmosphere Rendering Technique」の実装。MITライセンス。