質問編集履歴

1

文章を修正しました。

2022/01/04 12:28

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,50 @@
1
1
  提示コードですが`.obj`ファイルの規模が大きい物をバイナリ化したいのですがその際に`usemtl`の位置が所々異なる位置に配置されているためどのように頂点情報を作ったらいいかがわからないです。 `v,vt,vn,f`の順番で来ますが僕の`.obj`データは`f`の途中で`usemtl`が来ます
2
+
3
+
4
+
5
+ ##### 実現したい事
6
+
7
+ 頂点データの塊ごとにマテリアル名をくっつけたいです。以下ような構造体がありその`materialName`変数に`usemtl`のマテリアル名を格納して頂点ごとに管理して`glDrawArray()`関数にセットして使いたいです。
8
+
9
+ ```cpp
10
+
11
+ struct attribute
12
+
13
+ {
14
+
15
+ glm::vec3 position;
16
+
17
+ glm::vec2 uv;
18
+
19
+ glm::vec3 normal;
20
+
21
+ }
22
+
23
+
24
+
25
+ struct vertex
26
+
27
+ {
28
+
29
+ std::vector<attribute> attr;
30
+
31
+ std::string materialName;
32
+
33
+ }
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+ ```
42
+
43
+
44
+
45
+
46
+
47
+
2
48
 
3
49
 
4
50