答えて
現在のリビジョンthree.js(r78)には、標準マテリアルのUVチャネルを指定するためのインタフェースはありません。 Lambert/Phong/Standard素材は、lightMapとaoMapに2番目のチャンネル(uv2)を使用します。しかし、標準的な材料からカスタムuvチャンネルを使って独自の材料を作ることは可能です。
があなたの頂点とフラグメントシェーダを作成します。
このような材料は、このように構成することができます。標準のthree.jsマテリアルは、コードで置き換えられるチャンク(Cスタイルのプリプロセッサ#includeディレクティブ)を使用して作成されます。たとえば、three.js standard shadersには、MeshPhongMaterial vertexとfragmentシェーダがあります。フラグメントシェーダの行は
#include <lights_template>
です。対応ファイルlights_template.glslはchunks directoryにあります。#ifdef USE_LIGHTMAP vec3 lightMapIrradiance = texture2D(lightMap, vUv2).xyz * lightMapIntensity; // more code here #endif
COORDSは、ライトマップのために使用されるものに影響を与えると、このテクスチャルックアップで
vUv2
を変更する:このファイルは、次のコードが含まれています。追加のUVセットが必要な場合は、vUvとvUv2のようにバリエーションとして頂点シェーダーに渡すことができます。 オリジナルのthree.jsシェーダをソースコードにコピーして貼り付けることで、目的のシェーダを得ることができます。ユニフォームオブジェクトを作成します。このためにはTHREE.UniformsLibが役に立ちます。また、THREE.UniformsUtils.clone()を介して既存の素材から均一にすることもできます。
頂点とフラグメントシェーダの前にある材料に必要な定義を追加します(
fragmentShader = '#define USE_LIGHTMAP\n' + fragmentShader;
)。THREE.RawShaderMaterialを使用して品目を登録します。あらかじめ定義していないTHREE.ShaderMaterialも正しく動作するはずです。
また、単純なマテリアルが必要な場合は、チャンクを無視して、最初から目的のシェーダを書き込む方が速い場合があります。
- 1. 壁をUVマップする適切な方法は何ですか?
- 2. アトラスUVマップvs.ローカルUVマップ
- 3. Magick ++でFX関数のチャンネルを指定する方法は?
- 4. Three.js単一のオブジェクト上の複数のUVマップ
- 5. 異なるファセットに異なるスケール形式を指定する方法は?
- 6. qmakeに異なるbuldディレクティブを指定する方法は?
- 7. 異なる方法でマップにデータを入力する
- 8. Blender import three.js UVモデルのjsonモデル
- 9. Three.JS - 異なるオブジェクトの異なるシェーダ
- 10. three.jsで多くの方向を指すランダムなオブジェクトを作成する方法
- 11. AWS Powershellコマンドレットでは、S3バケットに異なるエンドポイントを指定する方法
- 12. Three.js - UV座標から3D座標を計算する
- 13. AndroidでFCMプッシュメッセージのAndroid通知チャンネルを指定する方法8
- 14. 環境マップへの方向UV座標
- 15. THREE.jsの法線マップを正しく作成する方法は?
- 16. モバイルモードでGoogleマップのテンプレートと異なる幅を設定する方法
- 17. フラットポリゴンメッシュのUVを計算する方法
- 18. 異なるユーザーに異なるシステムロケールを設定する方法
- 19. NLTKで異なるチャンネルを連続して使用する方法は?
- 20. Pymel:指定された顔のUV座標を見つける
- 21. three.jsの異なるカメラで同じシーンをレンダリングする方法は?
- 22. 異なるコーナーに異なる半径を指定する方法はありますか
- 23. nlmeとlme4で異なるランダム効果を指定する方法は?
- 24. Python docstringで異なる戻り値の型を指定する方法
- 25. プロパティの名前が異なる場合にマッピングルールを指定する方法
- 26. 列の値ごとに異なるウィンドウ指定を使用する方法は?
- 27. Hibernateをカスタムフィールドで使用する方法異なるDBにマップするタイプ?
- 28. Three.js:異なるベース方向のDeviceOrientationControlsを使用する
- 29. Googleマップ:2つの異なる地図に異なるズームレベルを設定する
- 30. THREE.js JSONLoaderを使用してUVテクスチャを繰り返す
この優れた答えをありがとう! –