zoukankan      html  css  js  c++  java
  • Unity3D手游开发日记(6)

    市面上大部分的手机游戏,水面都比较粗糙,也基本没发现谁做过水深的处理.

    水深的处理在PC平台比较容易,因为很容易获得每个像素的深度,比如G-Buffer,有了像素的深度,就能计算出每个像素到水面的距离,实现水深alpha渐变.

    但是在移动平台,又是万恶的浮点纹理...导致此方案不行.

    但是方案都是人想出来的,我想了两种适合移动平台的方案

    方案1:用水面顶点颜色保存alpha值来做水深渐变.

    这种方案,要求水面的模型面片是格子的,就像地形网格一样,格子越密,alpha的精度才越高.

    方案2:用贴图实现像素级的alpha深度.

    这种方案,适合2个三角形面片的水面,对水面贴图有要求,一般的手游的场景比较小,512*512应该足够了.

    我选择的是方案2. 因为我还要对水流方向做处理.

    水流方向的处理和水深合并用一张flowmap来存储.

    r ,g通道作为x, z方向,a作为alpha值.这样可实现像素级的流动方向和水深渐变.就可以做出漂亮的河流了.只有静态图:

  • 相关阅读:
    VS Code设置同步
    ASP.NET Core 发布
    CMD命令
    通过注册表为文件(夹)添加右键菜单
    win+r 以管理员身份运行
    .NET Core部署Windows服务
    .NET Core的打包到一个exe程序
    C#枚举
    C#生成Guid
    使用Visual Studio的单元测试
  • 原文地址:https://www.cnblogs.com/czaoth/p/5785638.html
Copyright © 2011-2022 走看看