| Context(s) | displace fog surface | 
                
                    
                    
                    
                        int  sample_light(int lightid, vector pos, vector sam, float time, vector &pos, vector &clr, float &scale, ...)
                    
                    
                
            
            
                lightid
            
            
        
ライトを識別するための整数。getlightsを使えば、現在シェーディングされているサーフェスに影響を与えているライトのIDのリストを取得することができます。
            
                pos
            
            
        
サンプリングされるライトのサーフェスポイント。エリア光源は、そのポジションから立体角でサンプルを分布しようとします。つまり、そのポジションに近いライトジオメトリほど、より多くのサンプルを受け取ります。
            
                sam
            
            
        
nextsampleで生成されるような乱数のベクトル。現在では、samの最初の2つのコンポーネントのみが使われます。samの異なる値が、光源のジオメトリ上に異なるランダムな位置になります。
            
                time
            
            
        
シェーディングされる時間。
この関数は以下の引数の値を変更します:
            
                pos
            
            
        
光源上のサンプリングされるポジション。
            
                clr
            
            
        
lightシェーダで設定したライトのカラー。
            
                scale
            
            
        
ライトの平均的な半球状の強さ(エリアライト用)。
Returns
ライトが影響を与えているコンポーネントバウンスのタイプを意味するコンポーネントビットマスク。
Tip
sample_lightを使ってライトのカラーを生成していれば(例えば、illuminanceループで生成されるCl値を再生成していれば)、clrをscaleに正規化する必要があります:
clr *= scale / luminance(clr);
| See also | |
| light |  | 
| pbr |  | 
| sampling |