入門この広告は、90日以上更新していないブログに表示しています。Tranceparency)通常半透明オブジェクトをレンダリングする際には、ソート(奥から手前に向かって)が必要になります。Unityではオブジェクト単位でのソートはしますが、ポリゴン単位でのソートは行いません。(Unityに限った話ではありませんが)従って、正しく半透明オブジェクトを描画するためには、細かくオブジェクトを分割するか(ポリゴン単位まで)あるいは描画順に関係ない描画方法を用いるしかありません。Tranceparency)を紹介します。shikihuikuです。上述の通り、通常半透明オブジェクトを正しく描画するためには、奥のオブジェクトから描画する必要があります。ある半透明オブジェクトのピクセルの描画色を決めるとき、その奥にあるピクセルの色情報が必要となるためです。shaderの#pragmaにalphaを指定している場合)。オブジェクト単位のソートで正しくなる場合は良いのですが、一つのオブジェクト(メッシュ)内に複数のポリゴンがある場合でもポリゴン単位でのソートは行われないため、見る方向によって結果が変わったりしてしまいます。ポリゴンが交差している場合はポリゴン単位のソートでも十分ではなく、ピクセル単位のソートが必要になります。そこで、ピクセルの描画順に関わらず正しく半透明オブジェクトを描画出来る方法が考案されてたみたいです。参考のリンク(の先の論文)では、ピクセルの描画順に関わらず(つまり描画順に独立=OrderIndenpendent)正しく(といっても、上記ソートして後ろから描画する場合の近似)半透明オブジェクトを描画する方法が紹介されています。Unityでそのアルゴリズムを実装する方法を示します。OVER)手法を"近似"で求めます。(考え方としては奥に数回描画される半透明ピクセル全体の合計値をとり平均化したうえで、それを不透明オブジェクトのみのレンダリング結果に合成する、というものです。w)3.半透明オブジェクトのαのΠ(1-α)。cは半透明ピクセルの色(ただしあらかじめαで乗算済み)wは奥行き方向の重みです。奥にあるピクセルよりも、手前にあるピクセルの方が優先的に表示されるべき、ってことのようです。Π(1-α)は背景が透けて見える割合です。