【Delphi】FireMonkey 군의 3D 모델 데이터를 보통으로 읽는다
9144 단어 델파이FireMonkeyFMXC++빌더programming
소개
FireMonkey는 Delphi/C++Builder의 GUI 애플리케이션 프레임워크입니다. 그 FireMonkey의 마스코트 (?)는 FireMonkey입니다 ... 정식 이름을 모릅니다 (w
FireMonkey 군의 3D 모델 데이터는
C:\Users\Public\Documents\Embarcadero\Studio\19.0\Samples\Object Pascal\Multi-Device Samples\User Interface\ModelViewer\FireMonkey
에 저장됩니다 (10.2.x Tokyo의 경우). 데이터 형식은 COLLADA(*.dae)입니다.
FireMonkey로 3D 모델 데이터 처리
TModel3D에서 모델 데이터를 읽는 방법은 다음과 같습니다.
TModel3D에서 모델 데이터를 읽는 방법은 다음과 같습니다.
...하지만 현재 버전에서 이렇게하면 오류가 발생합니다.
실제로 읽을 때 ...
뭐, 뭐든지 말하면 이 FireMonkey.DAE 의 텍스처가 TGA 형식인데, Delphi/C++Builder 가 TGA 에 대응하고 있지 않기 때문입니다.
이전 버전에서는 지원되지 않는 텍스처를 로드하지 않았으므로 오류가 발생하지 않았지만 텍스처가 없는 FireMonkey 군이 로드되었습니다.
대책
결론에서 말하면 텍스처를 TGA에서 PNG로 변환하면 됩니다. 소나무 t. 뿌리 T 등으로 변환할 수 있습니다.
네 개의 TGA 파일을 PNG 형식으로 변환한 후 FireMonkey.DAE를 텍스트 편집기에서 엽니다.
FireMonkey.DAE
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.0">
<asset>
<contributor>
<author></author>
<authoring_tool>FBX COLLADA exporter</authoring_tool>
<comments></comments>
</contributor>
<created>2011-06-15T11:43:03Z</created>
<modified>2011-06-15T11:43:03Z</modified>
<revision></revision>
<title></title>
<subject></subject>
<keywords></keywords>
<unit meter="0.010000"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_images>
<image id="Map__14_image-image" name="Map__14_image">
<init_from>file://M:\MORT\FireMonkey\Monkey\FinalTexture\Monkey_ambient.tga</init_from>
</image>
<image id="Map__13_image-image" name="Map__13_image">
<init_from>file://M:\MORT\FireMonkey\Monkey\FinalTexture\Monkey_diff.tga</init_from>
</image>
<image id="Map__12_image-image" name="Map__12_image">
<init_from>file://M:\MORT\FireMonkey\Monkey\FinalTexture\Monkey_nml.tga</init_from>
</image>
<image id="Map__15_image-image" name="Map__15_image">
<init_from>file://M:\MORT\FireMonkey\Monkey\FinalTexture\Monkey_eye.tga</init_from>
</image>
...
어쩌면 전체 경로로 작성된 파일 설명을 PNG로 다시 씁니다.
FireMonkey.DAE
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.0">
<asset>
<contributor>
<author></author>
<authoring_tool>FBX COLLADA exporter</authoring_tool>
<comments></comments>
</contributor>
<created>2011-06-15T11:43:03Z</created>
<modified>2011-06-15T11:43:03Z</modified>
<revision></revision>
<title></title>
<subject></subject>
<keywords></keywords>
<unit meter="0.010000"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_images>
<image id="Map__14_image-image" name="Map__14_image">
<init_from>Monkey_ambient.png</init_from>
</image>
<image id="Map__13_image-image" name="Map__13_image">
<init_from>Monkey_diff.png</init_from>
</image>
<image id="Map__12_image-image" name="Map__12_image">
<init_from>Monkey_nml.png</init_from>
</image>
<image id="Map__15_image-image" name="Map__15_image">
<init_from>Monkey_eye.png</init_from>
</image>
...
위의 수정을 수행하면 오류없이 텍스처로 읽을 수 있습니다.
결론
Delphi/C++ Builder 라이브러리에서 TGA 형식을 지원하면 좋겠다고 생각했습니다.
macOS라면 FireMonkey에서 TGA를 읽을 수 있으므로 동적으로 3D 모델을 읽어야 할지도 모릅니다.
카미노 감음의 애완 동물도 FireMonkey 군입니다만, 개인적으로는 이쪽의 3D 모델을 갖고 싶네요- (w
Reference
이 문제에 관하여(【Delphi】FireMonkey 군의 3D 모델 데이터를 보통으로 읽는다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ht_deko/items/b781bf678804e92370a5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)