‹ BackHN Continuity

Thread

When the fractional part of a float fixes your shader

111 points · 19 comments · vinhnx

  1. earth-tattoo · · focus · HN ↗
    Nice article. What a joy to read. Reminds me of what hacker news was until a few years ago!

    I haven't worked with opengl/shaders in a while, but was thinking about some algorithm I wrote a few years ago, while in shower yesterday. It brought back the memories of how difficult it was for me to first understand the whole concept of shaders. There's basically no main function, no for loops etc. Your shader is called for each pixel, for every frame. I was wondering how easy it would have been in today's world. I spent like 2 months on something that is just a prompt now.

    1. jasonjmcghee · · focus · HN ↗
      There absolutely is a "main" function in GLSL. This is the entry point.

      And there are for loops- and if statements, and function declarations, etc. It's very c-like without dynamic memory allocation and executed in a highly parallel context.

      Your shader is also not necessarily called every frame, you control this. It could be called multiple times per frame or only at certain times.

      Fragment shaders (one type of shader) is called for each fragment of the rendered geometry - in 2D or in screen space this is just a quad so effectively a panel of pixels.

      You get to know your own location with something like UV or a pixel coordinate if you pass it from a vertex shader, so that you can sample input textures as needed to build whatever it is you're building.

      If you're not doing multiple render targets, your only responsibility is setting to the fragment color variable which will be the final color of that pixel for the output texture.

      And that could in turn be the input to another shader etc.

      I usually recommend <a href="https:&#x2F;&#x2F;thebookofshaders.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;thebookofshaders.com&#x2F;

      It&#x27;s very sad this was never completed. It&#x27;s so good.

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.