|
浏览了论坛中大家对航迹流的讨论后,在参考<基于粒子系统和图像合成的船舶航迹流模拟研究与实现>这篇文件的基础上,利用粒子系统和纹理贴图的方式实现航迹.思路如下:
1)利用一个10*10的网格(z值为海面高度值:可以根据getOceanSurfaceHeightAt得到每个格网点海面高度值),这样网格(准备航迹流贴图使用)就能很好的和海面贴合.
2)关闭网格的深度测试.目的是为了它能在最前端显示,不让浪花穿透
3)启用融合功能
4)网格不同顶点赋一个不同的颜色值,主要是阿尔法值不一样.网格中心线为界,两侧顶点的阿尔法值对称,同时在每帧中修改阿尔法值.目的是为了模拟尾迹消退的效果.
5)使用粒子系统模拟航迹流的轮廓.
所碰到的问题:
1)航迹流节点开启融合之前,能正常显示在海面上,开启融合后,节点显示不正常(在海水面以下显示,在海面上看不到,而且纹理显示也不正常,纹理是带有透明通道的png图片,网格节点没有按照纹理的轮廓线显示,跟没有使用融合一样)
2)为了查看航迹流节点和海水面的贴合程度,想让osgOcean以线框模式渲染,但显示为黑屏.
3)上述方法中,纹理的制作很麻烦,google也找不到中意的,船首和船尾的尾迹图像应该是不一样的,如果有做过该项目的,希望能提供几张纹理图片,谢谢!
希望大家能对上面所采用的方法和面临的问题提出建议和解决方法,谢谢!
基于粒子系统和图像合成的船舶航迹流模拟研究与实现.rar
(241.51 KB, 下载次数: 486)
|
|