`
yuanyao
  • 浏览: 148262 次
  • 性别: Icon_minigender_1
  • 来自: 就那小山沟
社区版块
存档分类
最新评论

OpenGL ES 画三角形

阅读更多

上三角形:

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

分享到:
评论

相关推荐

    android opengles2.0画三角形

    对应博客链接 http://write.blog.csdn.net/postedit/53190971

    android openGL ES 2.0画等边三角形,正方形

    android openGL ES 2.0画等边三角形,正方形

    Android上opengl es3.0实现一个旋转的三角形(Android studio2.1.3)

    在 Android Studio 2.1.3 中,要实现一个使用 OpenGL ES 3.0 的旋转三角形,你需要遵循以下步骤: 1. **设置项目配置**:首先确保你的 Android Studio 支持 OpenGL ES 3.0。在 `build.gradle` 文件的 `default...

    Android平台 OpenGL ES3.0绘制点、线、三角形实现源码

    Android平台,OpenGL ES3.0 点、线、三角形绘制方式源码实现举例。 相关绘制方式文章讲解请参考: https://xiaxl.blog.csdn.net/article/details/8873002

    OpenGLES demo - 4. GL中的三角形

    个人博客中讲解opengles的文章中第4篇讲解opengles的三角形

    opengles绘制旋转的三角形

    opengles绘制旋转的三角形

    VC6.0下编译的OpenGL_ES 旋转三角形Demo

    在本示例中,"VC6.0下编译的OpenGL_ES 旋转三角形Demo"是将OpenGL ES移植到老版本的Visual C++ 6.0(简称VC6.0)环境下的一个编程实例,目的是为了在该IDE上能进行OpenGL ES程序的开发和调试。 首先,你需要了解...

    Opengl画三角形

    在这个“OpenGL画三角形”的项目中,我们将学习如何使用OpenGL来创建一个基本的三角形,并且通过键盘输入来改变其边的颜色。 首先,要实现OpenGL的基本功能,我们需要包含必要的头文件,如`GL/glut.h`或`GLFW/glfw3...

    XCODE 下利用OPENGL ES 2.0绘制三角形DEMO

    总的来说,Xcode下的OpenGL ES 2.0三角形DEMO是一个基础教程,旨在帮助开发者入门iOS图形编程,理解图形渲染管线的工作原理,以及如何利用OpenGL ES 2.0的强大功能来创建复杂的2D和3D图形。通过实践这个DEMO,开发者...

    【OpenGL ES】绘制彩色三角形

    使用 OpenGL ES 绘制彩色三角形,包含三个彩色点、三角形边、三角形块

    android opengl es 绘画文字和3d动画

    `Elasticsearch`标签可能指的是在处理大量数据时,如何利用Elasticsearch这种强大的搜索引擎来检索和存储3D模型或动画的元数据,从而加速内容加载和搜索。 总的来说,"android opengl es 绘画文字和3D动画"是一个...

    《OpenGL ES 2.0 编程指南 中文版》.pdf

    OpenGL ES 2.0中的图元装配定义了如何将顶点数据组合成基本的图元,如三角形、直线和点。光栅化是图形管线的阶段之一,将图元转换为像素的过程,即将2D图形数据转换为屏幕上的像素数据。在这个过程中,开发者可以...

    Android OpenGLES2.0绘制三角形(二)

    选择绘制三角形作为OpenGL ES 2.0的第一个实例,是因为前文中提到的,点、线、三角形是OpenGL ES世界的图形基础。无论多么复杂的几何物体,在OpenGL ES的世界里都可以用三角形拼成。关于Android OpenGL ES 三角形的...

    Android 利用OpenGL绘制三角形

    Android APP利用OpenGL绘制三角形

    OPENGL ES 3.0编程指南 原书第2版 中文版 笔记1

    OpenGL ES 3.0 是移动设备和嵌入式系统上用于图形渲染的开放标准,它在OpenGL的基础上进行了优化,特别适合资源有限的环境。在iOS平台上,通常与EAGLContext一起使用,来构建和管理OpenGL ES上下文。以下是基于...

    OpenGL ES 学习demo

    关于“画文本不会了”,在OpenGL ES中,显示文本通常需要额外的库或自定义着色器来处理。一种常见方法是使用自由字体格式(如FreeType)加载字体,并将其转换为顶点和纹理坐标,然后在片段着色器中采样纹理来渲染...

    opengl-es.zip_opengl_opengl es

    OpenGL ES(OpenGL for Embedded Systems)是OpenGL的一个精简版本,专为嵌入式设备和移动设备设计,如智能手机、平板电脑等。它主要用于处理2D和3D图形渲染,是开发游戏、图形应用和增强现实应用的核心技术。OpenGL...

    opengl es 1.1版本

    OpenGL ES(OpenGL for Embedded Systems)是OpenGL的一个精简版本,主要设计用于嵌入式设备,如智能手机、游戏机和掌上电脑等。OpenGL ES 1.1是在OpenGL ES 1.0的基础上进行了一些功能增强和错误修复,是移动平台...

    opengles3-book_opengl/计算机图像学/渲染_OpenGLES_

    《OpenGLES3-book》是关于移动端三维图形渲染的一份宝贵资源,主要涵盖了OpenGL ES(OpenGL for Embedded Systems)在计算机图像学中的应用。OpenGL ES是OpenGL的一个子集,专为嵌入式设备如智能手机、平板电脑等...

    Android点击屏幕坐标对应OpenGL ES坐标

    本文将深入探讨如何将Android屏幕坐标转换为OpenGL ES坐标,并在点击屏幕特定位置时生成一个绘制的三角形。 首先,了解屏幕坐标系统和OpenGL ES坐标系统的差异至关重要。Android屏幕坐标系统以左上角为原点,X轴向...

Global site tag (gtag.js) - Google Analytics