2009-02-04 10 views
0

일반적인 알고리즘을 사용하여 표준 다각형 메쉬에 텍스처 매핑을 구현할 때 y 축의 변형에 관련된 문제를 실행할 수 있습니다. 이 방향의 꼭지점 대신에 일정한 높이의 쿼드 행이 따라 가며 x 축을 따라 독립적으로 늘릴 수 있습니다.수직 변형을받는 다각형 메쉬의 일정한 수평 밴드 높이

메쉬의 정점을 정의 할 때 각 행이 아래쪽 꼭지점과 위쪽 꼭지점을 모두 정의하므로 하나의 행에 대한 꼭지점의 위쪽 행이 위에있는 행의 꼭지점의 아래쪽 행을 공유하기 때문에 실행 중입니다. 그것.

메쉬를 x 축 또는 z 축을 따라 변형하는 것이 좋지만이 점을 고려하지 않고 y 축을 따라 메쉬를 변형하면 쿼드 행이 함께 작동 함을 알 수 있습니다 독립적 인 지점의 행 대신에 일정한 높이의 밴드로. y 축을 따라 메쉬의 변형이 보일 것입니다. 그러나 너비가 변경되지 않아 메쉬의 틈을 만들 수 있으므로 텍스쳐가 끊어지는 것을 볼 수 있습니다.

이 방식으로 만들어진 다각형 메쉬에 (x, y) 변위 맵 필터를 적용하는 최선의 방법에 대해 제안한 사람이 있습니까? 아니면 메쉬 정의에 대한 접근 방식을 근본적인 방식으로 변경해야합니까?

메시 생성 알고리즘의 예는 ZEUS OpenGL|ES Tutorial on Texture Mapping에 나와 있습니다.

감사합니다.

+0

나는 내가 사용했던 변위 필터로 나의 특별한 문제를 해결했다고 나는 믿는다. 원형이었고 임의의 점을 기반으로했기 때문에 위쪽/아래쪽 꼭지점을 이동하기 전에 Y 축 변위가 0보다 큰 지 <0인지 확인하지 않았습니다. 이제 찢어짐이 제거됩니다. –

답변

0

좋아요. 먼저 질문을 이해하면 알 수 있습니다.

정확하게 이해한다면 텍스쳐 매핑 된 패치를 렌더링하려고합니다. 그러나 패치를 수직 방향으로 늘리려고 할 때, 패치의 키가 커지면 메쉬 눈물과 다른 수평 밴드가 생겨 패치의 수평 밴드가 생깁니다.

맞습니까?

그렇다면 문제는 메쉬 생성 알고리즘에 있으며 텍스처 매핑 자체는 변경되지 않습니다. 제공된 링크에서 볼 수 있듯이 각 수평 밴드 사이의 꼭지점은 공유되지 않으며 중복됩니다. 따라서 상단 꼭지점 사이의 간격을 조정하면 하단 꼭지점이 다음 행 상단 꼭지점에 맞도록 밴드 높이를 조정해야합니다.

알고리즘의 기본 원리는 행 간격과 행 높이를 모두 조정하면됩니다. 원시적 인리스트가 어떻게 작동하는지 조금 더 이해하면 인덱스 된 프리미티브에 대해 배우고 싶어 할 것입니다. 실제로 모든 프리미티브에 대해 복제하지 않고 정점을 공유 할 수 있습니다.

희망이 있습니다.

+0

예, 질문을 올바르게 이해하고 통찰력을 주셔서 감사합니다. 이것은 나를 올바른 방향으로 향하게해야합니다. –

+0

또한, 이것은 OpenGL ES 1.1 (iPhone) 참고를 사용하고 있습니다 ... –