android学习笔记之3D---多边形着色(颜色)
来源:互联网 发布:js时间戳转换日期函数 编辑:程序博客网 时间:2024/05/08 16:28
上次学习了绘制2D多边形,我们可以使用OpenGL通过顶点数据绘制出一些图形,但是可以看出我们绘制的图形都是单色的,可想而知我们没有对图形进行着色。
对图形着色有两种方式:1. 光滑着色 2. 平面着色。
平滑着色:
我们对上一个实例中的三角形进行平滑着色,是将三角形的三个顶点的不同颜色混合在一起,就是色彩的混色。
首先为三角形的每个顶点设置一个颜色,和定义三角形数组相似。不同的是,颜色值有(r,g,b,a)
r:red
g:green
b:blue
a:alpha
定义三角形的颜色数组为:
和绘制多边形类似,我们使用颜色数组的时候也同样要开启颜色渲染功能。
gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
开启了颜色数组后,和glVertexPointer功能相似的是我们要将定义好的颜色数组渲染到多边形上去。
gl.glColorPointer(4, GL10.GL_FIXED, 0, colorBuffer); //参数和glVertexPointer一样
最后,需要关闭颜色数组.
gl.glDisableClientState(GL10.GL_COLOR_ARRAY);
单调着色:
单调着色会比平滑着色简单很多,实际上就是设置当前所使用的颜色,即设置当前颜色之后绘制的所有内容都使用这个颜色。即使是在完全采用纹理贴图的时候,仍然可以用调节纹理的色调
现在我们只需将颜色依次性的设为理想的颜色(本例采用蓝色),然后绘制场景。这时绘制的每个顶点都是蓝色的。因为我们没有告诉OpenGL要改变顶点的颜色(glEnableClientState)。
这时单调着色的代码是: gl.glColor4f(0.5f, 0.5f, 1.0f, 1.0f);//参数分别为red,green,blue,alpha
注意:glColor4f不需要开启颜色渲染功能,因此,需要在调用glColor4f方法之前使用glDisableClientState方法关闭颜色渲染功能,否则glColor4f方法不起作用。
- android学习笔记之3D---多边形着色(颜色)
- android学习笔记之3D---多边形
- android学习笔记之3D---多边形
- android学习笔记之3D---多边形
- DirectX学习笔记(五):利用平面着色和Gouraud着色模式绘制具有颜色的三角形
- Introduction to 3D Game Programming with DirectX 11学习笔记 6 Direct3D中的绘制(二)顶点着色器
- Introduction to 3D Game Programming with DirectX 11学习笔记 6 Direct3D中的绘制(三)像素着色器
- NEHE阅读笔记-3D多边形
- Android学习笔记之图像颜色处理(ColorMatrix)
- Android学习笔记之图像颜色处理(ColorMatrix)
- Android学习笔记之图像颜色处理(ColorMatrix)
- Android学习笔记之图像颜色处理(ColorMatrix)
- Android学习笔记之图像颜色处理(ColorMatrix)
- 【学习笔记】3D图形学:stage3D实战-延迟着色技术DeferredShading
- android学习笔记之3D--(01)-Renderer接口
- android学习笔记之3D--(01)-Renderer接口
- opengl学习笔记之指定着色模型
- 计算几何学习笔记之多边形
- easyExcel.py
- Nagios - The Industry Standard In Open Source Monitorin
- 从Win32程序中的主函数中获取命令行参数
- 个人开公司的流程
- DCT变换
- android学习笔记之3D---多边形着色(颜色)
- c# winform 让Form窗体上系统自带的红色关闭按钮失效,点击关闭变为最小化
- 服务器虚拟化与VPS 选购
- 一个个都是大混蛋
- DataGridView双击某一行的事件,双击表头或列头不允许有操作
- spring定时任务时间格式cronExpression设置
- WinCE查看内存泄露简记
- 求n!尾部包含0的个数
- 使用logcxx库和boost库构建系统日志的格式化输出