Class MaterialBuilder
- java.lang.Object
-
- com.google.android.filament.filamat.MaterialBuilder
-
public class MaterialBuilder extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMaterialBuilder.BlendingModestatic classMaterialBuilder.CullingModestatic classMaterialBuilder.Interpolationstatic classMaterialBuilder.MaterialDomainstatic classMaterialBuilder.Optimizationstatic classMaterialBuilder.ParameterPrecisionstatic classMaterialBuilder.Platformstatic classMaterialBuilder.RefractionModestatic classMaterialBuilder.RefractionTypestatic classMaterialBuilder.SamplerFormatstatic classMaterialBuilder.SamplerTypestatic classMaterialBuilder.Shadingstatic classMaterialBuilder.SpecularAmbientOcclusionstatic classMaterialBuilder.TargetApistatic classMaterialBuilder.TransparencyModestatic classMaterialBuilder.UniformTypestatic classMaterialBuilder.Variablestatic classMaterialBuilder.VertexAttributestatic classMaterialBuilder.VertexDomain
-
Constructor Summary
Constructors Constructor Description MaterialBuilder()
-
Method Summary
-
-
-
Method Detail
-
init
public static void init()
-
shutdown
public static void shutdown()
-
name
@NonNull public MaterialBuilder name(@NonNull java.lang.String name)
-
materialDomain
@NonNull public MaterialBuilder materialDomain(MaterialBuilder.MaterialDomain domain)
-
shading
@NonNull public MaterialBuilder shading(@NonNull MaterialBuilder.Shading shading)
-
interpolation
@NonNull public MaterialBuilder interpolation(@NonNull MaterialBuilder.Interpolation interpolation)
-
uniformParameter
@NonNull public MaterialBuilder uniformParameter(@NonNull MaterialBuilder.UniformType type, java.lang.String name)
-
uniformParameter
@NonNull public MaterialBuilder uniformParameter(@NonNull MaterialBuilder.UniformType type, MaterialBuilder.ParameterPrecision precision, java.lang.String name)
-
uniformParameterArray
@NonNull public MaterialBuilder uniformParameterArray(@NonNull MaterialBuilder.UniformType type, int size, java.lang.String name)
-
uniformParameterArray
@NonNull public MaterialBuilder uniformParameterArray(@NonNull MaterialBuilder.UniformType type, int size, MaterialBuilder.ParameterPrecision precision, java.lang.String name)
-
samplerParameter
@NonNull public MaterialBuilder samplerParameter(@NonNull MaterialBuilder.SamplerType type, MaterialBuilder.SamplerFormat format, MaterialBuilder.ParameterPrecision precision, java.lang.String name)
-
variable
@NonNull public MaterialBuilder variable(@NonNull MaterialBuilder.Variable variable, java.lang.String name)
-
require
@NonNull public MaterialBuilder require(@NonNull MaterialBuilder.VertexAttribute attribute)
-
material
@NonNull public MaterialBuilder material(@NonNull java.lang.String code)
-
materialVertex
@NonNull public MaterialBuilder materialVertex(@NonNull java.lang.String code)
-
blending
@NonNull public MaterialBuilder blending(@NonNull MaterialBuilder.BlendingMode mode)
-
postLightingBlending
@NonNull public MaterialBuilder postLightingBlending(@NonNull MaterialBuilder.BlendingMode mode)
-
vertexDomain
@NonNull public MaterialBuilder vertexDomain(@NonNull MaterialBuilder.VertexDomain vertexDomain)
-
culling
@NonNull public MaterialBuilder culling(@NonNull MaterialBuilder.CullingMode mode)
-
colorWrite
@NonNull public MaterialBuilder colorWrite(boolean enable)
-
depthWrite
@NonNull public MaterialBuilder depthWrite(boolean enable)
-
depthCulling
@NonNull public MaterialBuilder depthCulling(boolean enable)
-
doubleSided
@NonNull public MaterialBuilder doubleSided(boolean doubleSided)
-
maskThreshold
@NonNull public MaterialBuilder maskThreshold(float threshold)
-
alphaToCoverage
@NonNull public MaterialBuilder alphaToCoverage(boolean enable)
-
shadowMultiplier
@NonNull public MaterialBuilder shadowMultiplier(boolean shadowMultiplier)
-
transparentShadow
@NonNull public MaterialBuilder transparentShadow(boolean transparentShadow)
-
specularAntiAliasing
@NonNull public MaterialBuilder specularAntiAliasing(boolean specularAntiAliasing)
-
specularAntiAliasingVariance
@NonNull public MaterialBuilder specularAntiAliasingVariance(float variance)
-
specularAntiAliasingThreshold
@NonNull public MaterialBuilder specularAntiAliasingThreshold(float threshold)
-
refractionMode
@NonNull public MaterialBuilder refractionMode(MaterialBuilder.RefractionMode mode)
-
refractionType
@NonNull public MaterialBuilder refractionType(MaterialBuilder.RefractionType type)
-
clearCoatIorChange
@NonNull public MaterialBuilder clearCoatIorChange(boolean clearCoatIorChange)
-
flipUV
@NonNull public MaterialBuilder flipUV(boolean flipUV)
-
customSurfaceShading
@NonNull public MaterialBuilder customSurfaceShading(boolean customSurfaceShading)
-
multiBounceAmbientOcclusion
@NonNull public MaterialBuilder multiBounceAmbientOcclusion(boolean multiBounceAO)
-
specularAmbientOcclusion
@NonNull public MaterialBuilder specularAmbientOcclusion(MaterialBuilder.SpecularAmbientOcclusion specularAO)
-
transparencyMode
@NonNull public MaterialBuilder transparencyMode(@NonNull MaterialBuilder.TransparencyMode mode)
-
platform
@NonNull public MaterialBuilder platform(@NonNull MaterialBuilder.Platform platform)
-
targetApi
@NonNull public MaterialBuilder targetApi(@NonNull MaterialBuilder.TargetApi api)
-
optimization
@NonNull public MaterialBuilder optimization(@NonNull MaterialBuilder.Optimization optimization)
-
variantFilter
@NonNull public MaterialBuilder variantFilter(int variantFilter)
-
useLegacyMorphing
@NonNull public MaterialBuilder useLegacyMorphing()
Legacy morphing uses the data in theVertexBuffer.VertexAttributeslots (MORPH_POSITION_0, etc) and is limited to 4 morph targets.- See Also:
RenderableManager.Builder#morphing()
-
build
@NonNull public MaterialPackage build()
Validates, builds, and returns the compiled material. While this method never returns null, the returnedMaterialPackagemay be invalid. CallMaterialPackage.isValid()before using it. Calling this method is equivalent to callingbuild(Object)and passingnullas the job system provider.- See Also:
build(Object)
-
build
@NonNull public MaterialPackage build(@Nullable java.lang.Object jobSystemProvider)
Validates, builds, and returns the compiled material. While this method never returns null, the returnedMaterialPackagemay be invalid. CallMaterialPackage.isValid()before using it. You can pass a job system provider to this method, or null. When passing null or an invalid job system provider, a temporary job system will be created which is less efficient than reusing an existing job system. Currently the only valid type of job system provider is anEngineinstance from the main Filament library (com.google.android.filament.Engine). If you are using Filament and the filamat library together you must pass anEngineas the job system provider, or invokeMaterialBuilderfrom a thread other than the thread used to invoke Filament APIs.- Parameters:
jobSystemProvider- AnEngineinstance or null
-
-