载入中
  • 题目:三维随机分形地形生成(续七)
  • 作者:佚名
  • 发表日期:十月 02, 2007
  • 浏览:223次
  • 收藏本文
  • 编者导读:这样就消除了递归实现中出现的棱锥角丢失问题。但在生成数组边界的点时还是会碰到这个问题。下图中,数组中构成棱锥角的位置用亮灰色表示。它们应该被平均以找出新的基本值,即图中黑色的点。     注意用黑色标记的两个值。它们实际上是相同的值。每次你在 square 步计算一个边界上的值时,记得同时把它保存在数组对面边上。   ...
  • 这样就消除了递归实现中出现的棱锥角丢失问题。但在生成数组边界的点时还是会碰到这个问题。下图中,数组中构成棱锥角的位置用亮灰色表示。它们应该被平均以找出新的基本值,即图中黑色的点。

        注意用黑色标记的两个值。它们实际上是相同的值。每次你在 square 步计算一个边界上的值时,记得同时把它保存在数组对面边上。

        这意味着前面插图 e 中,我们实际上不必计算 12 个单独的值,因为其中的四个在数组相对的两条边上重复。实际上只有 8 个值需要计算。

        感兴趣的读都可以练习一下:取出源代码并使用它在边界的值不重复时也能工作。这对算法正常工作是没有必要的,按我写的方式去做就成。

        如果你还没运行过例子程序,现在或许是时候打开看看了。它从两次迭代生成的曲面开始。曲面是用线框绘制的,只是简单的将数组中的值用线段边接起来。数组中的值被当作 Y 值,而 X 和 Z 坐标是在数组分析时即时生成的。通过将一个方形分成两个三角形可以轻易的使用三角形绘制出这个曲面。三角形通常都是很好的图元,因为它总是凸性的平面。

        用 View Opeions 对话框调节 RAndom seed 值。这会导致生成不同的曲面。调高 iterations 值给曲面增加细节。代码限制这个值到 10 ,这对于我 32M 内存的 PentiumPro 系统有点多,看起来是黑的(或许五年以后,人们会在新的处理器和更高分辨率的显示器上运行这个程序,会对我为什么将它限制到 10 十分奇怪的……)。

        第一个 H 值控制表面粗糙度,默认值为 0.7 。试着设得更高或更低看看结果如何。

        是的这个算法偶尔会产生局部尖刺或皱折。但我偏爱尖或皱折不明显依赖于观察角度或飞过它的速度这种超自然的效果。

  • 【引用地址】http://www.suanshu.net/test.aspx
  • 【关键字】题目:三维随机分形地形生成(续七)
载入中
版权申明:非特殊申明,本站文章均系转载自互联网,如果侵犯了你的合法权益,请告知我们,我们会第一时间处理. 要点评这篇文章,请在下面留言
针对这篇文章的评论
  • 评论载入中
    评论载入中...请稍后...

发表您的评论您的评论

用户名: 验证码: 说明:评论并不需要注册.如果您不是本站会员,你可以注册为本站会员. 注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
  • 不良评论请用报告管理员,以利管理员及时删除。
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规。
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任。
  • 本站评论管理人员有权保留或删除其管辖评论中的任意内容。
  • 您在本站发表的作品,本站有权在网站内转载或引用。
  • 参与本评论即表明您已经阅读并接受上述条款。

赞助商链接