Class: SkinMaterial
Defined in: src/materials/SkinMaterial.ts:35
Subsurface scattering skin material — Burley pre-integrated SSS.
Produces the soft red-into-shadow reflectance characteristic of skin (and wax / leaves / marble) by sampling a 2D LUT keyed on (N·L, curvature). Curvature is approximated from the normal map's derivative magnitude or supplied via a thickness map.
MVP status — skeleton: this class extends LitMaterial and exposes the SSS uniforms (subsurfaceColor, subsurfaceRadius, thicknessMap). The shader path that consumes them — namely a USE_SUBSURFACE block in BxDF_frag that mixes in texture(sssLUT, vec2(NoL*0.5+0.5, curvature)) — is the next-step deliverable. The LUT pre-integration (Burley 2015 normalized dipole) lives offline in tools/sssLUTGen.
Until the shader path lands, the material renders identically to a regular LitMaterial — but the API is stable so client code can be authored against it now.
Usage:
const m = new SkinMaterial(engine.context3D);
m.subsurfaceColor = new Color(0.95, 0.5, 0.4);
m.subsurfaceRadius = 1.5; // mm; wider radius = softer
m.thicknessMap = headThicknessMap; // 0 = thin (ears), 1 = thickExtends
Constructors
Constructor
new SkinMaterial(
ctx?):SkinMaterial
Defined in: src/materials/SkinMaterial.ts:37
Creates the material, enables the subsurface path, and applies default skin uniforms.
Parameters
ctx?
Returns
SkinMaterial
Overrides
Properties
instanceID
instanceID:
string
Defined in: src/materials/Material.ts:26
Material Unique Identifier
Inherited from
name
name:
string
Defined in: src/materials/Material.ts:32
name of this material
Inherited from
enable
enable:
boolean=true
Defined in: src/materials/Material.ts:35
Whether this material is enabled for rendering.
Inherited from
Accessors
baseMap
Get Signature
get baseMap():
Texture
Defined in: src/materials/LitMaterial.ts:89
Get the albedo/base color texture.
Returns
Set Signature
set baseMap(
texture):void
Defined in: src/materials/LitMaterial.ts:84
Set the albedo/base color texture.
Parameters
texture
Returns
void
Inherited from
maskMap
Get Signature
get maskMap():
Texture
Defined in: src/materials/LitMaterial.ts:99
Get the mask texture.
Returns
Set Signature
set maskMap(
texture):void
Defined in: src/materials/LitMaterial.ts:94
Set the mask texture.
Parameters
texture
Returns
void
Inherited from
normalMap
Get Signature
get normalMap():
Texture
Defined in: src/materials/LitMaterial.ts:110
Get the normal map texture.
Returns
Set Signature
set normalMap(
texture):void
Defined in: src/materials/LitMaterial.ts:105
Set the normal map texture.
Parameters
texture
Returns
void
Inherited from
emissiveMap
Get Signature
get emissiveMap():
Texture
Defined in: src/materials/LitMaterial.ts:120
Get the emissive texture.
Returns
Set Signature
set emissiveMap(
texture):void
Defined in: src/materials/LitMaterial.ts:115
Set the emissive texture.
Parameters
texture
Returns
void
Inherited from
aoMap
Get Signature
get aoMap():
Texture
Defined in: src/materials/LitMaterial.ts:130
Get the ambient occlusion texture.
Returns
Set Signature
set aoMap(
texture):void
Defined in: src/materials/LitMaterial.ts:125
Set the ambient occlusion texture.
Parameters
texture
Returns
void
Inherited from
clearCoatRoughnessMap
Get Signature
get clearCoatRoughnessMap():
Texture
Defined in: src/materials/LitMaterial.ts:142
Get the clearcoat roughness texture.
Returns
Set Signature
set clearCoatRoughnessMap(
texture):void
Defined in: src/materials/LitMaterial.ts:135
Set the clearcoat roughness texture and enable the clearcoat shader path.
Parameters
texture
Returns
void
Inherited from
LitMaterial.clearCoatRoughnessMap
clearcoatColor
Get Signature
get clearcoatColor():
Color
Defined in: src/materials/LitMaterial.ts:153
Get the clearcoat tint color.
Returns
Set Signature
set clearcoatColor(
value):void
Defined in: src/materials/LitMaterial.ts:147
Set the clearcoat tint color and enable the clearcoat shader path.
Parameters
value
Returns
void
Inherited from
clearcoatWeight
Get Signature
get clearcoatWeight():
number
Defined in: src/materials/LitMaterial.ts:164
Get the clearcoat weight.
Returns
number
Set Signature
set clearcoatWeight(
value):void
Defined in: src/materials/LitMaterial.ts:158
Set the clearcoat weight and enable the clearcoat shader path.
Parameters
value
number
Returns
void
Inherited from
clearcoatFactor
Get Signature
get clearcoatFactor():
number
Defined in: src/materials/LitMaterial.ts:175
Get the clearcoat factor.
Returns
number
Set Signature
set clearcoatFactor(
value):void
Defined in: src/materials/LitMaterial.ts:169
Set the clearcoat factor and enable the clearcoat shader path.
Parameters
value
number
Returns
void
Inherited from
clearcoatRoughnessFactor
Get Signature
get clearcoatRoughnessFactor():
number
Defined in: src/materials/LitMaterial.ts:187
Get the clearcoat roughness factor.
Returns
number
Set Signature
set clearcoatRoughnessFactor(
value):void
Defined in: src/materials/LitMaterial.ts:181
Set the clearcoat roughness factor and enable the clearcoat shader path.
Parameters
value
number
Returns
void
Inherited from
LitMaterial.clearcoatRoughnessFactor
ior
Get Signature
get ior():
number
Defined in: src/materials/LitMaterial.ts:197
Get the index of refraction.
Returns
number
Set Signature
set ior(
value):void
Defined in: src/materials/LitMaterial.ts:192
Set the index of refraction.
Parameters
value
number
Returns
void
Inherited from
alphaCutoff
Get Signature
get alphaCutoff():
number
Defined in: src/materials/LitMaterial.ts:209
Get the alpha cutoff threshold.
Returns
number
Set Signature
set alphaCutoff(
value):void
Defined in: src/materials/LitMaterial.ts:203
Set the alpha cutoff threshold and enable the alpha-cut shader path.
Parameters
value
number
Returns
void
Inherited from
transmissionMap
Get Signature
get transmissionMap():
Texture
Defined in: src/materials/LitMaterial.ts:233
Get the transmission texture.
Returns
Set Signature
set transmissionMap(
texture):void
Defined in: src/materials/LitMaterial.ts:226
glTF KHR_materials_transmission transmissionTexture — R channel is multiplied with transmissionFactor per fragment, so the same material can have opaque + glassy regions (e.g. a frosted window with painted bezels). Setting it implies USE_TRANSMISSION.
Parameters
texture
Returns
void
Inherited from
transmissionFactor
Get Signature
get transmissionFactor():
number
Defined in: src/materials/LitMaterial.ts:264
Get the transmission factor.
Returns
number
Set Signature
set transmissionFactor(
value):void
Defined in: src/materials/LitMaterial.ts:238
Set the transmission factor, toggling the transmission shader path and resolving the scene color pyramid.
Parameters
value
number
Returns
void
Inherited from
LitMaterial.transmissionFactor
thicknessFactor
Get Signature
get thicknessFactor():
number
Defined in: src/materials/LitMaterial.ts:274
Get the volume thickness factor.
Returns
number
Set Signature
set thicknessFactor(
value):void
Defined in: src/materials/LitMaterial.ts:269
Set the volume thickness factor used for transmission attenuation.
Parameters
value
number
Returns
void
Inherited from
attenuationDistance
Get Signature
get attenuationDistance():
number
Defined in: src/materials/LitMaterial.ts:291
Get the attenuation distance, returning Infinity when attenuation is effectively disabled.
Returns
number
Set Signature
set attenuationDistance(
value):void
Defined in: src/materials/LitMaterial.ts:281
Distance (in world units) after which the transmitted radiance has been attenuated to 1/e of its initial intensity. Use Number.POSITIVE_INFINITY to disable attenuation.
Parameters
value
number
Returns
void
Inherited from
LitMaterial.attenuationDistance
attenuationColor
Get Signature
get attenuationColor():
Color
Defined in: src/materials/LitMaterial.ts:302
Get the attenuation (transmission absorption) color.
Returns
Set Signature
set attenuationColor(
value):void
Defined in: src/materials/LitMaterial.ts:297
Set the attenuation (transmission absorption) color.
Parameters
value
Returns
void
Inherited from
transmissionAlphaMode
Get Signature
get transmissionAlphaMode():
boolean
Defined in: src/materials/LitMaterial.ts:318
Whether transmission also attenuates the output alpha for see-through compositing.
Returns
boolean
Set Signature
set transmissionAlphaMode(
value):void
Defined in: src/materials/LitMaterial.ts:313
When set to true, the transmission shader path attenuates this fragment's output alpha by transmission as well as RGB so an alpha:true swapchain composites whatever's behind the canvas (HTML page background, video element, ...) through the glass. Off by default — opaque-queue draws keep alpha=1 so demos that share an opaque canvas with other geometry don't inherit unwanted blending.
Parameters
value
boolean
Returns
void
Inherited from
LitMaterial.transmissionAlphaMode
alphaMode
Get Signature
get alphaMode():
AlphaMode
Defined in: src/materials/LitMaterial.ts:323
glTF-aligned alpha handling. See AlphaMode.
Returns
Set Signature
set alphaMode(
mode):void
Defined in: src/materials/LitMaterial.ts:328
Set the glTF-aligned alpha mode, configuring blend/discard state and render queue accordingly.
Parameters
mode
Returns
void
Inherited from
baseColor
Get Signature
get baseColor():
Color
Defined in: src/materials/LitMaterial.ts:407
get base color (tint color)
Returns
Set Signature
set baseColor(
color):void
Defined in: src/materials/LitMaterial.ts:400
set base color (tint color)
Parameters
color
Returns
void
Inherited from
roughness
Get Signature
get roughness():
number
Defined in: src/materials/LitMaterial.ts:412
Get the surface roughness.
Returns
number
Set Signature
set roughness(
value):void
Defined in: src/materials/LitMaterial.ts:417
Set the surface roughness.
Parameters
value
number
Returns
void
Inherited from
metallic
Get Signature
get metallic():
number
Defined in: src/materials/LitMaterial.ts:422
Get the metallic factor.
Returns
number
Set Signature
set metallic(
value):void
Defined in: src/materials/LitMaterial.ts:427
Set the metallic factor.
Parameters
value
number
Returns
void
Inherited from
emissiveColor
Get Signature
get emissiveColor():
Color
Defined in: src/materials/LitMaterial.ts:432
Get the emissive color.
Returns
Set Signature
set emissiveColor(
value):void
Defined in: src/materials/LitMaterial.ts:437
Set the emissive color.
Parameters
value
Returns
void
Inherited from
emissiveIntensity
Get Signature
get emissiveIntensity():
number
Defined in: src/materials/LitMaterial.ts:442
Get the emissive intensity.
Returns
number
Set Signature
set emissiveIntensity(
value):void
Defined in: src/materials/LitMaterial.ts:447
Set the emissive intensity.
Parameters
value
number
Returns
void
Inherited from
ao
Get Signature
get ao():
number
Defined in: src/materials/LitMaterial.ts:452
Get the ambient occlusion factor.
Returns
number
Set Signature
set ao(
value):void
Defined in: src/materials/LitMaterial.ts:457
Set the ambient occlusion factor.
Parameters
value
number
Returns
void
Inherited from
oitMode
Get Signature
get oitMode():
"sorted"|"weighted"|"depth-peel"
Defined in: src/materials/Material.ts:69
Order-independent transparency mode opt-in.
'sorted'(default): back-to-front sorted alpha-blend. Cheap, correct between meshes, but in-mesh triangle order is geometry- based not depth-based so self-overlapping meshes (spheres, torus) show banding.'weighted': McGuire-Bavoil 2013 Weighted-Blended OIT. Single- pass, order-independent, no in-mesh banding. Approximate — accum.rgb/accum.a degenerates to a depth-weighted average so α=1 looks averaged-milky at small scene scales (the front-vs- back depth-weight ratio saturates the paper's z/200 norm). Use for unbounded transparent layer counts: particles, smoke, foliage, hair cards.'depth-peel': Dual depth peeling. Multi-pass (passCount × 2 layers), order-correct over operator. α=1 is cleanly opaque — front fragment dominates because subsequent layers get multiplied by (1 - frontColor.a) = 0. Hard layer count limit (default 10). Use for hero glass, scientific visualization, layered architectural geometry.
All three only take effect when engine.setting.render.useOIT is true (otherwise everything falls through the sorted path).
Setter notifies attached renderers so the corresponding derived pass(es) get lazily generated when flipping mode at runtime. Without this, callers had to follow up with an alphaMode setter call to provoke refreshRenderClassification → castNeedPass.
Documented at Material-level (not LitMaterial) so any future material subclass (particle, decal) can opt in.
Returns
"sorted" | "weighted" | "depth-peel"
Set Signature
set oitMode(
value):void
Defined in: src/materials/Material.ts:74
Set the order-independent transparency mode, notifying renderers to re-classify the affected passes.
Parameters
value
"sorted" | "weighted" | "depth-peel"
Returns
void
Inherited from
shader
Get Signature
get shader():
Shader
Defined in: src/materials/Material.ts:96
Get the shader bound to this material.
Returns
Set Signature
set shader(
shader):void
Defined in: src/materials/Material.ts:90
Set the shader for this material and cache its default sub-shader.
Parameters
shader
Returns
void
Inherited from
doubleSide
Get Signature
get doubleSide():
boolean
Defined in: src/materials/Material.ts:101
Whether the default sub-shader renders both faces (no back-face culling).
Returns
boolean
Set Signature
set doubleSide(
value):void
Defined in: src/materials/Material.ts:106
Enable or disable double-sided rendering on the default sub-shader.
Parameters
value
boolean
Returns
void
Inherited from
castShadow
Get Signature
get castShadow():
boolean
Defined in: src/materials/Material.ts:111
Whether this material casts shadows.
Returns
boolean
Set Signature
set castShadow(
value):void
Defined in: src/materials/Material.ts:116
Enable or disable shadow casting for this material.
Parameters
value
boolean
Returns
void
Inherited from
acceptShadow
Get Signature
get acceptShadow():
boolean
Defined in: src/materials/Material.ts:124
Whether this material receives shadows from other casters.
Returns
boolean
Set Signature
set acceptShadow(
value):void
Defined in: src/materials/Material.ts:129
Enable or disable shadow receiving for this material.
Parameters
value
boolean
Returns
void
Inherited from
castReflection
Get Signature
get castReflection():
boolean
Defined in: src/materials/Material.ts:139
Whether this material contributes to reflection probes.
Returns
boolean
Set Signature
set castReflection(
value):void
Defined in: src/materials/Material.ts:144
Enable or disable reflection casting for this material.
Parameters
value
boolean
Returns
void
Inherited from
blendMode
Get Signature
get blendMode():
BlendMode
Defined in: src/materials/Material.ts:149
The blend mode of the default sub-shader.
Returns
Set Signature
set blendMode(
value):void
Defined in: src/materials/Material.ts:154
Set the blend mode of the default sub-shader.
Parameters
value
Returns
void
Inherited from
depthCompare
Get Signature
get depthCompare():
GPUCompareFunction
Defined in: src/materials/Material.ts:159
The depth comparison function of the default sub-shader.
Returns
GPUCompareFunction
Set Signature
set depthCompare(
value):void
Defined in: src/materials/Material.ts:164
Set the depth comparison function across all passes of this material.
Parameters
value
GPUCompareFunction
Returns
void
Inherited from
transparent
Get Signature
get transparent():
boolean
Defined in: src/materials/Material.ts:175
Whether this material is rendered as transparent.
Returns
boolean
Set Signature
set transparent(
value):void
Defined in: src/materials/Material.ts:180
Enable or disable transparency, moving the pass to the transparent queue when enabled.
Parameters
value
boolean
Returns
void
Inherited from
cullMode
Get Signature
get cullMode():
GPUCullMode
Defined in: src/materials/Material.ts:188
The face culling mode of the default sub-shader.
Returns
GPUCullMode
Set Signature
set cullMode(
value):void
Defined in: src/materials/Material.ts:193
Set the face culling mode across all passes of this material.
Parameters
value
GPUCullMode
Returns
void
Inherited from
depthWriteEnabled
Get Signature
get depthWriteEnabled():
boolean
Defined in: src/materials/Material.ts:205
Whether depth writing is enabled for the default sub-shader.
Returns
boolean
Set Signature
set depthWriteEnabled(
value):void
Defined in: src/materials/Material.ts:210
Enable or disable depth writing for the default sub-shader.
Parameters
value
boolean
Returns
void
Inherited from
stencilFront
Get Signature
get stencilFront():
GPUStencilFaceState
Defined in: src/materials/Material.ts:217
Stencil front face state
Returns
GPUStencilFaceState
Set Signature
set stencilFront(
value):void
Defined in: src/materials/Material.ts:222
Set the stencil front face state.
Parameters
value
GPUStencilFaceState
Returns
void
Inherited from
stencilBack
Get Signature
get stencilBack():
GPUStencilFaceState
Defined in: src/materials/Material.ts:229
Stencil back face state
Returns
GPUStencilFaceState
Set Signature
set stencilBack(
value):void
Defined in: src/materials/Material.ts:234
Set the stencil back face state.
Parameters
value
GPUStencilFaceState
Returns
void
Inherited from
stencilReadMask
Get Signature
get stencilReadMask():
number
Defined in: src/materials/Material.ts:241
Stencil read mask
Returns
number
Set Signature
set stencilReadMask(
value):void
Defined in: src/materials/Material.ts:246
Set the stencil read mask.
Parameters
value
number
Returns
void
Inherited from
stencilWriteMask
Get Signature
get stencilWriteMask():
number
Defined in: src/materials/Material.ts:253
Stencil write mask
Returns
number
Set Signature
set stencilWriteMask(
value):void
Defined in: src/materials/Material.ts:258
Set the stencil write mask.
Parameters
value
number
Returns
void
Inherited from
stencilRef
Get Signature
get stencilRef():
number
Defined in: src/materials/Material.ts:265
Stencil reference value
Returns
number
Set Signature
set stencilRef(
value):void
Defined in: src/materials/Material.ts:270
Set the stencil reference value.
Parameters
value
number
Returns
void
Inherited from
useBillboard
Set Signature
set useBillboard(
value):void
Defined in: src/materials/Material.ts:275
Enable or disable billboard orientation via the USE_BILLBOARD shader define.
Parameters
value
boolean
Returns
void
Inherited from
topology
Get Signature
get topology():
GPUPrimitiveTopology
Defined in: src/materials/Material.ts:280
The primitive topology of the default sub-shader.
Returns
GPUPrimitiveTopology
Set Signature
set topology(
value):void
Defined in: src/materials/Material.ts:285
Set the primitive topology of the default sub-shader.
Parameters
value
GPUPrimitiveTopology
Returns
void
Inherited from
subsurfaceRadius
Get Signature
get subsurfaceRadius():
number
Defined in: src/materials/SkinMaterial.ts:50
Gets the subsurface scattering radius uniform.
Returns
number
Set Signature
set subsurfaceRadius(
value):void
Defined in: src/materials/SkinMaterial.ts:46
Sets the subsurface scattering radius uniform.
Parameters
value
number
Returns
void
thicknessMap
Get Signature
get thicknessMap():
Texture
Defined in: src/materials/SkinMaterial.ts:60
Gets the thickness map texture.
Returns
Set Signature
set thicknessMap(
texture):void
Defined in: src/materials/SkinMaterial.ts:55
Sets the thickness map texture and enables the thickness-map shader path.
Parameters
texture
Returns
void
Methods
clone()
clone():
Material
Defined in: src/materials/LitMaterial.ts:37
Clone this material into a new LitMaterial, copying PBR uniforms and textures.
Returns
Inherited from
getPass()
getPass(
passType):RenderShaderPass[]
Defined in: src/materials/Material.ts:304
get render pass by renderType
Parameters
passType
PassType
Returns
Inherited from
getAllPass()
getAllPass():
RenderShaderPass[]
Defined in: src/materials/Material.ts:312
get all color render pass
Returns
Inherited from
destroy()
destroy(
force):void
Defined in: src/materials/Material.ts:328
Release this material's shader and clear its identifying fields.
Parameters
force
boolean
Returns
void
Inherited from
setDefine()
setDefine(
define,value):void
Defined in: src/materials/Material.ts:337
Set a shader define flag on this material's shader.
Parameters
define
string
value
boolean
Returns
void
Inherited from
getDefine()
getDefine(
define):boolean
Defined in: src/materials/Material.ts:342
Get the value of a shader define flag.
Parameters
define
string
Returns
boolean
Inherited from
setTexture()
setTexture(
propertyName,texture):void
Defined in: src/materials/Material.ts:347
Bind a texture to the named shader property.
Parameters
propertyName
string
texture
Returns
void
Inherited from
setStorageBuffer()
setStorageBuffer(
propertyName,buffer):void
Defined in: src/materials/Material.ts:352
Bind a storage GPU buffer to the named shader property.
Parameters
propertyName
string
buffer
Returns
void
Inherited from
setUniformBuffer()
setUniformBuffer(
propertyName,buffer):void
Defined in: src/materials/Material.ts:357
Bind a uniform GPU buffer to the named shader property.
Parameters
propertyName
string
buffer
Returns
void
Inherited from
setUniformFloat()
setUniformFloat(
propertyName,value):void
Defined in: src/materials/Material.ts:363
Set a float uniform on the named shader property.
Parameters
propertyName
string
value
number
Returns
void
Inherited from
setUniformInt32()
setUniformInt32(
propertyName,value):void
Defined in: src/materials/Material.ts:368
Set a 32-bit integer uniform on the named shader property.
Parameters
propertyName
string
value
number
Returns
void
Inherited from
setUniformVector2()
setUniformVector2(
propertyName,value):void
Defined in: src/materials/Material.ts:373
Set a Vector2 uniform on the named shader property.
Parameters
propertyName
string
value
Returns
void
Inherited from
setUniformVector3()
setUniformVector3(
propertyName,value):void
Defined in: src/materials/Material.ts:378
Set a Vector3 uniform on the named shader property.
Parameters
propertyName
string
value
Returns
void
Inherited from
setUniformVector4()
setUniformVector4(
propertyName,value):void
Defined in: src/materials/Material.ts:383
Set a Vector4 uniform on the named shader property.
Parameters
propertyName
string
value
Vector4
Returns
void
Inherited from
setUniformColor()
setUniformColor(
propertyName,value):void
Defined in: src/materials/Material.ts:388
Set a color uniform on the named shader property.
Parameters
propertyName
string
value
Returns
void
Inherited from
getUniformFloat()
getUniformFloat(
str):any
Defined in: src/materials/Material.ts:393
Get the float value of the named uniform.
Parameters
str
string
Returns
any
Inherited from
getUniformInt32()
getUniformInt32(
str):any
Defined in: src/materials/Material.ts:398
Get the 32-bit integer value of the named uniform.
Parameters
str
string
Returns
any
Inherited from
getUniformV2()
getUniformV2(
str):Vector2
Defined in: src/materials/Material.ts:403
Get the Vector2 value of the named uniform.
Parameters
str
string
Returns
Inherited from
getUniformV3()
getUniformV3(
str):Vector3
Defined in: src/materials/Material.ts:408
Get the Vector3 value of the named uniform.
Parameters
str
string
Returns
Inherited from
getUniformV4()
getUniformV4(
str):Vector4
Defined in: src/materials/Material.ts:413
Get the Vector4 value of the named uniform.
Parameters
str
string
Returns
Vector4
Inherited from
getUniformColor()
getUniformColor(
str):Color
Defined in: src/materials/Material.ts:418
Get the color value of the named uniform.
Parameters
str
string
Returns
Inherited from
getTexture()
getTexture(
str):Texture
Defined in: src/materials/Material.ts:423
Get the texture bound to the named shader property.
Parameters
str
string
Returns
Inherited from
getStorageBuffer()
getStorageBuffer(
str):StorageGPUBuffer
Defined in: src/materials/Material.ts:428
Get the storage buffer bound to the named shader property.
Parameters
str
string
Returns
Inherited from
getStructStorageBuffer()
getStructStorageBuffer(
str):GPUBufferBase
Defined in: src/materials/Material.ts:433
Get the struct storage buffer bound to the named shader property.
Parameters
str
string
Returns
GPUBufferBase
Inherited from
LitMaterial.getStructStorageBuffer
getUniformBuffer()
getUniformBuffer(
str):GPUBufferBase
Defined in: src/materials/Material.ts:438
Get the uniform buffer bound to the named shader property.
Parameters
str
string
Returns
GPUBufferBase
Inherited from
applyUniform()
applyUniform():
void
Defined in: src/materials/Material.ts:443
Upload pending uniform changes to the GPU.
Returns
void

