| On this page | |
| Context(s) | displace fog light shadow surface | 
                
                    
                    
                    
                        void  getderiv(float attr, string attrName, int isVertexAttr, float s, float t, float &du, float &dv, ...)
                    
                    
                
            
                
                    
                    
                    
                        void  getderiv(<vector>attr, string attrName, int isVertexAttr, float s, float t, <vector>&du, <vector>&dv, ...)
                    
                    
                
            
Note
ポリゴンメッシュに対して微分を照会した場合、それが内部的にSubdivision Surfaceとしてサンプリングされます。
            
                attr
            
            
        
評価するアトリビュート。
            
                attrName
            
            
        
評価するアトリビュートの名前。
            
                isVertexAttr
            
            
        
アトリビュートが頂点タイプであることを示すには1に設定します。
            
                s
            
            
        
パラメトリックSシェーディング値。これをsグローバル変数から渡してください。
            
                t
            
            
        
パラメトリック<type>シェーディング値。これをtグローバル変数から渡してください。
            
                du
            
            
        
U方向でのアトリビュートの微分。
            
                dv
            
            
        
V方向でのアトリビュートの微分。
微分オプション ¶
微分を計算する関数は、追加の引数を受け取ることで、微分計算の調整をすることができます。
            
                "extrapolate",
                int
                
                    =0
                
            
            
        
微分がパッチ境界上で“滑らか”になります。ほとんどの場合、“extrapolate(外挿法)”をオンにすると、そのようになります。 微分計算はC2サーフェスに対して正確であるべきです。しかし、VEX変数が高い頻度で変化する時(例えば、P変数に高い頻度の変更を引き起こす高周波ディスプレイスメントマップ)、 微分計算の外挿法がパッチ境界間で誇張された不連続性が生じる場合があります。
            
                "smooth",
                int
                
                    =1
                
            
            
        
パッチ上の微分の大きさを不均一に調整します。これは通常ではディスプレイスメント/テクスチャのシェーダでパッチの不連続性を減らします。 しかし、時々この機能をオフにしたい場合があります。
N = computenormal(P, "extrapolate", 1, "smooth", 0);
Examples ¶
// Pointアトリビュート'N'の微分を取得する vector dNdu, dNdv; getderiv(N, "N", 0, s, t, dNdu, dNdv);
| See also | |
| math |  | 
| shading |  |