Jetlag 4k Seminar Links

4KB INTRO

  1. You can try to do some shaders - this may help you to make your 4k or 8k intro
    • https://www.shadertoy.com/view/Md23DV
    • http://jamie-wong.com/2016/07/15/ray-marching-signed-distance-functions/
    • http://blog.ruslans.com/2015/01/raymarching-christmas-tree.html
    • http://www.geeks3d.com/20130524/building-worlds-with-distance-functions-in-glsl- raymarching-glslhacker-tutorial-opengl/
    • http://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm
  2. You will need some already done 4k framework
    • https://github.com/keensky/hal4000 - NEW!!!
    • http://visualizethis.tumblr.com/post/2960616853/how-to-code-a-4k-intro
    • www.iquilezles.org/code/isystem1k4k/isystem1k4k.htm
    • https://github.com/armak/pbr-whitespace <—- this one has 4klang 301 inside
    • https://github.com/w23/nwep
    • http://code4k.blogspot.com/2009/10/coding-4k-or-64k-intro-need-tools.html
  3. first you need a working shader which can do something, then you have to convert it to glsl from shadertoy, if you made it in shadertoy (i.e. rename fragColor to gl_FragColor, mainImage(…) to main() etc)

  4. next you have to make it a string, you can do it with something like notepad++ or use shader minifier http://www.ctrl-alt-test.fr/?page_id=7

  5. then you have to compile your shader with a framework and see the result.

  6. and you will understand that you have to pass TIME somehow, it could be GLSL uniform variable or C++ “if” statement or something you think will work.

  7. then you will need music.. it’s another question I can explain if you want..

  8. after that you will have a working framework, next step is to make your own shaders

64K INTRO

  1. read the following
    • http://www.lofibucket.com/articles/64k_intro.html
    • http://cce.kapsi.fi/64k.pdf
  2. you can make your 64k with werkzeug
    • https://github.com/farbrausch/fr_public
  3. or you can try to read others code
    • https://github.com/laurentlb/Ctrl-Alt-Test <—- it seems this one is based on
    • https://github.com/lynxluna/conspiracy
    • iq’s 64k framework

DEMO

  1. you can use already made demotools
    • werkkzeug again - it has some tutorials in the net
    • http://tooll.io/
    • https://github.com/lynxluna/conspiracy/tree/master/aDDict2
    • https://braincontrol.org/
    • there a lot more others if you need

GRAPHICS PROGRAMMING

MISC

if you’re new to graphics programming i would suggest starting first with processing, unity, vvvv or shadertoy and only after you have some effects and more confidence in your programming skills to move on to an engine/framework of your own.

some resources that keen didn’t mention:

https://github.com/psenough/teach_yourself_demoscene_in_14_days

http://in4k.github.io

The most of the top of 4k intros are made as glsl shader loader + 4klang the glsl loader usually based on c++ framework made by iq/rgba isystem1k4k there are a lot of implementations opensourced which were made in that way. Whitespace by Prismbeings sources on github for Visual Studio

Our 4k converted to C from C++ Nwep VS2015 project

as result all you have to do is a shader and a 4klang tune.

You can use such tools like Shadertoy for shader prototyping. Or you can use Gargaj’s Shader compo tool Bonzomatic

Enjoy!

POUET BBS threads

Introductory Democoding with ShaderToy https://bitbucket.org/inclinescene/demosplash-2016

V2 http://www.farbrausch.de/prod&which=86.py http://www.1337haxorz.de/drugs/libv2_1.5.zip

iq framework http://www.iquilezles.org/code/isystem1k4k/isystem1k4k.htm http://www.iquilezles.org/code/framework64k/framework64k.htm

noby’s introsystem https://github.com/armak/pbr-introsystem

4klang http://4klang.untergrund.net/

crinkler http://www.pouet.net/topic.php?which=10722&page=2#c522916 http://www.pouet.net/prod.php?which=18158

Shader minifiers https://github.com/laurentlb/Shader_Minifier http://www.pouet.net/topic.php?which=11220

4k into scenes timings https://www.pouet.net/topic.php?which=10820&page=1

Intro making questions… http://www.pouet.net/topic.php?which=11222

Raymarching Beginners’ Thread http://www.pouet.net/topic.php?which=7920&page=64#c423920

DoF http://lousodrome.net/blog/light/tag/depth-of-field/ http://c0de517e.blogspot.com/2012/01/current-gen-dof-and-mb.html http://c0de517e.blogspot.com/2009/09/calling-for-brainstorm.html

GLSL-Raymarching https://github.com/nical/GLSL-Raymarching/blob/master/src/shaders/DOF.frag

Bokeh DOF http://www.pouet.net/topic.php?which=8176&page=1&x=14&y=9

http://code4k.blogspot.com/

https://in4k.github.io/wiki/aulds-ogl-framework https://in4k.github.io/wiki/graphics http://yupferris.blogspot.com/ http://allendowney.blogspot.ru/2018/02/learning-to-program-is-getting-harder.html https://in4k.github.io/wiki/graphics http://sizecoding.blogspot.com/2008/12/code-for-moving-camera-in-glsl.html

