Processing

PythonでProcessing Lights lightFalloff()

ポイントライト、スポットライト、アンビエントライトのフォールオフレートを設定する。fill()と同様に、コード内で後に作成された要素にのみ影響を与える。デフォルト値は lightFalloff(1.0, 0.0, 0.0) で、パラメータは次の式でフォールオフを計算するのに使われる。

d = ライトの位置から頂点の位置までの距離
falloff = 1 / (CONSTANT + d * LINEAR + (d*d) * QUADRATIC)

ファルオフを持つアンビエントライトを考えるのは、なかなか難しいこと。シーンのある領域をある色でアンビエントに照らし、別の領域を別の色でアンビエントに照らす場合は、ロケーションとフォールオフを持つアンビエントライトを使用する。これは、サーフェイスがどの方向を向いているかを気にしないポイントライトと考えることができる。

size(100, 100, P3D)
noStroke()
lightFalloff(1.0, 0.001, 0.0)
pointLight(255, 255, 255, 0, -50, 50)
beginShape()
vertex(0, 0, -100)
vertex(0, 100, 0)
vertex(100, 100, 0)
vertex(100, 0, -100)
endShape(CLOSE)