質問編集履歴

17

書式の改善

2022/07/15 23:28

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -6,4 +6,6 @@
6
6
 
7
7
  頂点シェーダとフラグメントシェーダについて、
8
8
  アドバイスお願いします。
9
-
9
+ 自前でソースコードをつくらなければいけない観点から、ソースコードを消してしまいました。
10
+
11
+

16

書式の改善

2022/07/15 23:23

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,9 @@
1
1
 
2
+ 点シェーダとフラグメントシェーダを#version 120にしたいです。
2
3
 
3
- 頂点シェーダとフラグメントシェーダを#version 120にしたいです。
4
4
  (visual c++)で最新のバージョンにすればよかったです。
5
5
  また、拡張子をいれればよかったです。
6
+
7
+ 頂点シェーダとフラグメントシェーダについて、
8
+ アドバイスお願いします。
6
9
 

15

書式の改善

2022/07/15 23:13

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -1,363 +1,6 @@
1
- 頂点シェーダとフラグメントシェーダを#version 120にしたいです。
2
1
 
3
2
 
4
-
5
-
6
-
7
- 追記 参照しているページのシェーダープログラムのリンクまで打ったら、コンパイルエラーなしで
8
-
9
- ソースコードが通ることが分かりました。
10
-
11
-
12
-
13
- 再追記
14
-
15
- シェーダの" "の部分とがうまくいかないことが分かりました。
16
-
17
- あとシェーダの" "を外部に出す方法について教えてください。
18
-
19
-
20
-
21
- 再々追記 " "の部分で、
22
-
23
- attribute , varying
24
-
25
-
26
-
27
- in ,out の関係を直さないといけないと思うけど、私の場合はopenglのバージョンが古いようなので古くしないといけない。  
28
-
29
-
30
-
31
-
32
-
33
- **頂点シェーダーのコンパイルに失敗しました。
34
-
35
- フラグメントシェーダのコンパイルに失敗しました。
36
-
37
- シェーダプログラムのリンクに失敗しました。**
38
-
39
- と出ます
40
-
41
- 。このページを引用いています。
42
-
43
-
44
-
45
- [ここ](http://code-c.hatenablog.com/entry/2014/03/10/213723)
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
- ```opengl
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
- GLenum glewStatus=glewInit();
62
-
63
-
64
-
65
- if(glewStatus!=GLEW_OK){
66
-
67
-
68
-
69
- std::cerr <<"Error:"<<glewGetErrorString (glewStatus)<<std::endl;
70
-
71
-
72
-
73
- }
74
-
75
-
76
-
77
- GLuint vertShader;
78
-
79
- GLuint fragShader;
80
-
81
- GLuint gl2Program;
82
-
83
-
84
-
85
- GLint compiled, Linked;
86
-
87
-
88
-
89
- vertShader=glCreateShader(GL_VERTEX_SHADER);
90
-
91
-
92
-
93
-
94
-
95
- if(0==vertShader){
96
-
97
- std::cerr <<"頂点シェーダー作成エラー"<<std::endl;
98
-
99
- }
100
-
101
-
102
-
103
- /*サイトにあったやつ*/
104
-
105
-
106
-
107
- /*const GLchar* vertShaderCode =
108
-
109
- "#version 120\n"
110
-
111
- "attribute vec3 VertexPosition;"
112
-
113
- "attribute vec3 VertexColor;"
114
-
115
- "varying vec3 Color;"
116
-
117
- "void main() {"
118
-
119
- "Color = VertexColor;"
120
-
121
- "gl_Position = vec4(VertexPosition, 1.0);"
122
-
123
- "}"; */
124
-
125
-
126
-
127
- /*書きかえたやつ*/
128
-
129
- const GLchar* vertShaderCode =
130
-
131
-
132
-
133
- "#version 120 \n"
134
-
135
-
136
-
137
- "attribute vec4 vertex;"
138
-
139
-
140
-
141
- "varying vec2 TexCoords;"
142
-
143
-
144
-
145
- "uniform mat4 projection;"
146
-
147
-
148
-
149
- "void main() {"
150
-
151
-
152
-
153
- "gl_Position=projection*vec4(vertex.xy,0.0,1.0);"
154
-
155
-
156
-
157
- "TexCoords=vertex.zw;"
158
-
159
-
160
-
161
- "}";
162
-
163
-
164
-
165
- glShaderSource(vertShader, 1, &vertShaderCode, NULL);
166
-
167
-
168
-
169
- glCompileShader(vertShader);
170
-
171
-
172
-
173
- GLint result;
174
-
175
-
176
-
177
- glGetShaderiv(vertShader, GL_COMPILE_STATUS, &result);
178
-
179
-
180
-
181
- if(GL_FALSE==result){
182
-
183
- std::cerr<<"頂点シェーダーのコンパイルに失敗しました"<<std::endl;
184
-
185
- }
186
-
187
-
188
-
189
-
190
-
191
-
192
-
193
-
194
-
195
- fragShader = glCreateShader(GL_FRAGMENT_SHADER);
196
-
197
- if(0==fragShader){
198
-
199
-
200
-
201
- std::cerr<<"フラグメントシェーダ作成エラー"<<std::endl;
202
-
203
-
204
-
205
- }
206
-
207
-
208
-
209
- /* サイトにあったやつ
210
-
211
- const GLchar* fragShaderCode =
212
-
213
- "#version 120\n"
214
-
215
- "varying vec3 Color;"
216
-
217
- "void main() {"
218
-
219
- "gl_FragColor = vec4(Color, 1.0);"
220
-
221
- "}";
222
-
223
- */
224
-
225
-
226
-
227
- /*書きかえたやつ*/
228
-
229
- const GLchar* fragShaderCode =
230
-
231
- "#version 120\n"
232
-
233
- "uniform vec4 color;"
234
-
235
- "uniform sample2D text;"
236
-
237
- "uniform vec3 textColor;"
238
-
239
- "void main(){"
240
-
241
-
242
-
243
- "vec4 sampled =vec4(1.0,1.0,1.0,texture(text,TexCoords).r);"
244
-
245
- "color=vec4(textColor,1.0)*sampled;"
246
-
247
- "}";
248
-
249
- glShaderSource(fragShader, 1, &fragShaderCode, NULL);
250
-
251
-
252
-
253
- glCompileShader(fragShader);
254
-
255
-
256
-
257
- glGetShaderiv(fragShader,GL_COMPILE_STATUS,&result);
258
-
259
-
260
-
261
- if(GL_FALSE==result){
262
-
263
- std::cerr<<"フラグメントシェーダのコンパイルに失敗しました"<<std::endl;
264
-
265
- }
266
-
267
-
268
-
269
- GLuint programHandle=glCreateProgram();
270
-
271
-
272
-
273
- if(0==programHandle){
274
-
275
- std::cerr<<"プロジェクトの作成でエラーがありました"<<std::endl;
276
-
277
- }
278
-
279
-
280
-
281
- glAttachShader(programHandle,vertShader);
282
-
283
- glAttachShader(programHandle,fragShader);
284
-
285
-
286
-
287
- glLinkProgram(programHandle);
288
-
289
-
290
-
291
- GLint status;
292
-
293
-
294
-
295
- glGetProgramiv(programHandle,GL_LINK_STATUS,&status);
296
-
297
-
298
-
299
- if(GL_FALSE==status)
300
-
301
- {
302
-
303
- std::cerr<<"シェーダプログラムのリンクに失敗しました"<<std::endl;
304
-
305
- }
306
-
307
-
308
-
309
- glUseProgram(programHandle);
310
-
311
-
312
-
313
-
314
-
315
- ```
316
-
317
- ```(頂点シェーダ)
318
-
319
- 目的の頂点シェーダでバージョンを#verion120にしたい
320
-
321
- #version 400
322
-
323
- layout (location=0) in vec4 vertex;
324
-
325
- out vec2 TexCoods;
326
-
327
- uniform mat4 projection;
328
-
329
- void main()
330
-
331
- {gl_Position=projection*vec4(vertex.xy,0.0,1.0);
332
-
333
- TexCoords=vertex.zw;
334
-
335
- }
336
-
337
- ```
338
-
339
- ``` (フラグメントシェーダ)
340
-
341
-
342
-
343
- 目的のフラグメントシェーダでバージョンを#version120したい
3
+ 頂点シェーダとフラグメントシェーダを#version 120したいです。
344
-
345
-
346
-
347
- #version 400
4
+ visual c++)で最新のバージョンにすればよかったです。
348
-
349
- in vec2 TexCoords;
5
+ また、拡張子をいれればよかったです。
350
-
351
- out vec4 color;
6
+
352
-
353
- uniform sample2D text;
354
-
355
- uniform vec3 textColor;
356
-
357
- void main(){
358
-
359
- vec4 sampled=vec4(1.0,1.0,1.0,texture(text,TexCoords).r);
360
-
361
- color =vec4(texColor,1.0)*sampled;
362
-
363
- ```

14

文の改善

2020/10/22 14:58

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,9 @@
1
+ 頂点シェーダとフラグメントシェーダを#version 120にしたいです。
2
+
3
+
4
+
5
+
6
+
1
7
  追記 参照しているページのシェーダープログラムのリンクまで打ったら、コンパイルエラーなしで
2
8
 
3
9
  ソースコードが通ることが分かりました。
@@ -310,7 +316,7 @@
310
316
 
311
317
  ```(頂点シェーダ)
312
318
 
313
- 目的の頂点シェーダでバージョンを古くしたい
319
+ 目的の頂点シェーダでバージョンを#verion120にしたい
314
320
 
315
321
  #version 400
316
322
 
@@ -334,7 +340,7 @@
334
340
 
335
341
 
336
342
 
337
- 目的のフラグメントシェーダでバージョンを古くしたい
343
+ 目的のフラグメントシェーダでバージョンを#version120したい
338
344
 
339
345
 
340
346
 

13

文の変更

2020/10/22 14:58

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -310,7 +310,7 @@
310
310
 
311
311
  ```(頂点シェーダ)
312
312
 
313
- 目的のGLSLでバージョンを古くしたい
313
+ 目的の頂点シェーダでバージョンを古くしたい
314
314
 
315
315
  #version 400
316
316
 
@@ -334,7 +334,7 @@
334
334
 
335
335
 
336
336
 
337
- 目的のGLSLでバージョンを古くしたい
337
+ 目的のフラグメントシェーダでバージョンを古くしたい
338
338
 
339
339
 
340
340
 

12

文の改善

2020/10/22 07:31

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -300,11 +300,7 @@
300
300
 
301
301
 
302
302
 
303
- glAttachShader(programHandle,vertShader);
304
-
305
- glAttachShader(programHandle,fragShader);
306
-
307
- glLinkProgram(programHandle);
303
+ glUseProgram(programHandle);
308
304
 
309
305
 
310
306
 

11

文の変更

2020/10/22 07:19

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -38,7 +38,9 @@
38
38
 
39
39
  [ここ](http://code-c.hatenablog.com/entry/2014/03/10/213723)
40
40
 
41
- 今のシェーダの状態です。
41
+
42
+
43
+
42
44
 
43
45
 
44
46
 

10

文の変更

2020/10/21 13:31

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -310,9 +310,9 @@
310
310
 
311
311
  ```
312
312
 
313
+ ```(頂点シェーダ)
314
+
313
- ```目的のGLSLでバージョンを古くしたい
315
+ 目的のGLSLでバージョンを古くしたい
314
-
315
- (頂点シェーダ)
316
316
 
317
317
  #version 400
318
318
 
@@ -332,9 +332,13 @@
332
332
 
333
333
  ```
334
334
 
335
+ ``` (フラグメントシェーダ)
336
+
337
+
338
+
335
- ```目的のGLSLでバージョンを古くしたい
339
+ 目的のGLSLでバージョンを古くしたい
336
-
337
- (フラグメントシェーダ)
340
+
341
+
338
342
 
339
343
  #version 400
340
344
 

9

文の変更

2020/10/21 13:18

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -92,6 +92,8 @@
92
92
 
93
93
 
94
94
 
95
+ /*サイトにあったやつ*/
96
+
95
97
 
96
98
 
97
99
  /*const GLchar* vertShaderCode =
@@ -114,6 +116,8 @@
114
116
 
115
117
 
116
118
 
119
+ /*書きかえたやつ*/
120
+
117
121
  const GLchar* vertShaderCode =
118
122
 
119
123
 
@@ -194,7 +198,7 @@
194
198
 
195
199
 
196
200
 
197
- /*
201
+ /* サイトにあったやつ
198
202
 
199
203
  const GLchar* fragShaderCode =
200
204
 
@@ -212,7 +216,7 @@
212
216
 
213
217
 
214
218
 
215
-
219
+ /*書きかえたやつ*/
216
220
 
217
221
  const GLchar* fragShaderCode =
218
222
 
@@ -306,7 +310,7 @@
306
310
 
307
311
  ```
308
312
 
309
- ```GLSL
313
+ ```目的のGLSLでバージョンを古くしたい
310
314
 
311
315
  (頂点シェーダ)
312
316
 
@@ -328,7 +332,7 @@
328
332
 
329
333
  ```
330
334
 
331
- ```GLSL
335
+ ```目的のGLSLでバージョンを古くしたい
332
336
 
333
337
  (フラグメントシェーダ)
334
338
 

8

文の変更

2020/10/21 13:09

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -305,3 +305,47 @@
305
305
 
306
306
 
307
307
  ```
308
+
309
+ ```GLSL
310
+
311
+ (頂点シェーダ)
312
+
313
+ #version 400
314
+
315
+ layout (location=0) in vec4 vertex;
316
+
317
+ out vec2 TexCoods;
318
+
319
+ uniform mat4 projection;
320
+
321
+ void main()
322
+
323
+ {gl_Position=projection*vec4(vertex.xy,0.0,1.0);
324
+
325
+ TexCoords=vertex.zw;
326
+
327
+ }
328
+
329
+ ```
330
+
331
+ ```GLSL
332
+
333
+ (フラグメントシェーダ)
334
+
335
+ #version 400
336
+
337
+ in vec2 TexCoords;
338
+
339
+ out vec4 color;
340
+
341
+ uniform sample2D text;
342
+
343
+ uniform vec3 textColor;
344
+
345
+ void main(){
346
+
347
+ vec4 sampled=vec4(1.0,1.0,1.0,texture(text,TexCoords).r);
348
+
349
+ color =vec4(texColor,1.0)*sampled;
350
+
351
+ ```

7

文の改善

2020/10/21 12:39

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -38,16 +38,18 @@
38
38
 
39
39
  [ここ](http://code-c.hatenablog.com/entry/2014/03/10/213723)
40
40
 
41
-
42
-
43
- シェーダーコード部とシェーダーコード部を外部に出す方法を教えてください。
44
-
45
- (ポインタがあっても無視していま
41
+ 今のシェーダの状態で
46
42
 
47
43
 
48
44
 
49
45
  ```opengl
50
46
 
47
+
48
+
49
+
50
+
51
+
52
+
51
53
  GLenum glewStatus=glewInit();
52
54
 
53
55
 
@@ -62,15 +64,13 @@
62
64
 
63
65
  }
64
66
 
67
+
68
+
65
- GLuint vertShader;
69
+ GLuint vertShader;
66
-
70
+
67
- GLuint fragShader;
71
+ GLuint fragShader;
68
-
72
+
69
- GLuint gl2Program;
73
+ GLuint gl2Program;
70
-
71
-
72
-
73
-
74
74
 
75
75
 
76
76
 
@@ -92,39 +92,65 @@
92
92
 
93
93
 
94
94
 
95
+
96
+
95
- const GLchar *vertexsource[]={
97
+ /*const GLchar* vertShaderCode =
96
-
98
+
97
- "#version 330",
99
+ "#version 120\n"
100
+
98
-
101
+ "attribute vec3 VertexPosition;"
102
+
99
-
103
+ "attribute vec3 VertexColor;"
104
+
100
-
105
+ "varying vec3 Color;"
106
+
107
+ "void main() {"
108
+
109
+ "Color = VertexColor;"
110
+
111
+ "gl_Position = vec4(VertexPosition, 1.0);"
112
+
113
+ "}"; */
114
+
115
+
116
+
117
+ const GLchar* vertShaderCode =
118
+
119
+
120
+
121
+ "#version 120 \n"
122
+
123
+
124
+
101
- "layout(location=0)in vec4 vertex;",
125
+ "attribute vec4 vertex;"
102
-
103
-
104
-
126
+
127
+
128
+
105
- "out vec2 TexCoords;",
129
+ "varying vec2 TexCoords;"
106
-
107
-
108
-
130
+
131
+
132
+
109
- "uniform mat4 projection;",
133
+ "uniform mat4 projection;"
110
-
111
-
112
-
134
+
135
+
136
+
113
- "void main(){",
137
+ "void main() {"
114
-
138
+
139
+
140
+
115
- "gl_Position=projection*vec4(vertex.xy,0.0,1.0);",
141
+ "gl_Position=projection*vec4(vertex.xy,0.0,1.0);"
116
-
142
+
143
+
144
+
117
- "TexCoords=vertex.zw;",
145
+ "TexCoords=vertex.zw;"
118
-
146
+
147
+
148
+
119
- "}",
149
+ "}";
120
-
121
-
122
-
123
- };
150
+
124
-
125
-
126
-
151
+
152
+
127
- glShaderSource(vertShader,1,vertexsource,NULL);
153
+ glShaderSource(vertShader, 1, &vertShaderCode, NULL);
128
154
 
129
155
 
130
156
 
@@ -166,47 +192,49 @@
166
192
 
167
193
  }
168
194
 
195
+
196
+
169
- glShaderSource(vertShader, 1, vertexsource, NULL);
197
+ /*
170
-
171
-
172
-
198
+
173
- const GLchar *fragsource=
199
+ const GLchar* fragShaderCode =
174
-
175
-
176
-
200
+
177
- "#version 400\n"
201
+ "#version 120\n"
178
-
202
+
179
- "in vec2 TexCoords;"
203
+ "varying vec3 Color;"
204
+
180
-
205
+ "void main() {"
206
+
207
+ "gl_FragColor = vec4(Color, 1.0);"
208
+
209
+ "}";
210
+
211
+ */
212
+
213
+
214
+
215
+
216
+
217
+ const GLchar* fragShaderCode =
218
+
219
+ "#version 120\n"
220
+
181
- "out vec4 color;"
221
+ "uniform vec4 color;"
182
-
183
-
184
222
 
185
223
  "uniform sample2D text;"
186
224
 
187
- "uniform vec3 texColor;"
225
+ "uniform vec3 textColor;"
188
-
189
-
190
226
 
191
227
  "void main(){"
192
228
 
229
+
230
+
193
- "vec4 sampled=vec4(1.0,1.0,1.0,texture(text,TexCoords).r);"
231
+ "vec4 sampled =vec4(1.0,1.0,1.0,texture(text,TexCoords).r);"
194
-
195
-
196
232
 
197
233
  "color=vec4(textColor,1.0)*sampled;"
198
234
 
199
-
200
-
201
235
  "}";
202
236
 
203
-
204
-
205
-
206
-
207
-
208
-
209
- glShaderSource(fragShader,1,&fragsource,NULL);
237
+ glShaderSource(fragShader, 1, &fragShaderCode, NULL);
210
238
 
211
239
 
212
240
 
@@ -224,6 +252,8 @@
224
252
 
225
253
  }
226
254
 
255
+
256
+
227
257
  GLuint programHandle=glCreateProgram();
228
258
 
229
259
 

6

文の改善

2020/10/21 12:29

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -12,13 +12,13 @@
12
12
 
13
13
 
14
14
 
15
- 再々追記
15
+ 再々追記 " "の部分で、
16
16
 
17
17
  attribute , varying
18
18
 
19
19
 
20
20
 
21
- in ,out の関係と思うけど、私の場合は古くしないといけない。  
21
+ in ,out の関係を直さないいけないと思うけど、私の場合はopenglのバージョンがいようなので古くしないといけない。  
22
22
 
23
23
 
24
24
 

5

文の変更

2020/10/21 10:29

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  in ,out の関係だと思うけど、私の場合は古くしないといけない。  
22
22
 
23
- ----------------------------------------------------------
23
+
24
24
 
25
25
 
26
26
 

4

文の改善

2020/10/21 10:26

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -12,6 +12,18 @@
12
12
 
13
13
 
14
14
 
15
+ 再々追記
16
+
17
+ attribute , varying
18
+
19
+
20
+
21
+ in ,out の関係だと思うけど、私の場合は古くしないといけない。  
22
+
23
+ ----------------------------------------------------------
24
+
25
+
26
+
15
27
  **頂点シェーダーのコンパイルに失敗しました。