Code for Moving Camera in GLSL Raytracer http://sizecoding.blogspot.co.nz/2008/12/code-for-moving-camera-in-glsl.html

intro.cpp https://pastebin.com/dmCc3GXG

https://www.strchr.com/

http://cg.ivd.kit.edu/downloads/IntModelingSDF.pdf

NVScene 2015 Session: Shadertoy Hackathon Kickoff (Inigo Quilez, Pol Jeremias, Otavio Good) https://www.youtube.com/watch?v=jjU3rO36zCs

https://github.com/acaudwell/Mandelbulb-Viewer/blob/master/data/shaders/MandelbulbQuick.frag http://www.hugi.scene.org/online/coding/hugi%2023%20-%20sqscript.htm http://www.fractalforums.com/sierpinski-gasket/implementing-mixpinski/ http://www.fractalforums.com/index.php?action=gallery;sa=view;id=19857

http://hugi.scene.org/online/hugi26/hugi%2026%20-%20coding%20corner%20graphics%20hopper%20making%20a%2064k%20intro.htm

https://joshb.github.io/articles/getting_started_with_glsl/

http://glsl.ru/index.php?s=ee0c1ced43b173dbf9eb2a9a9365a779&action=viewcomments&articleid=4

http://www.pouet.net/topic.php?which=7931 http://lousodrome.net/blog/light/2013/09/04/a-glsl-version-of-smallpt/ http://hugi.scene.org/online/hugi23/d9ray.htm https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-ray-tracing

http://blog.ruslans.com/2015/01/raymarching-christmas-tree.html https://gamedevelopment.tutsplus.com/ru/tutorials/a-beginners-guide-to-coding-graphics-shaders–cms-23313 https://gamedevelopment.tutsplus.com/tutorials/a-beginners-guide-to-coding-graphics-shaders-part-2–cms-24111

http://www.geeks3d.com/20130524/building-worlds-with-distance-functions-in-glsl-raymarching-glslhacker-tutorial-opengl/

MACOS https://gafferongames.com/2009/01/19/opengl-on-macosx/ https://gist.github.com/Tapped/0da08a995052587563464fafa8372a89

Introductory Democoding with ShaderToy https://bitbucket.org/inclinescene/demosplash-2016

SHADERTOY collection https://www.shadertoy.com/view/lt3Gz8

https://www.shadertoy.com/view/ldS3zh https://www.shadertoy.com/view/4dGGzc https://www.shadertoy.com/view/ldffWN https://www.shadertoy.com/view/MttGD2

https://www.shadertoy.com/view/XsdfDH

https://www.shadertoy.com/view/MltSRf

https://www.shadertoy.com/view/MsSyzc

https://www.shadertoy.com/view/4ds3zn https://www.shadertoy.com/view/MslGWN https://www.shadertoy.com/view/4sX3Rn

https://www.shadertoy.com/view/ltlSWf

https://www.shadertoy.com/view/4lf3Rj

Oscar’s chair 4k making of http://www.amietia.com/oscarschair.html

A dive into the making of Immersion http://www.ctrl-alt-test.fr/2018/a-dive-into-the-making-of-immersion/

SURPRISE more links

Shaders language for beginners

Книга шейдеров для начинающих: https://thebookofshaders.com/?lan=ru

Уроки программирования GLSL: http://masandilov.ru/glsl

Цикл статей по OpenGL 3.0:
https://habr.com/ru/post/310790/

Краткий список функций GLSL https://en.wikibooks.org/wiki/GLSL_Programming/Vector_and_Matrix_Operations

Официальная Спецификация по GLSL https://www.khronos.org/files/opengles_shading_language.pdf

На русском: https://webglfundamentals.org/webgl/lessons/ru/webgl-shaders-and-glsl.html

Введение в программирование шейдеров для начинающих: https://gamedevelopment.tutsplus.com/ru/tutorials/a-beginners-guide-to-coding-graphics-shaders–cms-23313

Набор уроков/заданий “Hello world” для пиксельных шейдеров https://hughsk.io/fragment-foundry/chapters/01-hello-world.html

IDE и инструменты для написания шейдеров Bonzomatic: https://github.com/Gargaj/Bonzomatic/releases ShaderToy: https://www.shadertoy.com/ Kodelife: https://hexler.net/products/kodelife#get Строиит графики функций: https://www.desmos.com/calculator

Raymarching (SDF) algorithm

Хорошая статья с картинками и куском кода на каждом этапе, объясняет базовые принципы https://reindernijhoff.net/2017/07/raymarching-distance-fields/

https://github.com/ajweeks/RaymarchingWorkshop

https://www.ronja-tutorials.com/2018/11/10/2d-sdf-basics.html

https://www.iquilezles.org/code/isystem1k4k/isystem1k4k.htm https://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm

http://visualizethis.tumblr.com/post/2960616853/how-to-code-a-4k-intro

