2016-08-26 7 views
0

私は2d速度ベクトルフィールドを計算するシミュレーションに取り組んでいます。今私は、鮮やかさの方向を色として視覚化したいと思っています。次のように2次元ベクトルをRGBカラーにマッピングしてデバッグしますか?

は現在、私は色に速度を変換しています:

var vel = _velocity[x][y]; // _velocity is the velocity field 
var velNor = velVec.normalized; 
var color = new Color(.5f + .5f * velNor.x, .5f + .5f * velNor.z, 0.5f); 

そして、これは正常に動作します。しかし、私は実際には3番目(青色)のカラーチャンネルを使用していません。青のチャンネルを使用すると、方向がより明確になります。

しかし、正しく変換する方法がわかりません。私は、方向は、カラーホイール上のような色にマッピングしたいと思います:

enter image description here

ありがとう!

答えて

0

私は色合いを使って何かを考え出しました。私は次のようにシェーダで実装しました:

float3 Hue(float H) 
{ 
    float R = abs(H * 6 - 3) - 1; 
    float G = 2 - abs(H * 6 - 2); 
    float B = 2 - abs(H * 6 - 4); 
    return saturate(float3(R, G, B)); 
} 

float4 vel = tex2D(_VelocityXYTex, IN.uv_VelocityXYTex); 
float velDir = (1 + atan2(vel.g, vel.r)/3.141592)/2; //map -pi,pi to 0,1 
float4 velColor = float4(Hue(velDir), 1); 
関連する問題