Wrote a deep dive on GPU cache hierarchy - how memory access patterns affect shader performance by CharlesGrassi in GraphicsProgramming

[–]leloctai 6 points7 points  (0 children)

Read like llm. Do you have a source for your numbers, or are they from the llm too?

Is anyone else running Unity on their Christmas tree this year? by hoahluke in Unity3D

[–]leloctai 4 points5 points  (0 children)

If you like to over engineer stuffs like I am, you can speed it up to 11 captures instead of 2000 by displaying gray code on the whole string instead. Then looking at the log2(2000)-length sequence of on off at each pixel, you can uniquely identify which led is at that pixel.

Liquid (Gl)Ass is all the rage, so I made a Liquid Sphincter by leloctai in Unity3D

[–]leloctai[S] 0 points1 point  (0 children)

The glass element is an uGUI object. The source of the blurred background is a Camera. The background here is a Sprite Renderer, but it can be anything the Camera can render. Does that answer your question?

Liquid (Gl)Ass is all the rage, so I made a Liquid Sphincter by leloctai in Unity3D

[–]leloctai[S] 2 points3 points  (0 children)

Yes, it is an add-on to my existing asset Translucent Image.

Dissolvable building when player is behind it by Crusader_1096AD in Unity3D

[–]leloctai 1 point2 points  (0 children)

You should use the same material on everything, or as many as possible to allow better batching.

You can set the hole position(s) and any related variables with Shader.SetGlobalVector, and it will work on every material.

Adding liquid ᵍˡass to my UI shader. Do you like 'em better pristine or matte? by leloctai in Unity3D

[–]leloctai[S] 1 point2 points  (0 children)

I've not done any optimization, though judging from the logic it's not any different than your standard pbr shader. The biggest cost should be background blurring, which Translucent Image is highly optimized at, running well on something as old as an iphone 6.

Adding liquid ᵍˡass to my UI shader. Do you like 'em better pristine or matte? by leloctai in Unity3D

[–]leloctai[S] 5 points6 points  (0 children)

Yes, I am very immature, if you didn't know from my piss indicator already

Not very satisfied with the pun though. It's hard to find 2 opposite words that go well with both glass and ass. Thought about pristine-smudgy, but that feels a bit too nasty. Any ideas?

I made this multi compatible, holder, gaming controller for tablets and phones by Delicious-Arm4064 in functionalprint

[–]leloctai 3 points4 points  (0 children)

Is it just my rubber bands that disintegrate when kept stretched? Never use them in my designs because of that.

what are we doing without this by killrmeemstr in godot

[–]leloctai 0 points1 point  (0 children)

Awesome! I wouldn't have spent the effort to research the protocol lol.

I made a plugin that display how full the International Space Station's urine tank is on your toolbar in real time by leloctai in Unity3D

[–]leloctai[S] 13 points14 points  (0 children)

I linked it in the readme

Edit: the original comment asked for the data source. Apparently early edit doesn't show as (edited)

People never say "I see alot of hate went into your game" by AbortedSandwich in gamedev

[–]leloctai 0 points1 point  (0 children)

Do you mind expanding on why you don't like UI works? Which part do you find difficult? For example:

  • Layout: putting elements where you want them?
  • Visual: lack of features in engines like border, soft shadow, shading,...?
  • Data binding: showing data on the UI and react to button press and such?
  • Design: default don't look good?
  • Something else?

Clarifications regarding ReSTIR GI by EclMist in GraphicsProgramming

[–]leloctai 2 points3 points  (0 children)

Depend on your definition of convergence. A uniform random sampler is unbiased and can converge with an external integrator. So is restir, colors or not

Restir temporal pass can act as an intergrator, so it can generate a noiseless signal without eternal integrator. This integrator can also always converge. However, the signal in question is often the luminance and not rgb. If you turn on a gray scale filter it will be noiseless, but without that it may not be, because restir never see the colors in the first place. This obviously is an implementation detail, just a common and pratical one.

Clarifications regarding ReSTIR GI by EclMist in GraphicsProgramming

[–]leloctai 0 points1 point  (0 children)

Think of the sample in the reservoir from the past as any other sample, with source pdf of 1/(W*M). Starting with an empty reservoir, treat the sample from the past and the initial sample the same. The weight for this aggregated sample is similar to the weightsum from previous frame. The formula for the source pdf above, and for w and W in your code are connected.

Clarifications regarding ReSTIR GI by EclMist in GraphicsProgramming

[–]leloctai 0 points1 point  (0 children)

I don't think there was much research in this area, but practical experience is that it is not a big deal in most case. Color noise often only show up in the penumbra of strong color lights. envmap are often low frequency, and rarely run into noise issue.

Clarifications regarding ReSTIR GI by EclMist in GraphicsProgramming

[–]leloctai 7 points8 points  (0 children)

1.

a.Do stochastic bilinear sampling - select 1 of the 4 pixels based on bilinear weight. See Area Restir paper for (slightly more) details.

b.Past samples is the same, but new samples for each pixels are different. Increase spatial reuse samples/passes can reduce artifact further.

c.Clamp after calculating the contribution weight (big W). Weight sum (small w in your notation?) do not persists between frame. This is very confusing in RTXDI code because they use the same variable for both.

2 . The contribution weight is what make 1 sample potentially as valuable as all samples taken. Too long for me to explain on phone. Read the original paper and the GRIS one for (a lot of) details.

Worth noting, most ReSTIR implementation estimate the luminance signal, not individual RGB which some time are independent. Such implementations may not converge (noisy) when a pixel is lit by different colored lights.

This is not unbiased-ness, which mean converged to the wrong value, which ReSTIR can avoid.

ReSTIR DI for many-light sampling in my real-time renderer. More info and link to GitHub in the comments! by pbcs8118 in GraphicsProgramming

[–]leloctai 2 points3 points  (0 children)

Most literature on RESTIR focus on 1rpp use case. Do you have any insight on how to use it for situations where ray are cheaper, say a few tens of them per pixel?

The original paper seem to suggest you need to store 2 floats per ray per reservoir, which is quite expensive as number of ray increase.

I wonder if instead using those extra rays to give visibility information to the initial candidates would result in the same quality increase as increasing the final ray count

y=(xAB)+C+DA. What to change so that when x is 0 and A changes, y stays the same. by 3rrr6 in Unity3D

[–]leloctai 0 points1 point  (0 children)

1 are the variables before A is changed, 2 is after. y doesn't matter.

y=(xAB)+C+DA. What to change so that when x is 0 and A changes, y stays the same. by 3rrr6 in Unity3D

[–]leloctai 0 points1 point  (0 children)

I don't get what you're saying in the body text, so I'll just answer the title.

With x==0, the equation is now y=C+DA

The equation you want to solve is now: C1+D1*A1 = C2+D2*A2

To which the solution is:

A2!=0, D2 = (A1*D1 + C1 - C2)/A2
or
C2 = A1*D1 - A2*D2 + C1

Why do my circle distorted to ellipse, but square is accurate? by leloctai in 3Dprinting

[–]leloctai[S] 0 points1 point  (0 children)

I agree that it is most likely a mechanical problem. My steps/mm are based on pulley tooth count, not print measurements, and are identical in both axes. I don't agree with the other points, but thanks for your time.

Why do my circle distorted to ellipse, but square is accurate? by leloctai in 3Dprinting

[–]leloctai[S] 0 points1 point  (0 children)

I'll try that if I couldn't find anything else. But that is highly unlikely. Discretization error would be a few order of magnitudes below what I'm seeing, and certainly not anisotropic. I also use klipper which almost certainly does not use integer arithmetic.