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

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

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

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

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

GLSL

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

Q&A

1回答

2289閲覧

GLSLでバージョンを指定するとコンパイルエラーになる原因とは?

退会済みユーザー

退会済みユーザー

総合スコア0

OpenGL

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

コンパイル

コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

GLSL

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

0グッド

0クリップ

投稿2021/04/21 02:37

提示コードですが////コメント部内部でバージョンを指定しています。提示画像ですがなぜGLSLのバージョンを指定するとエラーが出るのでしょうか?バージョンを300 ,280等に落としてみましたが同じです。

glGetErro():
「 GL_INVALID_OPERATION 0x0502 現在のステートで無効な操作をしている場合、もしくは廃止された関数を呼び出した場合」

エラー[

ERROR: 0:1: '' : Incorrect GLSL version: 280
WARNING: 0:4: 'GL_ARB_explicit_attrib_location' : extension is not available in current GLSL version
WARNING: 0:4: 'GL_ARB_explicit_attrib_location' : extension is not available in current GLSL version
WARNING: 0:4: 'GL_ARB_explicit_attrib_location' : extension is not available in current GLSL version

ERROR: 0:12: 'position' : undeclared identifier
ERROR: 0:12: 'y' : vector field selection out of range
ERROR: 0:13: 'vfragColor' : undeclared identifier
ERROR: 0:13: 'fragColor' : undeclared identifier
]

日本語訳[ 拡張機能は現在のGLSLバージョンでは使用できません ]

イメージ説明

cpp

1//#define GLEW_STATIC //スタティックリンク 2#include <iostream> 3#include <fstream> 4#include <cstdlib> 5#include <vector> 6#include <glew/include/GL/glew.h> 7#include <glfw/include/GLFW/glfw3.h> 8 9#include "Window.hpp" 10#include "Shader.hpp" 11#include "DrawTest.hpp" 12 13 14int main() 15{ 16 if (glfwInit() == GL_FALSE) 17 { 18 std::cerr << "glfw初期化失敗。" << std::endl; 19 return -1; 20 } 21 22 atexit(glfwTerminate); //プログラム終了時の処理を登録 23 Window window; //コンテキストを作成 24//////////////////////////////////////////////////////////////////////////////// 25 //OpenGL Verison 3.2 Core Profile を選択する 26// glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,3); 27// glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR,2); 28// glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT,GL_TRUE); 29// glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE); 30/////////////////////////////////////////////////////////////////////////////// 31 glClearColor(1.0, 0.0, 0.0, 1.0); //背景色 32// ############################################################################# 33 34 DrawTest test; 35 36 37 Shader shader("Test.vert","Test.frag"); 38 39 shader.setBindAttribVertex(0, "Position"); 40 shader.setBindAttribVertex(1, "fragColor"); 41 42 shader.setBindAttribFragment(0, "fragment"); 43 44 45 while (window) 46 { 47 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //カラーバッファをクリア 48 shader.Active(); 49 50 test.Draw(); 51 52 53 54 55 56 57 58 59 window.SwapBuffers(); //ダブルバッファリング 60 } 61 62} 63

GLSL

1#version 320 core 2 3 4layout(location = 0) in vec2 position; 5 6in vec4 fragColor; 7 8out vec4 vfragColor; 9 10void main() 11{ 12 gl_Position = vec4(position.x,position.y,1.0,1.0); //座標 13 vfragColor = fragColor; //カラー 14}

GLSL

1#version 320 core 2 3out vec4 fragment; 4 5in vec4 vfragColor; //頂点カラー 6void main() 7{ 8 fragment = vfragColor; 9}

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

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

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

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

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

Zuishin

2021/04/21 02:43

また削除して新しく質問してんのか。
退会済みユーザー

退会済みユーザー

2021/04/21 02:45 編集

何が問題なのでしょうか?自分としては丸投げしているつもりなはないのですがどういった点が丸投げなのでしょうか?
K_3578

2021/04/21 03:02

幾人もの回答者にずっと前から言われている通り基礎から学び直してくれ。 一生他人のコードの継ぎ接ぎで何かを作ろうとするからこうなってるってことを理解してくれ。
退会済みユーザー

退会済みユーザー

2021/04/21 03:30

何が問題なのでしょうか?ちゃんと自分コードを読んでわからないところを質問しているのですが
K_3578

2021/04/21 03:38

>質問者 まず、ちょくちょく日本語が怪しい。助詞とかよく入ってないし。 次、理解していないのに身の丈に合わないことをしてる。 500件以上質問してまさか理解出来てるとか言わないよね。基礎も出来てないのに 応用が出来るわけないって理解して。 それと、危機意識の欠如。 3年だか4年だか同じ所で留まり続けて、何度も同様の指摘をされながら意にも介さない所。
退会済みユーザー

退会済みユーザー

2021/04/21 04:04

質問内容は何が悪いのでしょか?低評価が付く理由が知りたいです。
m.ts10806

2021/04/21 04:14

これまで再三指摘されてきてわからないのは質問を「なかったこと」にしてきてるからですね。直す気も省みる気もないならそんな無粋なこと聞かないで。
K_3578

2021/04/21 04:46

遂に退会したか・・・。
fana

2021/04/21 05:49

これは残念.
guest

回答1

0

ERROR: 0:1: '' : Incorrect GLSL version: 280

wikipedia だけど
#version に表記する値としては,
320 とか 300, 280 という値は無いってことなんじゃないかな…?

投稿2021/04/21 04:36

fana

総合スコア11658

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問