bmershon / laplacian-meshes

An implementation of Laplacian mesh editing for Math 290.
http://www.ctralie.com/Teaching/COMPSCI290/Assignments/Group3_LaplacianMesh/
GNU General Public License v3.0
113 stars 18 forks source link

Laplacian-Meshes( Is it a complete project? ) #3

Open coldcoda opened 5 years ago

coldcoda commented 5 years ago

@ctralie @bmershon Hello! I am learning the Laplacian Meshes and I have download this project.But there are many problems I don't know how to solve.

Can you tell me is it a complete project ?Because there are many functions can't be found. as the follows:

  1. function named makeLaplacianMatrixSolverIGLSoft and solveLaplacianMatrixIGLSoft in meshView.py. 1

2.function named getUniformLocation in Shader.py. image

3.function named subspace_tde_amplification in RealSenseVideo.py.

image

4.function named estimateMeanCurvature in LapGUI.py. image

5.The module named VideoTools also can't found.

image

If this isn't a complete project,can you share a complete project to me? Or Can you provide a way to solve these problems. I really want to learn this.

Thanks very much! Wishes for your reply!!

ctralie commented 5 years ago

Hello @coldcoda, thanks for your interest in this work. Actually, this was a project in a class I taught on digital 3D geometry:

http://www.ctralie.com/Teaching/COMPSCI290/Assignments/Group3_LaplacianMesh/

You can ignore most of the missing stuff you pointed out...it was vestigial from other projects and I forgot to get rid of it. The only thing that's important is the "getUniformLoction", which requires that you install pyOpenGL. See my instructions here: http://www.ctralie.com/Teaching/COMPSCI290/Assignments/Mini3_ICP/#code

Hopefully that all helps you get started. Best, Chris

coldcoda commented 5 years ago

Hello @ctralie , you said that function named "getUniformLocation" is important, and should install pyOpenGL. I have installed all of the important packages pointed at http://www.ctralie.com/Teaching/COMPSCI290/Assignments/Mini3_ICP/#code : image image

but it still has the problem with the function "getUniformLocation". image I'm sorry that I can't solve it by myself. So, can you help me again!!

Also, when I run LapGUI.py, there is a problem , and I'm so sorry I don't know why. image

So sorry about my problem, maybe it's a very simple broblem, but I really don't know how to solve it. It has been bothering me for a long time!!

And I'm learning your class follow the step at http://www.ctralie.com/Teaching/COMPSCI290/Assignments/Group3_LaplacianMesh/ I will try my best to understand it! Thanks for your reply!

Best, Coldcoda

coldcoda commented 5 years ago

hello @ctralie ,I'm so sorry to ask for your help again!! I don't understand why I should do this as the picture,I think it should be Lii=1. image Because you have given the formula like this: image And, describe the matrix L here: image So I really don't understand why Lii isn't 1.

Can I receive your answer? Thanks very much! Wishes for your reply!!

coldcoda commented 5 years ago

hello @ctralie @bmershon ,I'm so sorry to ask for your help again!! I don't understand why I should do this as the picture,I think it should be Lii=1. image

Because you have given the formula like this: image

And, describe the matrix L here: image

So I really don't understand why Lii isn't 1.

Can I receive your answer? Thanks very much! Wishes for your reply!!

ctralie commented 5 years ago

Sorry for the lag in my response

Have a look at the Wikipedia article on the graph laplacian https://en.m.wikipedia.org/wiki/Laplacian_matrix For an unweighted matrix with all 1s for edges, the diagonal corresponds to the degree of each vertex (the number of edges coming out of it). In the case you're pointing out, the edges are weighted by the cotangent, so a diagonal element is instead a sum of the cotangent weights for all edges coming out of the corresponding vertex. Does that make sense?

On Sat, Mar 2, 2019, 7:35 AM coldcoda notifications@github.com wrote:

hello @ctralie https://github.com/ctralie @bmershon https://github.com/bmershon ,I'm so sorry to ask for your help again!! I don't understand why I should do this as the picture,I think it should be Lii=1. [image: image] https://user-images.githubusercontent.com/37976152/53681874-8e7d2e00-3d2a-11e9-977a-05d5de24fbb3.png

Because you have given the formula like this: [image: image] https://user-images.githubusercontent.com/37976152/53681880-963cd280-3d2a-11e9-84a4-e672158af000.png

And, describe the matrix L here: [image: image] https://user-images.githubusercontent.com/37976152/53681882-9b018680-3d2a-11e9-922d-073fcbb8db2d.png

