openGL
_记得
这个作者很懒,什么都没留下…
展开
-
openGL之几何变换(绘制球体)---openGL学习笔记(六)
openGL中的变换包括: ①视图(modeling)---指定观察者或者相机位置 GLU.glLookAt() 默认情况下,在透视投影中观察者是从原点向Z轴负方向看去,也可以自行设置。 ②模型(viewing)---在场景中移动物体 包含移动、旋转、缩放 ③模型视图(modelview)---描述制图和模型变换的对偶性 例如:观察者靠近物体,与物体放置靠近观察者,所呈现的效果原创 2016-03-02 15:12:33 · 17156 阅读 · 2 评论 -
openGL画三角形---openGL学习笔记(四)
在openGL中,所有面状图形的绘制都是使用画三角形方法,而针对不同需求,openGL给出三种不同的画三角形方法:①traingles:画三角形集②traingle_strip:画三角形带③traingle_fan:画三角形扇面画三角形集在笔记(一)中已经实现过,现在我们用三角形带渲染一个正方形,效果图如下。onSurfaceCreated()和on原创 2016-02-29 15:53:49 · 3910 阅读 · 0 评论 -
openGL画线---openGL学习笔记(三)
openGL中的图元一共有三种:点、线、三角形。针对线,openGL为我们提供了三种画线的方式:①画线段(lines):所谓线段就是不相连的一些些线集。②画线带(line_strip):首尾相连但不闭合的线。③画线环(line_loop):首尾相连且闭合的线。首先来实现画线段,这里我们来画一个发散的射线形状,效果图如下:render的实现类重原创 2016-02-26 14:32:26 · 2663 阅读 · 0 评论 -
openGL画点---openGL学习笔记(二)
本例使用openGL画点方法,画出一条螺旋线,下图为成果图。(图片不是很清晰)实现步骤:1.同样是创建GLSurfaceView对象,再创建GLSurfaceView.renderer实现类.设置activity的contentView,以及设置view的render对象.具体代码上篇已有,不再赘述。2.实现render类的过程,同样重写三个方法。①onSurfaceCreate(原创 2016-02-25 17:03:03 · 2034 阅读 · 0 评论 -
openGL之光照1---openGL学习笔记(九)
光的的成分包括三种: ①环境光:(ambient)没有方向,向四周均匀发散,全局因素。 ②散射光:(diffuse)具有方向性,根据入射光角度均匀反射开来,物体表面的颜色主要取决于散射光。 ③镜面光:(specular)具有很强的方向性。opneGL中的光照同样是状态机,所以要使用光照,就要:gl.glEnable(GL10.GL_LIGHTING);在启用原创 2016-03-08 15:15:34 · 550 阅读 · 0 评论 -
openGL之混合、抗锯齿---openGL学习笔记(十一)
在openGL中,深度测试可以很好的用一个深度值为我们计量物体到观察者眼球的距离,从而决定该物体是否显示。不过在显示生活中,我们也经常遇到如下情况:透过一块有色的玻璃,所观察到的物体与物体实际颜色并不相符,而有的时候我们就是想要达到这种透过玻璃看物体的效果,那么,就需要启用混合。用混合可以将不同透明度的物体混合起来显示,但需要注意的是1.混合一旦开启,深度测试马上失效。2.启动原创 2016-03-14 17:49:11 · 2659 阅读 · 0 评论 -
openGL之光照2(材料、颜色追踪、光源)---openGL学习笔记(十)
材料:我们知道,决定物体实际颜色的是散射光,确切的说是材料的散射光反射率,而且openGL中,我们一般把材料的环境光和反射光反射率设置成同样的值,那么在设置过了全局环境光之后,就要设置材料的反射率://设置材料的反射率(环境光和散射光)gl.glLightfv(GL10.GL_FRONT_AND_BACK, GL10.GL_AMBIENT_AND_DIFFUSE,BufferUtil原创 2016-03-09 17:56:20 · 2085 阅读 · 0 评论 -
openGL之纹理贴图---openGL学习笔记(十三)
把图像贴到所绘制的图形上的技术,在openGL中叫做纹理贴图。使要用纹理贴图要实现以下步骤:1.启用纹理贴图---纹理贴图同样是状态机,所以启用方法为:gl.glEnable(GL10.GL_TEXTURE_2D);2.生成纹理ID:因为openGL中纹理贴图的工作过程是,先将图片加载进来,而加载纹理当然有可能会加载很多纹理,所以如何判断当前操作的纹理呢---openGL在每加载一个纹原创 2016-03-16 17:41:38 · 10626 阅读 · 1 评论 -
openGL之正交投影、颜色立方体---openGL学习笔记(八)
openGL中的投影模式包括:①正交投影---没有深度概念,也叫平行投影。glFrustum()②透视投影---有深度概念。gl.glOrtho()而我们要画一个带颜色的立方体,那么投影一定是正投影,这样才能保证所看到的正面和背面是一样大小的。所以就要在onSurfaceChanged()方法中修改投影类型为正交投影。而既然要绘制带颜色的立方体,那么就要在OnSurfaceCrea原创 2016-03-04 15:49:22 · 2976 阅读 · 1 评论 -
openGL之雾效果---openGL学习笔记(十二)
雾效果:使所绘制物体距离观察者越远越看的不清晰。 步骤:首先启用雾,然后设置雾颜色,再指定从多远开始到多远结束,最后指定使用哪种雾方程式。 注:指定雾开始结束只针对线性雾的方程式有效。 雾方程式有三种,变化趋势如下:计算方法如下:从方程式更能说明雾开始结束只针对线性雾的方程式有效。 首先在onSurfaceChanged方法中修改平截头体深度,原创 2016-03-15 17:39:19 · 3715 阅读 · 0 评论 -
openGL之圆环---openGL学习笔记(七)
画圆环的想法与画球体的想法大致相同,不同的是,圆环中间为空,而环体的直径又相同,所以通过设置两个半径,用两个半径和角度就可以确定每个点的x,y,z坐标。首先,还是先把环体切成几个部分,每个部分打开之后都是一个矩形,把每个矩形都用画三角形带的方式绘制出来的话,那么圆环就可以实现。接下来就是坐标的计算:假定以圆环中心为坐标圆心,想要确定每个点的坐标,就需要设置两个半径,一个内圈半径r1,一原创 2016-03-03 14:37:49 · 7181 阅读 · 0 评论 -
openGL之深度测试、表面剔除、剪裁---openGL学习笔记(五)
深度测试:上次用画三角形扇面的方法绘制的棱锥,发现一个问题,就是无论将棱锥如何旋转,底面总是可见的。这与实际不符,实际中,当我们从棱锥的顶点向下看的时候是看不见底面的,出现这种情况的原因是因为,我们先画的棱锥锥面,后画的棱锥底面,在openGL中后画出来的部分,会一直可见。那么为了解决这个问题,我们就需要用到openGL中的深度测试。深度测试简单来说就是,让应该被挡住的物体不显示。原创 2016-02-29 17:05:18 · 2018 阅读 · 0 评论