float  volumecubicsample(<geometry>geometry, int primnum, vector pos)
                    
                    
                
            
                
                    
                    
                    
                        float  volumecubicsample(<geometry>geometry, string volumename, vector pos)
                    
                    
                
            
                
                    
                    
                    
                        float  volumecubicsample(<geometry>geometry, int primnum, vector pos, vector &grad)
                    
                    
                
            
                
                    
                    
                    
                        float  volumecubicsample(<geometry>geometry, string volumename, vector pos, vector &grad)
                    
                    
                
            
                
                    
                    
                    
                        float  volumecubicsample(<geometry>geometry, int primnum, vector pos, vector &grad, matrix3 &hess)
                    
                    
                
            
                
                    
                    
                    
                        float  volumecubicsample(<geometry>geometry, string volumename, vector pos, vector &grad, matrix3 &hess)
                    
                    
                
            
            
                <geometry>
            
            
        
ノード(例えばWrangle SOP)のコンテキスト内で実行する時は、この引数にジオメトリの読み込み元の入力番号(0から始まります)を意味する整数を指定することができます。
別の方法として、読み込み元のジオメトリファイル(例えば、.bgeo)を示した文字列を指定することができます。
    Houdini内で実行する時は、この引数にop:/path/to/sop参照を指定することができます。
Returns
指定した位置でサンプリングされたボリュームプリミティブ値。 ボクセル間の値は、3次補間で評価されます。
grad引数とhess引数には、このサンプリング関数がボリュームプリミティブ値と同時に計算可能な勾配ベクトル、ヘッセ行列が返されます。
primnumやinputnumが範囲外、ジオメトリが無効、指定したプリミティブがボリュームでもVDBプリミティブでもない場合は0を返します。
     
volumecubicsampleを使用した1次元データと2次元データの補間の例。
表示されている法線は、gradパラメータを使用して計算されています。
Examples ¶
P点におけるボリューム値を使用して、P + u点におけるボリューム値を近似計算。
vector P = {1.0, 2.0, 3.0}; vector grad; matrix3 hess; float val1 = volumecubicsample(0, "density", P, grad, hess); vector u = {0.1, 0.01, 0.001}; float val2 = volumecubicsample(0, "density", P + u); // テイラー展開してみると: // `val1 + dot(u, grad)`は`val2`とほぼ同じです。 // さらに2次近似: // `val1 + (u, grad) + 0.5 * dot(u, u*hess)`は`val2`とほぼ同じです。
| volume |  |