Reading ray tracing result to the CPU and back onto the GPU in order to do image denoising

Started by
109 comments, last by JoeJ 3 months ago

JoeJ said:

Why this green square on the wall? Could it be the bounding box of the acceleration structure? Did you just expose what NV tries to hide so hard from me?

I am thinking that it has to do with the shape and placement of the light. I only have one BLAS – all of the vertices and indices as one – and one TLAS – using the identity matrix for a transformation.

Nah. I know what this is - a chain bug. First, you notice it, and you introduce two new bugs while figuring out more. But that's not really the problem, which is, on your further way to track it down, you notice three other, totally unrelated bugs as well.

LOL are you trying to make me paranoid? :)

This is bad. I know. But you're still good, compared to me. I'm currently really stuck. Being stuck is worse than chain bugs.

red tint, red caustics. RED RED RED

Advertisement

What are you stuck on?

Is there any file format that uses float textures instead of byte textures?

You can use EXR or HDR file formats (EXR being somewhat better and more complex). I think there is a library OpenEXR that you can use for working with it.

There is also compressed format like BC6H (DDS can store it) which holds HDR in block-compression way.

My current blog on programming, linux and stuff - http://gameprogrammerdiary.blogspot.com

taby said:
I am thinking that it has to do with the shape and placement of the light. I only have one BLAS – all of the vertices and indices as one – and one TLAS – using the identity matrix for a transformation.

You mean the box light on top causes the square shape? Maybe. But i would replace it with a sphere light to see if that's true.

taby said:
LOL are you trying to make me paranoid? :)

You're programmer. So you already are. : )

taby said:
What are you stuck on?

Stitching meshes together. I process the geometry in grid cells independently, and sometimes results don't fit together nicely across cells. So i need to fill holes and remove overlaps.

Even if they do match, if the cut is along multiple edges between the same pair of vertices, i can't easily tell which part belongs to which edge. Seems a complex combinatorial assignment problem. If i do it wrong, topology changes and i may need to introduce new vertex duplicates because a former single surface becomes multiple surfaces, which can not share a vertex. But sadly i see this only after assigning bad edge pairs. I would need to know before.

This is what makes out of core remeshing so hard. Afaik, nobody has ever done this. Now i know why.
And for me it's even much harder, because i allow representation of topology in its simplest form. I can make a torus from just 4 quads and 4 vertices. Others would declare this a degenerate case and prevent it. But if you subdivide and deform you can get a proper torus. However, if we cut the edges open and try to reconnect without additional information, we could make a topological torus, a sphere, or two spheres from those 4 same quads.

Don't worry if you can't follow. I do not understand it either. : |

JoeJ said:
This is what makes out of core remeshing so hard. Afaik, nobody has ever done this.

I did something similar in a 2014 SIGGRAPH paper where I was remeshing geometry for acoustics. I split up large scenes into multiple chunks of a certain maximum size that would fit in memory, generated SDF and voxelized that with marching cubes. Then I simplified each chunk independently with edge collapse algorithm to reduce triangle counts. I took care to not simplify the borders between chunks so that they would match up exactly. Chunks are processed in parallel. Then, I would merge together chunks later and simplify the borders in a second pass. This worked for scenes of kilometer scale, given enough time.

Aressera said:
I split up large scenes into multiple chunks of a certain maximum size that would fit in memory, generated SDF and voxelized that with marching cubes.

A very similar pipeline. And i have the same to this point. It works, the manifold guarantee holds, and it never caused me any problems.

But after that i generate cross and wavefield on the isosurface, then quaddominant remeshing. Basically the same as the Insta Meshes tool you probably know, which is not even robust although it has all in RAM.

It's hard to believe, but complexity is multiple orders of magnitudes higher. I regret it for sure, but number of errors is pretty small currently, and i feel i'm very close to success finally.

Simplifying iso mesh is something i have considered and still do. But the quad dominant remesh enables seamless displacement mapping on any surface without any UV maps. It should ease up content creation, compression and detail amplification. It should be worth it…

But hell, it already took me way too much time. I'll soon shake hands with artists under the bridge. : /

Good luck then!

The problem occurs for cylinder-shaped lights. Next try will be a spherical light. Thanks to our modeler!!!

Spherical light too:

This topic is closed to new replies.

Advertisement