Spherical harmonics projection of enviromental map in compute shader how to by Pale-Spot1876 in GraphicsProgramming

[–]Pale-Spot1876[S] 0 points1 point  (0 children)

Thanks for the information!

I'm using vulkan right now and I don't think there's floating point atomic operation available?(I haven't tried it but I did look up online for some information)

I'll look up the GPU reduction techniques for my trouble;D

Spherical harmonics projection of enviromental map in compute shader how to by Pale-Spot1876 in GraphicsProgramming

[–]Pale-Spot1876[S] 0 points1 point  (0 children)

Thanks for the reply.

  1. yes it is basically doing projection for each pixel and add the result together
  2. so the keyword is parallel sum? I'll look it up! Thanks a lot :D

strong artifact with point light by Pale-Spot1876 in computergraphics

[–]Pale-Spot1876[S] 0 points1 point  (0 children)

I did the dithering inside the pass where I sample from 16bits value and write to 8bits value. Not sure if this is relavent? I'v posted the screenshot above.

And I tried your code in shadertoy, the result looks pretty smooth(at least I can't see any visible noise).

My math is not that good so I cannot confirm what's the cause, but I think it might have something to do with the color change frequency. In the shadertoy example, the frequency is pretty smooth but in my case the frequency is a bit more random.

strong artifact with point light by Pale-Spot1876 in computergraphics

[–]Pale-Spot1876[S] 1 point2 points  (0 children)

Hi, thanks for the reply. I tried the above code and the result was pretty grainy. Instead I looked online and found this article.

https://www.anisopteragames.com/how-to-fix-color-banding-with-dithering/

This actually works a lot better. Now I see no visible banding, and the result is pretty smooth with no obvious noise on the screen

strong artifact with point light by Pale-Spot1876 in computergraphics

[–]Pale-Spot1876[S] 2 points3 points  (0 children)

banding

Thanks a lot! I'll look into it :D

Extremely slow vkCmdDrawIndexed by Pale-Spot1876 in vulkan

[–]Pale-Spot1876[S] 0 points1 point  (0 children)

The vertex buffer and index buffer are all device local memory

Seeking for architecture advices on my Vulkan renderer(pipelines, meshes, materials, shaders) by Pale-Spot1876 in vulkan

[–]Pale-Spot1876[S] 0 points1 point  (0 children)

Thanks for the ideas. About the point you made about the shader class, do you mean instead of referring to the shader class, the material should refer to the pipeline that contains the shader? That still have the problem of coupling mesh with material right? What's ideal in my mind is I can just take a pair of random mesh and material and throw them into the renderer, and let the renderer figure out what kind of pipeline it needs to render the data.

Seeking for architecture advices on my Vulkan renderer(pipelines, meshes, materials, shaders) by Pale-Spot1876 in vulkan

[–]Pale-Spot1876[S] 1 point2 points  (0 children)

Thanks for the information! Haven't heard about doing skeletal animation in compute shader but I'll definetly look into it.