🎡Three.jsのマテリアルとGLSLの関係
LineBasicMaterial: 線オブジェクトに色や透明度を設定する基本的なマテリアル。
https://threejs.org/examples/#webgl_buffergeometry_drawrange
LineDashedMaterial: 点線効果を持つ線オブジェクト用のマテリアル。
Material: すべてのマテリアルのベースとなる抽象クラス。
MeshBasicMaterial: 光源の影響を受けない基本的なマテリアルで、色やテクスチャを表示します。
MeshDepthMaterial: オブジェクトの深度(カメラからの距離)に基づいて色をレンダリングします。
MeshDistanceMaterial: オブジェクトとカメラの距離に基づいてシェーディングを行います(シャドウマップ生成用)。
MeshLambertMaterial: 光の拡散反射をシミュレートするマテリアル。リアルタイムアプリケーションに適しています。
MeshMatcapMaterial: 表面の詳細を強調するためのマットキャップ(テクスチャ)を使用するマテリアル。
MeshNormalMaterial: オブジェクトの法線を色として直接レンダリングするマテリアル。
MeshPhongMaterial: 光の反射(光沢感)をシミュレートするためのマテリアル。
MeshPhysicalMaterial: MeshStandardMaterialの物理的な特性を拡張したマテリアルで、よりリアルな光の反射を可能にします。
MeshStandardMaterial: 物理ベースのレンダリング(PBR)をサポートするマテリアル。
MeshToonMaterial: トゥーンシェーディング(セルシェーディング)効果を実現するマテリアル。
PointsMaterial: ポイント(粒子)オブジェクトに使用するマテリアル。
RawShaderMaterial: ユーザーが提供したGLSLシェーダーコードを使用するマテリアル。完全なカスタマイズが可能です。
ShaderMaterial: ユーザーがカスタムシェーダーを使用できるように設計されたマテリアル。
ShadowMaterial: シャドウオンリーのマテリアルで、光が当たる部分は透明に、影を受ける部分だけが見えます。
SpriteMaterial: スプライト(2Dオブジェクト)用のマテリアル。
GLSLとの関係
Three.jsでは、これらのマテリアルは内部的にGLSLシェーダープログラムに変換されます。Three.jsは、開発者が簡単にマテリアルを設定できるように高レベルのAPIを提供しつつ、背後ではGLSLコードを生成してWebGLを通じてGPUで実行します。この抽象化により、Three.jsは直感的でアクセスしやすくなっていますが、高度なカスタマイズが必要な場合にはGLSLシェーダーを直接書くことも可能です。
Three.jsでの開発では、通常はこれらのビルトインマテリアルを利用することで、複雑なGLSLの知識なしに3Dグラフィックスを容易に作成できます。しかし、特定のエフェクトや詳細な制御が必要な場合は、カスタムシェーダーをGLSLで書いてThree.jsに統合することもできます。
いいなと思ったら応援しよう!
お願い致します