ShaderPass constructor
Renderer object or GPUCurtains class object used to create this ShaderPass
parameters use to create this ShaderPass
The type of the FullscreenPlane
Object defining the FullscreenPlane size
document HTML size
Readonly
uuidThe universal unique id of the MeshBaseClass
Readonly
indexIndex of this MeshBaseClass, i.e. creation order
The Renderer used
RenderMaterial used by this MeshBaseClass
Geometry used by this MeshBaseClass
RenderTarget to render this Mesh to instead of the canvas context, if any.
RenderBundle used to render this Mesh, if any.
Controls the order in which this MeshBaseClass should be rendered by our Scene
Whether this MeshBaseClass should be treated as transparent. Impacts the render pipeline blend properties
Flag indicating whether to draw this MeshBaseClass or not
Flag indicating whether this MeshBaseClass is ready to be drawn
Empty object to store any additional data or custom properties into your Mesh.
function assigned to the onReady callback
function assigned to the onReady callback
function assigned to the onBeforeRender callback
function assigned to the onBeforeRender callback
function assigned to the onRender callback
function assigned to the onRender callback
function assigned to the onAfterRender callback
function assigned to the onAfterRender callback
function assigned to the onAfterResize callback
function assigned to the onAfterResize callback
callback to run when MeshBaseClass is ready
Callback to execute before updating the Scene matrix stack. This means it is called early and allows to update transformations values before actually setting the Mesh matrices (if any). This also means it won't be called if the Mesh has not been added to the Scene. The callback won't be called if the Renderer is not ready or the Mesh itself is neither ready nor visible.
Callback to execute before updating the Scene matrix stack. This means it is called early and allows to update transformations values before actually setting the Mesh matrices (if any). This also means it won't be called if the Mesh has not been added to the Scene. The callback won't be called if the Renderer is not ready or the Mesh itself is neither ready nor visible.
callback to run just before updating the Scene matrix stack.
Callback to execute right before actually rendering the Mesh. Useful to update uniforms for example. The callback won't be called if the Renderer is not ready or the Mesh itself is neither ready nor visible.
Callback to execute right before actually rendering the Mesh. Useful to update uniforms for example. The callback won't be called if the Renderer is not ready or the Mesh itself is neither ready nor visible.
callback to run just before rendering the MeshBaseClass.
Callback to execute just after a Mesh has been rendered. The callback won't be called if the Renderer is not ready or the Mesh itself is neither ready nor visible.
Callback to execute just after a Mesh has been rendered. The callback won't be called if the Renderer is not ready or the Mesh itself is neither ready nor visible.
callback to run just after MeshBaseClass has been rendered
Callback to execute just after a Mesh has been resized.
Callback to execute just after a Mesh has been resized.
callback to run just after MeshBaseClass has been resized
Optional input RenderTarget to assign to the ShaderPass. Used to automatically copy the content of the given RenderTarget texture into the ShaderPass renderTexture.
Options used to create this ShaderPass
Get private #autoRender value
Get/set whether a Mesh is ready or not
Get the transparent property value
Set the transparent property value. Update the RenderMaterial rendering options and Scene stack if needed.
new transparency value
Get the visible property value
Set the visible property value
new visibility value
Get our RenderMaterial domTextures array
Get our RenderMaterial textures array
Get the current RenderMaterial uniforms
Get the current RenderMaterial storages
Get our main Texture that contains the input content to be used by the ShaderPass. Can also contain the ouputted content if copyOutputToRenderTexture is set to true.
Resize our FullscreenPlane
the new bounding rectangle
Take the pointer vector position relative to the document and returns it relative to our FullscreenPlane It ranges from -1 to 1 on both axis
Set a new Renderer for this Mesh
new Renderer to set
Called when the device has been lost to prepare everything for restoration. Basically set all the GPUBuffer to null so they will be reset next time we try to draw the Mesh
Called when the device has been restored
Set or update the Mesh Geometry
Set or update the RenderMaterial rendering options to match the RenderPass descriptor used to draw this Mesh.
RenderPass used to draw this Mesh, default to the renderer renderPass.
Set or update the Mesh RenderMaterial
new RenderMaterial to use
Set a Mesh transparent property, then set its material
Create a new DOMTexture
Add a DOMTexture
DOMTexture to add
Callback run when a new DOMTexture has been created
newly created DOMTexture
Create a new Texture
Add a Texture
Assign or remove a RenderTarget to this Mesh Since this manipulates the Scene stacks, it can be used to remove a RenderTarget as well.
the RenderTarget to assign or null if we want to remove the current RenderTarget
Assign or remove a RenderBundle to this Mesh.
Optional
renderBundle: RenderBundlethe RenderBundle to assign or null if we want to remove the current RenderBundle.
Optional
updateScene: booleanWhether to remove and then re-add the Mesh from the Scene or not.
Execute onBeforeRender callback if needed. Called by the Scene before updating the matrix stack.
Called before rendering the Mesh Set the geometry if needed (create buffers and add attributes to the RenderMaterial) Then executes RenderMaterial#onBeforeRender: create its bind groups and pipeline if needed and eventually update its bindings
Render our MeshBaseClass if the RenderMaterial is ready
current render pass encoder
Render our Mesh
current render pass encoder
Remove the Mesh from the Scene and destroy it
Hook used to clean up parameters before sending them to the material.
parameters to clean before sending them to the RenderMaterial
Assign or remove an input RenderTarget to this ShaderPass, which can be different from what has just been drawn to the context current texture.
Since this manipulates the Scene stacks, it can be used to remove a RenderTarget as well. Also copy or remove the render target render texture into the ShaderPass renderTexture
the RenderTarget to assign or null if we want to remove the current RenderTarget
Add the ShaderPass to the Scene and optionally to the renderer as well.
whether to add this ShaderPass to the Renderer shaderPasses array
Remove the ShaderPass from the Scene and optionally from the renderer as well.
whether to remove this ShaderPass from the Renderer shaderPasses array
Used to apply postprocessing, i.e. draw meshes to a Texture and then draw a FullscreenPlane using that texture as an input.
A ShaderPass could either post process the whole scene or just a bunch of meshes using a specific RenderTarget.
Example