質問編集履歴

5

文章を修正

2021/10/28 03:10

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -14,21 +14,19 @@
14
14
 
15
15
 
16
16
 
17
-
17
+ github: [https://github.com/Shigurechan/GL/tree/2d0637094ec1ec58d84288422b3e9db3b88e97d8](https://github.com/Shigurechan/GL/tree/2d0637094ec1ec58d84288422b3e9db3b88e97d8)
18
18
 
19
19
 
20
20
 
21
21
  参考サイト:[http://www.opengl-tutorial.org/jp/beginners-tutorials/tutorial-7-model-loading/](http://www.opengl-tutorial.org/jp/beginners-tutorials/tutorial-7-model-loading/)
22
22
 
23
-
24
-
25
23
  ![イメージ説明](cedb5ca90f9f3a4633bc6e483220144d.png)
26
24
 
27
25
 
28
26
 
29
27
 
30
28
 
31
- github: [https://github.com/Shigurechan/GL/tree/2d0637094ec1ec58d84288422b3e9db3b88e97d8](https://github.com/Shigurechan/GL/tree/2d0637094ec1ec58d84288422b3e9db3b88e97d8)
29
+
32
30
 
33
31
  ##### Mode.cpp
34
32
 

4

文章を修正しました。

2021/10/28 03:10

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- opengl objローダーを作りたい。
1
+ [OpenGL] 頂点インデックス、法線、UVに対応したOBJローダーを作りたい。
test CHANGED
@@ -1,4 +1,14 @@
1
- 提示コードの下部のコメント部ですが。法線とUV座標の設定方法がわかりません。参考サイトを参考に objローダーを作成したのですが下記のコメント部のコードはどうしたらいいのでしょうか?色々触りましたがどれも正しく設定されません。コメント部の内部のコードは頂点インデックスを用いる場合どうやって設定すればいいのでしょうか?
1
+ 提示コードの下部のコメント部内部ですが。頂点インデックスに対応した場合での法線とUV座標の設定方法がわかりません。頂点インデックスの実装はできているのですが法線やUV座標がおかしいため以下の画像のうなライティングになってしまいます。提示サイトを参考にOBJローダーを作成したのですが
2
+
3
+ どうすればUV座標、法線を正しく設定できるのでしょうか?OBJファイルはブレンダーで作成しました。
4
+
5
+
6
+
7
+ ##### 試したこと
8
+
9
+ 試しにインデックスの値を使わず直接法線と。UVを設定。
10
+
11
+ ブレンダーでテクスチャを設定してインポート
2
12
 
3
13
 
4
14
 

3

文章を修正

2021/10/28 03:06

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- opengl objローダーで法線とUV座標の設定方法が知りたい。
1
+ opengl objローダーを作りたい。
test CHANGED
@@ -1,4 +1,10 @@
1
- 提示コードの下部のコメント部ですが。法線とUV座標の設定方法がわかりません。参考サイトを参考に objローダーを作成したのですが下記のコメント部のコードはどうしたらいいのでしょうか?色々触りましたがどれも正しく設定されません。
1
+ 提示コードの下部のコメント部ですが。法線とUV座標の設定方法がわかりません。参考サイトを参考に objローダーを作成したのですが下記のコメント部のコードはどうしたらいいのでしょうか?色々触りましたがどれも正しく設定されません。コメント部の内部のコードは頂点インデックスを用いる場合どうやって設定すればいいのでしょうか?
2
+
3
+
4
+
5
+
6
+
7
+
2
8
 
3
9
 
4
10
 

2

文章を修正

2021/10/28 03:01

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -12,6 +12,8 @@
12
12
 
13
13
 
14
14
 
15
+ github: [https://github.com/Shigurechan/GL/tree/2d0637094ec1ec58d84288422b3e9db3b88e97d8](https://github.com/Shigurechan/GL/tree/2d0637094ec1ec58d84288422b3e9db3b88e97d8)
16
+
15
17
  ##### Mode.cpp
16
18
 
17
19
  ```

1

文章を修正

2021/10/25 11:29

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- opengl objローダーで法線とUV座標を設定する方法が知りたい。F部の設定方法が知りたい。
1
+ opengl objローダーで法線とUV座標の設定方法が知りたい。
test CHANGED
@@ -1,20 +1,18 @@
1
- 提示コードの下部のコメント部内部ですが内部のようにコードを書いても正しく法線とテクスチャUV設定できません。objファイルFの設定方法ですが
1
+ 提示コードの下部のコメント部ですが法線とUV座標の設定方法がわかりません。参考サイトを参考に objローダーを作成したですが下記コメント部のコードはどうしたらいいのでしょうか?色々触りましたがどれも正しく設定されません。
2
-
3
- コメント部の for文にように行うのではないのでしょうか?
2
+
4
-
5
-
6
-
7
-
8
-
9
-
10
-
3
+
4
+
11
- 参考サイト: [http://www.opengl-tutorial.org/jp/beginners-tutorials/tutorial-7-model-loading/](http://www.opengl-tutorial.org/jp/beginners-tutorials/tutorial-7-model-loading/)
5
+ 参考サイト:[http://www.opengl-tutorial.org/jp/beginners-tutorials/tutorial-7-model-loading/](http://www.opengl-tutorial.org/jp/beginners-tutorials/tutorial-7-model-loading/)
12
-
6
+
7
+
8
+
13
- ![イメージ説明](e9db147891a9a030eb85615ac2c1136b.png)
9
+ ![イメージ説明](cedb5ca90f9f3a4633bc6e483220144d.png)
14
-
15
- ![イメージ説明](2108a1a6d56fab91505869143831d0d1.png)
10
+
16
-
11
+
12
+
13
+
14
+
17
- ##### Model
15
+ ##### Mode.cpp
18
16
 
19
17
  ```
20
18
 
@@ -60,9 +58,9 @@
60
58
 
61
59
  {
62
60
 
63
- shader->Input(FrameWork::LoadShader("Shader/3D/Phong.vert")->data(), FrameWork::LoadShader("Shader/3D/Phong.frag")->data());
61
+ //shader->Input(FrameWork::LoadShader("Shader/3D/Phong.vert")->data(), FrameWork::LoadShader("Shader/3D/Phong.frag")->data());
64
-
62
+
65
- // shader->Input(FrameWork::LoadShader("Shader/3D/BasicMono_3D.vert")->data(), FrameWork::LoadShader("Shader/3D/BasicMono_3D.frag")->data());
63
+ shader->Input(FrameWork::LoadShader("Shader/3D/BasicMono_3D.vert")->data(), FrameWork::LoadShader("Shader/3D/BasicMono_3D.frag")->data());
66
64
 
67
65
  //shader->Input(FrameWork::LoadShader("Shader/3D/BasicTexture_3D.vert")->data(), FrameWork::LoadShader("Shader/3D/BasicTexture_3D.frag")->data());
68
66
 
@@ -98,7 +96,7 @@
98
96
 
99
97
 
100
98
 
101
-
99
+ /*
102
100
 
103
101
  //法線
104
102
 
@@ -110,7 +108,7 @@
110
108
 
111
109
  shader->setBindAttribLocation("vertexNormal");
112
110
 
113
-
111
+ */
114
112
 
115
113
  /*
116
114
 
@@ -128,13 +126,15 @@
128
126
 
129
127
 
130
128
 
129
+ glBufferData(GL_ARRAY_BUFFER, obj.vertex.size() * sizeof(obj.vertex[0]), NULL, GL_STATIC_DRAW); //頂点
130
+
131
- glBufferData(GL_ARRAY_BUFFER, obj.vertex.size() * sizeof(obj.vertex[0]) + obj.normal.size() * sizeof(obj.normal[0]), NULL, GL_STATIC_DRAW); //頂点
131
+ //glBufferData(GL_ARRAY_BUFFER, obj.vertex.size() * sizeof(obj.vertex[0]) + obj.normal.size() * sizeof(obj.normal[0]), NULL, GL_STATIC_DRAW); //頂点
132
-
133
-
134
-
132
+
133
+
134
+
135
- glBufferSubData(GL_ARRAY_BUFFER, 0, obj.vertex.size() * sizeof(obj.vertex[0]), obj.vertex.data()); //頂点データ
135
+ glBufferSubData(GL_ARRAY_BUFFER, 0, obj.vertex.size() * sizeof(obj.vertex[0]), obj.vertex.data()); //頂点データ
136
-
136
+
137
- glBufferSubData(GL_ARRAY_BUFFER, obj.vertex.size() * sizeof(obj.vertex[0]), obj.normal.size() * sizeof(obj.normal[0]), obj.normal.data()); //法線データ
137
+ // glBufferSubData(GL_ARRAY_BUFFER, obj.vertex.size() * sizeof(obj.vertex[0]), obj.normal.size() * sizeof(obj.normal[0]), obj.normal.data()); //法線データ
138
138
 
139
139
 
140
140
 
@@ -264,7 +264,7 @@
264
264
 
265
265
  glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
266
266
 
267
- glBindTexture(GL_TEXTURE_2D, 0);
267
+ //glBindTexture(GL_TEXTURE_2D, 0);
268
268
 
269
269
  //shader->setDisable();
270
270
 
@@ -372,7 +372,7 @@
372
372
 
373
373
  //u.y = 1.0f - u.y;
374
374
 
375
- obj.uv.push_back(u);
375
+ // obj.uv.push_back(u);
376
376
 
377
377
  uv.push_back(u);
378
378
 
@@ -388,7 +388,7 @@
388
388
 
389
389
  fscanf(file, "%f %f %fn", &norm.x, &norm.y, &norm.z);
390
390
 
391
- // obj.normal.push_back(norm);
391
+ obj.normal.push_back(norm);
392
392
 
393
393
  normal.push_back(norm);
394
394
 
@@ -460,7 +460,7 @@
460
460
 
461
461
  }
462
462
 
463
- //////////////////////////////////////////////////////////////////////////////////////
463
+ ////////////////////////////////////////////////////////////////////////////////////
464
464
 
465
465
  for( unsigned int i = 0; i < vertexIndex.size(); i++ )
466
466
 
@@ -484,26 +484,26 @@
484
484
 
485
485
  glm::vec2 u = uv[ ui - 1];
486
486
 
487
- glm::vec3 n = normal[ ni - 1 ];
487
+ glm::vec3 n = normal[ ni- 1];
488
488
 
489
489
 
490
490
 
491
491
  //obj.vertex.push_back(v);
492
492
 
493
- // obj.uv.push_back(u);
493
+ //obj.uv.push_back(u);
494
-
494
+
495
- obj.normal.push_back(n);
495
+ //obj.normal.push_back(n);
496
496
 
497
497
  }
498
498
 
499
499
  }
500
500
 
501
+ //////////////////////////////////////////////////////////////////////////////////
502
+
501
503
  attribute = obj;
502
504
 
503
505
  }
504
506
 
505
- /////////////////////////////////////////////////////////////////////////////////////
506
-
507
507
 
508
508
 
509
509
  ```