scdollins, to generative
@scdollins@genart.social avatar
fell, to gamedev
@fell@ma.fellr.net avatar

I made a GLSL shader compile as C++ to see if I can profile it on a CPU and I partially suceeded. I was able look at the generated assembly at least.

But making it actually run so I could profile would be too much work. I'd have to implement all the texture() functions and stuff like dFdx()/dFdy().

If anyone deeply understood what I just said, feel encouraged to say hi! I could use some company. I feel like I'm the only person doing commercial game development with OpenGL 3.

FieldFX, to demoscene
@FieldFX@mastodon.online avatar

Shader jam tonight! 8pm GMT, on https://twitch.tv/FieldFxDemo. Live DJ set by mintimperial, last chance for a practice before @inercia !

scdollins, to generative
@scdollins@genart.social avatar
toxi, to opensource
@toxi@mastodon.thi.ng avatar

A week ago was the 1st anniversary of this solo instance & more generally of my fulltime move to Mastodon. A good time for a more detailed intro, partially intended as CV thread (pinned to my profile) which I will add to over time (also to compensate the ongoing lack of a proper website)... Always open to consulting offers, commissions and/or suitable remote positions...

Hi, I'm Karsten 👋 — indy software engineer, researcher, #OpenSource author of hundreds of projects (since ~1999), computational/generative artist/designer, landscape photographer, lecturer, outdoor enthusiast, on the ND spectrum. Main interest in transdisplinary research, tool making, exploring techniques, projects & roles amplifying the creative, educational, expressive and inspirational potential of (personal) computation, code as material, combining this with generative techniques of all forms (quite different to what is now called and implied by "generative AI").

Much of my own practice & philosophy is about #BottomUpDesign, interconnectedness, simplicity and composability as key enablers of emergent effects (also in terms of workflow & tool/system design). Been adopting a round-robin approach to cross-pollinate my work & learning, spending periods going deep into various fields to build up and combine experience in (A-Z order): API design, audio/DSP, baremetal (mainly STM32), computer vision/image processing, compiler/DSL/VM impl, databases/linked data/query engines, data structures impl, dataviz, fabrication (3DP, CNC, knit, lasercut), file formats & protocols (as connective tissue), "fullstack" webdev (front/back/AWS), generative & evolutionary algorithms/art/design/aesthetics/music, geometry/graphics, parsers, renderers, simulation (agents/CFD/particles/physics), shaders, typography, UI/UX/IxD...

Since 2018 my main endeavor has been https://thi.ng/umbrella, a "jurassic" (as it's been called) monorepo of ~185 code libraries, addressing many of the above topics (plus ~150 examples to illustrate usage). More generally, for the past decade my OSS work has been focused on #TypeScript, #C, #Zig, #WebAssembly, #Clojure, #ClojureScript, #GLSL, #OpenCL, #Forth, #Houdini/#VEX. Earlier on, mainly Java (~15 years, since 1996).

Formative years in the deep end of the #Atari 8bit demoscene (Chip Special Software) & game dev (eg. The Brundles, 1993), B&W dark room lab (since age 10), music production/studio (from 1993-2003), studied media informatics, moved to London initially as web dev, game dev (Shockwave 3D, ActionScript), interaction designer, information architect. Branched out, more varied clients/roles/community for my growing collection of computational design tools, which I've been continously expanding/updating for the past 20+ years, and which have been the backbone of 99% of my work since ~2006 (and which helped countless artists/designers/students/studios/startups). Creator of thi.ng (since 2011), toxiclibs (2006-2013), both large-scale, multi-faceted library collections. Early contributor to Processing (2003-2005, pieces of core graphics API).

Worked on dozens of interactive installations/exhibitions, public spaces & mediafacades (own projects and many collabs, several award winning), large-scale print on-demand projects (>250k unique outputs), was instrumental in creating some of the first generative brand identity systems (incl. cloud infrastructure & asset management pipelines), collaborated with architects, artists, agencies, hardware engineers, had my work shown at major galleries/museums worldwide, taught 60+ workshops at universities, institutions and companies (mainly in EMEA). Was algorithm design lead at Nike's research group for 5 years, working on novel internal design tools, workflows, methods of make, product design (footwear & apparel) and team training. After 23 years in London, my family decided on a lifestyle change and so currently based in the beautiful Allgäu region in Southern Germany.

FieldFX, to demoscene
@FieldFX@mastodon.online avatar

We are having a Bonzomatic shader jam on Monday! 8pm GMT, https://twitch.tv/FieldFxDemo now is your chance to practice in preparation for @inercia ! Get in touch if you'd like to jam with us!

scdollins, to generative
@scdollins@genart.social avatar
absulit, (edited ) to webgpu
@absulit@mastodon.social avatar
scdollins, to generative
@scdollins@genart.social avatar
scdollins,
@scdollins@genart.social avatar
flynsarmy, to godot
@flynsarmy@mastodon.gamedev.place avatar

I hate VFX in Godot. It would suck if you guys posted the stuff you've been building in the replies

fell, to intel
@fell@ma.fellr.net avatar

Maaaaan the fucking #Intel #OpenGL driver is refusing to link my shader and the error output is just an empty string.

I've been debugging this for two days already I hate it!

I swear, if this is some weird maximum memory or heap size bullshit I'm gonna tilt.

Just in case an expert sees this:

OpenGL Version: 3.1  
Renderer: Intel(R) HD Graphics 2000  
Version: 3.1.0 - Build 9.17.10.4459  

Whyyyy???

#GameDevelopment #GameDev #Graphics #GPU #Programming

fell, (edited )
@fell@ma.fellr.net avatar

Holy shit I found it.

