タンジェントおよび従法線のデータ タイプの設定

 
 
 

[取得](Get) [プロパティ](Property)メニューからタンジェントまたは従法線のプロパティを作成すると、データはクランプされていない浮動小数点カラー値として書き込まれます。これは、ture(バイアスされていない)タンジェントおよび従法線データが、頂点カラープロパティでエンコードされていることを意味します。ただし、カラー値を格納するのに short 整数が使用されるようにデータタイプを変更することができます。これは、たとえばタンジェントおよび従法線を再構築するために、シェーダに「short」が必要で、既に反転オフセットを適用している場合などに便利です。

データ タイプを設定するには

  1. Explorer で、タンジェントおよび従法線 CAV プロパティのアイコンをクリックして、プロパティエディタを開きます。

  2. [DataType]パラメータの横に表示される[変更](Change)ボタンをクリックして、タンジェントおよび従法線が頂点カラープロパティに書き込まれる方法を指定します。[Float(4 バイト)](Float (4 bytes))または[Short(2 バイト)](Short (2 bytes))を選択できます。

    注:

    [Short(2 バイト)]はデータをバイアス形式で保存します。通常、カラー値は 0~1 の範囲ですが、法線、タンジェント、および従法線ベクトルの範囲は-1~1 になります。この問題を解決するために、ベクトル値がテクスチャとして書き込まれたり、CAV プロパティに格納されたときに、1 が値に書き込まれてから(0~2 の範囲で取得するため)、値が 2 で割られます(0~1 の範囲で取得するため)

    タンジェント(x)、従法線(y)、および法線(z)値は以下のように格納されます。

    (x+1)/2,(y+1)/2,(z+1)/2

    したがって、ピクセル値を読み込むときに、2 で乗算してから(0~2 の範囲で戻すため)、そこから 1 を引く必要があります(-1~1 の範囲で戻すため)。

    元の値を取得するには、以下を使用します。

    r*2-1,g*2-1,b*2-1

    Float(4 バイト)として保存されたタンジェントおよび従法線は、偏りが計算されておらず、値を直接的に表します。

  3. [データ タイプの変更]パラメータがプロパティエディタに追加され、新しいデータタイプ設定(DesiredDatatype)が表示されます。

    また、同じ名前のオペレータが Tangents または Binormals オペレータスタックの TangentOp2 オペレータの下に追加されます。

  4. データタイプをもう一度変更する場合は、[データタイプの変更](Vertex Color Change Datatype)パラメータを直接変更してください。[変更]ボタンをもう一度押すと、プロパティエディタとオペレータスタックに、変更された値が別の[データタイプの変更]パラメータとして追加されます。スタックの一番上のオペレータは、使用されるデータ型を保持しますが、ここではオペレータスタックが不必要なデータを格納しており、タンジェントと従法線を再計算する必要がある場合のパフォーマンスを低下させることがあります。

    注:既存のシーンで使用されているリアルタイムシェーダとの下位互換性を保つため、TangentOp2オペレータがある頂点カラープロパティでカラーに使用されているデータタイプに関してチェックが行われます。データタイプが「short(短)」を使用している場合、TangentOp2はバイアス値を書き込みます。ただし、頂点カラープロパティのカラーが「float(浮動小数)」を使用している場合は、TangentOp2は値の偏りを計算しません。任意の時点で頂点カラーの[データタイプの変更]パラメータを設定し、必要なビヘイビアを得ることができます。