16
28
 
17
29
  フラグメントシェーダのコンパイルに失敗しました。

3

文の改善

2020/10/21 10:25

投稿

txty
txty

スコア298

test CHANGED
@@ -1 +1 @@
1
- shader vertex とfragment
1
+ シェーダの" "の部分とシェーダの" "を外部に出す方法について
test CHANGED
@@ -4,6 +4,12 @@
4
4
 
5
5
 
6
6
 
7
+ 再追記
8
+
9
+ シェーダの" "の部分とがうまくいかないことが分かりました。
10
+
11
+ あとシェーダの" "を外部に出す方法について教えてください。
12
+
7
13
 
8
14
 
9
15
  **頂点シェーダーのコンパイルに失敗しました。
@@ -22,7 +28,7 @@
22
28
 
23
29
 
24
30
 
25
- どこが違うのか、んなり通るものなのか分かりません。教えてください。
31
+ シェーダーコード部とシェーダーコード部を外部に出方法を教えてください。
26
32
 
27
33
  (ポインタがあっても無視しています)
28
34
 

2

文の改善

2020/10/21 09:00

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,10 @@
1
- 追記 打ち間違をしたのですがいづれにても
1
+ 追記 参照るページシェーダープログラムのリンクま打ったらコンパイルエラーな
2
-
2
+
3
- エラの解消につながりませんでした。
3
+ スコード通ることが分かりました。
4
-
5
-
6
-
7
- 打ち消し線端末に
4
+
5
+
6
+
7
+
8
8
 
9
9
  **頂点シェーダーのコンパイルに失敗しました。
10
10
 
@@ -24,7 +24,7 @@
24
24
 
25
25
  どこが違うのか、すんなり通るものなのか分かりません。教えてください。
26
26
 
27
- (ポインタ無視しています)
27
+ (ポインタがあっても無視しています)
28
28
 
29
29
 
30
30
 

1

文の改善

2020/10/21 07:54

投稿

txty
txty

スコア298

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,10 @@
1
+ 追記 少し打ち間違いをしたのですが、いづれにしても
2
+
3
+ エラーの解消につながりませんでした。
4
+
5
+
6
+
1
- 端末に
7
+ 打ち消し線端末に
2
8
 
3
9
  **頂点シェーダーのコンパイルに失敗しました。
4
10