Slide 1

Slide 1 text

マテリアルって何者? RealityKitで扱うマテリアル入門 visionOS Engineer Meetup vol.10

Slide 2

Slide 2 text

SPEAKER Nao_RandD ᯅ / ナオランド @Nao_RandD ● ⽇頃は iOS エンジニアとして働く ● 最近縁あって、R&D 領域の取り組みで Apple Vision Pro 向けの開発に携わる ● 3Dモデリングまわりは上記をキッカケ に初めて触れる

Slide 3

Slide 3 text

󰢐 話すこと 本日お話しする内容 ● 3Dモデリングにおけるマテリア ルの入門的な解説 ● RealityKit で扱えるマテリアル の種類 󰢄 話さないこと ● Shader Graph などについて 踏み込んだ解説 ● Blender や Unity, Unreal Engine など RealityKit 以外を 利用したケースの解説

Slide 4

Slide 4 text

iOSエンジニアの自分は思った

Slide 5

Slide 5 text

3Dモデリングに出てくる 用語多すぎ rrrrrrrr 🙃

Slide 6

Slide 6 text

PBR Material Metalness Diffuse Color Rendering Normal Map Roughness Glossiness Specular Base Color Mesh Bump/Relief Emission Luminescence Texture Shader Lighting UV Refraction Iridescence IOR Fresnel Effect Collision 3D Modeling 😇

Slide 7

Slide 7 text

マテリアルから攻略してみる

Slide 8

Slide 8 text

マテリアルとは 3Dモデルの外観を定義してその表面が光とどのように 相互作用するかを定義する (Apple のドキュメントより抜粋)

Slide 9

Slide 9 text

マテリアルとは 3Dモデルの外観を定義してその表面が光とどのように 相互作用するかを定義する (Apple のドキュメントより抜粋) → 単に色だけではなく、質感など物質が持つ情報を付与する 色, 光沢, 粗さ, 金属度, 透明度, 発光 など

Slide 10

Slide 10 text

マテリアルとは 用語と物理的な表現との対応も知っておくと 󰢐 マテリアルの要素 対応するテクスチャマップ 表現していること 色(アルベド) Albedo Map / Base Color Map 物体の基本的な色を表現する。拡散反射。 光沢(スペキュラ) Specular Map 表面の光沢の強さや色を表現する。鏡面反射。 粗さ(ラフネス) Roughness Map 表面の滑らかさやザラザラ感を表現する。 金属度(メタリック) Metallic Map 金属・非金属を表現する。特有の光沢や色合い。 透明度(オパシティ) Opacity Map / Alpha Map 物体の透明度を表現する。光の透過。 発光(エミッシブ) Emissive Map 自ら光を放つ部分を表現する。 凹凸(法線) Normal Map 表面の細かな凹凸を視覚的に表現する。

Slide 11

Slide 11 text

RealityKit にあるマテリアルを 用途と合わせて丸っと把握する

Slide 12

Slide 12 text

RealityKit で提供されるマテリアル 1. SimpleMaterial 2. UnlitMaterial 3. PhysicallyBasedMaterial 4. PortalMaterial 5. ShaderGraphMaterial 6. CustomMaterial 7. VideoMaterial 8. OcculusionMaterial RealityKit / Material, textures, and shaders: https://developer.apple.com/documentation/realitykit/scene-content- materials-and-shaders

Slide 13

Slide 13 text

1. SimpleMaterial RealityKit で提供されるマテリアル 概要: ● 基本的なマテリアルで、色やテクスチャ、 ライティングに対応 用途: ● シンプルなオブジェクトの表現や、 パフォーマンスを重視したい時 ● デバッグで位置を調整したい時 SimpleMaterial:https://developer.apple.com/documentation/realitykit/simplematerial

Slide 14

Slide 14 text

2. UnlitMaterial RealityKit で提供されるマテリアル 概要: ● ライティングの影響を受けないマテリアルで 常に一定の外観を保つ ● アンリット:陰影をつけない、光を処理しない 用途: ● UI要素やアイコンなどライティングの影響を 受けたくないオブジェクトの表現したい時 UnlitMaterial:https://developer.apple.com/documentation/realitykit/unlitmaterial

Slide 15

Slide 15 text

3. PhysicallyBasedMaterial RealityKit で提供されるマテリアル 概要: ● 物理ベースレンダリング( PBR)に基づいた マテリアルで現実的な外観を再現 ● 現実世界の物体に光が反射する様子を 忠実に再現するマテリアルの一種 用途: ● 金属、プラスチック、木材などの質感を 持つオブジェクトを作成したい時 ノーマルマップを取り込んで凹凸による 陰影を表現するなど (_norとか名前に入ってるやつ。法線情報) PhysicallyBasedMaterial:https://developer.apple.com/documentation/ realitykit/physicallybasedmaterial

Slide 16

Slide 16 text

4. PortalMaterial RealityKit で提供されるマテリアル 概要: ● ポータルエフェクトを実現するための マテリアルでの空間への入り口を表現 ● ポータル:入り口。玄関 用途: ● ユーザーが別のシーンや空間に移動する ためのポータル(入り口)を表現したい時 PortalMaterial:https://developer.apple.com/documentation/realitykit/portalmaterial

Slide 17

Slide 17 text

5. ShaderGraphMaterial RealityKit で提供されるマテリアル 概要: ● Material X のフォーマットに基づき ノードベースでカスタマイズする方法 ● Reality Composer Pro の Shader Graph を 使用して作成するカスタムマテリアル 用途: ● アニメーションのような時間変化する 波の表現やノイズなどのテクスチャを表現したい時 ○ Swift コードから制御するパラメータから インタラクション性のある表現もできる ShaderGraphMaterial:https://developer.apple.com/documentation/realitykit /shadergraphmaterial

Slide 18

Slide 18 text

概要: ● Metal シェーダーを使用してマテリアルの外観や動作を カスタマイズできる 用途: ● iOS で高度なマテリアルのカスタマイズが必要とする時 (例:特殊な視覚効果や独自のライティングモデル) 6. CustomMaterial RealityKit で提供されるマテリアル CustomMaterial:https://developer.apple.com/documentation/realitykit/custommaterial

Slide 19

Slide 19 text

概要: ● Metalシェーダーを使用してマテリアルの外観や動作を カスタマイズできる 用途: ● iOS で高度なマテリアルのカスタマイズが必要とする時 (例:特殊な視覚効果や独自のライティングモデル) 。 🚨 注意: ● visionOS では使用できない。 ShaderGraphMaterial を使おう。 6. CustomMaterial RealityKit で提供されるマテリアル CustomMaterial:https://developer.apple.com/documentation/realitykit/custommaterial

Slide 20

Slide 20 text

7. VideoMaterial RealityKit で提供されるマテリアル 概要: ● ビデオをテクスチャとして使用するマテリアルで AVPlayerと連携して動画を再生 用途: ● 仮想スクリーンでの動画再生や 動的な背景の作成 VideoMaterial:https://developer.apple.com/documentation/realitykit/videomaterial

Slide 21

Slide 21 text

8. OcculusionMaterial RealityKit で提供されるマテリアル 概要: ● 視覚的には表示されず他のオブジェクトを 隠すために使用 ● オクルージョン: 遮蔽、覆い隠し 用途: ● 仮想オブジェクトが現実世界のオブジェクトの 背後に隠れるような表現をしたい時 OcclusionMaterial:https://developer.apple.com/documentation/realityki t/occlusionmaterial

Slide 22

Slide 22 text

まとめ iOS エンジニアが visionOS 開発を始めることをきっかけに マテリアルから理解 を進めてみた お話したこと ● マテリアルに関連する用語ごとにどの物理表現と対応するか整理した ● RealityKit にあるマテリアル全体を把握できるように用途と 合わせて紹介した

Slide 23

Slide 23 text

ご清聴ありがとうございました 良い visionOS 開発を! 🥽