http://www.geeks3d.com/20130524/building-worlds-with-distance-functions-in-glsl-raymarching-glslhacker-tutorial-opengl/

http://jamie-wong.com/2016/07/15/ray-marching-signed-distance-functions/

Video Revision 2019 - Seminar - Shader Coding от Flappine https://www.youtube.com/watch?v=uFFR31t1WMM

https://medium.com/@avseoul/ray-marching-metaball-in-unity3d-fc6f83766c5d https://medium.com/@mackycheese21/raymarching-1-the-basics-d6f3e70fb430 (Soft shadows) https://medium.com/@mackycheese21/raymarching-2-aesthetics-ed3a5f7d12b1 https://flafla2.github.io/2016/10/01/raymarching.html http://www.michaelwalczyk.com/blog/2017/5/25/ray-marchinghttp://www.michaelwalczyk.com/blog/2017/5/25/ray-marching Расшифровка трассировщика лучей размером с открытку) https://habr.com/ru/post/434528/

Трехмерный (raymarch) движок на формулах Excel для чайников https://habr.com/ru/post/353422/

Ray Tracing in One Weekend https://drive.google.com/drive/folders/14yayBb9XiL16lmuhbYhhvea8mKUUK77W

Old-school effects are back - http://www.iquilezles.org/www/material/nvscene2008/rwwtt.pdf

https://www.scratchapixel.com/lessons/3d-basic-rendering/introduction-to-ray-tracing

Examples with Sources

Библиотека с SDF функциями http://mercury.sexy/hg_sdf/

https://www.shadertoy.com/view/3lXXWX https://www.shadertoy.com/view/XllGW4

Tri-Planar Texture Mapping https://www.shadertoy.com/view/wtjGWy

Хороший код с комментариями https://www.shadertoy.com/view/ll2SRy https://www.shadertoy.com/view/ldyGWm https://www.shadertoy.com/view/ltyXD3 (Raymarching Primitives Commented)

https://www.shadertoy.com/view/ltdSRn (Использование буферов в ShaderToy)

Size coding

http://www.sizecoding.org/wiki/Main_Page

Как сделано интро на 64k - https://habr.com/ru/post/330090/

Introductions to Mathematics and Vector algebra https://www.mathsisfun.com/algebra/trigonometry.html https://www.mathsisfun.com/algebra/vectors.html https://www.mathsisfun.com/algebra/vectors-dot-product.html https://www.mathsisfun.com/algebra/vectors-cross-product.html

4k Engines https://github.com/w23/bepct4k Верстак - предназначен для компиляции и сбора 4k интр с 4k-lang музыкой под Windows без Visual Studio, при помощий nasm. А также имеет инструмент для дампа 4k-lang музыки в raw формат (очень удобен для музыкантов, чтобы послушать результат без участия программиста).

https://github.com/armak/Leviathan-2.0/ один из самых известных и имхо удобных, можно делать постпроцессинг, заточен под 4klang, но можно впилить и другие синты, там в принципе несложно %)

https://github.com/w23/stameska работает под линуксом и виндой, использовать трудно, ничем не лучше. Это очень сырое нагромождение разного, умеет в таймлайны, релоад ямл-декларативного рендер-пайплайна, шейдер релоад и препроцессинг с инклудами.

http://www.crinkler.net/ - executable compressor Linker for small intros (8k/4k/1k)

http://www.ctrl-alt-test.fr/glsl-minifier/ - shader minifier

4klang/64klang

http://4klang.untergrund.net/ https://github.com/hzdgopher/64klang https://github.com/hzdgopher/4klang

Virgill’s tunes with 4klang patches https://github.com/in4k/4klang-assets

Some 4klang notes on Alcatrazes’ Equilibrium soundtrack http://www.pouet.net/topic.php?which=11327&page=1#c539706

4klang Wayfinder’s tutorial https://www.youtube.com/watch?v=wP__g_9FT4M

ForkedKlang, experimental 4klang fork http://www.pouet.net/topic.php?which=11312&page=1#c539656

Pouet’s 4klang related thread http://www.pouet.net/topic.php?which=10480&page=1

4klang’s basics https://www.youtube.com/watch?v=xLhT06lwaig

Learning 4klang | Part #1: I have no idea what I’m doing https://www.youtube.com/watch?v=EDCE2fYNXAk

Learning 4klang | Part #2: Oh! https://www.youtube.com/watch?v=ixIl0QpgFUQ

Installing and trying out different synths for 4kb intros (4klang, clinkster and oidos) https://www.youtube.com/watch?v=Ir0vcmHkIm0

https://www.youtube.com/watch?v=ifhUsy2jEhc

Generative Graphics Stuff

Генератор абстрактных картинок для ваших демок, ну или источник вдохновений ;) https://adaptiff.com/

3d isolines https://pissang.github.io/paper-quilling-art/

2d isolines https://msurguy.github.io/flow-lines/

генератор фото лиц сток-моделей https://www.generative.photos/

Крутая программа для моделирования кастомных фракталов на GPU: https://github.com/buddhi1980/mandelbulber2