/shaderToyTexture

Blender addon to create 2D textures from Shadertoy shaders.

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Create textures from ShaderToy shaders on Blender 3.0.

This is a slight modification of glslTexture from Patricio Gonzalez Vivo to follow the ShaderToy shader conventions.

Supported shader inputs:

  • iResolution - viewport resolution (in pixels)
  • iTime - shader playback time (in seconds)
  • iTimeDelta - render time (in seconds)
  • iFrame - shader playback frame
  • iChannelTime[4] - channel playback time (in seconds)
  • iChannelResolution[4] - channel resolution (in pixels)
  • iMouse - mouse pixel coords. xy: current (if MLB down), zw: click
  • iChannel0..3 - input channel. XX = 2D/Cube
  • iDate - (year, month, day, time in seconds)
  • iSampleRate - sound sample rate (i.e., 44100)

Install

  1. Click on "Clone or Download"
  2. Click on "Download ZIP"
  3. Click "Edit" > "Preferences..." > "Add-ons"
  4. Click install and load the zip file you just download
  5. Check the box next to "GlslTexture"

Use

  1. Operator Search: F3 (or SpaceBar depending on your setup). Type GlslTexture

  1. Change width and height size and Source file (which can be a path to an external file).

  1. Use the Image on your materials. The Image name will be based on the name of the source file.

  1. Go to the Text Editor (or an external editor if your source file is external) and edit the shader. It will hot reload.

The uniform specs will be the same that:

So far the supported uniforms are:

  • uniform vec2 u_resolution;: 2D vector with the width and height of the target texture
  • uniform float u_time;: float variable with the amount of seconds of the timeline

Roadmap

[ ] Reaload GlslTextures (actually any image with the same name that a text on a project) [ ] Improve performance for animation [ ] it's possible to make this a node to pass uniforms in? [ ] Multi buffers?