-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Creating Seamless UV maps (fails?) #1
Comments
Hi Paul, Thank you for trying out my implementation, I'm very happy that it's useful to someone:) Sorry but I have to point out that you're misunderstanding what the seamless maps are. If you try to paste a checkerboard pattern onto any genus-0 surface, there will necessarily be some visible seams somewhere, no matter what UV parameterization method is used. The typical UV checkerboard pattern visualizations used in those cross-parameterization (or inter-surface mapping) papers use the simple method of projecting the mesh to a 2D image plane from a certain viewpoint and using the resulting 2D coordinates as the UVs (thus, the checkerboard looks nice from near that chosen viewpoint while it looks stretched in the "side" views). The map is "seamless" in that the checkerboard pattern transferred from A to B does not exhibit any visible seams (although the mapping itself involves seams; cf. "seam transformation" in the original paper). I've pushed a small code (that I already had previously without committing) that generates UVs using the above-mentioned method, as well as an additional functionality to output Below is a screenshot using your data: on the left is A with its original UV, on the right is B with UV transferred from A. Their cut graphs are also shown in green (notice the difference around the left arm). If your interest is only to texture a single surface (as opposed to the "cross-parameterization" or "inter-surface mapping" scenario) without visible seams, perhaps techniques like this https://hal.science/inria-00547713/ are more suitable. |
Hi Kenshi, thanks for the reply. I already was very curios how it actually could work... so its no suprise that it doesnt work as i hoped it would. Yes we are using the same procedure right now but our problem is that we want to display shapes in different poses where this whole pipeline breaks... Nevertheless, thanks a lot for your help! I will leave this issue open so that others can see what is possible and what is not possible with the seamless framework :) |
Hi Kenshi,
First and foremost thanks a lot for providing this implementation!
I wanted to use this method to create a seamless uv-map for a 3D mesh. I came up with the following procedure:
Use the same mesh for
A-orig.obj
andB-orig.obj
. I used this shape:A-orig.obj.zip
Define some landmarks with your landmark picker while ensuring in a post-processing step (manual editing of landmarks.txt) that all landmarks are identical on both shapes. I picked the following landmarks:
landmarks.txt
Running the seamlesssurfmap implementation as follows:
./seamlesssurfmap --num-iter=10
Unfortunately results do not look very "seamless":
![Screenshot 2023-03-30 at 16 30 14](https://user-images.githubusercontent.com/38716946/228869470-d7d28174-2eb0-476d-b565-f332c101a863.png)
For creating the texture map i used the vertex and face information stored in
A-disk-refined.obj
while i assigned each vertex ofA-disk-refined.obj
a uv-coordinate by using the vertex information stored inA-gmap.obj
.I know this is the unofficial implementation but results look far different from what i expected from the paper. Do you have any suggestions where I made a mistake or how i can improve the results?
Thanks a lot!
Paul
The text was updated successfully, but these errors were encountered: