質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

3DCG

コンピュータの演算により、3次元空間の仮想物体を、2次元平面上で表現する手法である。

GLSL

GLSL (OpenGL Shading Language) はC言語をベースとしたシェーディング言語です。

Q&A

0回答

1353閲覧

OpenGL カメラを動かすと立方体がちらつく原因が知りたい。

退会済みユーザー

退会済みユーザー

総合スコア0

OpenGL

OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

3DCG

コンピュータの演算により、3次元空間の仮想物体を、2次元平面上で表現する手法である。

GLSL

GLSL (OpenGL Shading Language) はC言語をベースとしたシェーディング言語です。

0グッド

0クリップ

投稿2021/11/01 06:13

編集2021/11/02 08:05

提示コードですがカメラの視点を振と立方体がちらついてしまうのですがこれは何が原因なのでしょうか?

調べたこと

シェーダーコードを確認
カリング、深度バッファ等の設定を確認

参考サイト: https://www.fixes.pub/program/242324.html

イメージ説明

VertexShader
/*######################################################################### # ###########################################################################*/ #version 420 //#extension GL_ARB_explicit_uniform_location : require layout(location = 0) in vec3 vertexPosition; //layout(location = 1) in vec2 vertexUV; //layout(location = 2) in vec3 vertexNormal; //layout(location = 3) out vec2 vUV; layout(location = 1) out vec4 vFragment; //layout(location = 4) out vec3 vNormal; uniform mat4 uTranslate; uniform mat4 uRotate; uniform mat4 uScale; uniform mat4 uViewProjection; uniform vec4 uFragment; void main() { vec4 vertex = vec4(vertexPosition,1.0); mat4 model = uTranslate * uRotate * uScale; gl_Position = (uViewProjection * model) * vertex; // vUV = vertexUV; vFragment = uFragment; // vNormal = vertexNormal; }
Fragment Shader
/*######################################################################### # ###########################################################################*/ #version 420 //#extension GL_ARB_explicit_uniform_location : require //layout(location = 3) in vec2 vUV; layout(location = 1) in vec4 vfragment; //layout(location = 4) in vec3 vNormal; //uniform sampler2D uImage; out vec4 fragment; void main() { fragment = vfragment; // fragment = texture(uImage,vUV); }
Init.cpp
#include "../header/Init.hpp" #include <GL/glew.h> #include <GLFW/glfw3.h> #include "../header/Window.hpp" #include "../header/Resource.hpp" namespace FrameWork { std::shared_ptr<FrameWork::Window> windowContext = 0; // ##################################### 初期化 ##################################### bool Init(glm::ivec2 size, glm::ivec2 ver, const char *title) { if (FT_Init_FreeType(&ft) != 0) { std::cerr << "FreeType を初期化出来ません。" << std::endl; assert(0); } setlocale(LC_CTYPE, ""); //ローカルを設定 if (glfwInit() == GL_FALSE) { std::cerr << "glfw初期化失敗。" << std::endl; return false; } windowContext = std::make_shared<Window>(size, title); //ウインドウコンテキストを生成 glEnable(GL_BLEND); //ブレンド有効 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); //ブレンドを指定 glEnable(GL_TEXTURE_2D); //テクスチャを有効 glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); //ブレンドタイプ glEnable(GL_MULTISAMPLE); //MSAA glEnable(GL_SAMPLE_ALPHA_TO_COVERAGE); //半透明 glEnable(GL_DEPTH_TEST); //深度バッファを有効 //glDepthFunc(GL_ALWAYS); //深度バッファのタイプ glEnable(GL_CULL_FACE); //カリングを有効 glCullFace(GL_BACK); //裏面を無効 //マウス移動 if (GLFW_NOT_INITIALIZED == glfwRawMouseMotionSupported()) { std::cerr << "GLFW_NOT_INITIALIZED" << std::endl; } // OpenGL Verison 4.5 Core Profile を選択する glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, ver.x); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, ver.y); glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); atexit(glfwTerminate); //プログラム終了時の処理を登録 return true; } }
Main.cpp
//FrameWork::Camera::setLook(cameraLook); //FrameWork::Camera::setLook(glm::vec3(0,0,-1)); FrameWork::Camera::setLook(glm::vec3(cos(cameraLook.x) * cos(cameraLook.y), sin(cameraLook.y), sin(cameraLook.x) * cos(cameraLook.y))); FrameWork::Camera::setPosition(cameraPos);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問