Questions tagged «water»

3
如何使用动态波创建2D水?
新版《超级马里奥兄弟》拥有非常酷的2D水,我想学习如何创建。 这是显示它的视频。说明部分: 碰到水的东西会产生波浪。还有恒定的“背景”波。当摄像机不移动时,您可以在视频中00:50之后的恒定波中看到效果很好。 我假定飞溅效果与本教程的第一部分相同。 但是,在NSMB中,水在表面上也具有恒定的波浪,并且飞溅看起来非常不同。另一个区别是,在本教程中,如果创建了一个飞溅,它首先会在飞溅的起点在水中创建一个深的“洞”。在新的超级马里奥兄弟中,这个孔不存在或较小。我指的是玩家从水中跳入跳出时所产生的飞溅。 如何创建不断波动和飞溅的水面? 我在XNA中编程。我自己尝试过,但是我无法真正使背景正弦波与动态波一起很好地工作。 我不是在问“ 新超级马里奥兄弟 ”的开发者是如何做到这一点的,只是对如何重现这种效果感兴趣。

4
如何将2D粒子渲染为流体?
假设您有一种很好的方式移动2D粒子以模拟流体(例如水)。关于如何渲染的任何想法? 这是用于2D游戏,其中的透视图是从侧面看的,就像这样。水将被包装在可以破碎的盒子中,以使其掉落并与其他物体相互作用。我想到的最简单的方法是为每个粒子使用小图像。我有兴趣听到更多提水的方法。
45 2d  particles  water 

5
在基于网格的液体模拟中模拟压力
我在XNA游戏中有一个基于2D网格的水系统,我们有一种使用元胞自动机模拟水的滴落和扩散的方法。 沿斜坡流下的水的示例: 每个图块可以包含0到255个质量的液体值,以字节为单位存储。我没有使用floats旧的供水系统,但是它增加了复杂性并影响了性能。 每个水铺瓦都会使用一组简单的规则进行更新: 如果下面的图块中有空间,请尽可能多地从当前图块移至最下面的图块(向下流动) 如果2个边不相同且都不为零并且都可以通过,我们将获得3个图块的总和(左+当前+右),并将其除以3,剩下的就放在中间(当前)图块上 如果上述规则给出的总和为2,则我们应将图块分为两侧(1、0、1) 如果规则2的总和为1,则选择一个随机面流入 如果规则2失败,我们应该检查一侧是否可以通过,另一侧是否可以通过。如果是这样,我们将当前图块一分为二 如何扩展这种逻辑以包含压力?压力会使液体从“ U形弯头”上方上升并充满气穴。 当前如何失败的示例: 水应在U型弯管的两侧流动并平衡。此外,我还创建了一些方法来找出水障碍到底有多远,以及因此而受到的压力。现在,我需要能够获取这些数字并将其应用于其他区域以均衡压力。
30 xna  c#  physics  grid  water 

3
团队如何防止覆盖源文件中的工作?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 4年前关闭。 在我看来,有一种可能性,例如由多个人同时处理游戏引擎时,如何防止覆盖? 假设开发者一在工作,Audio.cpp而开发者二也在工作Audio.cpp,这在大型团队中通常如何进行管理以应对覆盖?(换句话说,要阻止开发人员2打开文件,直到开发人员1完成)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

4
如何为抽象的2d自上而下的水纹理制作动画?
想要改善这篇文章吗?提供此问题的详细答案,包括引文和答案正确的解释。答案不够详细的答案可能会被编辑或删除。 我目前正在实施一款具有自上而下的海洋景观的游戏。我使用以下抽象纹理: 实际的纹理是透明的,为清晰起见,我添加了绿色。 我现在遇到的问题是,我不知道如何为该纹理设置动画,因此水看起来不错。我试图用正弦波移动纹理: texture.y += sin(angle)。当然,现在整个纹理正在移动,这看起来有点不现实。我尝试的下一件事是添加另一层并实现视差效果。这样,水面下的反射也会移动,但速度要慢得多。看起来好一点,但还不够好。 我认为,如果单个单元会膨胀和收缩,则外观最好的动画就像是一块网或一块布。想象一下,如果有人稍微拉动这些单元格的一个顶点,而相邻的单元格会扩张,而我拉向(或推向)的单元格就会收缩。有点像弹簧网(?)。但是我不知道如何实现这样的事情: 什么是数学模型?带有弹簧的东西,力在哪里推/拉? 如果是这样,如何将模型映射到给定的纹理?保持所有曲线,不保持曲线... (我也对如何为给定的纹理设置动画有不同的想法/答案。现实主义并不是这里的重点,只是一些像运动一样漂亮的水...) DMGregory的解决方案 我在这篇文章中发布了一个libgdx示例:2d水动画呈锯齿状且不平滑(请参阅有关纹理过滤的答案)
24 2d  libgdx  animation  water 

1
产生油性/污染性水?
那里的所有着色器向导都具有如何实现油性/污染水效果的想法,类似于以下内容: 理想情况下,水不是均匀油性的,而是可以从某些来源(例如化工厂的排污口)中产生油,然后扩散到整个水体中。对于这部分,我的想法是保留“油图”作为2D纹理,该纹理确定水面上每个点的油密度。它会随着水的倾斜而自然扩散并移动;此时,卵性(我对动态波进行了波粒模拟,并且已经在水面上进行了类似的泡沫处理)。但是,由于油可能不会以与水相同的速度运动,因此我不确定这在物理上的正确性。 而且我不知道如何制作所有那些令人迷惑的颜色:-)。有什么想法吗?

