I'm hopeful one of you can help set me straight on what I'm doing wrong here. I have a simple workflow that takes a smaller surface and rays it onto a similar, but larger and slightly displaced surface. This seems to be working, except for a couple of points. (After the ray operation, their numbers are 26557 and 26547.) They appear to be stuck on the previous surface instead of being mapped to the target ray surface.
The attribute transfer and attribute blur nodes before the ray are some of my attempts to correct the situation, but I haven't found something that works.
I'm using Houdini 20.0.724.
If anyone could explain what's going on here, that would be wonderful. I attach the two input surfaces and the .hip file.
Hi, try to set the kernel radius (attribute transfer) to the smallest surface distance between your geometries. And in generel try to keep the distance as close as possible, this will avoid projection overlapping.
EDIT: For clarity, you can visualize the normal values. If you leave the kernel radius at the default value, you will see that the values differ slightly from the original geometry. This is probably due to the interpolation, as the radius covers more than one point. So if you set something to 1, the values are captured exactly. But there will still be overlaps in dense areas, for example in the bevel regions. To solve this try again to keep the distance between the two surfaces as small as possible. kernel radius 10
The hip file below shows another attempt without attribute transfer, in which the normal direction of the projected surface is simply flipped. Then using the attribute blur with the following setup to get the best result so far.
I think it's floating point precision issue. If you move the target geometry in Z by 0.00001, it works. I think the algorithm can miss hitting a polygon in some instances if the points are perfectly overlapping due to the floating point precision.