OpenGL ES 基本用法
搭建最基本的框架
- 新建一个Android项目
- 新建GLSurfaceView实例
- 创建渲染器Renderer实例
- 给GLSurfaceVIew设置Renderer实例
- 显示GLSurfaceView
//所涉及到的方法
//设置清屏颜色
gl.glClearColor(float red, float green,float blue,float alpha);
//使用设置的清屏颜色清屏
gl.glCleat();
//设置可视区域窗口大小
gl.glViewport(int x,int y,int width,int height);
相关坐标系的辨析
Android中的坐标系
OpenGL 中的Viewport坐标系
具体实现
1.创建类实现GLSurfaceView.Renderer接口
public class MyRenderer implements GLSurfaceView.Renderer {
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
gl.glClearColor(0f,1f,0f,0f);
}
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
}
@Override
public void onDrawFrame(GL10 gl) {
//使用上面设置的颜色清屏
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
}
}
2.在activity中创建GLSurfaceVIew
public class MainActivity extends AppCompatActivity {
GLSurfaceView glSurfaceView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
glSurfaceView = new GLSurfaceView(this);
MyRenderer renderer = new MyRenderer();
glSurfaceView.setRenderer(renderer);
//设置渲染模式
/**
1.(默认模式)GLSurfaceView.RENDERMODE_CONTINUOUSLY 不间断的渲染
2,GLSurfaceView.RENDERMODE_WHEN_DIRTY 当屏幕变脏时绘制,也就是当调用GlSurfaceView的requestRender()方法后才会执行一次(第一次启动时自动绘制一次)
**/
glSurfaceView.setRenderMode(GLSurfaceView.
RENDERMODE_WHEN_DIRTY);
setContentView(glSurfaceView);
}
}
OpenGL ES —绘制点
世界坐标系:
右手法则,大拇指指向x轴正方向,食指指向y轴正方向,中指指向z轴正方向
绘制过程