这个问题犹如无底深渊,各种bug频出。
目前可能还有缺陷,一些地方用到了大小写转换,这样容易导致http的路径失效,以后慢慢调吧
今天发现模型的效果不是很好,一个是透明问题,一个是光照问题
透明问题解决:
1,先把所有模型按照距离视点排序
2,先渲染模型中非透明的effect
3,渲染模型中透明的effect
光照问题:
1,可能我实现的光照还是有缺陷,对于open collada从3dmax导出的模型显的过于明亮,如图
当使用phong光照模型来模拟太阳光的时候,黑的地方太黑,亮的地方太亮,效果不好
所以解决方法是,在模型样式里添加了光照模式,当前以下几种模式:
1, 视点 默认光照模式,光源和视点绑定 这个用来观察一些单独的模型效果比较好
2, 太阳 太阳位置微光源位置,为了实现这个我把光照模型做了一些修改
模型的颜色由两部分组成
1) normal 点乘 light * diffuse
2) 点球体法向量 点乘 light * diffuse
第二个光实际为了实现地球任意点,在临近中午时分是最亮的
当然为了避免在太阳落山后模型不能完全为黑色,这里有个限制,当2)的点乘为0那么整体模型为黑色
3, 用户自定义 这个目前没实现
4, 禁用光照
这个对于一些贴图上已经烘焙的模型比较适合
昨晚这些之后,想做一个飞机飞行中的姿态,当然要结合前面的粒子来模拟,啥都不说先上效果图:10000米高空的战斗机
为了能最简单的把粒子绑定在模型的尾部,给粒子又增加一个 偏移位置的属性。制作绑定的顺序如下:
1, 把模型的缩放置为1,朝向置为0
2, 调整粒子的尺寸和喷射方向,并把粒子移动到模型中心点(粒子位置和模型位置相同)
3, 调整粒子的偏移尺寸,保证刚好火焰从飞机尾部发出(这部是关键,不能通过粒子移位来修改,只能通过偏移)
4, 调整粒子的属性
5, 这回就可以更改模型的高程,缩放,和朝向
6, 最后只要把粒子的高程,缩放 和 朝向和模型保持一致,那么相对位置就不会改变,相当于绑定在模型上了。