如何使用OpenGlEs为Android绘制像素(2D视图)?
在用于绘画的时候很简单
draw(Canvas canvas){ ...}
所以使用它我们绘制
canvas.drawPoint(i, j, paint);
但是在OpenGlEs中,我还没有任何类似的功能.
请回复
预先感谢
解决方法:
GLES20Renderer.programlight = GLES20.glCreateProgram(); int vertexShaderlight = GLES20Renderer.loadShader(GLES20.GL_VERTEX_SHADER, GLES20Renderer.vertexshadercodelight); int fragmentShaderlight = GLES20Renderer.loadShader(GLES20.GL_FRAGMENT_SHADER, GLES20Renderer.fragmentshadercodelight); GLES20.glAttachShader(GLES20Renderer.programlight, vertexShaderlight); GLES20.glAttachShader(GLES20Renderer.programlight, fragmentShaderlight); GLES20.gllinkProgram(GLES20Renderer.programlight); uPLocationlight = GLES20.glGetUniformlocation(GLES20Renderer.programlight, "uP"); uVpositionLocationlight = GLES20.glGetUniformlocation(GLES20Renderer.programlight, "uVposition"); GLES20.gluseProgram(GLES20Renderer.programlight); GLES20.gluniform4f(uVpositionLocationlight, lightPosInEyeSpace[0], lightPosInEyeSpace[1], lightPosInEyeSpace[2], lightPosInEyeSpace[3]); GLES20.gluniformMatrix4fv(uPLocationlight, 1, false, ProjectionMatrix, 0); GLES20.glDrawArrays(GLES20.GL_POINTS, 0, 1);private static final String vertexshadercodelight = "uniform vec4 uVposition; \n" + "uniform mat4 uP; \n" + "voID main(){ \n" + " gl_PointSize = 15.0; \n" + " gl_position = uP * uVposition; \n" + "} \n";private static final String fragmentshadercodelight = "#ifdef GL_FRAGMENT_PRECISION_HIGH \n" + "precision highp float; \n" + "#else \n" + "precision mediump float; \n" + "#endif \n" + "voID main(){ \n" + " gl_Fragcolor = vec4(1.0,1.0,1.0,1.0); \n" + "} \n";
总结 以上是内存溢出为你收集整理的使用OpenGLEs for Android绘制Pixel全部内容,希望文章能够帮你解决使用OpenGLEs for Android绘制Pixel所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)