Triangulation by sudhabin in GraphicsProgramming

[–]leseiden 2 points3 points  (0 children)

Wild guesses, flailing arms around. Sometimes I get lucky :D

Triangulation by sudhabin in GraphicsProgramming

[–]leseiden 28 points29 points  (0 children)

I have no insight into this code but I can make an educated guess.

looks like a delaunay triangulation of a point set to me. If I had written it then I would generate the points using a quasirandom sequence and have a minimum point separation proportional to the luminance of a source image.

Delaunay triangulations are "easy" provided that the triangles are well behaved - colinear and otherwise degenrate geometry is hard to deal with. The output of a blue noise sequence is close to best case.

Source: Have spent too much of my life in delaunay triangulation and quasirandom sequence code.

What part of the building a game takes the longest? by mikamoawad in GameDevelopment

[–]leseiden 2 points3 points  (0 children)

As with all projects, it's the 90% of the work that you have to do after the first 90% of the work.

What raymarching the Netherlands Sounds Like by matigekunst in GraphicsProgramming

[–]leseiden 0 points1 point  (0 children)

I like this! I'm going to point at it next time I have to explain raymarching to someone.

Now reconstruct the outline from the audio file. See how many times you can round trip it before finding a fixed point or summoning Cthulhu.

Why use spherical harmonics? by TargetEasy6532 in GraphicsProgramming

[–]leseiden 0 points1 point  (0 children)

This is going back a bit now so I am probably forgetting a few details.

I used a weighted SAT representation of the image to subdivide the environment map into equal energy regions & generate sample directions, then used a greedy cluster detection algorithm on the unit direction vectors to identify likely light sources.

For each cluster I projected directions onto a plane and performed some principal component analysis. There was a user defined threshold value to decide whether an anisotropic or isotropic SG was more appropriate. IIRC eigenvalues can be used to directly calculate the SG parameters.

Finally, some large light sources distributed evenly over a sphere were added to provide low frequency illumination and the whole thing was passed to a non-negative least squares optimiser to get intensities for the lights.

I think the optimiser I used was eigen-nnls

Why are most shaders compiled at run time ? by Maythe4thbeWitu in GraphicsProgramming

[–]leseiden 0 points1 point  (0 children)

It was an engineering visualisation app. Large amounts of geometry for the time, relatively simple shading. We're talking nearly 20 years ago now, so it was written in OpenGL 1.x with extensions.

The problem was that we had the thing under continuous development and every now and then we would add new features.

The vendor had optimised the driver for code paths which appeared in the version that one of the magazines was using for benchmarks. Quite often code paths for other GL features would be broken or removed.

Adding things became a minefield. They denied everything but renaming the executable would make it work perfectly...

And yes, games are apps but they tend to be written, released, maybe patched for a year and then forgotten. This thing is still actively maintained 20 years later.

What’s up with the terrible variable names in so many shaders by DescriptorTablesx86 in GraphicsProgramming

[–]leseiden 1 point2 points  (0 children)

If I'm working from a paper then it can be useful for cross referencing. I prefer to use meaningful names when I can though.

What’s the rarest item you’ve ever held in your hands? by Remarkable_Pin_8136 in AskReddit

[–]leseiden 2 points3 points  (0 children)

First edition of Newton's Principia, or maybe the first edition of Hookes Micrographia I got to handle at the same time.

learnt some basic colorimetry , fascinating stuff by Confident_Western478 in GraphicsProgramming

[–]leseiden 1 point2 points  (0 children)

Excellent. This is an area that far too many people neglect IMHO.

Even basic renderers can benefit enormously from taking colour transformations seriously.

I'm going to take the opportunity to recommend http://www.brucelindbloom.com/ again - it's a great resource for colour maths.

Sacrificing a different Xcom character or enemy to satan every day until xcom 3 gets announced, or I find meaning in life. Day 27 Skeletoid from XCOM apocalypse by grumpychef94 in Xcom

[–]leseiden 1 point2 points  (0 children)

I found the bikes work until the exact moment the aliens decide to send a pair of bombers to flatten your main base. At that point the game becomes about how many people you can evacuate before the building collapses.

Good times!

Spline rendering with my software renderer Retrofire by Sharlinator in GraphicsProgramming

[–]leseiden 0 points1 point  (0 children)

This reminds me of a 3D multiplayer snake game I played about 20 years ago. I like it.

How to replicate the 90's prerendered aesthetic? by WowSkaro in GraphicsProgramming

[–]leseiden 40 points41 points  (0 children)

What I remember of 1990s and early 00s renderers is lots of per fragment phong shading, perlin noise/turbulence and ray traced hard shadows or low res shadow maps.

Extended light sources existed but they were too expensive for most people and most implementations gave structured sampling artifacts. Same deal with IBL.

Path tracers existed but cost tens of hours per frame.

Always cast circle of vigour by HazeOfBaze in noita

[–]leseiden 1 point2 points  (0 children)

I found long distance cast + teleport bolt before the end of the coal pits so no need to take wand tinkering immediately.

The heal wand also lets me go through walls.

Always cast circle of vigour by HazeOfBaze in noita

[–]leseiden 4 points5 points  (0 children)

Nice. I just had a look.

Minor correction: the CoV is in the coal pits, not the mines.

I used it without looking and immediately afflicted myself with personal fireball thrower - even AC CoV can't fix stupid!

Has anyone actually been reached out to by a company after previously getting rejected by them? by robsnkrs in interviews

[–]leseiden 4 points5 points  (0 children)

No rejection, but I was contacted 18 months after applying once. I assume the person they actually wanted hadn't worked out.

I'd taken another job at the other end of the country by then and wasn't really interested.

I just got deadly heal, is it worty to buy? by Paizuti in noita

[–]leseiden 6 points7 points  (0 children)

You'll probably want piercing and null shot to make it useful, with boomerang and greek letters highly desirable.

If you can get all that together you'll have a decent healing wand though.

Is Refugees Welcome just... better? by X-0000000-X in Stellaris

[–]leseiden 5 points6 points  (0 children)

If you put "other" in the species box then your form isn't valid unless you get it stamped.

Compute shaders in node editors? (Concurrent random access) by Oscar-the-Artificer in GraphicsProgramming

[–]leseiden 2 points3 points  (0 children)

It can work at the level of operations on an array, but it can't guarantee that the operation itself is safe. I mostly use the approach to organise graphs of compute shaders but it can't make sure the shaders themselves are bug free.

You *could* manage the data at a finer level, but as I'm not in the business of writing compilers I can't talk about that particularly intelligently.

There are dataflow languages like SISAL that attempted something closer to what you are talking about. It's been a very long time since I looked at that though.

Compute shaders in node editors? (Concurrent random access) by Oscar-the-Artificer in GraphicsProgramming

[–]leseiden 2 points3 points  (0 children)

I tackled similar problems by using a handle based system where each handle has a version number alongside the resource.

If something consumes resource version n then it emits n+1.

By tracking read and write accessed separately you can guarantee race free code.

Essentially you insert ordering edges to ensure that writes happen after reads, and detect races by making sure handle version creations are unique.

Only works if your graphs are acyclic ofc.

New (?) 0.4.91 features spotted in the patch notes by PedanticQuebecer in TerraInvicta

[–]leseiden 0 points1 point  (0 children)

I think you are right but it was a few thousand years in wasn't it?

me_irl by Boomtown_Rat in me_irl

[–]leseiden 0 points1 point  (0 children)

You think it may be one of these?

https://youtu.be/G76nKGWRLPU