シェーダバージョンチェック
シェーダバージョンチェック
import javax.media.opengl.*;PShader sd; // シェーダvoid setup() {size(600, 600, P2D);println(((PGraphicsOpenGL )g).pgl.gl.glGetString(GL.GL_VERSION));println(((PGraphicsOpenGL )g).pgl.gl.glGetString(GL2.GL_SHADING_LANGUAGE_VERSION));sd = loadShader("FragmentShader.glsl");}void draw() {shader(sd);rect(0, 0, width, height);}//---以降はGLSLファイルの内容です。dataディレクトリにFragmentShader.glslと言う名称で保存してください。const float NEON_WIDTH = 50.0; // 基準点からネオンが有効な距離void main(){vec4 col = vec4(0, 0, 0, 1);// 基準の位置を決定float h = 100f;// cは、座標が基準位置ぴったりであれば1.0。そこからNEON_WIDTHの範囲内であれば、距離に応じて1.0~0.0となる。float t = abs(gl_FragCoord.y - h) / NEON_WIDTH;float c = 1.0 - t;// 結果が0より大きければ、色を加算する。if(c > 0.0){c = pow(c, 3.0);vec3 rc = vec3(c, c, c);col += vec4(rc, 1);}gl_FragColor = vec4(col);}