質問編集履歴

6

文章を修正

2022/01/09 02:22

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -26,9 +26,11 @@
26
26
 
27
27
  glGenTextures(1, &texture); //テクスチャIDの生成
28
28
 
29
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
30
+
29
31
  glBindTexture(GL_TEXTURE_CUBE_MAP, texture); // IDバインド
30
32
 
31
-
33
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
32
34
 
33
35
  for (int i = 0; i < filePath.size(); i++)
34
36
 
@@ -48,11 +50,11 @@
48
50
 
49
51
  {
50
52
 
51
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
53
+
52
54
 
53
55
  glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB, size.x, size.y, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
54
56
 
55
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
57
+
56
58
 
57
59
  stbi_image_free(data);
58
60
 

5

文章を修正

2022/01/09 02:22

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- Opengl glBindTexture()関数を実行すると画面が白なる原因が知りたい。
1
+ Opengl glBindTexture()関数でCUBE_MAPを実行すると画面が真っなる原因が知りたい。
test CHANGED
File without changes

4

文章を修正

2022/01/09 02:08

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- Opengl GL_TEXTURE_CUBE_MAP_POSITIVE_X実行すると画面が白くなる原因が知りたい。
1
+ Opengl glBindTexture()関数を実行すると画面が白くなる原因が知りたい。
test CHANGED
@@ -1,12 +1,4 @@
1
- 提示コードのですが下記の参考ード通り装してもスカイボックス表示されません。これはしょうか?現状は白い画面表示されます。これは何が原因なのでしょか?
1
+ 提示コードのですが下記の`///`メント部の関数を行するとその後の出力画面白くるのがこれは何が原因なのでしょか?
2
-
3
-
4
-
5
- ##### 確認したいこと
6
-
7
- シェーダーを確認
8
-
9
- 画像ファイルの読み込みがキューブになっているか確認
10
2
 
11
3
 
12
4
 
@@ -56,7 +48,11 @@
56
48
 
57
49
  {
58
50
 
51
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
52
+
59
- glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB, size.x, size.y, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
53
+ glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, 0, GL_RGB, size.x, size.y, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
54
+
55
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
60
56
 
61
57
  stbi_image_free(data);
62
58
 

3

文章を修正

2022/01/09 02:04

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- Opengl スカイボックス実装出来原因が知りたい。
1
+ Opengl GL_TEXTURE_CUBE_MAP_POSITIVE_X実行すると画面白く原因が知りたい。
test CHANGED
@@ -1,4 +1,4 @@
1
- 提示コードの`///`コメント部ですが下記の参考コード通り実装してもスカイボックスが表示されません。これはなぜでしょうか?現状は白い画面が表示されます。
1
+ 提示コードのですが下記の参考コード通り実装してもスカイボックスが表示されません。これはなぜでしょうか?現状は白い画面が表示されます。これは何が原因なのでしょうか?
2
2
 
3
3
 
4
4
 
@@ -17,98 +17,6 @@
17
17
  参考サイト:[ https://learnopengl.com/Advanced-OpenGL/Cubemaps](https://learnopengl.com/Advanced-OpenGL/Cubemaps)
18
18
 
19
19
  参考コード: [https://learnopengl.com/code_viewer_gh.php?code=src/4.advanced_opengl/6.1.cubemaps_skybox/cubemaps_skybox.cpp](https://learnopengl.com/code_viewer_gh.php?code=src/4.advanced_opengl/6.1.cubemaps_skybox/cubemaps_skybox.cpp)
20
-
21
-
22
-
23
-
24
-
25
- ##### 描画ループ
26
-
27
- ```cpp
28
-
29
-
30
-
31
- // ##################################### 描画 #####################################
32
-
33
- void FrameWork::Camera::View(std::shared_ptr<Actor> actor)
34
-
35
- {
36
-
37
- glBindFramebuffer(GL_FRAMEBUFFER, depthMapFBO);
38
-
39
- glViewport(0, 0, windowContext->getSize().x, windowContext->getSize().y);
40
-
41
-
42
-
43
- actor->Renderer_Depth(getViewPerspective());
44
-
45
-
46
-
47
- glBindFramebuffer(GL_FRAMEBUFFER, frameBufferFBO);
48
-
49
- glViewport(0, 0, windowContext->getSize().x, windowContext->getSize().y);
50
-
51
-
52
-
53
- glEnable(GL_DEPTH_TEST);
54
-
55
- actor->Renderer(getViewPerspective());
56
-
57
-
58
-
59
- glDisable(GL_DEPTH_TEST);
60
-
61
- actor->Renderer_2D(getViewOrthographic());
62
-
63
- //////////////////////////////////////////////////////////////////////////////////////////////////
64
-
65
- glEnable(GL_DEPTH_TEST);
66
-
67
- // draw skybox as last
68
-
69
- glDepthFunc(GL_LEQUAL); // change depth function so depth test passes when values are equal to depth buffer's content
70
-
71
- glDepthMask(GL_FALSE);
72
-
73
- skyBoxShader->setEnable();
74
-
75
- // skybox cube
76
-
77
- glBindVertexArray(skyBoxVAO);
78
-
79
- glBindBuffer(GL_ARRAY_BUFFER, skyBoxVBO);
80
-
81
-
82
-
83
- skyBoxShader->setUniformSampler2D_CubeMap("skybox",0,skyBoxTexture);
84
-
85
- skyBoxShader->setUniformMatrix4fv("uViewProjection", getViewPerspective());
86
-
87
-
88
-
89
- glDrawArrays(GL_TRIANGLES, 0, 36);
90
-
91
- glDepthMask(GL_TRUE);
92
-
93
- skyBoxShader->setDisable();
94
-
95
- glDepthFunc(GL_LESS); // set depth function back to default
96
-
97
-
98
-
99
- glBindVertexArray(0);
100
-
101
- glBindBuffer(GL_ARRAY_BUFFER, 0);
102
-
103
-
104
-
105
- //////////////////////////////////////////////////////////////////////////////////////////////////
106
-
107
- glBindFramebuffer(GL_FRAMEBUFFER,0);
108
-
109
- }
110
-
111
- ```
112
20
 
113
21
 
114
22
 
@@ -194,364 +102,4 @@
194
102
 
195
103
 
196
104
 
197
-
198
-
199
105
  ```
200
-
201
-
202
-
203
- ##### 初期化部
204
-
205
- ```
206
-
207
-
208
-
209
- float FrameWork::Camera::skyboxVertices[108] = {
210
-
211
- // positions
212
-
213
- -1.0f, 1.0f, -1.0f,
214
-
215
- -1.0f, -1.0f, -1.0f,
216
-
217
- 1.0f, -1.0f, -1.0f,
218
-
219
- 1.0f, -1.0f, -1.0f,
220
-
221
- 1.0f, 1.0f, -1.0f,
222
-
223
- -1.0f, 1.0f, -1.0f,
224
-
225
-
226
-
227
- -1.0f, -1.0f, 1.0f,
228
-
229
- -1.0f, -1.0f, -1.0f,
230
-
231
- -1.0f, 1.0f, -1.0f,
232
-
233
- -1.0f, 1.0f, -1.0f,
234
-
235
- -1.0f, 1.0f, 1.0f,
236
-
237
- -1.0f, -1.0f, 1.0f,
238
-
239
-
240
-
241
- 1.0f, -1.0f, -1.0f,
242
-
243
- 1.0f, -1.0f, 1.0f,
244
-
245
- 1.0f, 1.0f, 1.0f,
246
-
247
- 1.0f, 1.0f, 1.0f,
248
-
249
- 1.0f, 1.0f, -1.0f,
250
-
251
- 1.0f, -1.0f, -1.0f,
252
-
253
-
254
-
255
- -1.0f, -1.0f, 1.0f,
256
-
257
- -1.0f, 1.0f, 1.0f,
258
-
259
- 1.0f, 1.0f, 1.0f,
260
-
261
- 1.0f, 1.0f, 1.0f,
262
-
263
- 1.0f, -1.0f, 1.0f,
264
-
265
- -1.0f, -1.0f, 1.0f,
266
-
267
-
268
-
269
- -1.0f, 1.0f, -1.0f,
270
-
271
- 1.0f, 1.0f, -1.0f,
272
-
273
- 1.0f, 1.0f, 1.0f,
274
-
275
- 1.0f, 1.0f, 1.0f,
276
-
277
- -1.0f, 1.0f, 1.0f,
278
-
279
- -1.0f, 1.0f, -1.0f,
280
-
281
-
282
-
283
- -1.0f, -1.0f, -1.0f,
284
-
285
- -1.0f, -1.0f, 1.0f,
286
-
287
- 1.0f, -1.0f, -1.0f,
288
-
289
- 1.0f, -1.0f, -1.0f,
290
-
291
- -1.0f, -1.0f, 1.0f,
292
-
293
- 1.0f, -1.0f, 1.0f
294
-
295
- };
296
-
297
-
298
-
299
- // ##################################### 初期化 #####################################
300
-
301
- FrameWork::Camera::Camera()
302
-
303
- {
304
-
305
- //MSAA バッファ
306
-
307
- glGenFramebuffers(1, &frameBufferFBO);
308
-
309
- glBindFramebuffer(GL_FRAMEBUFFER, frameBufferFBO);
310
-
311
- glGenTextures(1, &frameBuffer);
312
-
313
- glBindTexture(GL_TEXTURE_2D_MULTISAMPLE, frameBuffer);
314
-
315
- glTexImage2DMultisample(GL_TEXTURE_2D_MULTISAMPLE, 8, GL_RGB, windowContext->getSize().x, windowContext->getSize().y, GL_TRUE);
316
-
317
-
318
-
319
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + frameBufferNumber, GL_TEXTURE_2D_MULTISAMPLE, frameBuffer, 0);
320
-
321
-
322
-
323
-
324
-
325
- //レンダリングバッファ
326
-
327
- glGenRenderbuffers(1, &rbo);
328
-
329
- glBindRenderbuffer(GL_RENDERBUFFER, rbo);
330
-
331
- glRenderbufferStorageMultisample(GL_RENDERBUFFER, 8, GL_DEPTH24_STENCIL8, windowContext->getSize().x, windowContext->getSize().y);
332
-
333
- glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_RENDERBUFFER, rbo);
334
-
335
-
336
-
337
- //MSAA アタッチ
338
-
339
- GLuint attachment = GL_COLOR_ATTACHMENT0 + frameBufferNumber;
340
-
341
- glDrawBuffers(1,&attachment);
342
-
343
-
344
-
345
-
346
-
347
- if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
348
-
349
- {
350
-
351
- std::cerr << "Framebuffer is not complete: 0x" << glCheckFramebufferStatus(GL_FRAMEBUFFER) << std::endl;
352
-
353
- assert(0);
354
-
355
- }
356
-
357
- glBindFramebuffer(GL_FRAMEBUFFER,0);
358
-
359
-
360
-
361
-
362
-
363
- //深度マップ
364
-
365
- glGenFramebuffers(1, &depthMapFBO);
366
-
367
- glBindFramebuffer(GL_FRAMEBUFFER, depthMapFBO);
368
-
369
- glGenTextures(1, &depthMap);
370
-
371
- glBindTexture(GL_TEXTURE_2D, depthMap);
372
-
373
- glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, windowContext->getSize().x, windowContext->getSize().y, 0, GL_DEPTH_COMPONENT, GL_FLOAT, NULL);
374
-
375
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
376
-
377
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
378
-
379
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
380
-
381
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
382
-
383
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, depthMap, 0);
384
-
385
-
386
-
387
- //カラーバッファ
388
-
389
- glGenFramebuffers(1, &colorBufferFBO);
390
-
391
- glBindFramebuffer(GL_FRAMEBUFFER, colorBufferFBO);
392
-
393
- glGenTextures(1, &colorBuffer);
394
-
395
- glBindTexture(GL_TEXTURE_2D, colorBuffer);
396
-
397
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, windowContext->getSize().x, windowContext->getSize().y, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
398
-
399
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
400
-
401
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
402
-
403
- glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0 + frameBufferNumber, GL_TEXTURE_2D, colorBuffer, 0); // we only need a color buffer
404
-
405
-
406
-
407
-
408
-
409
-
410
-
411
- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
412
-
413
- //スカイボックス
414
-
415
- skyBoxShader = std::make_shared<FrameWork::Shader>();
416
-
417
-
418
-
419
- glGenVertexArrays(1, &skyBoxVAO);
420
-
421
- glGenBuffers(1, &skyBoxVBO);
422
-
423
-
424
-
425
- skyBoxShader->Load("shader/SkyBox.vert", "shader/SkyBox.frag");
426
-
427
-
428
-
429
- skyBoxShader->setEnable();
430
-
431
- glBindVertexArray(skyBoxVAO);
432
-
433
- glBindBuffer(GL_ARRAY_BUFFER, skyBoxVBO);
434
-
435
-
436
-
437
- glBufferData(GL_ARRAY_BUFFER, 3 * sizeof(float) * 36, &skyboxVertices, GL_STATIC_DRAW);
438
-
439
-
440
-
441
- GLuint attrib = skyBoxShader->getAttribLocation("vertexPosition");
442
-
443
- glEnableVertexAttribArray(attrib);
444
-
445
- glVertexAttribPointer(attrib, 1, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
446
-
447
- skyBoxShader->setBindAttribLocation("vertexPosition");
448
-
449
-
450
-
451
- skyBoxShader->setDisable();
452
-
453
- glBindVertexArray(0);
454
-
455
- glBindBuffer(GL_ARRAY_BUFFER, 0);
456
-
457
-
458
-
459
-
460
-
461
-
462
-
463
-
464
-
465
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
466
-
467
- position = glm::vec3(0,0,10); //座標
468
-
469
- vecLook = glm::vec3(0,0,-1); //向き
470
-
471
-
472
-
473
- setPosition(position);
474
-
475
- setLook(vecLook);
476
-
477
-
478
-
479
- frameBufferNumber += 1;
480
-
481
- }
482
-
483
-
484
-
485
- ```
486
-
487
-
488
-
489
- ##### GLSL フラグメント
490
-
491
- ```
492
-
493
- #version 420
494
-
495
-
496
-
497
- out vec4 FragColor;
498
-
499
-
500
-
501
- layout (location = 1) out vec3 TexCoords;
502
-
503
-
504
-
505
- uniform samplerCube skybox;
506
-
507
-
508
-
509
- void main()
510
-
511
- {
512
-
513
- FragColor = texture(skybox, TexCoords);
514
-
515
- }
516
-
517
-
518
-
519
- ```
520
-
521
-
522
-
523
- ##### GLSL 頂点シェーダー
524
-
525
- ```
526
-
527
- #version 420
528
-
529
-
530
-
531
- layout (location = 0) in vec3 vertexPosition;
532
-
533
-
534
-
535
- layout (location = 1) out vec3 TexCoords;
536
-
537
-
538
-
539
- uniform mat4 uViewProjection;
540
-
541
-
542
-
543
- void main()
544
-
545
- {
546
-
547
- TexCoords = vertexPosition;
548
-
549
- vec4 pos = uViewProjection * vec4(vertexPosition, 1.0);
550
-
551
-
552
-
553
- gl_Position = pos.xyww;
554
-
555
- }
556
-
557
- ```

2

文章を修正

2022/01/09 01:59

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- #####
5
+ ##### 確認したいこと
6
6
 
7
7
  シェーダーを確認
8
8
 

1

文章を修正

2022/01/08 09:04

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -483,3 +483,75 @@
483
483
 
484
484
 
485
485
  ```
