-
Notifications
You must be signed in to change notification settings - Fork 27
Description
What happened?
I was testing some code to read ppm files. This code would read the ppm file, use the xyz information in the file to create a mesh in xyz space, and use the normal information in the file to create lines in xyz space extending from the mesh. After hiding most of the mesh and most of the normals (in order to create a picture I could make sense of), I got this:

I noticed there were a number of discontinuities, which seemed to be located at the boundaries of the triangles from the original obj mesh that was used to create the ppm file.
I dug into the VC code, and in PPMGenerator.cpp came across the PhongNormal function, which contains the following lines:
return cv::normalize(
(1 - nUVW[0] - nUVW[1]) * nA + nUVW[1] * nB + nUVW[2] * nC);
This formula seems odd to me; I would have expected:
nUVW[0] * nA + nUVW[1] * nB + nUVW[2] * nC);
I'm not currently in a position to compile and run the VC code, so I cannot test whether my version would solve the discontinuous-normal problem. But in any case, I believe the discontinuous normals could be the cause of the "sharkbite" problem that was previously reported (bug #33).
Steps to reproduce
No response
Version
No response
How did you install the software?
None
On which operating systems have you experienced this issue?
- macOS
- Windows
- Linux
Relevant log output
No response
Code of Conduct
- I agree to follow this project's Code of Conduct