Android面试收集录 OpenGL ES

 

1.如何用OpenGL ES绘制一个三角形?

  • 编写一个类实现Renderer接口,实现onDrawFrame方法,onSurfaceChanged方法,onSurfaceCreated方法
  • 编写一个类Triangle类,定义定点坐标,装载所有顶点坐标,调用GL10的一个glDrawArrays方法来绘制三角形
  • 最后在重写的onDrawFrame方法中调用triangle.drawSelf来真正绘制三角形

 

2.OpenGL ES绘制一个矩形有哪些方法?

  • 三角形旋转法(但是要求一个角为90度)
  • 顶点法绘制矩形,先定义4个顶点坐标
  • 索引法绘制矩形

 

3.用索引法绘制多边形有什么限制?

  • 必须使用byte[]定义定点索引,索引的个数不能超过255个

 

4.如何绘制一个四棱锥?

  • 注意:使用OpenGL ES绘制的任何图像都是用三角形拼出来的
  • 定义4个面,每个面3个点
  • 然后再onDrawFrame方法绘制4个三角形来组成一个四棱锥

 

5.如何给一个立方体的6个面上色?

  • 一个颜色由4个值(RGBA)组成,每个平面4个顶点,一个平面需要16个值来描述颜色
  • 立方体有6个面,总共需要96个值来描述颜色
  • 先定义一个长度为96的数组来记录颜色,然后使用glDrawArrays方法绘制立方体

 

6.OpenGL ES支持哪几种光源?

  • 定向光
  • 定位光

 

7.请介绍一下OpenGL ES光源的环境光,散射光,镜面反射的含义?

  • 环境光的pname参数值为GL10.GL_AMBIENT,表示一个特定光源在场景中添加的环境光的RGBA强度。、
  • 散射光,参数为GL10.GL_DIFFUSE,来自于某个方向,撞击物体表面后,会均匀地发散
  • 镜面反射光,参数为:GL10.GL_SPECULAR,来自一个特定方向

 

posted @ 2018-03-15 15:13  Jason_Jan  阅读(1833)  评论(0编辑  收藏  举报