EndShader class provides the final output functions for both vertex and fragment shaders. This class handles the final position output in vertex shaders and color output in fragment shaders, supporting both WebGL and WebGPU rendering approaches.

Hierarchy (view full)

Properties

__webglResourceRepository?: WebGLResourceRepository = ...
__instance: EndShader
materialElement: EnumIO = ShaderNode.PBRShading

Accessors

  • get pixelShaderDefinitions(): "\n fn outColor(inColor: vec4<f32>) {\n rt0 = inColor;\n }\n " | "\n void outColor(in vec4 inColor) {\n rt0 = inColor;\n }\n "
  • Gets the pixel/fragment shader function definitions for color output. Returns appropriate function definition based on the current process approach (WebGL/WebGPU).

    Returns "\n fn outColor(inColor: vec4<f32>) {\n rt0 = inColor;\n }\n " | "\n void outColor(in vec4 inColor) {\n rt0 = inColor;\n }\n "

    Shader code string containing the outColor function definition

  • get vertexShaderBody(): string
  • Gets the vertex shader body code. Currently returns empty string as no additional vertex processing is needed.

    Returns string

    Empty shader body string

  • get vertexShaderDefinitions(): "\n fn outPosition(inPosition: vec4<f32>) {\n output.position = inPosition;\n }\n " | "\n void outPosition(in vec4 inPosition) {\n gl_Position = inPosition;\n }\n "
  • Gets the vertex shader function definitions for position output. Returns appropriate function definition based on the current process approach (WebGL/WebGPU).

    Returns "\n fn outPosition(inPosition: vec4<f32>) {\n output.position = inPosition;\n }\n " | "\n void outPosition(in vec4 inPosition) {\n gl_Position = inPosition;\n }\n "

    Shader code string containing the outPosition function definition

Methods

  • Gets the pixel/fragment shader body code. Currently returns empty string as no additional fragment processing is needed.

    Returns string

    Empty shader body string

  • Generates variable assignment statement with proper type declaration. Creates appropriate syntax for both WebGL (GLSL) and WebGPU (WGSL) based on the current process approach.

    Parameters

    • varName: string

      The name of the variable to declare

    • inputSocket: Socket<string, CompositionTypeEnum, ComponentTypeEnum, SocketDefaultValue>

      The socket containing type and default value information

    Returns string

    The variable assignment statement string

  • Generates varying variable assignment statement for vertex shaders. Creates code to write varying variables that will be passed to fragment shader.

    Parameters

    • inputNode: AbstractShaderNode

      The shader node that provides the varying variable

    • varNames: string[]

      Array of variable names to assign

    • j: number

      Index of the current variable in the varNames array

    Returns string

    The varying variable assignment statement string for vertex shader

  • Generates the main function beginning code for vertex or fragment shaders. Handles differences between WebGL (GLSL) and WebGPU (WGSL) shader languages.

    Parameters

    • isVertexStage: boolean

      True if generating code for vertex shader, false for fragment shader

    Returns string

    The shader code string for the main function beginning

  • Generates the main function ending code for vertex or fragment shaders. Handles differences between WebGL (GLSL) and WebGPU (WGSL) shader languages.

    Parameters

    • isVertexStage: boolean

      True if generating code for vertex shader, false for fragment shader

    Returns "\n return output;\n}\n" | "\n return rt0;\n}\n" | "\n}\n "

    The shader code string for the main function ending

  • Generates fragment/pixel shader prerequisites including definitions and varying variable declarations. Creates appropriate code for both WebGL (GLSL) and WebGPU (WGSL) based on the current process approach.

    Parameters

    • shaderNodes: AbstractShaderNode[]

      Array of shader nodes used to generate varying variables for WebGPU

    Returns string

    The complete fragment shader prerequisites code string

  • Generates vertex shader prerequisites including definitions, vertex inputs, and uniform declarations. Creates appropriate code for both WebGL (GLSL) and WebGPU (WGSL) based on the current process approach.

    Parameters

    • shaderNodes: AbstractShaderNode[]

      Array of shader nodes used to generate varying variables for WebGPU

    Returns string

    The complete vertex shader prerequisites code string