Gorilla.Material.Default.Nodes

Unit Gorilla.Material.Default.Nodes.pas

Classes

Records

Enumerations

  • enum  TGorillaDefOp  = ( doEqual, doUnequal, doGreater, doGreaterEqual, doLess, doLessEqual ) ;
  • enum  TGorillaShaderNodeOperator  = ( snopUndefined, snopGrouping, snopArraySubscript, snopFuncCall, snopFieldSel, snopPostInc, snopPostDec, snopPreInc, snopPreDec, snopADD, snopSUB, snopMUL, snopDIV, snopSignPos, snopSignNeg, snopNOT, snopEQ, snopUNEQ, snopGT, snopGEQ, snopLT, snopLEQ, snopLogAND, snopLogOR, snopLogXOR, snopSelection, snopAssign, snopAddAssign, snopSubAssign, snopMulAssign, snopDivAssign ) ;
  • enum  TGorillaShaderNodeVariableType  = ( stCustom, stInt, stFloat, stBool, stBVec2, stBVec3, stBVec4, stIVec2, stIVec3, stIVec4, stUVec2, stUVec3, stUVec4, stVec2, stVec3, stVec4, stMat33, stMat44, stSampler2D, stStruct ) ;

Constants

    Mics. types

    • type TGorillaNodeEntityClass = class of TGorillaNodeEntity;

TGorillaShaderNodeOperator

enum TGorillaShaderNodeOperator = ( snopUndefined, snopGrouping, snopArraySubscript, snopFuncCall, snopFieldSel, snopPostInc, snopPostDec, snopPreInc, snopPreDec, snopADD, snopSUB, snopMUL, snopDIV, snopSignPos, snopSignNeg, snopNOT, snopEQ, snopUNEQ, snopGT, snopGEQ, snopLT, snopLEQ, snopLogAND, snopLogOR, snopLogXOR, snopSelection, snopAssign, snopAddAssign, snopSubAssign, snopMulAssign, snopDivAssign ) ;

Provides operators

Remarks

# OP Description Examples

1 ( ) grouping ( )

2 [ ] array subscript v[2]

( ) function call func()

. field selector, swizzle v.xyz

++ postfix increment i++

-- postfix decrement i--

...

TGorillaNodeBuilder

The node builder class provides functionality to easily build a complex shader code by adding nodes and handling defines.

Ancestors

Members

Fields

Methods

Properties

TGorillaCompositeNode

A basic node to sum up different nodes. The output shader code will be produced by added nodes in order.

Ancestors

Members

Fields

Methods

Properties

TGorillaUniformsNode

Defining a composite node for collecting uniforms. We use a separate node to provide a subnode for texture declarations, to update this code section fast.

Ancestors

Members

TGorillaTypeNode

Basis type for all complex data types inside of a shading language.

Ancestors

TGorillaStructTypeNode

Basis type node for structures inside of a shading language.

Ancestors

TGorillaVariableNode

Representing a variable declaration node, used by different other nodes, like struct, uniform, attributes or varying nodes

Ancestors

Members

Fields

Properties

TGorillaOperationNode

Providing a operation node used for code calculations and conditions, like addition, multiplication or comparisons.

Ancestors

Members

Fields

Methods

Properties

TGorillaConstantNode

Providing a constant value node supporting the following types: Boolean, Integer, Single, TPoint, TPointF, TPoint3D, TVector3D, TAlphaColorF, TMatrix3D

Ancestors

Members

Fields

Methods

Properties

  • public Value : TValue

    The value of provided constant. Allowed types are Boolean, Integer, Single, and vector formats, like TPoint, TPointF, TPoint3D, TVector3D, TAlphaColorF, TMatrix3D.

    read FValue
    write FValue

TGorillaStatementNode

Providing a node for statements / expressions.

Remarks

This node contains statements and operator nodes for building building a shader source code.

Ancestors

Members

TGorillaSurfaceOutputNode

Default surface shader output structure type. You are allowed to individually define the returned fields.

Ancestors

TGorillaSurfaceShaderNode

The scriptable shader library allows to include individual computation nodes on top of the basis lighting computation. To attach special treatment extend the TGorillaSurfaceShaderNode and add your code.

Remarks

By this shader node you do not need to rewrite lighting computation on your own.

Each SurfaceShaderNode expects an input and output structure, provided as extended classes of TGorillaSurfaceInputNode and TGorillaSurfaceOutputNode types.

Ancestors

Members

Fields

Properties

TGorillaEntryPointNode

Providing a node type for an entry point into the shader program, f.e. by the main() function.

Remarks

In GLSL each shader needs an entry point function which will be executed on startup. From that point on, everything else gets included.

This node type will automatically encapsulate all attached nodes.

       void main(){
         ...
       }
       

Ancestors

Members