cables is under heavy development.
There might be one or another bug, please let us know about it!
Collections: Material  
Namespace: Ops.Gl.Shader
Write your own custom shader

summary (oneliner)

Write your own custom shader and use it as a material.
Click the edit button to edit the fragment or vertex shader.

To turn it into a texture use it together with the Ops.Gl.Shader.Shader2Texture op.

UNI float variableFloatName; //Use to create a uniform float
UNI Sampler2D variableTextureName; // use to create a texture input port
IN vec2 texCoord; // Gives the UV co-ordinates from 0-1

To display a texture on the screen
Vec4 texIn = texture(variableTextureName,texCoord);



youtube id


related ops


render (Trigger)

Trigger in

Source Code

Fragment Code (String)

A string can be passed in as a fragment shader. It's better to use an attachment

Vertex Code (String)

A string can be passed in as a vertex shader. It's better to use an attachment


Use As Material (boolean / Number)

Enable to use as a material


trigger (Trigger)

Trigger out

Shader (Object)

Shader/material out

Caught a mistake or want to contribute to the documentation?

Edit Documentationcancel save
custom shader:

the patch uses customShader Op to create a custom shader.

that shader is then rendered to a texture (displayed in the background)

the shader is also applied as a material and rendered on the cube.

video tutorial:



created op
2019-05-13 - pandur

Ops.Exp.Gl.Shader.CustomShader2 renamed to Ops.Gl.Shader.CustomShader_v2
2020-04-20 - pandur

Examples using CustomShader_v2

Public Patches using CustomShader_v2