So, back in august I already noticed issues with #Intel chips because of their older #GLSL version. The culprit was this bit (simplified):

for(int i = 0; i < NUM_SHADOW_CASCADES; i++)  
 CalculateShadow(_shadowMap[i]);  

_shadowMap is a so-called texture sampler. GLSL 3.30 does not allow indexing texture samplers with non-constant values, so I had to unroll the loop like this:

CalculateShadow(_shadowMap[0]);  
CalculateShadow(_shadowMap[1]);  
CalculateShadow(_shadowMap[2]);  

And now - as it turns out - this specific driver implementation also doesn't support passing a texture sampler as a function parameter, because it works totally fine when I do this:

CalculateShadow_0();  
CalculateShadow_1();  
CalculateShadow_2();  

So I had to define three separate copies of the exact same function, just to access the different shadow maps. God fucking dammit Intel. At least TELL ME.

#OpenGL #GameDevelopment #Programming #GameProgramming #ShaderProgramming #Shaders #GPU #Drivers #Windows #GameDev

toxi, (edited ) to FunctionalProgramming
@toxi@mastodon.thi.ng avatar

— Shader meta-programming techniques (functional composition, higher-order functions, compile-time evaluation, dynamic code generation etc.) to generate animated plots/graphs of 16 functions (incl. dynamic grid layout generation) within a single WebGL fragment shader.

Today's key packages:

  • https://thi.ng/shader-ast: DSL to write (fully type-checked) shaders directly in TypeScript and later compile them to GLSL, JS (and other target languages, i.e. there's partial support for Houdini VEX and [very] early stage WGSL...)
  • https://thi.ng/shader-ast-stdlib: Collection of ~220 re-usable shader functions & configurable building blocks (incl. SDFs primitives/ops, raymarching, lighting, matrix ops, etc.)
  • https://thi.ng/webgl-shadertoy: Minimal scaffolding for experimenting with fragment shaders (supports both normal GLSL or shader-ast flavors/compilation)

If you're new to the Shader-AST approach (highly likely!), this example will again introduce a lot of new concepts, hopefully in digestible manner! Please also always consult the package readmes (and other linked examples) for more background info... There're numerous benefits to this approach (incl. targetting different target langs and compositional & optimization aspects which are impossible to achieve (at least not elegantly) via just string concatenation/interpolation of shader code, as is much more commonplace...)

This example comes fresh off the back of yesterday's new easing function additions (by @Yura), though we're only showing a subset here...

Demo:
https://demo.thi.ng/umbrella/shader-ast-easings/
(Check the console to view the generated GLSL shader)

Source code:
https://github.com/thi-ng/umbrella/tree/develop/examples/shader-ast-easings/src/index.ts

If you have any questions about this topic or the packages used here, please reply in thread or use the discussion forum (or issue tracker):

github.com/thi-ng/umbrella/discussions

FieldFX, to demoscene
@FieldFX@mastodon.online avatar

Monday Night Bytes is having a Shader Jam tomorrow night, so come along and play Bonzomatic with us! (Or just watch, that's also cool). 9pm BST (after @h0ffman ) https://twitch.tv/FieldFxDemo

hamoid, to genart
@hamoid@genart.social avatar

Wobbly hobby curves and distance fields. Enough playing for today :-)

video/mp4

QuantumWitch, to gamedev
@QuantumWitch@mastodon.gamedev.place avatar

Are you making a low resolution game, but using some modern shaders to apply fancy effects that would have taken superhuman brainpower to do if we were actually writing for the old consoles?

Do your shader effects look... out of place? Like, they're happening at a higher resolution?

Do you want an easy way to "snap" your shader's pixels to your game art's pixels? This is the thread for you?

#gamedev #indiedev #glsl #shaders

FieldFX, to demoscene
@FieldFX@mastodon.online avatar

Next week, Monday at 8pm, we will be having an online shader jam! Get Bonzomatic ready and join us for some !

hamoid, to genart
@hamoid@genart.social avatar

This was not part of my original plan, but somehow I got here.

image/png
image/png
image/png

scdollins, to generative
@scdollins@genart.social avatar
scdollins,
@scdollins@genart.social avatar
scdollins,
@scdollins@genart.social avatar
rml, to random
@rml@functional.cafe avatar

wow this project is so cool, a sophisticated IDE with its own virtual machine
https://shadered.org/
https://github.com/dfranx/SPIRV-VM

hamoid, to berlin
@hamoid@genart.social avatar

A screenshot before arriving to yesterday's "Show us your screens" (live code hack night) event by @ojack

There I did 600 seconds of live coding using olive (the OPENRNDR live coding mode).

Several people asked about the song I played. It was this one: https://yewtu.be/watch?v=xsUyul7jQZk

I was happy to encounter many friends there, some I had not seen in years. I enjoyed the presentations / performances a lot! 😁 🎉 👾 📺 ⌨️

kandid, to random
@kandid@chaos.social avatar

Wrote myself a shader which forces some kind of mirror symmetry directly in the smartphone. A line is always drawn alternately from left to right and then the next line is then drawn in the opposite direction.

What you see here are actually 6 different screen shots of the smartphone display. To see the details of this effect, you have to download the 2378 × 2764 pixel image and zoom in to 1:1.

scdollins, to generative
@scdollins@genart.social avatar
  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • kavyap
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • tacticalgear
  • cubers
  • Youngstown
  • mdbf
  • slotface
  • rosin
  • osvaldo12
  • ngwrru68w68
  • GTA5RPClips
  • provamag3
  • InstantRegret
  • everett
  • Durango
  • cisconetworking
  • khanakhh
  • ethstaker
  • tester
  • anitta
  • Leos
  • normalnudes
  • modclub
  • megavids
  • lostlight
  • All magazines