제목에 설명 된대로 삼각형 목록을 사용하여 BSpline 패치를 테셀레이션하려고합니다.삼각형 목록 (OpenGL)을 사용하여 BSpline 패치 테셀레이션
정확히 어떻게 보이는지 정면에서 본 내 패치 이미지입니다.
내 문제는이 효과를주는 패치의 후면입니다 :
당신은 삼각형의 이전 행이되고있는 새 행에 연결하는 볼 수 있듯이 그어진. 행의 끝 부분에 도달 할 때 인덱스 값을 1 씩 증가시키는 등의 문제를 피하기 위해 여러 가지 방법을 시도했습니다. 내가 찾을 수있는 유일한 빠른 수정은 각 행을 별도의 루프에 넣는 것입니다 (루프 행의 크기 때문에 루프 범위가 있음). 이는 직관적이지 않습니다.
void drawBSplinePatch1(std::vector<int>& sample_elements_out, const int samples)
{
for(int i = 0; i <= 379; i++)
{
// first triangle
sample_elements_out.push_back(i);
sample_elements_out.push_back(i + 1);
sample_elements_out.push_back(i + samples);
// second triangle
sample_elements_out.push_back(i + samples);
sample_elements_out.push_back(i + 1);
sample_elements_out.push_back(i + samples + 1);
}
}
왜 행과 열에 별도의 루프가있는 것이 직관적이지 않습니까? 나 한테 똑바로 들리는데 ...? 사람들이 당신의 질문을 이해하기를 원한다면 아마도 루프를 게시해야합니다 ... –
그것은 직관적이지 않습니다. 결국 하나의 파일에 허용되는 루프의 한계를 초과하는 100 개의 루프 이상으로 끝날 것입니다. . – user2484294
그래서 루프를 중첩하지 않았습니까? 이 정확히 두 개의 중첩 된 루프를 기대하고있다. 어쩌면 작업 버전의 일부도 게시 할 수 있습니다. 이렇게하면 사람들이 좀 더 간결한 형식으로 이것을 작성하는 방법을 보여줄 수 있습니다. 현재 코드에서는 행 분리를위한 올바른 인덱스를 추측하기가 어렵습니다. –