So I really don't understand why Lii isn't 1.

Can I receive your answer? Thanks very much! Wishes for your reply!!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/bmershon/laplacian-meshes/issues/3#issuecomment-468916705, or mute the thread https://github.com/notifications/unsubscribe-auth/ABNh5kj2mef3gC9ecEl8tzVnwOMOJZwCks5vSnAXgaJpZM4aVg2J .

coldcoda commented 5 years ago

Hello @ctralie @bmershon Since I received your letter, I have thought about it seriously for several days and checked some blogs to help me understand it.So It took me several days. At first,I thought because the formula: image So,the matrix L should be like this(Lii=1,Lij=-1/di when i belongs to N(i),Lij=0 otherwise) But now I think I understand that they are matrix transformations for easy computation.

Finally, I'd like to ask if I need to do this when I solve the equations by calling sparse least squares x = scipy.sparse.linalg.lsqr(A, b)[0]. image

I think I don't need to do this,but when I try to print the Position of the anchors, It doesn't equal to the original position of the anchors. image image

I'm sorry to ask for help again. Thanks very much! Wishes for your reply!!

ctralie commented 5 years ago

Hello, Sorry for the lag in my response. No, you do not need that line. What you're doing looks correct. Actually, since this is finding a least square solution, the anchor positions may not always be what you set them to be. Try this with umbrella weights and cotangent weights. I've found that latter to sometimes be a bit unstable. Best, Chris

On Sun, Mar 10, 2019 at 3:51 AM coldcoda notifications@github.com wrote:

Hello @ctralie https://github.com/ctralie @bmershon https://github.com/bmershon Since I received your letter, I have thought about it seriously for several days and checked some blogs to help me understand it.So It took me several days. At first,I thought because the formula: [image: image] https://user-images.githubusercontent.com/37976152/54081921-2b058880-4348-11e9-802b-95003610df27.png So,the matrix L should be like this(Lii=1,Lij=-1/di when i belongs to N(i),Lij=0 otherwise) But now I think I understand that they are matrix transformations for easy computation.

Finally, I'd like to ask if I need to do this when I solve the equations by calling sparse least squares x = scipy.sparse.linalg.lsqr(A, b)[0]. [image: image] https://user-images.githubusercontent.com/37976152/54082074-019a2c00-434b-11e9-8977-dd9270ca1420.png

I think I don't need to do this,but when I try to print the Position of the anchors, It doesn't equal to the original position of the anchors. [image: image] https://user-images.githubusercontent.com/37976152/54082130-cfd59500-434b-11e9-9a19-69f0c35650b9.png [image: image] https://user-images.githubusercontent.com/37976152/54082137-e4b22880-434b-11e9-827a-8d96961e999d.png

I'm sorry to ask for help again. Thanks very much! Wishes for your reply!!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/bmershon/laplacian-meshes/issues/3#issuecomment-471255750, or mute the thread https://github.com/notifications/unsubscribe-auth/ABNh5nSjSgisrvLDWeOk-t70OD5ismWLks5vVLmYgaJpZM4aVg2J .

otori-bird commented 4 years ago

@coldcoda @ctralie i meet the same problem that i can't find 'getUniformLocation'. and when i click 'Display Mesh Faces' or somthing like that, error occurs: Traceback (most recent call last): File "E:/lapalcian/LapGUI.py", line 91, in displayFaceNormalsCheckbox self.displayFaceNormals = evt.Checked() AttributeError: 'CommandEvent' object has no attribute 'Checked'

could you tell me how to solve it? thanks a lot

ctralie commented 4 years ago

Did you pip install pyopengl?

On Sun, Dec 29, 2019, 12:53 AM otori-bird notifications@github.com wrote:

@coldcoda https://github.com/coldcoda @ctralie https://github.com/ctralie i meet the same problem that i can't find 'getUniformLocation'. could you tell me how to solve it? thanks a lot

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/bmershon/laplacian-meshes/issues/3?email_source=notifications&email_token=AAJWDZS4UGNYMRKQLH3INS3Q3A3PDA5CNFSM4GSWBWE2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHYYTRY#issuecomment-569477575, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJWDZRD5ROCEJ3HBHJZ3WLQ3A3PDANCNFSM4GSWBWEQ .

otori-bird commented 4 years ago

of course i did. It's PyOpenGL 3.1.4

微信图片_20191229215456

