Opengl-ES 方法

来源:互联网 发布:redis 数据库的数量 编辑:程序博客网 时间:2024/05/22 15:34

Opengl-ES 方法

 1.gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);
GL_PERSPECTIVE_CORRECTION_HINT时,是指定颜色和纹理坐标的插值质量.
GL_FASTEST为使用速度最快的模式.
GL_NICEST为使用质量最好的模式.
还有一个GL_DONT_CARE为由驱动设备来决定.

2.背面裁剪
背面裁剪,对于我们而言是很有用的,它能使物体在渲染时,不渲染我们看不见的一面,也就是背面。这样会大大缩短渲染宝贵的时间。
怎样来区分多面体中的哪一面是背面和前面。当渲染物体时,根据你指定的顶点数据,按照逆时针寻找顶点组成面,这样的面是前面
glFrontFace,它的参数可以是GL_CCW和GL_CW。默认GL_CCW(counter-clockwise winding),如果设置为GL_CW,前面则被指定为顶点数据中按照顺时针排列的面。
另一个可能有用的函数是glCullFace,它指定哪个面将被裁剪(不被渲染),可以设置为GL_FRONT,GL_BACK或者GL_FRONT_AND_BACK,默认值为GL_BACK。

3.清屏
glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
还有个问题??
glClearColor( 0.f, 0.f, 0.f, 1.f )中为什么用.f?

标准来说应该写成 glClearColor( 0.0f, 0.0f, 0.0f, 1.0f );

 

也就是说规定这个小数是32位的float浮点类型,如果不加f,则默认情况下编译器会把它当作64位的双精度double浮点数来处理。

老的显卡在硬件上不支持64位浮点。当然,你不加f也不会出错,只是浪费一点点内存空间罢了。



4.glMatrixMode(GL10.GL_MODELVIEW)
   glMatrixMode(GL10.GL_PROJECTION);
   glMatrixMode用来转换当前是模型矩阵还是投影矩阵,操作物体时使用模型矩阵,如平移、旋转、缩放等。设置观察物体的方式时,选择投影矩阵。
有两种观察事物的方式:一、正交投影或者叫平行投影,就是远处的物体和近处的物体看起来一样大。二、透视投影,人类眼睛正常观察的景象,及越远的物体看起来越小。

5.glLoadIdentity()
  此函数的功能是重载单位矩阵,任何矩阵和单位矩阵相乘的结果不变。此函数的作用是使后续的操作不影响之前的操作

6.glEnableClientState(GL10.GL_VERTEX_ARRAY);
   glEnableClientState(GL10.GL_COLOR_ARRAY);

    启用顶点数组和颜色数组

7.glRotatef() 旋转

8.glTranslatef()   平移


9. glViewport(0, 0, width, height);


10. glFrustumf(-ratio, ratio, -1, 1, 1, 10);
      glFrustumf用来创建透视视图
     GLU.gluPerspective
    GLfloat fovy --- 代表可视域。90度表示你可以看见左右所有一切事物,这和现实不匹配。 符合人类视角的是45度。
    GLfloat aspect--- 这个参数表示透视比率,通常指窗口的宽高比。
    GLfloat n &GLfloat f --- 指近距离和远距离的裁剪区域,只有在这个裁剪区域中的物体才可见。
      glOrthof创建正交视图

11. glShadeModel
默认GL_SMOOTH方式。
//GL_FLAT  单色渲染,如果设置多个颜色,只有最后一组颜色启作用
//GL_SMOOTH  平滑模式,每个顶点都有自己的色彩,色彩之间的过渡也比较平滑。从运行结果中能看的很明显。

12.  GLU.gluLookAt(gl, 0, 0, -5, 0f, 0f, 0f, 0f, 1.0f, 0.0f);
    如果你想改变观察角度,即摄像机的位置,可以修改投影矩阵。这很容易,使用GUL|ES库中的gluLookAtf函数可以很方便的实现。
    这个函数有9个参数,由3组坐标向量组成。第一组表示你要将摄像机摆放的位置。第二组表示摄像机面对的方向。第三组表示摄像机的上方是哪个朝向,通常使用(0, 1, 0)来表示。
原创粉丝点击