怎么让网站文章被收录,番禺论坛网站建设,在线制作logo免费下载,西安网站建设公司西安网络公司一.格斯特纳波
要让水面动起来#xff0c;必须要保证平面有足够的三角面。我们可以在材质里的细节面板打开曲面细分#xff0c;可以分裂三角面且使之数量更多#xff0c;选择“扁平曲面细分#xff0c;其作用是切割我的三角面#xff0c;然后给我做一大堆三角面出来。
这…一.格斯特纳波
要让水面动起来必须要保证平面有足够的三角面。我们可以在材质里的细节面板打开曲面细分可以分裂三角面且使之数量更多选择“扁平曲面细分其作用是切割我的三角面然后给我做一大堆三角面出来。
这样会更加消耗性能最好是测量摄像机和平面的距离然后根据距离来减少曲面细分乘数因此距离摄像机越远 三角面越少但是这次只是先使用一个常量控制。
接着创建几何公式移动顶点模拟海浪的效果。这个公式就是Gerstner公式或Gerstner波。
第一个加进入的是波浪长度虚幻以厘米为单位450就相当于4.5米的波浪长度也意味着这是每个波浪之间的空间大小然后用2pi除以这个长度之后乘上重力常数。
这一部分用来控制波浪的速度。 现在我们还需要的是位置与方向所以引入绝对世界位置默认的是包含材质偏移的这是顶点移动后的世界位置我们实际上不能移动它或者使用它因为这是着色器的一部分 它将移动顶点因此我们需要选择“绝对世界位置(排除材质着色器偏移这将为我们提供顶点在移动之前的位置
我们也需要一个表示波浪方向的常量值这将为我们提供波浪流入的方向所以新建一个三维向量表示方向。cos节点提供波浪式运动这个cos节点的周期默认为1需要设置成2PI接着乘上一个向量这个值的用处是调整除了Z轴(上下方向)以外的所有部分因为我们只想让顶点上下移动此后我们还要乘以另一个常量那是代表着振幅或者波浪高度 做完这些就可以连接到根节点的世界场景位置偏移。
然后可以看到水正在上下移动 这效果很不错但是我们还缺少一些东西。首先缺少的是Gerstner数学公式中的陡峭度控制所以此时我们的波浪是极致的平滑这一项就是能控制波浪的浪峰的尖锐程度或波浪的陡峭程度
首先增加一个常量用于控制陡峭度 该值范围在0至1之间 我们改变了表面的形状了但我们还没改变表面法线的朝问所以就会产生一种非常奇怪的视错觉就好像我们的表面仍然极致平坦 但其实不是然后我们需要在数学公式中重新计算表面法线然后与我们的波纹法线结合起来。只需要将新计算的法线通过blendangelcorrectednormals混合结合起来。 现实中 波浪实际上会以许多不同速度向许多不同方向移动接下来利用我在这里创建的所有这些节点来创建波浪把它们变成一个函数调用该函数几次并为其提供不同的参数 然后在材质中多次调用这个函数并给予不同参数 最终效果
现在我们的波浪看起来更加混乱将这三个波浪结合在一起的目的是打破这种过于重复的样式