Giter Site home page Giter Site logo

gp2021-assignments's Introduction

Shape Modeling and Geometry Processing - Course Assignments

Student data

Name: 'Your real name'
Legi-Nr: 'Your legi number'

Email: 'Your email address'

Follow the instructions to updated your private repository.

Assignments Overview

Assignment 1 (Due date: 12.03.2021 10:00)
Assignment 2 (Due date: 16.04.2021 11:00)
Assignment 3 (Due date: 23.04.2021 10:00)

General Rules and Instructions

Plagiarism Note and Late Policy

Copying code (either from other students or from external sources) is strictly prohibited! We will be using automatic anti-plagiarism tools, and any violation of this rule will lead to expulsion from the class. Late submissions will generally not be accepted. In case of serious illness or emergency, please notify Floor and provide a relevant medical certificate.

Provided Libraries

For each assignment, you will use the geometry processing library libigl, which includes implementations of many of the algorithms presented in class. The libigl library includes a set of tutorials, an introduction which can be found online. You are advised to look over the relevant tutorials before starting the implementation for the assignments; you are also encouraged to examine the source code of all the library functions that you use in your code to see how they were implemented. To simplify compilation, we will use libigl as a header-only library (note that, if you prefer, you can compile it into a set of static libraries for faster builds at your own risk (this can be brittle on some platforms). We already included libigl as a git submodule in the course assignment repository https://github.com/eth-igl/GP2021-Assignments.git and you don't need to download it yourself. All further dependencies of libigl (like Eigen) are included as submodules in the directory 'libigl/external/' No libraries apart from those are permitted unless stated otherwise.

Installing Git and CMAKE

Before we can begin, you must have Git running, a distributed revision control system which you need to handin your assignments as well as keeping track of your code changes. We refer you to the online Pro Git book for more information. There you will also find instructions on how to to install it. On windows we suggest using git for windows.

CMake is the system libigl uses for cross-platform builds. If you are using Linux or macOS, I recommend installing it with a package manager instead of the CMake download page. E.g. on Debian/Ubuntu:

sudo apt-get install cmake

or with MacPorts on macOS:

sudo port install cmake.

On Windows you can download it from: https://cmake.org/download/

Cloning the Assignment Repository

Before you are able to clone your private assignment repository, you need to have a active Github account. Then you can create your own private online repository by following this link: https://classroom.github.com/a/-c-axeq2

In the next step you need to clone it to your local harddrive

git clone --recursive https://github.com/eth-igl/gp21-'Your_Git_Username'.git

'Your_Git_Username' needs to be replaced accordingly. This can take a moment.

Next, cd into the newly created folder, and add the base assignment repository as a remote:

cd gp21-'Your_Git_Username'
git remote add base https://github.com/eth-igl/GP2021-Assignments.git
git pull base master

Now you should have your local clone of the assignment repository ready. Have a look at the new repository folder and open the 'README.md'. It contains the text you are just reading. Please fill in your name and student number at the top of this file and save. Then you need to stage and commit this changed file:

git add README.md
git commit -m "Adjust README.md"
git push

You should now be able to see your name online on your private repository: https://github.com/eth-igl/gp21-'Your_Git_Username'

Building Each Assignment

In the assignment repository you will find the different assignment directories 'assignmentX'. For now you only see the first one 'assignment1'. To compile the assignment code we will use the CMake building system.

Create a directory called build in the assignment directory, e.g.:

cd assignment1; mkdir build

Use CMake to generate the Makefiles needed for compilation inside the build/ directory:

cd build; cmake -DCMAKE_BUILD_TYPE=Release ../

On windows use the CMAKE gui with the buttons Configure and Generate.

Compile and run the executable, e.g.:

make && ./assignment1 <some mesh file>

Or use your favorite IDE.

Please compile your code in Release mode.

If you encounter any problems, please create an issue on the assignments repository on GitHub or ask the assistant in the exercise session.

Workflow

In general, you should use Git to commit your edits as often as possible. This will help you with backtracking bugs and also serve as a backup mechanism. For more information we refer you to the Pro Git book.

Every new assignment needs to be pulled from the base repository:

git pull base master

or,

git pull base master --allow-unrelated-histories

To pull bug fixes or changes you can do the following steps:

git pull base master
rm -r libigl
git submodule sync
git submodule update --init --recursive

Solution Submission

In every assignment directory you will find a 'README.md' file in which we will specify the required screenshots and console outputs. You should briefly summarize and report your results and observations, or discuss possible problems. For a quick introduction of the Markdown syntax see: https://guides.github.com/features/mastering-markdown/

To submit your solution of the assignment please add the following commit message: "Solution assignment X". E.g:

git commit -m "Solution assignment X"
git push

You can keep updating your code before the deadline. After the deadline, please don't change the code before we send you the scores.

Using Issues for discussion

Please use the "Issues" above to post your questions and discussions about the assignments. We will try to answser your questions asap, while all students are encouraged to address these questions to help their fellows.

The solutions must be submitted before the corresponding demo session. Late submissions will not be accepted.

gp2021-assignments's People

Contributors

floorverhoeven avatar wsh312 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

gp2021-assignments's Issues

Error running the tutorial

I get the following errors when running the first tutorial and don't know where I went wrong.

Fehler LNK1181 Eingabedatei "....\Release\igl.lib" kann nicht geöffnet werden. 101_FileIO_bin ...\gp21-ebonfalke\libigl\build\tutorial\101_FileIO\LINK 1
Fehler (aktiv) E0020 Der Bezeichner ""M_PI"" ist nicht definiert. igl ...\gp21-ebonfalke\libigl\include\igl\scaf.cpp 81
Fehler C2065 "M_PI": nichtdeklarierter Bezeichner igl ...\gp21-ebonfalke\libigl\include\igl\scaf.cpp 81
Fehler C2065 "M_PI": nichtdeklarierter Bezeichner igl ...\gp21-ebonfalke\libigl\include\igl\scaf.cpp 82

Assignment1: Shading

1 Which mesh should I use for connected component part and subdivision part?
(for shading part I find the information to use 'fandisk.off' in Readme file but for connected component and subdivision I didn't find any information)
2 Do we need to choose a thershold such that all 3 image look different or is it fine that two looks the same?
3 Should this be corner shading?
image

Assignment 2: Constraint confusion

Check that pi is the closest point to P_i+N;
Check that pi is the closest point to P_i+2N;
From which group of points? P or also the already new defined points in constrained_points?

If only P, then I don't get the second check, as P_i+2N is lying on the same sphere around P_i as P_i+N.

No .exe files after building the tutorials.

In Cmake I've chosen the libigl/tutorial as a source code folder and libigl/tutorial/build folder for the binaries.
After Configure and Generate I get generated .sln files for all the tutorials.
However, when I open and build a solution with VS19 no executable is generated in the Release folder.

Assignment 3: normals based on quadratic fitting and k value

If I understand correctly a quadratic bi-variate polynomial looks like f(x,y) = ax^2 + by^2 + cxy + dx + ey + f where "fitting" the polynomial means we have to solve for a,b,c,d,e,f with a vertex and its k nearest neighbors.

However in the exercise description at the required output section it says that we should show the computed normals with k = 1 and k = 2 but wouldn't we need k to be >= 6 since we need to solve for 6 coefficients of the height function?

Assignment 2: MLS - Closed Form Solution

I calculated the closed form solution by myself and got B^T * W * B * c = B^T * W * f. Did I make a mistake or is it safe to assume B^T has always an inverse? Because in the slides B^T is missing.

Assignment 3: curvature igl functions

In the assignment description it is written that there are relevant libigl functions: igl::gaussian curvature, igl::principal curvature, igl::cotmatrix, igl::massmatrix. I am not quite sure: Can we just use them for task where we need to calculate the curvature, or do we have to implement the curvature calculation ourselves?
Also, it is not explicitly written if we have to visualize the principal curvature directions. Could you clarify this please?

General: Which task gives how many points?

Dear TAs

It would help a lot to know in advance which task gives how many points, such that we can estimate how much of the assignment we have already solved and how important each task is relative to the other tasks in the assignment.
Would it be possible to give us this information for the next assignments. And if possible, it would also be great to know it for the current assignments 2 & 3.

General: More comments about using Python.

You are welcome to use Python and the binding. However, for assignments 1-5, we will provide a c++ "skeleton code" for you to start with. We probably won't be able to provide the Python versions for you (I'm not a good Python coder myself). So you would need to do the transferring by yourselves. Ideally, all the Python users could help each other. Maybe those who want to use Python can post their name and email addresses below.

No assignment2 in github

I got the assignment 2 locally, but don't have the assignment 2 folder in the gp21-boduan1 folder, what should I do?

[Assignment 2] Additional Task 3 Normal Constraint

For the implementation of normal constraint in the additional task 3, I was wondering whether the original point P(#P) or the constrained points(#P*3) should be used? If it is based on constrained points, how can we define the normal of points not on the surface?

Assignment 1: Hand-in

I just handed in my solution and realised that the report should be placed into the README file. I created a pdf called "report.pdf" where I collected my results and pushed it to Github. Is this still valid?

Assignment 1: Results required for 3.1 and 3.2,5 and 6

I am wondering if we actually need to print out all these results? It would take quite a bit.

Also, could you tell me a good way to print vector of vectors?

For 3.3, it seems super hard to check the answer from 3.1 and 3.2 visually as they are so many vertices and faces. What's a good way to do that? Also, do we need to run this on "plane.off" in addition to the default "bunny.off"?

For 5, it says "Show screenshots of the provided meshes with each connected component colored differently. Show the number of connected components and the size of each component (measured in number of faces) for all the provided models." Do we have to do this for all 9 models?

For 6, do we submit results for all the 9 models?

General: failed to pull new assignment

When I run git pull base masterto pull the new assignment it ends with a message fatal: refusing to merge unrelated histories. How can I successfully pull the new assignment?

If it helps my remotes are the following (I think this should be correct)

base    [email protected]:eth-igl/GP2021-Assignments.git (fetch)
base    [email protected]:eth-igl/GP2021-Assignments.git (push)
origin  [email protected]:eth-igl/gp21-azurite.git (fetch)
origin  [email protected]:eth-igl/gp21-azurite.git (push)

Assignment 1: Clarifications about the report

Hello,

I have a small question about what is expected in the report, especially for the last two parts. For 3), the guideline says

"Show screenshots of the provided meshes with each connected component colored differently. Show the number of connected components and the size of each component (measured in number of faces) for all the provided models."

What does provided meshes mean? Do we have to take screenshots for the car and the coffeecup model only like in the handout, or for all 9 meshes in the data folder? I guess the second part about the number and size of components has to be done for all the meshes?

The same question arises for the subdivision scheme part: Show screenshots of the subdivided meshes. Is it only the sphere and the bumped cube like in the handout, or all of them?

Thank you for your time,

Experimenting on WSL2 with vcXsrv

When attempting to run the executable, has someone ever encountered the error

"The GLFW library is not initialized"

or has some tips for solving/debugging this error?

As for the X11 setup:

$xeyes -> works
$glxheads -> works

Assignment 1: exercises 3 & 4

so in exercises 3 & 4 is the idea to implement the functions yourself or just use the ones provided by libigl?

i'm mostly asking because in the comments it is written "your code", however when i just use one line which is a libigl function call, i don't really consider it my code.

Could not find git

When I use CMake gui to configure the project, I get the following error:

Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.19041.
CMake Error at C:/Program Files/CMake/share/cmake-3.15/Modules/ExternalProject.cmake:2410 (message):
error: could not find git for clone of eigen-download
Call Stack (most recent call first):
C:/Program Files/CMake/share/cmake-3.15/Modules/ExternalProject.cmake:3204 (_ep_add_download_command)
CMakeLists.txt:9 (ExternalProject_Add)
CMake Error at C:/Users/Martina/OneDrive/Dokumente/Studium/Informatik Master/FS2021/Shape Modeling and Geometric Processing/gp21-MartinaKessler/libigl/cmake/DownloadProject.cmake:171 (message):
CMake step for eigen failed: 1
Call Stack (most recent call first):
C:/Users/Martina/OneDrive/Dokumente/Studium/Informatik Master/FS2021/Shape Modeling and Geometric Processing/gp21-MartinaKessler/libigl/cmake/LibiglDownloadExternal.cmake:14 (download_project)
C:/Users/Martina/OneDrive/Dokumente/Studium/Informatik Master/FS2021/Shape Modeling and Geometric Processing/gp21-MartinaKessler/libigl/cmake/LibiglDownloadExternal.cmake:52 (igl_download_project)
C:/Users/Martina/OneDrive/Dokumente/Studium/Informatik Master/FS2021/Shape Modeling and Geometric Processing/gp21-MartinaKessler/libigl/cmake/libigl.cmake:100 (igl_download_eigen)
cmake/FindLIBIGL.cmake:36 (include)
CMakeLists.txt:12 (find_package)
Configuring incomplete, errors occurred!

I also cloned the libigl example project (https://github.com/libigl/libigl-example-project) and tried to generate it in CMake gui, but I got the same error.

I found this resource online: libigl/libigl#1018, which states that "your cmake installation doesn't find an installation of git. Make sure git is installed and is in your PATH. The CMake documentation states that you need to have git version 1.6.5 or above installed for this."
I checked my git version, it is 2.19.0. But I don't know how to check that git is in my PATH. Does anybody know how I can solve this issue?

Error while executing "pull base master" from the tutorial

While executing the following lines from "Cloning the Assignment Repository" part

cd gp21-'Your_Git_Username'
git remote add base https://github.com/eth-igl/GP2021-Assignments.git
git pull base master

I get the following git error message:

$ git pull base master
remote: Enumerating objects: 1572, done.
remote: Counting objects: 100% (1572/1572), done.
remote: Compressing objects: 100% (1190/1190), done.
remote: Total 1572 (delta 397), reused 1532 (delta 373), pack-reused 0
Receiving objects: 100% (1572/1572), 4.00 MiB | 7.74 MiB/s, done.
Resolving deltas: 100% (397/397), done.
From https://github.com/eth-igl/GP2021-Assignments

  • branch master -> FETCH_HEAD
  • [new branch] master -> base/master
    fatal: refusing to merge unrelated histories

Is it expected to be so?

[Assignment 1] Subdivision with Surface Edges

I've noticed that when subdividing plane.off, the result is a bit smaller due to the edge vertices getting pulled towards the average of their neighbors. Is this intended or are we expected to combat it?

Assignment 3: Task 1 Normals based on quadratic fitting derivative

Hey

I don't quite understand how to obtain the normal from the derivative of the quadratic bi-variate polynomial. I calculated the coefficients of the quadratic bi-variate polynomial just like in igl::principal_curvature. If I'm not mistaken, the derivative of the polynomial corresponds to:

    IGL_INLINE double du(double u, double v)
    {
      return 2.0*a()*u + b()*v + d();
    }

    IGL_INLINE double dv(double u, double v)
    {
      return 2.0*c()*v + b()*u + e();
    }

In my understanding we need the two vectors that span the tangent plane that we just fitted with the quadratic bi_variate polynomial and take their cross product to get the normal. To get these vectors we need to calculate the derivative of the polynomial in u direction and the derivative of the polynomial in v direction right? If I understand correctly the derivatives are two scalars. I'm not sure how to get the two vectors to calculate the normal...

Is the height function the polynomial we try to fit or am I wrong here aswell? (Sry I'm a bit confused :S)

Assignment 3: Task 1: Normals based on quadratic form

I have implemented the estimation of the normals based on the quadratic form. It looks almost good, except for some vertices:
image

I have already been debugging for some time, but I don't know where the bug could be hiding.
Do you have any idea where the error could be? Or do you have a hint how I could proceed with debugging?

Problem compiling libigl tutorials

Hello,
I am trying to do subtask 2.2 in assignment 1.
I have built the libigl tutorials, which are now in /libigl/tutorial. Specifically, I see the folders for tutorials 101-107, 201-206, 301-306, 401-407, 501, 507, 601-610, 701-715.
However, when I follow the instructions to compile the whole libigl library (which are: cd libigl; mkdir build; cd build; cmake ..; make -j2), and in particular when I execute "make -j2", I get the following exception at the end:

[ 99%] Linking CXX executable ../../../igl_tests [ 99%] Built target igl_tests /mnt/c/Users/valer/Desktop/gp21-jannelliv/libigl/external/eigen/Eigen/src/Core/AssignEvaluator.h: In instantiation of ‘void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<bool, -1, -1>; Src = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<bool, bool>, const Eigen::Matrix<bool, -1, -1>, const Eigen::Matrix<bool, -1, -1> >; Func = Eigen::internal::assign_op<bool, int>]’: /mnt/c/Users/valer/Desktop/gp21-jannelliv/libigl/external/eigen/Eigen/src/Core/PlainObjectBase.h:732:41: required from ‘Derived& Eigen::PlainObjectBase<Derived>::_set_noalias(const Eigen::DenseBase<OtherDerived>&) [with OtherDerived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<bool, bool>, const Eigen::Matrix<bool, -1, -1>, const Eigen::Matrix<bool, -1, -1> >; Derived = Eigen::Matrix<bool, -1, -1>]’ /mnt/c/Users/valer/Desktop/gp21-jannelliv/libigl/external/eigen/Eigen/src/Core/PlainObjectBase.h:816:7: required from ‘void Eigen::PlainObjectBase<Derived>::_init1(const Eigen::DenseBase<ElseDerived>&) [with T = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<bool, bool>, const Eigen::Matrix<bool, -1, -1>, const Eigen::Matrix<bool, -1, -1> >; OtherDerived = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<bool, bool>, const Eigen::Matrix<bool, -1, -1>, const Eigen::Matrix<bool, -1, -1> >; Derived = Eigen::Matrix<bool, -1, -1>]’ /mnt/c/Users/valer/Desktop/gp21-jannelliv/libigl/external/eigen/Eigen/src/Core/Matrix.h:294:31: required from ‘Eigen::Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols>::Matrix(const T&) [with T = Eigen::CwiseBinaryOp<Eigen::internal::scalar_sum_op<bool, bool>, const Eigen::Matrix<bool, -1, -1>, const Eigen::Matrix<bool, -1, -1> >; _Scalar = bool; int _Rows = -1; int _Cols = -1; int _Options = 0; int _MaxRows = -1; int _MaxCols = -1]’ /mnt/c/Users/valer/Desktop/gp21-jannelliv/libigl/external/pybind11/include/pybind11/operators.h:122:1: required from ‘static B pybind11::detail::op_impl<(pybind11::detail::op_id)0, (pybind11::detail::op_type)0, B, L, R>::execute_cast(const L&, const R&) [with B = Eigen::Matrix<bool, -1, -1>; L = Eigen::Matrix<bool, -1, -1>; R = Eigen::Matrix<bool, -1, -1>]’ /mnt/c/Users/valer/Desktop/gp21-jannelliv/libigl/external/pybind11/include/pybind11/operators.h:71:28: required from ‘void pybind11::detail::op_<id, ot, L, R>::execute_cast(Class&, const Extra& ...) const [with Class = pybind11::class_<Eigen::Matrix<bool, -1, -1> >; Extra = {}; pybind11::detail::op_id id = (pybind11::detail::op_id)0; pybind11::detail::op_type ot = (pybind11::detail::op_type)0; L = pybind11::detail::self_t; R = pybind11::detail::self_t]’ /mnt/c/Users/valer/Desktop/gp21-jannelliv/libigl/external/pybind11/include/pybind11/pybind11.h:1109:9: required from ‘pybind11::class_<type_, options>& pybind11::class_<type_, options>::def_cast(const pybind11::detail::op_<id, ot, L, R>&, const Extra& ...) [with pybind11::detail::op_id id = (pybind11::detail::op_id)0; pybind11::detail::op_type ot = (pybind11::detail::op_type)0; L = pybind11::detail::self_t; R = pybind11::detail::self_t; Extra = {}; type_ = Eigen::Matrix<bool, -1, -1>; options = {}]’ /mnt/c/Users/valer/Desktop/gp21-jannelliv/libigl/python/modules/py_vector.cpp:213:10: required from ‘pybind11::class_<Type> bind_eigen_2(pybind11::module&, const char*) [with Type = Eigen::Matrix<bool, -1, -1>]’ /mnt/c/Users/valer/Desktop/gp21-jannelliv/libigl/python/modules/py_vector.cpp:644:85: required from here /mnt/c/Users/valer/Desktop/gp21-jannelliv/libigl/external/eigen/Eigen/src/Core/AssignEvaluator.h:834:3: error: static assertion failed: YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY python/CMakeFiles/pyigl.dir/build.make:86: recipe for target 'python/CMakeFiles/pyigl.dir/modules/py_vector.cpp.o' failed make[2]: *** [python/CMakeFiles/pyigl.dir/modules/py_vector.cpp.o] Error 1 CMakeFiles/Makefile2:5174: recipe for target 'python/CMakeFiles/pyigl.dir/all' failed make[1]: *** [python/CMakeFiles/pyigl.dir/all] Error 2 Makefile:162: recipe for target 'all' failed make: *** [all] Error 2

I tried building in the python folder and it seems to go smoothly, but I still get this exception. Also, like I said, I do get the tutorial folders, so I don't know if this is an issue.

Thanks in advance for your help! :)

cannot build assignment 2 in windows

Dear tutors,
I cannot build assignment 2 properly in windows. I used cmake-gui, then run it in visual studio. Here is the error I get.
image
image

I'm so sorry that I'm not a c++ programmer so my question might be silly... I also struggled a lot in building assignment 1 ( but it somehow works... magically) I look forward to hearing from you and thank you for your answer in advance!

Assignment 2: deadline

On https://igl.ethz.ch/teaching/shape-modeling/sm2021/#ex2 it says that assignment 2 is due on 16.04.2021, 11:00 but in the readme at the root of this repo it says that the assignment 2 deadline is on 31.03.2021 11:00

I know from the email that the demo session has been moved but given the above information I'm not sure if the deadline for the assignment itself has moved as well or not.

Thanks for any clarifications.

Assignment1: facet_components

I have an error with facet_components function, I think it can return a int type of the number of components, but I get an error,
what might be the problem?
image

Build/Download of external libraries stopped working

Since today I'm having trouble rebuilding the cmake projects for all Assignments.
Has there been a change from github not allowing fetches/pulls without usernames/passwords?
Because this works perfectly fine if I do the fetch manually with my github credentials

How could I fix this without greatly editing the according scripts?
Has this occured to anyone else?

-- Creating target: igl::opengl_glfw_imgui (igl_opengl_glfw_imgui) fatal: bad object bc6ac8b2aee0614debd940e45bc9cd0d9b355c86 fatal: HttpRequestException encountered. Fehler beim Senden der Anforderung. bash: /dev/tty: No such device or address error: failed to execute prompt script (exit code 1) fatal: could not read Username for 'https://github.com': No error CMake Error at C:/public/gp21-repo/libigl/external/.cache/imgui/imgui-download-prefix/tmp/imgui-download-gitupdate.cmake:55 (message): Failed to fetch repository 'https://github.com/ocornut/imgui.git'

Thanks

Assignment 1: Flipping Edge

What exactly does "flipping edge" mean in the last step in the last question? For the example figure it seems that the inner edges are dropped while the outer edges are kept. Do I just implement as such?

Assignment 2: Unexpected Constraint Points

image

I am trying to do task 1.1. It seems that for most points the results look okay but for some reason certain points aggregate on the y axis. Am I doing something wrong?

General: Amending after final commit

In the workflow section in the README it says that we should submit our final solution for each assignment with a certain commit message

git commit -m "Solution assignment X"
git push

If we want to add some changes afterwards (but before the deadline) can we still do that as long as we always append a final commit with the above commit message?

So in the case where multiple commits contain said message above for the same assignment, will you look for the latest commit that contains the message "Solution assignment X"?

Assignment 1: no member named 'rayStreamFilterFuncs'

When I follow the instructions in part 2.2 of Assignment 1, I get the following error when compiling the whole libigl library with this command: cd libigl; mkdir build; cd build; cmake ..; make -j2

/Users/lea/polybox/MasterFS21/ShapeModeling/gp21-LeaRe/libigl/external/embree/kernels/common/device.cpp:114:5: error: 

      no member named 'rayStreamFilterFuncs' in namespace 'embree::sse41'; did

      you mean simply 'rayStreamFilterFuncs'?

    SELECT_SYMBOL_DEFAULT_SSE42_AVX_AVX2_AVX512KNL_AVX512SKX(enabled_cpu_features,rayStreamFilterFuncs);

    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/Users/lea/polybox/MasterFS21/ShapeModeling/gp21-LeaRe/libigl/external/embree/kernels/common/../bvh/../common/isa.h:155:3: note: 

      expanded from macro

      'SELECT_SYMBOL_DEFAULT_SSE42_AVX_AVX2_AVX512KNL_AVX512SKX'

  SELECT_SYMBOL_DEFAULT(features,intersector)...

  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/Users/lea/polybox/MasterFS21/ShapeModeling/gp21-LeaRe/libigl/external/embree/kernels/common/../bvh/../common/isa.h:60:17: note: 

      expanded from macro 'SELECT_SYMBOL_DEFAULT'

  intersector = isa::intersector;

                ^~~~~

/Users/lea/polybox/MasterFS21/ShapeModeling/gp21-LeaRe/libigl/external/embree/kernels/common/../../common/sys/sysinfo.h:56:15: note: 

      expanded from macro 'isa'

#  define isa sse41

              ^

I am using MacOS 10.14.6
and cmake version 3.18.2

Does someone know how to fix this problem? I am not experienced with cmake and I did not find a working solution to this problem on the internet :(

Thank you in advance!

can't get assignment 2

I tried the code "git pull base master", and get
image
and still don't have assignment 2

What might be the problem?

I also tried the "git pull base master --allow-unrelated-histories", but still no assignment 2.
I then tried "git pull base master" again and even more problem...
image

I finally get the assignment 2 folder but still have problem and can't merge the file. what should I do?

Assignment 3, Gaussian curvature

Hi, I think I have done something wrong with my Gaussian curvature because my cow is always blue... However, I cannot find the problem. 😢 (my mean curvature works.. )
image

Eigen::VectorXd K;
igl::gaussian_curvature(V, F, K);
Eigen::SparseMatrix<double> M, Minv;
igl::massmatrix(V, F, igl::MASSMATRIX_TYPE_VORONOI, M);
igl::invert_diag(M, Minv);
K_Gaussian = (Minv * K).eval();

igl::jet(K_Gaussian, true, colors_per_vertex);
viewer.data().set_colors(colors_per_vertex);

Hope to hear from you! Thank you very much in advance

Assignment 1: Screenshots

Hi everyone

Since it is rather tedious to take that many screenshots I was hoping we could automate the process. There is a file "render_to_png.h" which seems to be doing just that. However, I am having troubles linking the igl::png library in the cmake file.

Does anyone know how to do that? I thought I could just do the following:
Add this option:
option(LIBIGL_WITH_PNG ON)
Add igl::png to the linked libraries:
target_link_libraries(${PROJECT_NAME} igl::core igl::opengl_glfw igl::opengl_glfw_imgui igl::png)

The cmake process cannot find igl::png. What can I do to build the project properly?

Also, if there is a better way to create an image of the rendered mesh, please feel free to redirect me.

Thanks for any help.

Assignment3: igl::gaussian_curvature vs igl::principal_curvature

We learnd that the gaussian curvature is the product of the two principal curvatures k1 and k2. The igl implementation of the gaussian curvature states in the header file gaussian_curvature.h

// Compute discrete local integral gaussian curvature (angle deficit, without
// averaging by local area).

So I ran the following small piece of code on the torus.obj file. It computes the gaussian curvature with averaging by the local area and compares it with the gaussian curvature obtained from igl::principal_curvature.

Eigen::SparseMatrix<double> M, Minv;
igl::gaussian_curvature(V, F, K_Gaussian);
igl::massmatrix(V, F, igl::MASSMATRIX_TYPE_DEFAULT, M);
igl::invert_diag(M, Minv);
K_Gaussian = (Minv*K_Gaussian).eval();

Eigen::MatrixXd PD1, PD2;
Eigen::VectorXd PV1, PV2;
igl::principal_curvature(V, F, PD1, PD2, PV1, PV2);

cout << "error: " << (K_Gaussian - PV1.cwiseProduct(PV2)).norm() << endl;

The error is quite significant (error: 44.9984) so I was wondering why these two methods do not give the same result? I'm not sure what is meant with "angle deficit" in the documentation, maybe it has something to do with it.

Assignment 2: Grid outliers

I'm testing my implementation of task 2/3 on the bunny point cloud. For degrees 0 and 1 the reconstruction works well, but for degree 2 there are outliers (gridpoints outside the bunny with the wrong sign) which cause artifacts to appear when MarchingCubes is applied.
Since there also seem to be a lot of outlying points on the grid in exercises session 2's example (Slide 25), I was wondering if this is actually expected.

bunny_poly2_grid
bunny_poly2_re

Assignment 2: Additional Task (4)

For the additional task, where we need to use MeshLab to compute a mesh with poisson reconstruction and with RIMLS, do we have to explain in the report how those methods work, or is it enough to provide screenshots and compare the results with our MLS reconstruction?

Assignment 3: igl functions

Hey

Wanted to ask if we're allowed to use igl's doublearea(), octree() and knn() functions for assignment 3?

Assignment 1: Connected Components

When reporting the number of faces of each component, is it enough to have a list with all the numbers, or do we need to indicate somehow which number belongs to which component?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.