PbrHooks class abstract base

The injection points of the standard model, as a material lit by it (lighting standard;, version 4 of the material language) fills them: lib/pbr.glsl's ShadeSurfaceHook, ShadeLightHook and F3dLightTypeHook, each a method here with the answer of a stage that defines none by default.

Extendable outside this package: flutter3d_app's material stage implements it over a program's blocks.

One context per hook, each a class that can gain members — what the GLSL hook is handed next — without an implementation written against 1.0 breaking. Breaking in 1.0.0-rc.1: they took the GLSL hooks' arguments one by one.

Constructors

PbrHooks()
Hooks that change nothing; a subclass overrides the ones it fills.
const

Properties

hashCode → int
The hash code for this object.
no setterinherited
readsLightRow → bool
Whether lightType is asked at all: a stage that declares no plugin light and reads no light's row is not.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

light(PbrLightContext context) → Vector3
ShadeLightHook: the answer to PbrLightContext.light, given the model's own PbrLightContext.standard, which it is by default.
lightType(PbrLightTypeContext context) → bool
F3dLightTypeHook: told every light's type code and its row's last vec4 before it is sampled; whether a plugin's light (a code from 16 up) is one the stage lights. The engine's four only, by default.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
surface(PbrSurfaceContext context) → void
ShadeSurfaceHook: rewrites PbrSurfaceContext.surface once its maps are applied, before any light. Leaves it as it is by default.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited