2011-09-22 2 views
0

어떻게 든 자동으로 기존 메쉬의 빌드를 계속할 수 있습니까? 이것을 어떻게 할 수 있습니까?
예를 들어 보겠습니다. 난 직육면체가 있고 런타임에 더 큰 직육면체를 갖고 싶습니다. 직육면체는 또한 약간의 텍스처를 가지며 입방체의 새로운 부분은 새로운 텍스처를 가져야합니다. 텍스쳐링 때문에 스케일링이 충분하지 않다고 생각합니다. 어떻게 런타임에 입방체에 텍스처를 추가 할 수 있습니까?iOS OpenGL 런타임 텍스처링

자습서/프레임 워크 및이 문제를 해결하는 데 도움이 될만한 사항을 알려주십시오.


편집 : @datenwolf 대답에 따라 :
나는 같은 메시에게 더 많은 시간을 재사용으로 직육면체의 형태를 확장 할 수 있다고 생각합니다.
런타임에 무언가를 텍스처링하는 방법을 알고 있습니까?


Edit2가이 :
그래서 좀 더 구체적인 문제 : 나는 집, 한 층 간단한 입방 형을 건축하고 싶습니다. 그리고 얼마 후 다른 층을 추가하고 싶습니다. 나는 쉬운 일이라고 생각하지만 이전에는 이런 종류의 문제로 일 해본 적이 없다.

답변

3

OpenGL은 장면 그래프가 아닙니다. 그것은 단순히 드로잉 API입니다. 화면에 표시되는 내용은 내부적으로 표현되지 않습니다. 무언가를 그린 후에 OpenGL이 남아있는 유일한 것은 프레임 버퍼의 내용입니다.

원하는 것을 변경하려면 프레임 버퍼를 지우고 조정이 완료된 장면을 다시 그립니다. Quation 편집 2에 관한


: 난 단지 내 첫 번째 문을 되풀이 할 수는 OpenGL 장면 그래프 아닌, 즉 당신이 그것으로 장면을 "구축"하지 않습니다. 지오메트리 데이터 (정점)와 샘플링 데이터 (이미지/텍스처)가 있습니다.

그런 다음 OpenGL에게 형상 데이터에서 삼각형, 선 또는 점을 만들고 조명 계산, 단색 및 질감 샘플링 데이터에서 파생 된 값으로 생성 된 단편 (= 픽셀)을 채우도록 지시하는 도면 함수가 있습니다. .

OpenGL에서는 장면을 변경하지 않습니다! 장면을 변경하려면 OpenGL에 제공된 형상 데이터를 변경하고 다른 드로잉 작업은을 의미합니다.

이미 말한 것처럼 OpenGL을 사용하여 장면/지오메트리를 "빌드"하지 마십시오. 블렌더, 마야, 3DS Max, Cinema 4D 또는 이와 유사한 3D 모델링 프로그램을 사용하여 렌더링 프로그램에서 액세스 할 수있는 형식으로 모델을 일부 데이터 저장소 (파일, 웹 리소스, 데이터베이스 항목 등)에 저장하십시오. 변경된 모델은 다른 저장 위치에 저장되고로드되며 새 모델을 그리는 변경 사항을 나타냅니다.

지오메트리를 빌드하는 또 다른 방법은 기본 빌딩 블록 (평면, 구, 원뿔, 닫힌 서페이스 패치) 및 논리 연산 (유니온, 차이점 등)에서 장면을 작성하는 CSG (Constructive (Solid) Geometry) 교차, 제외). 그러나 OpenGL은 지오메트리 처리 라이브러리가 아닙니다.

캔버스 (= 프레임 버퍼), 스텐실, 가위, 콜라주 이미지 (텍스처), '도형'(= 프리미티브, 즉점, 선, 삼각형)과 "스마트 브러쉬"(쉐이더)가 있습니다. 흥미롭게도 스텐실 버퍼를 여러 번 사용하면 화면 공간, 솔리드에서 이미지 기반 논리 연산을 수행 할 수 있습니다. 그러나 이것은 실제로 이미지 기반 효과이며 지오메트리 자체를 처리하지 않습니다.

+0

답변에 따라 질문을 편집했습니다. 제 편집 내용을 확인하십시오. –

+0

@InfinitePossibilities : 여전히 실제 문제를 이해할 수 없습니다. 조정 된 메쉬로 큐브를 그립니다. 하지만 어쩌면 당신의 질문을 잘못 해석했을 수도 있습니다. 당신은 큐브가 어떻게 보이고 어떻게 수정되는지에 대해 두 가지 스케치를 그립니다. – datenwolf

+0

다른 편집을 추가하겠습니다. –

관련 문제