그래픽에서 OBJ 및 COLLADA와 같은보다 일반적인 텍스트 기반 형식이 필요하지 않도록 3D 에셋의 저장을 위해 사용자 지정 바이너리 파일 형식을 만드는 방법에 대한 이야기가 많이 있습니다. 런타임에 파싱해야합니다. 말이된다.바이너리로 저장하기 위해 데이터를 C 헤더로 변환
그러나이 간단한 파일의 실제 작성은 직렬화 또는 다른 방법 (일부는 C++에서 처리하지 못했을 수도 있음)을 포함하기 때문에 간단하지는 않습니다. 가장 최근의 변형을 제외하고는.
그러나 이러한 텍스트 기반 형식 중 하나를 C 스타일 헤더로 구문 분석하면 데이터가 float
또는 struct
선언으로 간단하게 구문 분석되는데이 데이터는 다음과 같이 이진 형식으로 컴파일됩니다. 나머지 앱. 즉, 구문 분석은 앱 외부에서, 스크립트에 의해 수행되며, 변환 단위가 헤더를 포함하므로 컴파일시 바이너리로의 변환이 처리됩니다.
제 생각이 맞고 실제로 이진 파일 형식을 만들고 그 경로로가는 것과 어떻게 비교할 수 있습니까?
다음과 같은 내용을 명확히 할 수 있습니까? "일반 C/C++ 파일을 사용합니다 (머리글은 고정되어 있으며 컴파일하기 전에 스크립트에 의해 채워진 데이터 구조의 전달 선언과 함께 사용됩니다)." C 헤더는 사실 C 파일입니다. 그렇지 않습니까?아니면 헤더 파일이 아닌 번역 단위로 데이터를 넣으라고 말하는 것입니까? 헤더 파일이 "고정"상태라는 것은 무엇을 의미합니까? – johnbakers
@SebbyJohanns 기술적으로 "번역 단위"에 이미 헤더가 포함되어 있으므로 용어를 오해했을 것입니다. 그가 말한 것은 재 컴파일 의존성을 줄이거 나 소스 파일을 외부 동적 라이브러리로 외부화하기 위해 헤더가 아닌 소스 파일에 데이터를 넣을 수 있다는 것입니다. – TC1
@SebbyJohanns 간단한 예를 들어 편집을 살펴보십시오. – dasblinkenlight