2016-04-26 2 views
0

idTech 4エンジンの頂点ブレンド技術を実装したい。私はarticleを見つけましたが、私はまだthree.jsでそれを行う方法を理解していません。私は、ある種のシェーダーでTHREE.ShaderMaterialが必要だと思います。どこから始めたらいいですか?idTech 4 vertexの3つの混合テクニック

答えて

1

私はこれがあまりにも広い質問であると主張したいと思います。あなたはシェーダとhow they workで読み上げる必要があります。簡潔な答えは、2つのテクスチャと頂点カラーを入力として取り、頂点カラーのアルファ値を使用してそれらをブレンドするフラグメントシェーダです。

varying vec2 v_texcoords; 
varying vec4 v_color;   // vertex colors 
uniform sampler2D u_texture1; 
uniform sampler2D u_texture2; 

... 

// get color from first texture 
vec4 color1 = texture2D(u_texture1, v_texcoords); 
// get color from second texture 
vec4 color2 = texture2D(u_texture2, v_texcoords); 

// blend between the colors based on vertex alpha 
vec4 output = mix(color1, color2, v_color.a); 

あなたは無限のバリエーションを持つことができますが、シェーダを書いているので。多分、4つのテクスチャが必要で、頂点カラーr、g、b、aを使ってそれぞれの量を選んでください。おそらく上記の例のように1つではなく、2つの別々のUV座標セットが必要なのかもしれません。おそらく、アルファが0からNを選択するNテクスチャをブレンドしたいかもしれません。

あなたのマテリアルが単なる色ではなく、ノーマップマップやその他の種類のデータ(鏡面マップ、光沢マップ、 ..)あなたもそれらを混ぜ合わせる方法を決める必要があります。

+0

実際にはい、2つの拡散マップがあり、2つの法線マップもありますが、どちらかといえばブレンドする必要があります。今のところ、拡散マップをどのようにブレンドするかを理解したいと思います。私は移動すべき方向性が必要です。答えをありがとう、それは私にとって有益です。 – briarheart

関連する問題