teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

6

文章を修正

2021/10/15 10:59

投稿

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

5

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

2021/10/15 10:59

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -5,9 +5,9 @@
5
5
  頂点データを格納している変数の中身を表示して確認
6
6
  正射型による2D描画できている
7
7
  カメラの視点を動かして上下左右に動かし描画されているかどうかを確認
8
+ デバッグ表示部のコードで上が頂点座標、下が回転、平行移動、スケール。した後の頂点座標
8
9
 
9
10
 
10
-
11
11
  ##### Github
12
12
  [https://github.com/Shigurechan/GL](https://github.com/Shigurechan/GL)
13
13
 
@@ -35,9 +35,25 @@
35
35
  -1.000000 -1.000000 -1.000000
36
36
  -1.000000 1.000000 -1.000000
37
37
  1.000000 1.000000 -1.000000
38
- 18
38
+ 7.500000 10.000000 59.801193 60.000000
39
+ -7.500000 10.000000 59.801193 60.000000
40
+ -7.500000 10.000000 39.800797 40.000000
41
+ 7.500000 -10.000000 39.800797 40.000000
42
+ 7.500000 10.000000 39.800797 40.000000
43
+ -7.500000 10.000000 39.800797 40.000000
44
+ -7.500000 -10.000000 39.800797 40.000000
45
+ -7.500000 10.000000 39.800797 40.000000
46
+ -7.500000 10.000000 59.801193 60.000000
47
+ -7.500000 -10.000000 59.801193 60.000000
48
+ 7.500000 -10.000000 59.801193 60.000000
49
+ 7.500000 -10.000000 39.800797 40.000000
50
+ 7.500000 -10.000000 59.801193 60.000000
51
+ 7.500000 10.000000 59.801193 60.000000
52
+ 7.500000 10.000000 39.800797 40.000000
53
+ -7.500000 -10.000000 59.801193 60.000000
54
+ -7.500000 10.000000 59.801193 60.000000
55
+ 7.500000 10.000000 59.801193 60.000000
39
56
 
40
-
41
57
  ```
42
58
 
43
59
 

4

文章を修正

2021/10/15 10:12

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -4,10 +4,10 @@
4
4
  ##### 確認した事
5
5
  頂点データを格納している変数の中身を表示して確認
6
6
  正射型による2D描画できている
7
+ カメラの視点を動かして上下左右に動かし描画されているかどうかを確認
7
8
 
8
9
 
9
10
 
10
-
11
11
  ##### Github
12
12
  [https://github.com/Shigurechan/GL](https://github.com/Shigurechan/GL)
13
13
 
@@ -254,27 +254,63 @@
254
254
 
255
255
  ##### Main.cpp
256
256
  ```
257
- #include "../header/FrameWork.hpp"
258
- #include "../header/Resource.hpp"
259
257
 
260
- #include <iostream>
261
- #include "../header/Camera.hpp"
262
-
263
-
264
258
  int main()
265
259
  {
266
- FrameWork::Init(glm::ivec2(48 * 26, 48 * 18), glm::ivec2(4,2), "FrameWork"); // 初期化
260
+ FrameWork::Init(glm::ivec2(800, 600), glm::ivec2(4,2), "FrameWork"); // 初期化
267
261
  FrameWork::Camera::Init(); //カメラ初期化
268
262
 
269
263
  FrameWork::ObjFile file;
270
264
  FrameWork::D3::LoadObj("Model/test.obj",file);
271
265
  FrameWork::D3::Object object(file);
272
266
 
267
+ float y = 0;
268
+ float x = 0;
269
+
273
270
  while (*FrameWork::windowContext)
274
271
  {
275
272
  FrameWork::windowContext->FrameUpdate(glm::vec4(0,0,0,255));
276
273
 
274
+
275
+
276
+ if(FrameWork::windowContext->getKeyInput(GLFW_KEY_LEFT) > (short)0)
277
+ {
278
+ x += 0.01;
279
+ printf("left\n");
280
+ printf("%f , %f \n",x,y);
281
+
282
+ }
283
+ else if(FrameWork::windowContext->getKeyInput(GLFW_KEY_RIGHT) > (short)0)
284
+ {
285
+ x += -0.01;
286
+ printf("right\n");
287
+ printf("%f , %f \n",x,y);
288
+
289
+ }
290
+
291
+
292
+
293
+ if(FrameWork::windowContext->getKeyInput(GLFW_KEY_UP) > (short)0)
294
+ {
295
+ y += 0.01;
296
+ printf("up\n");
297
+ printf("%f , %f \n",x,y);
298
+
299
+
300
+ }
301
+ else if(FrameWork::windowContext->getKeyInput(GLFW_KEY_DOWN) > (short)0)
302
+ {
303
+ y += -0.01;
304
+ printf("down\n");
305
+ printf("%f , %f \n",x,y);
306
+
307
+ }
308
+
309
+
310
+
311
+
312
+
277
- FrameWork::Camera::setLook(glm::vec3(0,0,-1));
313
+ FrameWork::Camera::setLook(glm::vec3(x,y,-1));
278
314
  FrameWork::Camera::setPosition(glm::vec3(0,0,50));
279
315
 
280
316
 
@@ -284,7 +320,6 @@
284
320
 
285
321
 
286
322
 
287
-
288
323
  FrameWork::windowContext->Wait();
289
324
  FrameWork::windowContext->SwapBuffers();
290
325
  }

3

提示コードを追加

2021/10/15 08:13

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -180,4 +180,120 @@
180
180
  fragment = vfragment;
181
181
  // fragment = texture(uImage,vUV);
182
182
  }
183
+ ```
184
+
185
+ ##### Object.cpp
186
+ ```
187
+ FrameWork::D3::Object::Object(ObjFile o) : Render()
188
+ {
189
+ obj = o; //オブジェクトファイル
190
+
191
+ shader->Input(FrameWork::LoadShader("Shader/3D/BasicMono_3D.vert")->data(), FrameWork::LoadShader("Shader/3D/BasicMono_3D.frag")->data());
192
+
193
+
194
+ // printf("%d\n",obj.vertex.size());
195
+
196
+
197
+
198
+
199
+ //頂点
200
+ GLint attrib = shader->getAttribLocation("vertexPosition");
201
+ glEnableVertexAttribArray(attrib);
202
+ glBufferData(GL_ARRAY_BUFFER, obj.vertex.size() * sizeof(VertexAttribute), obj.vertex.data(), GL_STATIC_DRAW);
203
+ glVertexAttribPointer(attrib, 1, GL_FLOAT, GL_FALSE, 3 * sizeof(GLfloat), (GLvoid *)0);
204
+ shader->setBindAttribLocation("vertexPosition");
205
+
206
+
207
+
208
+ //バインド解除
209
+ glBindVertexArray(0);
210
+ glBindBuffer(GL_ARRAY_BUFFER, 0);
211
+
212
+ }
213
+
214
+ void FrameWork::D3::Object::Renderer()
215
+ {
216
+ shader->setEnable();
217
+
218
+ glBindVertexArray(vao);
219
+ glBindBuffer(GL_ARRAY_BUFFER, vbo);
220
+ glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(VertexAttribute) * obj.vertex.size(), obj.vertex.data());
221
+
222
+ //Transform
223
+ setPosition(glm::vec3(0,0,-50)); //座標
224
+ setScale(glm::vec3(100,100,100)); //スケール
225
+ setRotate(glm::vec3(0,0,0),0); //回転
226
+
227
+ //描画
228
+ shader->setUniformMatrix4fv("uTranslate",getMatTranslation());
229
+ shader->setUniformMatrix4fv("uRotate", getMatRotate());
230
+ shader->setUniformMatrix4fv("uScale", getMatScale());
231
+ shader->setUniform4f("uFragment", GetGlColor(glm::vec4(0,255,0,255)));
232
+ shader->setUniformMatrix4fv("uViewProjection", FrameWork::Camera::getViewProjection());
233
+
234
+
235
+ glDrawArrays(GL_TRIANGLES, 0, obj.vertex.size()); //描画
236
+
237
+ //バインド解除
238
+ glBindVertexArray(0);
239
+ glBindBuffer(GL_ARRAY_BUFFER, 0);
240
+
241
+ shader->setDisable();
242
+ }
243
+
244
+
245
+
246
+ FrameWork::D3::Object::~Object()
247
+ {
248
+
249
+ }
250
+
251
+
252
+
253
+ ```
254
+
255
+ ##### Main.cpp
256
+ ```
257
+ #include "../header/FrameWork.hpp"
258
+ #include "../header/Resource.hpp"
259
+
260
+ #include <iostream>
261
+ #include "../header/Camera.hpp"
262
+
263
+
264
+ int main()
265
+ {
266
+ FrameWork::Init(glm::ivec2(48 * 26, 48 * 18), glm::ivec2(4,2), "FrameWork"); // 初期化
267
+ FrameWork::Camera::Init(); //カメラ初期化
268
+
269
+ FrameWork::ObjFile file;
270
+ FrameWork::D3::LoadObj("Model/test.obj",file);
271
+ FrameWork::D3::Object object(file);
272
+
273
+ while (*FrameWork::windowContext)
274
+ {
275
+ FrameWork::windowContext->FrameUpdate(glm::vec4(0,0,0,255));
276
+
277
+ FrameWork::Camera::setLook(glm::vec3(0,0,-1));
278
+ FrameWork::Camera::setPosition(glm::vec3(0,0,50));
279
+
280
+
281
+ object.Renderer();
282
+
283
+
284
+
285
+
286
+
287
+
288
+ FrameWork::windowContext->Wait();
289
+ FrameWork::windowContext->SwapBuffers();
290
+ }
291
+
292
+
293
+
294
+
295
+
296
+ return 0;
297
+ }
298
+
183
299
  ```

2

文章を修正

2021/10/15 06:51

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,13 +1,46 @@
1
- 提示コードですが、 ojbファイルをロードして描画させたいのですがモデルが表示されません。なぜでしょうか?正射型による2D描画できているため。カメラの問題だとおもうのですが提示サイト通りやっても描画されません。.objファイルに頂点数は18で値も確認しました。
1
+ 提示コードですが、 objファイルをロードして描画させたいのですがモデルが表示されません。カメラの問題だとうのですが提示サイト通りやっても描画されません。
2
2
 
3
3
 
4
+ ##### 確認した事
4
- Github: https://github.com/Shigurechan/GL
5
+ 頂点データを格納している変数の中身を表示して確認
6
+ 正射型による2D描画できている
5
7
 
6
8
 
7
9
 
10
+
11
+ ##### Github
12
+ [https://github.com/Shigurechan/GL](https://github.com/Shigurechan/GL)
13
+
14
+ ##### 参考サイト
8
15
  参考サイト:[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)
9
16
 
17
+ ##### デバッグ表示
18
+ ```
19
+ $ ./GL
20
+ 1.000000 1.000000 -1.000000
21
+ -1.000000 1.000000 -1.000000
22
+ -1.000000 1.000000 1.000000
23
+ 1.000000 -1.000000 1.000000
24
+ 1.000000 1.000000 1.000000
25
+ -1.000000 1.000000 1.000000
26
+ -1.000000 -1.000000 1.000000
27
+ -1.000000 1.000000 1.000000
28
+ -1.000000 1.000000 -1.000000
29
+ -1.000000 -1.000000 -1.000000
30
+ 1.000000 -1.000000 -1.000000
31
+ 1.000000 -1.000000 1.000000
32
+ 1.000000 -1.000000 -1.000000
33
+ 1.000000 1.000000 -1.000000
34
+ 1.000000 1.000000 1.000000
35
+ -1.000000 -1.000000 -1.000000
36
+ -1.000000 1.000000 -1.000000
37
+ 1.000000 1.000000 -1.000000
38
+ 18
10
39
 
40
+
41
+ ```
42
+
43
+
11
44
  ##### camera
12
45
 
13
46
  ```

1

文章を修正

2021/10/15 06:19

投稿

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