質問編集履歴

6

文章を修正

2021/10/15 10:59

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- opengl モデルが描画されない原因が知りたい。
1
+ opengl 頂点座標は正しいのに描画されない原因が知りたい。
test CHANGED
File without changes

5

質問文を修正提示コードを追加

2021/10/15 10:59

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  カメラの視点を動かして上下左右に動かし描画されているかどうかを確認
14
14
 
15
-
15
+ デバッグ表示部のコードで上が頂点座標、下が回転、平行移動、スケール。した後の頂点座標
16
16
 
17
17
 
18
18
 
@@ -72,9 +72,41 @@
72
72
 
73
73
  1.000000 1.000000 -1.000000
74
74
 
75
- 18
75
+ 7.500000 10.000000 59.801193 60.000000
76
+
76
-
77
+ -7.500000 10.000000 59.801193 60.000000
78
+
77
-
79
+ -7.500000 10.000000 39.800797 40.000000
80
+
81
+ 7.500000 -10.000000 39.800797 40.000000
82
+
83
+ 7.500000 10.000000 39.800797 40.000000
84
+
85
+ -7.500000 10.000000 39.800797 40.000000
86
+
87
+ -7.500000 -10.000000 39.800797 40.000000
88
+
89
+ -7.500000 10.000000 39.800797 40.000000
90
+
91
+ -7.500000 10.000000 59.801193 60.000000
92
+
93
+ -7.500000 -10.000000 59.801193 60.000000
94
+
95
+ 7.500000 -10.000000 59.801193 60.000000
96
+
97
+ 7.500000 -10.000000 39.800797 40.000000
98
+
99
+ 7.500000 -10.000000 59.801193 60.000000
100
+
101
+ 7.500000 10.000000 59.801193 60.000000
102
+
103
+ 7.500000 10.000000 39.800797 40.000000
104
+
105
+ -7.500000 -10.000000 59.801193 60.000000
106
+
107
+ -7.500000 10.000000 59.801193 60.000000
108
+
109
+ 7.500000 10.000000 59.801193 60.000000
78
110
 
79
111
 
80
112
 

4

文章を修正

2021/10/15 10:12

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  正射型による2D描画できている
12
12
 
13
-
13
+ カメラの視点を動かして上下左右に動かし描画されているかどうかを確認
14
14
 
15
15
 
16
16
 
@@ -510,25 +510,13 @@
510
510
 
511
511
  ```
512
512
 
513
- #include "../header/FrameWork.hpp"
514
-
515
- #include "../header/Resource.hpp"
516
-
517
-
518
-
519
- #include <iostream>
520
-
521
- #include "../header/Camera.hpp"
522
-
523
-
524
-
525
513
 
526
514
 
527
515
  int main()
528
516
 
529
517
  {
530
518
 
531
- FrameWork::Init(glm::ivec2(48 * 26, 48 * 18), glm::ivec2(4,2), "FrameWork"); // 初期化
519
+ FrameWork::Init(glm::ivec2(800, 600), glm::ivec2(4,2), "FrameWork"); // 初期化
532
520
 
533
521
  FrameWork::Camera::Init(); //カメラ初期化
534
522
 
@@ -542,6 +530,12 @@
542
530
 
543
531
 
544
532
 
533
+ float y = 0;
534
+
535
+ float x = 0;
536
+
537
+
538
+
545
539
  while (*FrameWork::windowContext)
546
540
 
547
541
  {
@@ -550,7 +544,85 @@
550
544
 
551
545
 
552
546
 
547
+
548
+
549
+
550
+
551
+ if(FrameWork::windowContext->getKeyInput(GLFW_KEY_LEFT) > (short)0)
552
+
553
+ {
554
+
555
+ x += 0.01;
556
+
557
+ printf("left\n");
558
+
559
+ printf("%f , %f \n",x,y);
560
+
561
+
562
+
563
+ }
564
+
565
+ else if(FrameWork::windowContext->getKeyInput(GLFW_KEY_RIGHT) > (short)0)
566
+
567
+ {
568
+
569
+ x += -0.01;
570
+
571
+ printf("right\n");
572
+
573
+ printf("%f , %f \n",x,y);
574
+
575
+
576
+
577
+ }
578
+
579
+
580
+
581
+
582
+
583
+
584
+
585
+ if(FrameWork::windowContext->getKeyInput(GLFW_KEY_UP) > (short)0)
586
+
587
+ {
588
+
589
+ y += 0.01;
590
+
591
+ printf("up\n");
592
+
593
+ printf("%f , %f \n",x,y);
594
+
595
+
596
+
597
+
598
+
599
+ }
600
+
601
+ else if(FrameWork::windowContext->getKeyInput(GLFW_KEY_DOWN) > (short)0)
602
+
603
+ {
604
+
605
+ y += -0.01;
606
+
607
+ printf("down\n");
608
+
609
+ printf("%f , %f \n",x,y);
610
+
611
+
612
+
613
+ }
614
+
615
+
616
+
617
+
618
+
619
+
620
+
621
+
622
+
623
+
624
+
553
- FrameWork::Camera::setLook(glm::vec3(0,0,-1));
625
+ FrameWork::Camera::setLook(glm::vec3(x,y,-1));
554
626
 
555
627
  FrameWork::Camera::setPosition(glm::vec3(0,0,50));
556
628
 
@@ -570,8 +642,6 @@
570
642
 
571
643
 
572
644
 
573
-
574
-
575
645
  FrameWork::windowContext->Wait();
576
646
 
577
647
  FrameWork::windowContext->SwapBuffers();

3

提示コードを追加

2021/10/15 08:13

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -363,3 +363,235 @@
363
363
  }
364
364
 
365
365
  ```
