質問編集履歴

2

文章を修正

2021/10/19 08:15

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -84,7 +84,7 @@
84
84
 
85
85
  glBindBuffer(GL_ARRAY_BUFFER, vbo);
86
86
 
87
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vio);
87
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, eao);
88
88
 
89
89
 
90
90
 
@@ -128,7 +128,7 @@
128
128
 
129
129
 
130
130
 
131
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
131
+
132
132
 
133
133
  glGenTextures(1, &textureID); //テクスチャIDの生成
134
134
 
@@ -136,6 +136,10 @@
136
136
 
137
137
 
138
138
 
139
+ glEnable(GL_TEXTURE_2D);
140
+
141
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
142
+
139
143
 
140
144
 
141
145
  //テクスチャ生成
@@ -158,11 +162,11 @@
158
162
 
159
163
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
160
164
 
161
- //glGenerateMipmap(GL_TEXTURE_2D);
165
+ glGenerateMipmap(GL_TEXTURE_2D);
162
-
163
-
164
-
165
- /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
166
+
167
+
168
+
169
+
166
170
 
167
171
 
168
172
 
@@ -190,7 +194,7 @@
190
194
 
191
195
  glBindBuffer(GL_ARRAY_BUFFER, vbo);
192
196
 
193
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vio);
197
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, eao);
194
198
 
195
199
  glBindTexture(GL_TEXTURE_2D, textureID); //IDバインド
196
200
 
@@ -198,11 +202,11 @@
198
202
 
199
203
  glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(GLfloat) * 8 * obj.vertex.size(), obj.vertex.data());
200
204
 
201
- ////////////////////////////////////////////////////////////////////////////////////////////////////
205
+
202
206
 
203
207
  glActiveTexture(GL_TEXTURE0); //テクスチャ有効
204
208
 
205
- ////////////////////////////////////////////////////////////////////////////////////////////////////
209
+
206
210
 
207
211
  //Transform
208
212
 
@@ -270,10 +274,20 @@
270
274
 
271
275
 
272
276
 
273
- std::vector<float> vertexIndex;
277
+ std::vector<int> vertexIndex;
278
+
279
+ std::vector<int> uvIndex;
280
+
281
+ std::vector<int> normalIndex;
282
+
283
+
274
284
 
275
285
  std::vector<glm::vec3> vertex;
276
286
 
287
+ std::vector<glm::vec2> uv;
288
+
289
+ std::vector<glm::vec3> normal;
290
+
277
291
 
278
292
 
279
293
  FILE *file = fopen(fileName, "r");
@@ -324,7 +338,7 @@
324
338
 
325
339
  //vertex.push_back(vert);
326
340
 
327
- obj.vertex.push_back(vert);
341
+ vertex.push_back(vert);
328
342
 
329
343
  }
330
344
 
@@ -338,7 +352,11 @@
338
352
 
339
353
  fscanf(file, "%f %fn", &u.x, &u.y);
340
354
 
355
+ std::vector<int> vertexIndex;
356
+
357
+
358
+
341
- obj.uv.push_back(u);
359
+ uv.push_back(u);
342
360
 
343
361
  }
344
362
 
@@ -352,7 +370,7 @@
352
370
 
353
371
  fscanf(file, "%f %f %fn", &norm.x, &norm.y, &norm.z);
354
372
 
355
- obj.normal.push_back(norm);
373
+ normal.push_back(norm);
356
374
 
357
375
  }
358
376
 
@@ -388,27 +406,45 @@
388
406
 
389
407
 
390
408
 
391
- obj.vertexIndex.push_back(v[0] - 1);
409
+ obj.vertexIndex.push_back(v[0]);
392
-
410
+
393
- obj.vertexIndex.push_back(v[1] - 1);
411
+ obj.vertexIndex.push_back(v[1]);
394
-
412
+
395
- obj.vertexIndex.push_back(v[2] - 1);
413
+ obj.vertexIndex.push_back(v[2]);
414
+
415
+
416
+
396
-
417
+ //obj.uvIndex.push_back(u[0]);
418
+
397
-
419
+ //obj.uvIndex.push_back(u[1]);
420
+
398
-
421
+ //obj.uvIndex.push_back(u[2]);
422
+
423
+
424
+
399
- obj.uvIndex.push_back(u[0]);
425
+ uvIndex.push_back(u[0]);
400
-
426
+
401
- obj.uvIndex.push_back(u[1]);
427
+ uvIndex.push_back(u[1]);
402
-
428
+
403
- obj.uvIndex.push_back(u[2]);
429
+ uvIndex.push_back(u[2]);
404
-
405
-
406
-
430
+
431
+
432
+
433
+
434
+
407
- obj.normalIndex.push_back(n[0]);
435
+ normalIndex.push_back(n[0]);
408
-
436
+
409
- obj.normalIndex.push_back(n[1]);
437
+ normalIndex.push_back(n[1]);
410
-
438
+
411
- obj.normalIndex.push_back(n[2]);
439
+ normalIndex.push_back(n[2]);
440
+
441
+
442
+
443
+ //obj.normalIndex.push_back(n[0]);
444
+
445
+ //obj.normalIndex.push_back(n[1]);
446
+
447
+ //obj.normalIndex.push_back(n[2]);
412
448
 
413
449
  }
414
450
 
@@ -416,27 +452,51 @@
416
452
 
417
453
  }
418
454
 
419
- /*
455
+
420
-
456
+
421
- for (int i = 0; i < vertexIndex.size(); i++)
457
+ for( unsigned int i = 0; i < vertexIndex.size(); i++ )
422
458
 
423
459
  {
424
460
 
461
+
462
+
463
+ // Get the indices of its attributes
464
+
425
- int vert = vertexIndex[i];
465
+ unsigned int v = vertexIndex[i];
466
+
426
-
467
+ unsigned int u = uvIndex[i];
468
+
427
-
469
+ unsigned int n = normalIndex[i];
470
+
471
+
472
+
428
-
473
+ // Get the attributes thanks to the index
474
+
475
+ glm::vec3 ve = vertex[ v - 1 ];
476
+
477
+ glm::vec2 uu = uv[ u - 1 ];
478
+
479
+ glm::vec3 no = normal[ n - 1 ];
480
+
481
+
482
+
483
+ // Put the attributes in buffers
484
+
429
- obj.vertex.push_back(vertex[vert - 1]);
485
+ obj.vertex.push_back(ve);
486
+
430
-
487
+ obj.uv.push_back(uu);
488
+
431
- // printf("%f %f %f \n", obj.vertex.at(i).x, obj.vertex.at(i).y, obj.vertex.at(i).z);
489
+ obj.normal .push_back(no);
432
-
490
+
491
+
492
+
433
- }
493
+ }
434
-
435
-
436
-
437
- //printf("%d\n\n",obj.vertex.size());
494
+
438
-
439
- */
495
+
496
+
497
+
498
+
499
+
440
500
 
441
501
  attribute = obj;
442
502
 
@@ -444,4 +504,6 @@
444
504
 
445
505
 
446
506
 
507
+
508
+
447
509
  ```

1

文章を修正

2021/10/19 08:15

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -14,6 +14,12 @@
14
14
 
15
15
 
16
16
 
17
+ ##### Gtihub
18
+
19
+ [https://github.com/Shigurechan/GL](https://github.com/Shigurechan/GL)
20
+
21
+
22
+
17
23
  ![イメージ説明](059b43180eb5dcbce6c0aea8c649fa53.png)
18
24
 
19
25
  ![イメージ説明](455a91e17b4b0b0d5b452d01c1b276ac.png)