上三角形:
public class GL2 extends Activity {
private GLSurfaceView mGLSurfaceView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mGLSurfaceView = new GLSurfaceView(this);
mGLSurfaceView.setRenderer(new Two());
setContentView(mGLSurfaceView);
}
@Override
protected void onResume() {
super.onResume();
mGLSurfaceView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mGLSurfaceView.onPause();
}
}
class Two implements Renderer {
private Triangle triangle;
public Two() {
triangle = new Triangle();
}
@Override
public void onDrawFrame(GL10 gl) {
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();
gl.glTranslatef(0.0f, 0.0f, -6.0f);
triangle.draw(gl);
}
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
gl.glShadeModel(GL10.GL_SMOOTH);
gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
gl.glClearDepthf(1.0f);
gl.glEnable(GL10.GL_DEPTH_TEST);
gl.glDepthFunc(GL10.GL_LEQUAL);
gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);
}
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
if (height == 0) {
height = 1;
}
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
GLU.gluPerspective(gl, 45.0f, (float) width / (float) height, 0.1f,
100.0f);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
}
}
class Triangle {
private FloatBuffer vertexBuffer;
private float vertices[] = { 0.0f, 1.0f, 0.0f, -1.0f, -1.0f, 0.0f, 1.0f,
-1.0f, 0.0f };
public Triangle() {
ByteBuffer byteBuf = ByteBuffer.allocateDirect(vertices.length * 4);
byteBuf.order(ByteOrder.nativeOrder());
vertexBuffer = byteBuf.asFloatBuffer();
vertexBuffer.put(vertices);
vertexBuffer.position(0);
}
public void draw(GL10 gl) {
gl.glFrontFace(GL10.GL_CW);
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, vertices.length / 3);
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
}
}
三角形与正方形差不多,注释参考上一篇:http://yuanyao.iteye.com/blog/782474
分享到:
相关推荐
对应博客链接 http://write.blog.csdn.net/postedit/53190971
android openGL ES 2.0画等边三角形,正方形
Android平台,OpenGL ES3.0 点、线、三角形绘制方式源码实现举例。 相关绘制方式文章讲解请参考: https://xiaxl.blog.csdn.net/article/details/8873002
个人博客中讲解opengles的文章中第4篇讲解opengles的三角形
使用 OpenGL ES 绘制彩色三角形,包含三个彩色点、三角形边、三角形块
opengles绘制旋转的三角形
XCODE 下利用OPENGL ES 2.0绘制三角形DEMO
画一个三角形,通过键盘按键改变三条边的颜色
Android APP利用OpenGL绘制三角形
在Android用opengl es3.0写的,由于模拟器不支持opengl es3.0 所以调试时用真机
选择绘制三角形作为OpenGL ES 2.0的第一个实例,是因为前文中提到的,点、线、三角形是OpenGL ES世界的图形基础。无论多么复杂的几何物体,在OpenGL ES的世界里都可以用三角形拼成。关于Android OpenGL ES 三角形的...
介绍OpenGL 绘制三角形
OpenGL ES 2.0 开发一个旋转三角形 注释超级详细 配套解析博客 : http://blog.csdn.net/shulianghan/article/details/17020359
Android OpenGL es的小例子,绘制三角形
使用openGLES3.0绘制渐变色的三角形,顶点数据,也称为顶点属性,指定逐顶点数据。 可以为每个顶点或常量值指定逐顶点数据 可用于所有顶点。 例如,如果你想画一三角形 它有一个纯色(为了这个例子,假设颜色是 黑色...
将ogles1.0.0库移植到VC6.0编译成功后可以在VC6.0下编译OpenGL_ES程序,方便调试。Demo中应用了定时器和线程两种方式来实现动画。
第2章通过绘制一个三角形的简单OpenGL ES 3.0示例程序,讲解一些API概念,并说明如何构建和运行OpenGL ES示例程序;第3章讲述为OpenGL ES 3.0创建表面和渲染上下文的API——EGL;第4章讨论创建着色器对象、编译着色...
openGLES3.0绘制三角形,运行环境vs2019+openGLES3.0+windows10,添加了公用的日志打印函数,方便输出日志信息
要在OpenGLES20Activity.java的onCreate函数中修改一下才是地月界面,默认是安卓的原生例子三角形,上传资源时忘了改了。如下: //mGLView = new MyGLSurfaceView(this); mGLView = new EarthMoonSkyGLSurfaceView...
android OpenGL ES学习必备书籍,从基本到三角形四边形绘制到离屏渲染应有尽有,很适合零基础入门