366
+
367
+
368
+
369
+ ##### Object.cpp
370
+
371
+ ```
372
+
373
+ FrameWork::D3::Object::Object(ObjFile o) : Render()
374
+
375
+ {
376
+
377
+ obj = o; //オブジェクトファイル
378
+
379
+
380
+
381
+ shader->Input(FrameWork::LoadShader("Shader/3D/BasicMono_3D.vert")->data(), FrameWork::LoadShader("Shader/3D/BasicMono_3D.frag")->data());
382
+
383
+
384
+
385
+
386
+
387
+ // printf("%d\n",obj.vertex.size());
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+ //頂点
398
+
399
+ GLint attrib = shader->getAttribLocation("vertexPosition");
400
+
401
+ glEnableVertexAttribArray(attrib);
402
+
403
+ glBufferData(GL_ARRAY_BUFFER, obj.vertex.size() * sizeof(VertexAttribute), obj.vertex.data(), GL_STATIC_DRAW);
404
+
405
+ glVertexAttribPointer(attrib, 1, GL_FLOAT, GL_FALSE, 3 * sizeof(GLfloat), (GLvoid *)0);
406
+
407
+ shader->setBindAttribLocation("vertexPosition");
408
+
409
+
410
+
411
+
412
+
413
+
414
+
415
+ //バインド解除
416
+
417
+ glBindVertexArray(0);
418
+
419
+ glBindBuffer(GL_ARRAY_BUFFER, 0);
420
+
421
+
422
+
423
+ }
424
+
425
+
426
+
427
+ void FrameWork::D3::Object::Renderer()
428
+
429
+ {
430
+
431
+ shader->setEnable();
432
+
433
+
434
+
435
+ glBindVertexArray(vao);
436
+
437
+ glBindBuffer(GL_ARRAY_BUFFER, vbo);
438
+
439
+ glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(VertexAttribute) * obj.vertex.size(), obj.vertex.data());
440
+
441
+
442
+
443
+ //Transform
444
+
445
+ setPosition(glm::vec3(0,0,-50)); //座標
446
+
447
+ setScale(glm::vec3(100,100,100)); //スケール
448
+
449
+ setRotate(glm::vec3(0,0,0),0); //回転
450
+
451
+
452
+
453
+ //描画
454
+
455
+ shader->setUniformMatrix4fv("uTranslate",getMatTranslation());
456
+
457
+ shader->setUniformMatrix4fv("uRotate", getMatRotate());
458
+
459
+ shader->setUniformMatrix4fv("uScale", getMatScale());
460
+
461
+ shader->setUniform4f("uFragment", GetGlColor(glm::vec4(0,255,0,255)));
462
+
463
+ shader->setUniformMatrix4fv("uViewProjection", FrameWork::Camera::getViewProjection());
464
+
465
+
466
+
467
+
468
+
469
+ glDrawArrays(GL_TRIANGLES, 0, obj.vertex.size()); //描画
470
+
471
+
472
+
473
+ //バインド解除
474
+
475
+ glBindVertexArray(0);
476
+
477
+ glBindBuffer(GL_ARRAY_BUFFER, 0);
478
+
479
+
480
+
481
+ shader->setDisable();
482
+
483
+ }
484
+
485
+
486
+
487
+
488
+
489
+
490
+
491
+ FrameWork::D3::Object::~Object()
492
+
493
+ {
494
+
495
+
496
+
497
+ }
498
+
499
+
500
+
501
+
502
+
503
+
504
+
505
+ ```
506
+
507
+
508
+
509
+ ##### Main.cpp
510
+
511
+ ```
512
+
513
+ #include "../header/FrameWork.hpp"
514
+
515
+ #include "../header/Resource.hpp"
516
+
517
+
518
+
519
+ #include <iostream>
520
+
521
+ #include "../header/Camera.hpp"
522
+
523
+
524
+
525
+
526
+
527
+ int main()
528
+
529
+ {
530
+
531
+ FrameWork::Init(glm::ivec2(48 * 26, 48 * 18), glm::ivec2(4,2), "FrameWork"); // 初期化
532
+
533
+ FrameWork::Camera::Init(); //カメラ初期化
534
+
535
+
536
+
537
+ FrameWork::ObjFile file;
538
+
539
+ FrameWork::D3::LoadObj("Model/test.obj",file);
540
+
541
+ FrameWork::D3::Object object(file);
542
+
543
+
544
+
545
+ while (*FrameWork::windowContext)
546
+
547
+ {
548
+
549
+ FrameWork::windowContext->FrameUpdate(glm::vec4(0,0,0,255));
550
+
551
+
552
+
553
+ FrameWork::Camera::setLook(glm::vec3(0,0,-1));
554
+
555
+ FrameWork::Camera::setPosition(glm::vec3(0,0,50));
556
+
557
+
558
+
559
+
560
+
561
+ object.Renderer();
562
+
563
+
564
+
565
+
566
+
567
+
568
+
569
+
570
+
571
+
572
+
573
+
574
+
575
+ FrameWork::windowContext->Wait();
576
+
577
+ FrameWork::windowContext->SwapBuffers();
578
+
579
+ }
580
+
581
+
582
+
583
+
584
+
585
+
586
+
587
+
588
+
589
+
590
+
591
+ return 0;
592
+
593
+ }
594
+
595
+
596
+
597
+ ```

