用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
honghaier的公告
本人:7年游戏开发工作经验,对2D,3D网络游戏客户端,服务器技术均有现当经验。也曾在著名游戏公司任职。 开设游编程教学。 课程: 1. C++程序设计 2. WINDOWS程序设计 3. MFC工具编程 4. Direct3D进行2D编程. 5. Direct3D编程 6. HLSL教学 7. WINDOWS网络编程 8. 游戏算法基础 QQ:285421210
文章分类
存档

原创  3D拼合地形中的浪花 收藏

原始地图

网格

查找边缘

                  在开发3D地形的过程中,我遇到了一个难题,就是浪花的处理。我之前没有研究过水。所以很担心做不好。经过网络查阅和不断的思考。我认为浪花的处理最困难的是查找水与地形的接触边缘线。经过不断的试验。终于找到了边缘线。现在将做法记下来。

                 图1是一个拼合好的地形水池。

     

                 首先,我需要在水池里点击一下鼠标,并通过鼠标击中的格子向八个方向扩散进行查找不是平面或地形高度大于H的格子。这些格子和扩散方向被记录下来。

               

                 然后遍历这些格子,根据扩散方向画出水向边缘的发力射线。

                 图2是这个水池的网格。图中的一些线段就是发力的射线。

                 最后是由每个发力射线的起点向对应方向的格子中的模型体中处于H1~H2高度(也就是水面高度范围)的三角形沿发力角度进行N次偏移射线碰撞检测,并得到碰撞的N个顶点记录下来。这些顶点连接起来就是边缘线了。

                

带边缘的水

发表于 @ 2009年07月04日 19:17:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:生存周期中的指针 | 新一篇:OGRE例子:Demo_Ocean 源码解析

  • 发表评论
  • 评论内容:
  •  
Copyright © honghaier
Powered by CSDN Blog