博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 3D 游戏学习笔记(5)-法向量及材质
阅读量:4980 次
发布时间:2019-06-12

本文共 909 字,大约阅读时间需要 3 分钟。

小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man

1.法向量

在光学中,有一个概念非常重要,就是法向量,物体每个顶点的法向量决定了光照的反射情况,只有为顶点设置法向量,系统可以正常地进行反射工作,物体每个顶点的法向量是指处于三维物体表面处的法线方向,是一个由三个元素组成的数组。

有两种设置法向量的方法,分别是面法向量法和点平均法向量法,这两种确定法向量的方法分别有其不同的使用的场合,其中面法向量法适合实现本身棱角分明的物体,比如立方体,四棱锥等,而点平均法向量法适合于球面及表面光滑的物体。

面法向量法是指当某个顶点属于某个三角面的时候,我们找到和该面垂直的垂线就是该面的法向量,这里有个问题,比如正方体的某个点属于三个面,那么我们如何确定它的法向量呢?由于opengl es不支持一个点有多个法向量,所以我们这一个顶点会分别和三个法向量组成三组,每个顶点符合某个面。

点平均法向量是当一个点属于多个面的时候,就是分别求出它属于的几个面的法向量,求出平均值即是此点的法向量。

2.材质

设置材质就是设置物体对于不同光源的反射能力,也就是说材质的反射效果,通过glMaterialfv,其中四个参数。

第一个参数设置材质能反光的面,设置为GL10.GL_FRONT_AND_BACK,可以实现正反面均反光的光线

第二个参数是设置反射的光,GL_AMBIENT为环境光,GL_DIFFUSE为散射光,GL_SPECULAR为镜面光,还有一个高反射区域的光GL10.GL_SHININESS.

第三个参数,对于环境光,散射光,镜面光,是一个四元参数表示rgba的值,而对于高光反射区域设置一个参数,数越大高亮区域越小,越暗。

最后一个参数是数组中偏移量,一般为0

参考自Android 3d 游戏开发技术详解与典型案例,如有错误之处,希望大家多多指正

下一篇写一下纹理映射

转载于:https://www.cnblogs.com/manshuoquan/archive/2012/03/04/5347188.html

你可能感兴趣的文章
LoadRunner 和QTP的区别
查看>>
latex 字体大小设置
查看>>
android 应用五大核心组件之一(service)
查看>>
【笔记】ubuntu12.04 添加启动器图标的办法(解决启动器图标消失的问题)
查看>>
珍惜年华
查看>>
github删除项目
查看>>
pageUtil分页工具
查看>>
HDU1175 连连看(DFS)
查看>>
摄影中的曝光补偿、白加黑减
查看>>
数据结构实验2-迷宫
查看>>
select 的字段为空,给他显示默认值
查看>>
[LeetCode] Best Time to Buy and Sell Stock
查看>>
结构化方法与面向对象方法之比较
查看>>
Link cut tree学习笔记
查看>>
vue路由跳转时更改页面title
查看>>
.net转的时间戳用java去解析的代码
查看>>
使用Groovy+Spock构建可配置的订单搜索接口测试用例集
查看>>
python基础——使用dict和set
查看>>
# Day04-Android
查看>>
读写方式 r , r+ , w , w+ , a , a+
查看>>