4
如何防止游戏中的“水下视线”
在许多玩家可以进入水下的游戏中,当您看屏幕的上半部分在空中,屏幕的下半部分在水下时,几乎就像不存在水一样,播放器正在...随着水声缓慢飞行? 有解决这个问题的逻辑方法吗?算法?由于许多游戏仍然具有此功能,因此似乎还没有解决方案。我不想犯同样的错误。

1
二维水模拟的想法
我正在寻找相对于一个较大的(称为)阻塞/非阻塞数组(从侧面观察)在2D中模拟水的任何输入。我提出了以下想法: 细胞自动机 使用单元自动机在CPU上进行大规模并行仿真。使用简单的规则: 如果底部有一个开放的单元,则移至该单元。 检查左侧和右侧的单元格,从两个单元格中随机选择一个并移至该单元格。 优点 易于实现。 在多人游戏系统中有意义/确定性。 缺点 可能真的很慢。 不令人信服。 GPU上的流体动力学 针对如下所示的纹理在GPU上执行流体动力学的粗略近似: +------+-----+-----+-------+ |R |G |B |A | +------+-----+-----+-------+ |vX |vY |NULL |Density| +------+-----+-----+-------+ 优点 可能真的很快。 可能非常令人信服。 另一个像素着色器可以直接渲染它。 缺点 难以实施。 难以调整。 我无法为我的水平分配单个纹理。 我可以重叠网格区域,但这会增加进一步的复杂性。 粒子 使用粒子模拟水。在使用添加混合进行渲染的过程中,然后将乘法函数应用于Alpha通道以赋予水脆边缘。 优点 可能看起来不错。 易于实现。 易于渲染。 尽管在多人游戏系统中需要大量的带宽才能传输,但这仍然有意义。 缺点 粒子间的影响可能会很慢(邻居查找)。 可能导致水通过实心空间“漏出”(因为实心空间很小,例如1px)。 根据颗粒大小,可能导致水中出现奇怪的孔。 可以通过允许粒子比实际大小更靠近一起漂移来缓解上述两种情况,但是这会导致粒子间和粒子/横向性能出现问题。 还有其他想法吗? 注意:这是一个近似值,我在这里不是在寻找物理上正确的水-只是“足够好”的东西(快速和肮脏的加分点)。该游戏是多人游戏,因此不幸的是,整个关卡需要不断进行模拟。

2
2D降雨创建(和流体动力学)
我在一个我的游戏中试验天气条件,Starbound处理雨的方式给我留下了深刻的印象。基本上,当雨水撞击地面时,它要么水平分散(并被地面吸收),要么会产生一堆水(当雨滴落在地面上的洞中时)。 该视频清楚地展示了这一点:http : //imgur.com/gallery/CKCGKbG 我知道如何使雨水落下并检查雨水落在地面上的位置,但这就是我被卡住的地方。我的问题是:如何创建?怎样才能完美地模拟水流而又不影响性能呢? 提前致谢!

1
如何使用GLSL片段着色器实现这种波动?
所以我已经实现了反射部分: uniform sampler2D texture; uniform vec2 resolution; uniform vec3 overlayColor; void main() { vec2 uv = gl_FragCoord.xy / resolution.xy; if (uv.y > 0.3)// is air - no reflection or effect { gl_FragColor = texture2D(texture, vec2(uv.x, uv.y)); } else { // Compute the mirror effect. vec4 color = texture2D(texture, vec2(uv.x, 0.6 …

1
如何渲染2D自上而下的平铺定向水流?
我正在开发受矮人要塞启发的自上而下的基于图块的相当图形化2D游戏。我现在要在游戏世界中实现一条河流,该河流覆盖许多图块,并且我已经计算出每个图块的流向,如下图所示(每个图块中的红线所示)。 作为图形样式的参考,这是我的游戏当前的外观: 我需要的是一种使每块河砖中的水动画化的技术,以使水流融合到周围的砖中,从而使砖的边缘不明显。 我发现的最接近的示例在http://www.rug.nl/society-business/centre-for-information-technology/research/hpcv/publications/watershader/中进行了描述,但我不太了解在能够理解其中发生了什么时?我对着色器编程有足够的了解,可以实现自己的动态照明,但是我无法完全理解链接文章中采用的方法。 有人可以解释如何达到上述效果,还是建议另一种方法来获得我想要的结果?我认为上述解决方案的一部分是将图块重叠(尽管我不确定哪种组合),并旋转用于变形的法线贴图(再次不知道具体细节),而过去我有点迷失了,谢谢任何帮助!

2
如何定义充满水的区域?
我想通过漂亮的水仿真来增强我的小游戏引擎。首先,我需要找到一种在游戏中代表水的正确方法。不幸的是,我对代表的了解不多,所以我问你。我前段时间也曾问过类似的问题。但是由于我没有明确提出问题,答案是正确的,但不是我想要的。 在某些游戏中,水只是由高度确定的。例如,零高度以下的所有物体都在水下。我在大多数游戏中都看到了这种表现。问题是我希望在户外世界中不被淹没的洞穴以及每个湖泊和海洋的水位都不同的洞穴。 水的出现的另一种更精确的表示是颗粒。每个水滴都作为点存储在世界空间中。要渲染它们,我可以使用诸如metaball之类的技术,以便它们构建单个网格。这种表示形式对于现实主义非常有用,因为我可以轻松地计算出它们之间的动态关系。令人遗憾的是,没有机器可以实时计算大量的元弹。 还有其他方法可以代表发动机中的水吗?我想拥有动态湖泊,因此无法通过静态几何图形定义水域。例如,如果玩家修改地形以加宽湖泊,则水应填充该海湾,而湖泊的总水位应略有降低。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.