필자는 모델의 "표면"을 얻을 수있는 거대한 FEM 모델, 즉 FEM 모델의 표면을 정의하는 요소와 정점을 말합니다. 음모를 꾸미기 위해 (좋은 음모는 항상 승리합니다!) 멋지게 음모를 꾸미려고합니다. 나의 접근 방식은Matlab은 잘못된 표면 법선을 계산합니까?
lungs.Vertex=vtx;
lungs.Faces=fcs;
patch(lungs,'facecolor','r','edgecolor','none')
참고를 사용하는 것입니다 :이 4D 데이터이며, 다른 FEM은 가장자리가 그려 경우 사용자가 현기증이 될 것입니다, 다른 삼각 측량을 가지고있는 나는, edgecolor 없음을 필요가 없습니다.
camlight; camlight(-80,-10); lighting phong;
그러나 다시, 이것은 완전히 정확하지 않습니다 :
그러므로 나는 ligthing를 사용하기로 결정했다. 실제로 그것은 패치 음수가 Matlab에 의해 정확하게 계산되지 않는 것으로 보입니다.내 추측은 어쩌면 패치는 항상 정의되지 않은 반 시계 방향 및 따라서 일부 법선이 잘못된 방향으로 가고 있다는 것입니다. 그러나 그것은 확인하기가 쉽지 않습니다.
누구나 비슷한 문제가 있거나 멋진 표면을 여기에 표시하려면이 문제를 어떻게 해결해야합니까? 모델 당신에게 바깥쪽으로 지향 법선을 제공하는 경우
나는 분명히 법선을 가지고 있지 않다. 문제가있다. 모든 법선이 "외부 지향적"이거나 "내부 지향적"이라면 어떤 문제도 나타나지 않을 것입니다. 단지 방향을 바꾸고 thors합니다. 그러나 (사진에서) 일부는 안쪽으로 가고 어떤 것은 바깥쪽으로 가며 결속을 잘못 만든 것처럼 보입니다. –
실제로 매우 흥미로운 기능. 그러나 나는 여전히 문제가 있습니다. 나는 "얼굴 법선"을 가지고 있지만 matlab은 ligthing을 설정하기 위해 "정점 법선"을 원한다. 이 접근법에 대해 어떻게 생각하세요? Vertexnormals = 평균 (facenormals_with_that_vertex)? –
나는 그것을 좋아했고 놀라운 결과를 얻었다. 고마워, 이건 아주 좋은 대답이다. –