anderberg, to GraphicsProgramming

Khronos Group has released a PBR tone mapper specification for better true-to-life renditions.

https://www.khronos.org/news/press/khronos-pbr-neutral-tone-mapper-released-for-true-to-life-color-rendering-of-3d-products

jglrxavpok, to GraphicsProgramming French
@jglrxavpok@mastodon.gamedev.place avatar

Et voilà!

New article in my ongoing Recreating Nanite series: Mesh shader time!

https://jglrxavpok.github.io/2024/05/13/recreating-nanite-mesh-shader-time.html

  • May contain trace amounts of GPU Traces.

#customengine #solodev #graphicsprogramming #MeshShaders #Vulkan

jglrxavpok, to GraphicsProgramming French
@jglrxavpok@mastodon.gamedev.place avatar

NaN propagation can sometimes look pretty

#graphicsprogramming #carrotengine #customengine #solodev

unfa, to programming
@unfa@mastodon.social avatar

Another episode of "Coding Adventures" just dropped (today)!
https://youtu.be/SO83KQuuZvg

jglrxavpok, (edited ) to GraphicsProgramming French
@jglrxavpok@mastodon.gamedev.place avatar

Hot off the press!

How to automatically select LODs at runtime:

Recreating Nanite: Runtime LOD selection!

https://jglrxavpok.github.io/2024/04/02/recreating-nanite-runtime-lod-selection.html

olorin99, to GraphicsProgramming
olorin99 avatar

Adding backface and microtriangle culling cut the frame time from 17ms to 7ms. Scene has 900 stanford bunnies each with 69 thousand triangles for a total of 62 million triangles reduced to 6 million.
#graphicsprogramming #vulkan #meshshaders #stanfordbunny

ayke, to GraphicsProgramming
@ayke@hachyderm.io avatar

My talk has been released!
It's about the @TinyGo smartwatch that I've been working on, including how I made testing the firmware as simple as "go run" and how I've made the display as fast as I could.

https://fosdem.org/2024/schedule/event/fosdem-2024-2562-smartwatch-firmware-in-go-on-tinygo-small-displays-and-building-a-delightful-developer-experience/

I've posted my progress on Mastodon so if you're curious just take a look at my older posts.

ayke, to GraphicsProgramming
@ayke@hachyderm.io avatar

I wrote a blog post about how to efficiently render polygons on slow microcontrollers while still looking reasonably nice!

It contains an intuitive explanation (with lots of images!) how it works, and an explanation of the algorithm itself in pseudocode.

https://aykevl.nl/2024/02/tinygl-polygon/

You can see the result below, which is an analog clock that's part of my smartwatch project.

jglrxavpok, to GraphicsProgramming French
@jglrxavpok@mastodon.gamedev.place avatar

New blog post!

This article is a bit lighter than the other ones, and is about a simple material pass for my Recreating Nanite series.

https://jglrxavpok.github.io/2024/02/06/recreating-nanite-material-pass.html

jglrxavpok, to GraphicsProgramming French
@jglrxavpok@mastodon.gamedev.place avatar
jglrxavpok, to GraphicsProgramming French
@jglrxavpok@mastodon.gamedev.place avatar
olorin99, to GraphicsProgramming
olorin99 avatar

Visibility buffer + mesh shaders pretty much complete.

olorin99, to GraphicsProgramming
olorin99 avatar

Debugging mesh shaders. Yay!

olorin99, to GraphicsProgramming
olorin99 avatar

render is coming along nicely.

chrisoffner3d, to GraphicsProgramming

Explore GPU advancements in M3 and A17 Pro
"Learn how Dynamic Caching, the next-generation shader core, hardware-accelerated ray tracing, and hardware-accelerated mesh shading of Apple family 9 GPUs can improve the performance of your Metal apps and games."

https://developer.apple.com/videos/play/tech-talks/111375

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

Raccoon, to programming
@Raccoon@techhub.social avatar

Randomly thinking about something I worked on 10 years ago, going to give it for advice for anyone who's manually a based from scratch...

The most efficient way to draw sprites to a layer is to run-length index them with a colorkey, meaning you have one byte for how many you're drawing, and one byte referencing the color in that sprite's palette. ( does this) You do this with an array of 255 32-bit ints, one per color, and by drawing the sprite in a triple for-loop: i for each line, j for each run, and k each pixel run.

The run value of zero represents the end of a line, and is handled by skipping to the next number in the i loop. The color key of 255 is transparent, and is implemented by simply skipping forward by the run length in the j loop. Otherwise, the k loop memcopies whatever value in your color map array corresponds to the index of the color key directly to the buffer.

(cntd)

chrisoffner3d, to gamedev
crocidb, to graphics

These clouds in Berlin that look like a low resolution perlin noise.

garretpolk, to GraphicsProgramming
@garretpolk@mastodon.gamedev.place avatar

A pretty Schlick Fresnel. New realistic water shader video from Acerola.

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

beatrix, to rust
@beatrix@mastodon.gamedev.place avatar

Baby's first deferred renderer ^^ (no pbr yet)

The first mayor feature I've implemented by myself, not following The WGPU Tutorial :3

Lessons learned:

  • when textures are resized (due to window resizing) the texture bindings also have to be updated, otherwise the lighting pass will use outdated (or even blank) gbuffer textures
  • you have to wait until resources are no longer used by in-flight draws before deleting them, otherwise the gpu will likely crash ^^"

beatrix, to GraphicsProgramming
@beatrix@mastodon.gamedev.place avatar

Mesh loading implemented :3

ayke, to random
@ayke@hachyderm.io avatar

Picked up the @PINE64 PineTime again, after a very long pause.
Programming it using @TinyGo. The UI needs some love, but it's quite fast already!

It should last a long time on the battery, probably more than a month.

https://github.com/aykevl/things/tree/master/watch

Going through the menu items on the PineTime.

ayke,
@ayke@hachyderm.io avatar

I've figured it out! The new algorithm I wrote is partially based on the classic A-buffer algorithm from 1984 and partly on the "Scanline Edge-flag Algorithm for Antialiasing" paper from 2007. It looks pretty nice, even though it's not perfect (and slower than my previous attempt). Now I just need to clean up the code, write tests, and optimize the code some more.

I plan on writing a blog post describing the algorithm in more detail.

chemoelectric, to random
@chemoelectric@masto.ai avatar

Alright, you many, many fanatics. I have a treat for you: four tasks at once!

https://rosettacode.org/wiki/Bresenham_tasks_in_ATS

Sure, one can use SDL2 or whatever to draw lines, and, sure, these figures have "aliasing", but the tasks call for aliased figures. (I already did antialiased lines in ATS for a different task.)

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • osvaldo12
  • DreamBathrooms
  • khanakhh
  • magazineikmin
  • everett
  • Youngstown
  • ngwrru68w68
  • slotface
  • cubers
  • rosin
  • thenastyranch
  • kavyap
  • InstantRegret
  • provamag3
  • tacticalgear
  • Durango
  • cisconetworking
  • GTA5RPClips
  • modclub
  • normalnudes
  • mdbf
  • ethstaker
  • Leos
  • tester
  • megavids
  • anitta
  • lostlight
  • All magazines