遮挡查询-简易多波形信号发生器电路设计

时间:2024-07-31 10:04:38
【文件属性】:

文件名称:遮挡查询-简易多波形信号发生器电路设计

文件大小:46.65MB

文件格式:PDF

更新时间:2024-07-31 10:04:38

OpenGL ES3x 游戏开发 下卷吴 亚峰pdf

12.1 遮挡查询 3 class MySurfaceView extends GLSurfaceView{ 4 ……//此处省略了一些定义成员变量的代码,读者可自行查阅随书中的源代码 5 public static final int drawSample=3; //遮挡查询的数量 6 public MySurfaceView(Context context){/*此处省略了构造器的代码,读者可自行查阅随书*/} 7 private class SceneRenderer implements GLSurfaceView.Renderer { 8 LoadedObjectVertexNormalFace cft; //长方体绘制对象 9 LoadedObjectVertexNormalAverage qt; //球体绘制对象 10 LoadedObjectVertexNormalAverage ch; //茶壶绘制对象 11 public void onDrawFrame(GL10 gl){ 12 GLES30.glClear( GLES30.GL_DEPTH_BUFFER_BIT//清除深度缓冲与颜色缓冲 13 | GLES30.GL_COLOR_BUFFER_BIT); 14 int[] tia=new int[drawSample]; //创建存放生成查询的 id 的数组 15 GLES30.glGenQueries(drawSample, tia, 0); //生成指定数量的查询对象 16 MatrixState.pushMatrix(); //保护现场 17 MatrixState.scale(1.5f, 1.5f, 1.5f); //缩放物体 18 MatrixState.pushMatrix(); //保护现场 19 MatrixState.translate(0, 0, 10f); //平移 20 ch.drawSelf(); //绘制茶壶 21 MatrixState.popMatrix(); //恢复现场 22 GLES30.glBeginQuery(GLES30.GL_ANY_SAMPLES_PASSED, tia[0]);//开启遮挡查询 23 MatrixState.pushMatrix(); //保护现场 24 MatrixState.translate(-10f, 0f, 0); //平移 25 cft.drawSelf(); //绘制长方体 26 MatrixState.popMatrix(); //恢复现场 27 GLES30.glEndQuery(GLES30.GL_ANY_SAMPLES_PASSED); //结束遮挡查询 28 GLES30.glBeginQuery(GLES30.GL_ANY_SAMPLES_PASSED, tia[1]);//开启遮挡查询 29 MatrixState.pushMatrix(); //保护现场 30 MatrixState.translate(0f, 0f, 0); //平移 31 qt.drawSelf(); //绘制球体 32 MatrixState.popMatrix(); //恢复现场 33 GLES30.glEndQuery(GLES30.GL_ANY_SAMPLES_PASSED); //结束遮挡查询 34 GLES30.glBeginQuery(GLES30.GL_ANY_SAMPLES_PASSED, tia[2]);//开启遮挡查询 35 MatrixState.pushMatrix(); //保护现场 36 MatrixState.translate(15f, 0f, 0); //平移 37 qt.drawSelf(); //绘制球体 38 MatrixState.popMatrix(); //恢复现场 39 GLES30.glEndQuery(GLES30.GL_ANY_SAMPLES_PASSED);//结束遮挡查询 40 MatrixState.popMatrix(); //恢复现场 41 for(int i=0;i


网友评论