現在、頂点シェーダーから1つのフロートを渡しています:
varying float fog_factor;
...
fog_factor = clamp(gl_Position.z, 0.0, 1.0);
...
フラグメントシェーダーへ:
varying float fog_factor;
...
gl_FragColor = texture2D(sampler_texture_4, ...) * fog_factor;
...
私の質問ですが、Javaコードに追加する必要があるものはありますか?floatの配列を渡すときは、次のようなものを追加する必要があります。
vertex_position_handle = GLES20.glGetAttribLocation(program, "vertex_position");
GLES20.glEnableVertexAttribArray(vertex_position_handle);
GLES20.glVertexAttribPointer(vertex_position_handle, 3, GLES20.GL_FLOAT, false, 3 * 4, vertex_buffer);
今のところ、私はフロートのJavaコードでこれを行っているだけです:
fog_handle = GLES20.glGetAttribLocation(program, "fog_factor");
このコードは私のデバイスで機能しているので、これを求めていますが、他の人ではクラッシュします...