Did you pip install pyopengl? On Sun, Dec 29, 2019, 12:53 AM otori-bird @.***> wrote: @coldcoda https://github.com/coldcoda @ctralie https://github.com/ctralie i meet the same problem that i can't find 'getUniformLocation'. could you tell me how to solve it? thanks a lot — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#3?email_source=notifications&email_token=AAJWDZS4UGNYMRKQLH3INS3Q3A3PDA5CNFSM4GSWBWE2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHYYTRY#issuecomment-569477575>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJWDZRD5ROCEJ3HBHJZ3WLQ3A3PDANCNFSM4GSWBWEQ .

ctralie commented 4 years ago

Hmm, something must have changed in the PyOpenGL API somewhere. Sorry for the trouble! Unfortunately, I don't have time to help with this right now. But I have a related project in progress with implementations of cotangent and umbrella weights: https://github.com/ctralie/pyhks Compared to the assignment, it's missing a GUI that has you choose anchor points. But it at least shows how to construct some of these objects.

You may also be interested in libigl, which has Python bindings: https://libigl.github.io/ There are even better techniques than Laplacian mesh editing there that accomplish the same thing All the best, Chris

On Sun, Dec 29, 2019 at 8:57 AM otori-bird notifications@github.com wrote:

of course i did. It's PyOpenGL 3.1.4

[image: 微信图片_20191229215456] https://user-images.githubusercontent.com/53210109/71557790-21d7da80-2a86-11ea-908b-03038fd876ec.png

Did you pip install pyopengl? … <#m-3467974339379055778> On Sun, Dec 29, 2019, 12:53 AM otori-bird @.***> wrote: @coldcoda https://github.com/coldcoda https://github.com/coldcoda @ctralie https://github.com/ctralie https://github.com/ctralie i meet the same problem that i can't find 'getUniformLocation'. could you tell me how to solve it? thanks a lot — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#3 https://github.com/bmershon/laplacian-meshes/issues/3?email_source=notifications&email_token=AAJWDZS4UGNYMRKQLH3INS3Q3A3PDA5CNFSM4GSWBWE2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHYYTRY#issuecomment-569477575>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJWDZRD5ROCEJ3HBHJZ3WLQ3A3PDANCNFSM4GSWBWEQ .

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/bmershon/laplacian-meshes/issues/3?email_source=notifications&email_token=AAJWDZQAG4ZWF3PDU4RHAZDQ3CUDLA5CNFSM4GSWBWE2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHZABNA#issuecomment-569508020, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJWDZXQH525E2VWJOKATQTQ3CUDLANCNFSM4GSWBWEQ .

otori-bird commented 4 years ago

Hmm, something must have changed in the PyOpenGL API somewhere. Sorry for the trouble! Unfortunately, I don't have time to help with this right now. But I have a related project in progress with implementations of cotangent and umbrella weights: https://github.com/ctralie/pyhks Compared to the assignment, it's missing a GUI that has you choose anchor points. But it at least shows how to construct some of these objects. You may also be interested in libigl, which has Python bindings: https://libigl.github.io/ There are even better techniques than Laplacian mesh editing there that accomplish the same thing All the best, Chris On Sun, Dec 29, 2019 at 8:57 AM otori-bird @.> wrote: of course i did. It's PyOpenGL 3.1.4 [image: 微信图片20191229215456] https://user-images.githubusercontent.com/53210109/71557790-21d7da80-2a86-11ea-908b-03038fd876ec.png Did you pip install pyopengl? … <#m-3467974339379055778_> On Sun, Dec 29, 2019, 12:53 AM otori-bird @.> wrote: @coldcoda https://github.com/coldcoda https://github.com/coldcoda @ctralie https://github.com/ctralie https://github.com/ctralie i meet the same problem that i can't find 'getUniformLocation'. could you tell me how to solve it? thanks a lot — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#3 <#3>?email_source=notifications&email_token=AAJWDZS4UGNYMRKQLH3INS3Q3A3PDA5CNFSM4GSWBWE2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHYYTRY#issuecomment-569477575>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJWDZRD5ROCEJ3HBHJZ3WLQ3A3PDANCNFSM4GSWBWEQ . — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#3?email_source=notifications&email_token=AAJWDZQAG4ZWF3PDU4RHAZDQ3CUDLA5CNFSM4GSWBWE2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHZABNA#issuecomment-569508020>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJWDZXQH525E2VWJOKATQTQ3CUDLANCNFSM4GSWBWEQ .

ok, it's fine. i'll see if they work for me. thank u so much