nmwsharp / nmwsharp/polyscope

GeometryCentral Corner Perms

Open
#341 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
2.2k
Forks
242
Avg merge
11m
Merged PRs (30d)
1

Description

Hey,

I'm running into issues with getting parameterized data loaded from geometry central. It seems that the permutations for the corners aren't being set correctly. I've verified that the "polyscopePermutations" function produces valid maps at the time of registration (and after). However, it seems to ignore the perms and just reads the corner data using the polyscope index. Here is an example of a simple quad (bisected). When viewing the parameterization channel, it seems to use the "original" values (confirmed by pick functionality). I believe this was working when I was using Polyscope 2.1.0, but now I'm getting this issue on 2.4.0. It may actually be from GC with that official update (1.0.0) but I don't think so. I'm technically running a fork of geometry central 1.0.0 for custom access to intrinsic triangulations, but nothing to do with the extrinsic / embedded code used here.

EDIT: I've cleaned the code and the output, attached an image to better communicate what is happening.

[DEBUG] Corner Parameterization Values:
[DEBUG]    GC Corner ID 0 | Face ID 0 | UV [1,0]
[DEBUG]    GC Corner ID 1 | Face ID 1 | UV [0,1]
[DEBUG]    GC Corner ID 2 | Face ID 0 | UV [0,1]
[DEBUG]    GC Corner ID 4 | Face ID 0 | UV [0,0]
[DEBUG]    GC Corner ID 6 | Face ID 1 | UV [1,0]
[DEBUG]    GC Corner ID 8 | Face ID 1 | UV [1,1]
[DEBUG] Corner permutation (6 entries):
[DEBUG]    Corner IDs (PS, GC) -> UVs (PS, GC)
[DEBUG]    Corner IDs (0, 0) -> UVs ([1,0], [1,0])
[DEBUG]    Corner IDs (1, 2) -> UVs ([0,1], [0,1])
[DEBUG]    Corner IDs (2, 4) -> UVs ([0,1], [0,0])
[DEBUG]    Corner IDs (3, 6) -> UVs ([0,0], [1,0])
[DEBUG]    Corner IDs (4, 8) -> UVs ([0,0], [1,1])
[DEBUG]    Corner IDs (5, 1) -> UVs ([0,0], [0,1])

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the cleaned example described in the issue with Polyscope 2.4.0 and GeometryCentral, then inspect the polyscopePermutations path and the parameterization channel's corner-data lookup. Compare behavior with Polyscope 2.1.0 if available. Done means the channel and pick functionality use the mapped GeometryCentral corner values rather than raw Polyscope indices.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.