Reality Composer Pro を使って、Shader Graph Material をノードベースでカスタム定義することができる、ということを WWDC23 のセッションで学んだ。表現したいイメージを持てていることはもちろん重要だろうが、それ以前に各ノードごとの役割や、それらを組み合わせてどんな表現が可能なのかを知ることが重要だと思った。
2D Procedural
Cellular Noise 2D
Noise 2D
Ramp 4 Corners
Ramp Horizontal
Ramp Vertical
Split Horizontal
Split Vertical
Worley Noise 2D
2D Texture
Image
Tiled Image
Transform 2D
UV Texture
3D Procedural
Cellular Noise 2D
Fractal Noise 2D
Noise 3D
Worley Noise 3D
3D Texture
Triplanar Projection
Adjustment
Contrast
HSV Adjust
HSV to RGB
Luminance
Range
Remap
RGB to HSV
Saturate
Smooth Step
Step (RK)
Application
Time (float)
Up Direction
Compositing
Additive Mix
Burn
Difference
Disjoint Over
Dodge
In
Inside
Mask
Matte
Mix
Out
Outside
Over
Overlay
Premultiply
Screen
Subtractive Mix
Unpremultiply
Data
Combine 2
Combine 3
Combine 4
Convert
Extract
Primvar Reader
Separate 2
Separate 3
Separate 4
Swizzle
Geometric
Bitangent
Geometric Property
Geometric Color
Normal
Position
Reflect (RK)
Refract (RK)
Tangent
Texture Coordinates
Logic
And (RK)
If Equal
If Greater
If Greater Or Equal
Not (RK)
Or (RK)
Select (RK)
Switch
XOR (RK)
Material
Node Graph
Math
Abs
Acos
Add
Asin
Atan
Atan2
Ceiling
Clamp
Copy Sign (RK)
Cos
Cos Pi (RK)
Cross Product
Determinant
Distance (RK)
Distance Square (RK)
Divide
Dot Product
Exp
Exponential 10 (RK)
Exponential 2 (RK)
Floor
Fractional (RK)
Fused Multiply-Add (RK)
Hyperbolic Cos
Hyperbolic Sin
Hyperbolic Tan
Inverse Hyperbolic Cos
Inverse Hyperbolic Sin
Inverse Hyperbolic Tan
Invert Matrix
Log 10
Log 2
Magnitude
Magnitude Square (RK)
Max
Max3 (RK)
Median3 (RK)
Min
Min3 (RK)
Modulo
Modulo (RK)
Multiply
Natural Log
Normal Map
Normal Map Decode
Normalize
One Minus (RK)
Place 2D
Power
Reciprocal Square Root (RK)
Rotate 2D
Rotate 3D
Round
Safe Power
Sign
Sin
Sin Pi (RK)
Square Root
Subtract
Tan
Tan Pi (RK)
Transform Matrix
Transform Normal
Transform Point
Transform Vector
Transpose
Truncate (RK)
Organization
Dot
PBR
Preview Surface
Procedural
Boolean
Color3 (Float)
Color4 (Float)
Float
Half
Image File
Integer
Integer2
Integer3
Integer4
Matrix2x2 (Float)
Matrix3x3 (Float)
Matrix4x4 (Float)
String
Vector2 (Float)
Vector2 (Half)
Vector3 (Float)
Vector3 (Half)
Vector4 (Float)
Vector4 (Half)
RealityKit
Absolute Derivatives Sum
Blurred Background
Camera Index Switch
Camera Position
Cube Image
Cube Image Gradient
Cube Image LOD
Environment Radiance
Fortran Difference and Minimum
Geometry Modifier
Geometry Modifier Model to View
Geometry Modifier Model to World
Geometry Modifier Normal to World
Geometry Modifier Projection to View
Geometry Modifier Vertex ID
Geometry Modifier View To Projection
Geometry Modifier World To Model
Hover State
Image 2D
Image 2D Array
Image 2D Array Gradient
Image 2D Array Gradient Pixel
Image 2D Array LOD
Image 2D Array LOD Pixel
Image 2D Array Pixel
Image 2D Gradient
Image 2D Gradient Pixel
Image 2D LOD
Image 2D LOD Pixel
Image 2D Pixel
Image 2D Read
Image 3D
Image 3D Gradient
Image 3D Gradient Pixel
Image 3D LOD
Image 3D LOD Pixel
Image 3D Pixel
Image 3D Read
Is Finite
Is Infinite
Is Normal
Is Not a Number
Is Ordered
Is Unordered
Multiply 24
Multiply Add 24
Occlusion Surface
PBR Surface
Power Positive
Reflection Diffuse
Reflection Specular
Round Integral
Screen-Space X Partial Derivative
Screen-Space Y Partial Derivative
Shadow Receiving Occlusion Surface
Sign Bit
Surface Model to View
Surface Model to World
Surface Projection to View
Surface Screen Position
Surface View Direction
Surface View to Projection
Surface World to View
Unlit Surface
View Direction
Surface
Preview Surface
一度にすべて見るのは不可能なので、小分けに見てみたい。(リンクは Apple Developer Documentation)
ChatGPT によると「USD(Universal Scene Description)で定義されている「UV テクスチャを読むノード」を、MaterialX 形式として利用できるようにしたもの。」とのこと。
最後、Triplanar Projection は、
Samples data from three images and projects each along its respective coordinate axis and blends them by geometric normal. (3つの画像からサンプルデータを抽出し、それぞれを対応する座標軸に沿って投影し、幾何学的法線によってそれらを合成する。)