OpenGL ES for Android示例整理
OpenGL ES for Android示例整理
itzyjr
Stay hungry,Stay foolish!
展开
-
12-OpenGLES光照
openGL光照:光的成分:由RGBA值决定 1.环境光:没有方向,向四周均匀发散,全局因素,ambient 2.散射光:有方向性,根据入射光角度均匀反射开来,物体表面的颜色主要取决于散射光,diffuse 3.镜面光:具有很强的方向性,高度方向性,specular没有一种光源是纯粹由上面所述的任何一种类型的光所组成的。事实上,光源是由各种强度的不同类型的光所组成的。例如,实验室中的红色激光束几乎是由纯的红色镜面光所组成的,当它照射物体时,将会产生一个非常强的亮点。...原创 2020-07-16 14:15:57 · 481 阅读 · 0 评论 -
11-OpenGLES绘制颜色立方体
public class MyActivity extends Activity { private MyRenderer render; private MyGLSurfaceView view; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); view = new MyGLSurfaceView(this); render = ne...原创 2020-07-16 12:49:53 · 328 阅读 · 0 评论 -
10-OpenGLES绘制圆环
public class MyActivity extends Activity { private MyRenderer render; private MyGLSurfaceView view; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); view = new MyGLSurfaceView(this); render = new...原创 2020-07-14 14:57:33 · 457 阅读 · 0 评论 -
9-OpenGLES绘制球体
public class MyActivity extends Activity { private MyRenderer render; private MyGLSurfaceView view; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); view = new MyGLSurfaceView(this); render = ne...原创 2020-07-14 14:25:05 · 360 阅读 · 0 评论 -
8-OpenGLES理解变换
视图变换:视图变换是场景所应用的第一个变换。它用于确定场景的拍摄点。在默认情况下,在透视投影中,观察者是从原点向z轴的负方向看过去(垂直“穿入”监视器屏幕)。这个观察点相对于视觉坐标系统进行移动,以提供一个特定的拍摄点。当观察点位于原点时,场景中所绘制的z值为正的物体就位于观察者的后面。视图变换允许把观察点放在自己所希望的任何位置,并允许在任何方向上观察场景。确定视图变换就像在场景中放置照相机并让它指向某个方向。作为总体原则,在进行任何其他变换之前必须先指定视图变换。原因是视图变换的效果相当..原创 2020-07-14 14:22:01 · 228 阅读 · 0 评论 -
7-OpenGLES模板缓冲区
public class MyActivity extends Activity { private MyRenderer render; private MyGLSurfaceView view; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); view = new MyGLSurfaceView(this); render = new...原创 2020-07-14 12:19:59 · 312 阅读 · 0 评论 -
6-OpenGLES剪裁
剪裁:不在viewport整个视口内渲染,指定一个剪裁区,在区域内渲染。public class MyActivity extends Activity { private MyRenderer render; private MyGLSurfaceView view; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); view = new M原创 2020-07-13 08:46:12 · 365 阅读 · 0 评论 -
5-OpenGLES绘制棱锥&深度测试&表面剔除
三角形 triangles:三角形集 triangle_strip:三角形带(用的最多) triangle_fan:扇面顶点着色模式: 1.smooth:平滑模式(渐变)。默认。 2.flat:单调(跟最后一个点的颜色相同)。深度轴:z轴深度测试:启用z值,被遮挡的物体看不见。剔除:提高性能。如果是看不见的部分,告诉openGL不要绘制。...原创 2020-07-13 08:17:30 · 331 阅读 · 0 评论 -
4-OpenGLES绘制螺旋点、线
public class MyActivity extends Activity { private MyRenderer render; private MyGLSurfaceView view; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); view = new MyGLSurfaceView(this); render = new M.原创 2020-07-12 18:44:53 · 332 阅读 · 0 评论 -
3-OpenGLES正交投影、双缓冲、状态机、保存/恢复、获取线索、使用扩展
使用正交投影gl.glOrtho(..)//使用正交矩阵栈,需要重新设置坐标系,告诉OpenGL,以后所有变换都会影响该矩阵.gl.glMatrixMode(GL_PROJECTION);gl.glLoadIdentity();双缓冲所有图形程序最重要的特性之一就是双缓冲.他允许在一个屏幕之外的缓冲区中执行绘制代码,然后使用一条交换命令把绘制完成的图形立即显示在屏幕上.双缓冲用途两个:一个是一些复杂绘图时间较长,不希望在屏幕上看到每个步骤.双缓冲可以合成一幅图像完成后再显示.原创 2020-07-12 17:11:34 · 367 阅读 · 0 评论 -
2-OpenGLES数学原理
术语pipeline(管线)常用语阐述彼此紧密联系的一系列事件。OpenGLApplication: geometry(几何图形) + texture(纹理贴图)Vertex data(顶点数据):lighting(光照) transform(变换) scale:缩放Geometry:rasterization(光栅) clipping(剪裁)Fragment(段):fog(雾) + texture.Framebufer(帧缓冲区):stecil(蒙版) z-test:深度测试 alpha.原创 2020-07-12 16:45:57 · 146 阅读 · 0 评论 -
1-OpenGLES基础&三角形绘制
public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MyGLSurfaceView view = new MyGLSurfaceView(this); MyRenderer render = new MyRenderer(); view.setRende...原创 2020-07-12 16:23:07 · 514 阅读 · 1 评论