THREE.JS PhongMaterialはvertexColors
をサポートしており、ダイナミックライティングと頂点カラーの素晴らしい組み合わせを提供しています。私はあなたの質問を理解しています。おそらくもっと調査すべきものでしょうか?
しかし、カスタムシェーダを作成する代わりに、複数のパスでモデルをレンダリングすることもできます。
これは、シェーダのように頂点の色とphongの照明がどのように組み合わされているかを制御することはできませんが、しばしば単純な加算/乗算のブレンドによってかなり良い結果が得られます。
アルゴリズム:この例で
- create two meshes for the BufferGeometry, one with the BasicMaterial and one with the PhongMaterial
- for the PhongMaterial, set
depthFunc = THREE.EqualDepth
transparent = true;
blending = THREE.AdditiveBlending(or MultiplyBlending)
- render the first mesh
- render the second mesh at the exact same spot
ルックは、あなたのコメントのために –
感謝をhttp://threejs.org/examples/#webgl_geometry_colors、私はreviewdと、それを試してみたが、私はBufferGeometryを使用していますが、createMultiMaterialObjectがあるように思えますジオメトリでのみ動作します。私はシェイダーの作成をスキップしようとしていましたが、それを避けることはできません。 –