486
+
487
+
488
+
489
+ ##### GLSL フラグメント
490
+
491
+ ```
492
+
493
+ #version 420
494
+
495
+
496
+
497
+ out vec4 FragColor;
498
+
499
+
500
+
501
+ layout (location = 1) out vec3 TexCoords;
502
+
503
+
504
+
505
+ uniform samplerCube skybox;
506
+
507
+
508
+
509
+ void main()
510
+
511
+ {
512
+
513
+ FragColor = texture(skybox, TexCoords);
514
+
515
+ }
516
+
517
+
518
+
519
+ ```
520
+
521
+
522
+
523
+ ##### GLSL 頂点シェーダー
524
+
525
+ ```
526
+
527
+ #version 420
528
+
529
+
530
+
531
+ layout (location = 0) in vec3 vertexPosition;
532
+
533
+
534
+
535
+ layout (location = 1) out vec3 TexCoords;
536
+
537
+
538
+
539
+ uniform mat4 uViewProjection;
540
+
541
+
542
+
543
+ void main()
544
+
545
+ {
546
+
547
+ TexCoords = vertexPosition;
548
+
549
+ vec4 pos = uViewProjection * vec4(vertexPosition, 1.0);
550
+
551
+
552
+
553
+ gl_Position = pos.xyww;
554
+
555
+ }
556
+
557
+ ```