docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    森林溪流构建教程

    本教程逐步向您展示如何使用此示例中包含的资产构建森林溪流环境。

    1. 雕刻地形
    2. 绘制地形材质
    3. 添加水面
    4. 添加瀑布网格
    5. 添加岩石
    6. 添加水 decal
    7. 添加反射探针
    8. 添加地形细节网格

    步骤 1 - 雕刻地形

    1. 首先阻挡出地形的主要形状。使用 Set Height 刷子创建一个倾斜的地形,通过创建一系列台地,然后使用 Smooth 刷子平滑台地之间的硬边缘。

    2. 用 Set Height 刷子在斜坡上切出溪流通道,形成几个不同的层级。在切出溪流后,用 Smooth 刷子平滑硬边缘。

    3. 添加抛光以最终确定地形形状。使用 Raise/Lower Height 刷子和 Smooth 刷子进行修整和增加多样性。在此过程中,从大刷子开始,最后使用小刷子。

    完成此步骤后,您可以不时返回地形形状,以添加额外的修整,特别是在第3和第4步中添加水网格后,以确保水网格和地形形状协同工作。

    步骤 2 - 绘制地形材质

    接下来,是时候为我们的地形添加材质了。我们有四种材质层——溪床的卵石、干土、岩石苔藓和苔藓草。为了应用材质,我们首先建立指导原则。石材材质用于溪床,土壤材质用于溪流的岸边。作为第一层和草之间的过渡,我们使用岩石苔藓材质。最后,背景使用草材质。

    1. 首先按照指导原则使用大而硬边的刷子封锁材质。
    2. 然后,我们回过头来使用小刷子将材质混合在一起。使用低不透明度的刷子将一种材质涂在另一种材质上,以便将两种材质混合在一起。

    尽管我们的地形材质本身会显示拼贴伪影,但我们能够通过为每种材质设置不同的拼贴频率来隐藏拼贴。当材质混合在一起时,它们会打破彼此的拼贴伪影。我们还在地形上覆盖细节网格(第7步),进一步隐藏拼贴。

    步骤 3 - 添加水面

    溪流本身是由简单的平面构成的,添加到场景中。

    1. 在层级面板中右键单击,选择 3D Object -> Plane。
    2. 然后应用 WaterStream 材质。
    3. 将平面放置在切入地形的溪流通道中。
    4. 沿 Z 轴缩放平面,以沿着溪流的长度拉伸它们。水在平面的局部 -Z 方向流动。平面根据需要进行缩放,以便从一个溪流高度下降到下一个。

    注意,溪流网格的边缘在开始和结束时是透明的。这是为了使溪流网格能够与连接溪流平面的瀑布网格正确混合。

    步骤 4 - 添加瀑布网格

    瀑布网格旨在将一个水平的溪流平面连接到下一个较低的水平。

    1. 将瀑布网格放置在溪流平面的末端。它们向下倾斜以连接到下一个溪流平面。
    2. 围绕 Y 轴旋转瀑布网格,使其与两个溪流平面对齐。
    3. 在 Y 轴上缩放瀑布网格,使其底部与下方溪流平面对齐。瀑布的支点垂直与瀑布的顶部对齐,因此您可以将瀑布网格放置在与顶部溪流平面相同的高度,然后缩放以与下方溪流平面对齐。

    注意,材质的高级选项中的排序优先级参数已设置为 -1。这使得瀑布网格在溪流网格后绘制,因此不会发生绘制顺序冲突。

    步骤 5 - 添加岩石

    溪流通常充满了被水流推移的岩石。为了节省内存和减少绘制调用,我们仅使用两种不同的岩石网格,它们都使用相同的纹理集。

    1. 随机间隔地在溪流的长度上放置岩石。
    2. 旋转和缩放岩石,以提供不同的外观。

    注意,我们通过创建两种不同大小的岩石——大型岩石和小型岩石,创造了视觉上的多样性。总体而言,岩石打破了溪流的形状,并改变了水面泡沫的模式。

    步骤 6 - 添加水贴花

    我们使用水湿度(Water Wetness)和水光斑(Water Caustics)decal 更紧密地将溪流水与地形和岩石集成在一起。湿度 decal 使溪流周围的地形和其他网格看起来像是潮湿的,而光斑 decal 模拟了水面折射的光线,并在溪流底部聚焦成动画模式。

    1. 创建并缩放湿度 decal,使 decal 顶部延伸到水面上方约半米。光斑 decal 的顶部应位于水面下方。
    2. 创建并缩放光斑 decal,使光斑图案仅投射在水面下方。

    对于这两种 decal,decal 体积应在三个维度上尽可能小——仅大到足以覆盖其预期用途,而不大于此。您还可以通过降低每个 decal 的绘制距离参数来节省一些性能,以使它们不会在远处被绘制。

    步骤 7 - 添加反射探针

    反射是现实感水面的重要组成部分。

    1. 为每个溪流段创建一个反射探针并将其放置在头部高度和溪流的中间,以改善水面反射的外观。如果附近有岩石和树木等物体,它们将被反射探针捕捉并更准确地反射在水中。

    尤其要注意,此点右侧的水面正确反射了标志后面的高岸,而左侧的水面仅反射了天空。反射探针为这种额外的现实感做出了贡献。

    步骤 8 - 添加地形细节网格

    我们的最后一步是为地形添加细节网格。

    1. 在所有地方添加卵石网格,包括水下。
    2. 在泥土区域水边添加宽叶荨麻植物(broad-leaf nettle plants)。
    3. 在泥土与草之间的过渡处,荨麻上方添加蕨类植物(3种变体)。
    4. 在蕨类植物(ferns)和草之间添加三叶草(clover)。
    5. 对于草,添加三种不同的网格。每种网格在离相机的不同距离处逐渐消失,以柔和淡出,使其不会瞬间消失。最密集的草在离相机10米的地方可见,以提高性能。将三种不同的草层稍微随机地绘制在一起,所有三层都在地形草材质最密集的地方涂抹,而最稀疏的草则在边缘周围涂抹。每种草网格在材质中也具有稍微不同的风向和强度值,以为草的外观增添多样性。三种草网格中只有一种开启了阴影——这让人能感觉到草有阴影,同时无需支付全部的性能成本。

    为了节省性能,我们的地形设置为在30米处淡出细节网格。这使我们能够在近距离实现良好的网格密度,然后在远处消除它们,因为它们不太可见。我们通过在30米点之前在着色器中对网格进行抖动淡出(dither fading),从而隐藏过渡,以避免闪烁。

    附加创意

    目前我们已经搭建起一个相当不错的环境,但还有更多可以做的事情。您可以通过添加自己的树木、树桩和倒木来完善这个环境。

    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)