sdf-explorer icon indicating copy to clipboard operation
sdf-explorer copied to clipboard

How does the grid sampler determine the grid boundary?

Open PerryXDeng opened this issue 2 years ago • 4 comments

Hi, thanks to the contributors of this project. Is there a way to determine the minimum and maximum x,y,z coordinates from the .glsl files in the data-files/sdf directory? I would like to build a custom adaptive grid sampler but there doesn't seem to be a way to determine the boundary of such a grid.

PerryXDeng avatar Aug 20 '22 05:08 PerryXDeng

It seems like the boundary is determined by the sampler logic mapping some openGL UV space to the object XYZ space. If the contributors can offer some comments/explanations on this mapping, it would make it a lot easier to develop extensions!

PerryXDeng avatar Aug 24 '22 06:08 PerryXDeng

Hi,

What do you mean exactly by a minimum and maximum XYZ coordinates? In general the SDFs should reside mostly in normalized [-1, 1] space.

tovacinni avatar Aug 24 '22 23:08 tovacinni

Thanks for the response @tovacinni ! That's what I assumed first, but I tried one of the examples and it seems like it was sampling outside the [-1, 1]^3 space.

Example: ` import sdfdes viewer_path = '/sdf-explorer/build' sample_path = '/sdf-explorer/samples'

sdf = "Torus" N = 257 pattern = "grid"

bin_path = os.path.join(sample_path, f"grid/{sdf}.bin") sample_cmd = f"./sdf-explorer --sample {N**3} {pattern} {sdf} {sample_path}" proc = sp.check_output(sample_cmd.split(), shell=False, cwd=viewer_path)

pos, dist, normal = sdfdes.deserialize(bin_path)

print(torch.max(pos[:, 0])) `

This will output 7.22, which is outside [-1, 1]

PerryXDeng avatar Aug 26 '22 03:08 PerryXDeng

Hi,

Thanks for looking into this. At first glance this seems like a bug... I'll try to look into this.

I think ideally we should actually be generating these things in morton order.

Best, Towaki

tovacinni avatar Aug 26 '22 03:08 tovacinni