提示コードですが.obj
ファイルの規模が大きい物をバイナリ化したいのですがその際にusemtl
の位置が所々異なる位置に配置されているためどのように頂点情報を作ったらいいかがわからないです。 v,vt,vn,f
の順番で来ますが僕の.obj
データはf
の途中でusemtl
が来ます
実現したい事
頂点データの塊ごとにマテリアル名をくっつけたいです。以下ような構造体がありそのmaterialName
変数にusemtl
のマテリアル名を格納して頂点ごとに管理してglDrawArray()
関数にセットして使いたいです。
cpp
1struct attribute 2{ 3glm::vec3 position; 4glm::vec2 uv; 5glm::vec3 normal; 6} 7 8struct vertex 9{ 10std::vector<attribute> attr; 11std::string materialName; 12} 13 14 15
パターン1
cpp
1f 62120/68167/65138 62121/68168/65139 59903/65980/62952 2f 62121/68168/65139 62122/68169/65140 59905/65982/62954 3f 62122/68169/65140 62123/68520/65483 59907/65984/62956 4f 62125/68170/65141 60303/66376/63348 60302/66372/63344 5f 60303/66376/63348 62125/68170/65141 62126/68172/65143 6f 60305/66377/63349 62126/68172/65143 62127/68173/65144 7usemtl Tifa_HairPin 8s off 9f 58166/68521/65484 58167/68522/65484 58181/68523/65484 10f 58184/68524/65485 58182/68525/65485 58183/68526/65485 11f 58176/68527/65486 58172/68528/65486 58173/68529/65486 12f 58172/68528/65487 58177/68530/65487 58171/68531/654
##### パターン2
vn -0.7048 -0.6334 0.3194 vn 0.4794 -0.2842 0.8303 vn -0.4794 -0.2842 0.8303 vn -0.4794 -0.2843 -0.8303 vn 0.4794 -0.2843 -0.8303 vn 0.4997 0.0330 -0.8656 vn 0.3817 -0.6454 0.6616 vn 0.7637 -0.6455 -0.0003 vn 0.3821 -0.6453 -0.6615 vn -0.3821 -0.6454 -0.6615 vn -0.7638 -0.6455 -0.0002 vn -0.3818 -0.6455 0.6615 vn 0.3959 0.6270 0.6709 vn 0.7786 0.6275 0.0070 vn -0.8662 0.0000 0.4997 vn 0.9072 0.0298 0.4196 vn -0.9072 -0.0299 -0.4197 usemtl Tifa_Accs s 1 f 62129/68747/65695 62163/68748/65696 62128/68749/65697 f 62130/68750/65698 62152/68751/65699 62129/68747/65695 f 62154/68752/65700 62130/68750/65698 62131/68753/65701 f 62155/68754/65702 62131/68753/65701 62132/68755/65703 f 62156/68756/65704 62132/68755/65703 62133/68757/65705 f 62157/68758/65706 62133/68757/65705 62134/68759/65707 f 62158/68760/65708 62134/68759/65707 62135/68761/65709 f 62159/68762/65710 62135/68761/65709
あなたの回答
tips
プレビュー