2

文章を修正

2021/10/15 06:51

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,21 +1,87 @@
1
- 提示コードですが、 ojbファイルをロードして描画させたいのですがモデルが表示されません。なぜでしょうか?正射型による2D描画できているため。カメラの問題だとおもうのですが提示サイト通りやっても描画されません。.objファイルに頂点数は18で値も確認しました。
1
+ 提示コードですが、 objファイルをロードして描画させたいのですがモデルが表示されません。カメラの問題だとうのですが提示サイト通りやっても描画されません。
2
+
3
+
4
+
5
+
6
+
2
-
7
+ ##### 確認した事
8
+
3
-
9
+ 頂点データを格納している変数の中身を表示して確認
10
+
4
-
11
+ 正射型による2D描画できている
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
5
-
21
+ ##### Github
6
-
22
+
7
- Github: https://github.com/Shigurechan/GL
23
+ [https://github.com/Shigurechan/GL](https://github.com/Shigurechan/GL)
24
+
25
+
26
+
8
-
27
+ ##### 参考サイト
9
-
10
-
11
-
12
-
13
-
14
28
 
15
29
  参考サイト:[http://www.opengl-tutorial.org/jp/beginners-tutorials/tutorial-3-matrices/#%E5%A4%89%E6%8F%9B%E3%81%AE%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B](http://www.opengl-tutorial.org/jp/beginners-tutorials/tutorial-3-matrices/#%E5%A4%89%E6%8F%9B%E3%81%AE%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B)
16
30
 
17
31
 
18
32
 
33
+ ##### デバッグ表示
34
+
35
+ ```
36
+
37
+ $ ./GL
38
+
39
+ 1.000000 1.000000 -1.000000
40
+
41
+ -1.000000 1.000000 -1.000000
42
+
43
+ -1.000000 1.000000 1.000000
44
+
45
+ 1.000000 -1.000000 1.000000
46
+
47
+ 1.000000 1.000000 1.000000
48
+
49
+ -1.000000 1.000000 1.000000
50
+
51
+ -1.000000 -1.000000 1.000000
52
+
53
+ -1.000000 1.000000 1.000000
54
+
55
+ -1.000000 1.000000 -1.000000
56
+
57
+ -1.000000 -1.000000 -1.000000
58
+
59
+ 1.000000 -1.000000 -1.000000
60
+
61
+ 1.000000 -1.000000 1.000000
62
+
63
+ 1.000000 -1.000000 -1.000000
64
+
65
+ 1.000000 1.000000 -1.000000
66
+
67
+ 1.000000 1.000000 1.000000
68
+
69
+ -1.000000 -1.000000 -1.000000
70
+
71
+ -1.000000 1.000000 -1.000000
72
+
73
+ 1.000000 1.000000 -1.000000
74
+
75
+ 18
76
+
77
+
78
+
79
+
80
+
81
+ ```
82
+
83
+
84
+
19
85
 
20
86
 
21
87
  ##### camera

1

文章を修正

2021/10/15 06:19

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,10 @@
1
- 提示コードですが、 ojbファイルをロードして描画させたいのですがモデルが表示されません。なぜでしょうか?正射型による2D描画できているため。カメラの問題だともうのですが提示サイト通りやっても描画されません。.objファイルに頂点数は18で値も確認しました。
1
+ 提示コードですが、 ojbファイルをロードして描画させたいのですがモデルが表示されません。なぜでしょうか?正射型による2D描画できているため。カメラの問題だともうのですが提示サイト通りやっても描画されません。.objファイルに頂点数は18で値も確認しました。
2
+
3
+
4
+
5
+
6
+
2
-
7
+ Github: https://github.com/Shigurechan/GL
3
-
4
-
5
-
6
8
 
7
9
 
8
10