Niagara实现procedural浪花

『部分工程文件点我下载』
『知乎转载链接』
『有点相关的Unreal Circle演讲』

Summary

因为本文涉及到的内容比较广,关于Niagara最基础的一些部分比如怎么新建、怎样添加使用模块就不详细说明了,没用过的同学可以先看一下Epic官方文档的介绍:
Niagara核心概念

和贾越同学的系列教学直播:
https://www.bilibili.com/video/av73602807

本次工程效果:

为了实现海浪拍到岩石上激起千层浪的感觉,我们可以看到有几个表现上的关键点

  • 在岩石附近生成水花
  • 水花激起的时机和位置与海水的流动匹配
  • 出射速度受到海水运动和石头表面的撞击情况影响
  • 激起后水花的体积感

海面的模拟 – Gerstner Waves

游戏里模拟海水的途径是一门艰深的课题,本文就不多涉及了。这里为了制作需要,介绍一下相对直观实用的Gerstner Waves。

在流体动力学中,Gerstner Waves是周期表面重力波的欧拉方程方程的精确解。它计算机图形技术之前很久就出现了,用来描述不可压缩流体的表面波动。

单一Gerstner Wave材质应用在一个平面上的效果如图:

数学时间


我们可以看到每一个点不止有Z轴方向的运动,也有XY轴的运动。并且这不是一个简单的sin波而是带有‘浪尖’的波形,这些都是Gerstner Wave的重要特征。

因为篇幅原因这里就不具体说公式了,本节末尾提供了我做好的材质节点可以直接下载取用。详细算法可以参考:

Chapter 1. Effective Water Simulation from Physical Models

https://developer.download.nvidia.com/books/HTML/gpugems/gpugems_ch01.html

简单说来,定义一个波形的属性有:

[高度, 前进方向, 波长, 陡峭度]

我们定义相位φ

φ = 方向 ⋅ 位置 / 波长 + 频率 * 时间

其中

频率 = sqrt(重力 * 2π / 波长)

那么以

z轴偏移 =  高度 * sin(φ)

xy轴偏移 = 陡峭度 * 高度 * 方向 * cos(φ)

的形式去移动海面的顶点,顶点会沿着椭圆绕圈(左图),一系列的顶点组合在一起就会形成具有浪尖的波形。

引擎内实现

在引擎里的实现可以用HLSL写在Custom节点里,你也可以选择用节点连。执行效率上,节点连出来的公式和HLSL代码没有区别。

材质函数 MF_GerstnerWave

核心部分:

float3 d = float3(sin(DirectionInDegrees * 0.0174533), cos(DirectionInDegrees * 0.0174533), 0);  // 为了控制方便,输入并不是一个向量而是角度,这里转换一下

float w = 6.2831854 / L;

float theta = sqrt(6.2831854 * Gravity / L); // 由波长算出频率

float q = Stiffness / (Amplitude * w); // q是控制浪尖陡峭度的系数

float phase = dot((w * d).xy, WorldPosition.xy) – theta * Time; // 喂给cos和sin的相位

float3 offset = float3(q * Amplitude * d.xy * cos(phase), Amplitude * sin(phase)); // 照抄上面公式

这部分我放在了BlueprintUE.com里,点下面链接直接把节点复制粘贴到UE材质编辑器里就可以得到图上的节点:

https://blueprintue.com/blueprint/tt5p124n/

波形叠加

显然,一条波并不能说非常炫酷,Gerstner Wave的典型做法是把多条波叠加在一起。上面提到每条波可以控制的变量有:[高度, 前进方向, 波长, 陡峭度]

要合并多个波形,首先考虑的是波长,因为能组合的波长数量有限(8个已经很多了),我们无法完全参照真实世界的海洋数据,只能尽可能利用能付出的资源。由于波长相似的wave在叠加时看起来更有错综复杂的动态表现,我们可以在输入参数里首先给一个波长的中值LengthMedian,然后让不同wave的波长围绕这个中值变化。这样只要保留所有wave的波长与LenghMedian的比例,就可以通过改变LengthMedian来调整整个海洋的波浪大小:

在定义一组waves的结构FGerstnerWavesParameters中,美术可以在海洋的蓝图Actor上直接填写LengthMedian。

接下来,美术可以手动填写各个wave和LengthMedian的比例,也可以像我一样偷懒,填一个LengthMultiplierRange然后随机选取范围内的比例,在场景里拖动Seed直到随出一个好看的组合。

类似的方法同样适用于高度, 前进方向, 陡峭度。要注意的是,wave的高度和波长存在正相关关系,简单的做法是定义一个常数比例,让每个wave高度和和波长的比例保持一致。而在定义前进方向时会类似的给出一个DirectionRange定义前进方向的范围。

Niagara GPU粒子的生成

匹配水面位移

上面说了这么多,海面Shader内的位移数据其实并不能被外界直接读取,为了让Niagara能获取到海面的位移数据从而实现位置的同步,我们需要额外做一些工作:

方块:Niagara GPU particles

因为Gerstner Wave算法是确定性的,即给定同样的 [ 高度 | 前进方向 | 波长 | 陡峭度 ] 这样一组参数,不管在哪算出来的波形都是一样一样的。所以我们只要把与海面同样的参数传入Niagara System,就可以让Niagara粒子去‘追踪‘海面的粒子。(如上图)

传参

Normal难度:

上面说到,海面的波形是由好几个不同的Gerstner Wave组成,这里我用了8个,那么需要匹配海面的形状,其实在生成浪花时我们不用考虑所有8个waves,只考虑最大的一或两级wave,视觉上就很难看出不完全吻合的细节差别了。

Hard难度:

这一块可选阅读,可以跳过,对下面内容的理解没有影响。

可是如果我觉得这样做身体不适,非想传所有数据达到完美同步呢? 也不是没有办法。4个参数 x 8组 = 一共32个float变量,手动命名并且在蓝图里拉面条,再在Niagara模块上一个一个拖上去也不是不行.. 如果你想做得灵巧些,我发掘了一个输入数组的hack:

因为Niagara还在beta阶段,一些功能还在持续改进中,这个hack可能以后也不需要。我介绍一下的另一个原因是觉得对增加对Niagara的理解有所帮助。

开始我想把数据通过DrawToRenderTarget写到一张贴图上,让Niagara读,但因为操作太不友好并且不支持CPU粒子放弃了。后来发现Niagara里的Curve型变量是同时支持CPU和GPU的,读取也很方便。我在蓝图里把需要的变量写入到一个Curve asset里,Niagara内reimport更新就可以,很方便。

不过Curve key的格式是有讲究的,Niagara CPU sim在读curve时,直接就读对应位置的key value。但GPU sim上会首先把curve编码成一个1×128像素的Lookup table,然后再读对应位置的数据,这就导致如果key的time位置不是100%对到LUT的像素位置上,encode后会出现偏差,这个偏差在我们现在的应用中是无法容许的。

好在encode的逻辑非常直接,只是取第一个key和最后一个key的time看范围,normalize到[0.0, 1.0]之间:

所以要达到key和LUT的像素对齐,最简单的方式是让time = [0, 1, 2… 127],这样不需要额外操作,在GPU sim上读取即可。

最后一个key的time是127.0

这样我们就实现了可以在一个curve里记录128个float值。剩下要做的就是再BP里根据一定规则把8个wave的一系列参数编码,再从Niagara模块里通过相同规则解码。这里4个参数*8个wave,规则就是很简单的按照一定间隔记录了32个值。

按照一定间隔,在整数Time上记录了每一组parameters

在Niagara module中通过类似方式解压

定义GPU粒子的碰撞行为

Distance Field Collision

系统提供的collision模块非常健全,包括CPU trace碰撞,GPU depth / distance field碰撞等分支可以在下拉菜单中选择使用。我们这里使用GPU distance field碰撞,depth碰撞比较适合比较粗犷的效果,比如下雨下雪,稍微有点问题也看不出来,但如果水浪使用depth碰撞,岩石背面屏幕看不到的地方就会出错。

我们想有一些比较细腻的控制逻辑,比如这里水花撞到石头上,如果用默认的collision碰撞,反弹是朝着下图绿色的反射向量方向飞出去的,而流体撞到刚体的行为并不是这样完美的反弹,我们更想让它偏向下图紫色的角度。

下面三个gif分别展示不同反射角度的视觉:

反弹方向为绿色反射角
反弹方向为紫色切线角
反弹方向反射和切线之间的随机角度

定义这样的碰撞行为需要自己写模块,幸运的是这种逻辑都可以用Niagara的节点实现。引擎提供的Collision模块本身是一个宝藏,里面有各种碰撞的实现方式和模块编辑的best practice。在Collision – CollisionQueryAndResponse模块中我们探索一下可以发现:

点进去最底层的模块是:

即给出world position获得global distance field的数值和gradient,和材质里的DistanceToNearestSurface / DistanceFieldGradient结果是一样的,都是GPU内的query。

知道了这些,我们就可以很方便的自己写一个简单的collision判断:

并且在后面接上上面说到的反射角和切线角的逻辑–如果发现水浪粒子进行了第一次和岩石碰撞,那么就沿着我们想要的角度给一个初速度:

距离优化

同时因为有了distance field信息,可以在particle spawn时判断水浪粒子是否在岩石附近,如果不在就直接删除。

Smear

水花的材质想做好也是一项涉及很广的任务,我这里就是用了一个比较简单的云的贴图,稍微加工了下。值得一提的是通过particle的速度可以在材质里实现速度拉伸效果,对表达浪花飞溅的夸张形态非常有帮助:

Smear = 0
Smear =3
Smear = 15

实现方式也很简单,因为粒子sprite是朝向camera的,我们只要以local position和移动速度的点积缩放sprite即可:

14,704 thoughts on “Niagara实现procedural浪花”

  1. Vivod iz zapoya na domy_rbPa

    Привет из Екатеринбурга. Знакомый уже неделю в запое. Родственники на ушах стоят. В диспансер отвозить — стыдоба. В итоге, единственные кто справился быстро — вывод из запоя на дому анонимно. Человек ожил через пару часов. В общем, контакты и цены здесь — выведение из запоя выведение из запоя Звоните прямо сейчас. Передайте тем, кто в беде.

    Reply ↓
  2. Vivod iz zapoya na domy_cwKn

    Ребята в Екбе. Человек в завязке уже почти неделю. Жена в истерике. Скорую вызывать бесполезно — всё равно не приедут. В итоге, спасла только эта контора — круглосуточный вывод из запоя в Екатеринбурге. Капельницу поставили сразу. В общем, подробности и расценки тут — сколько стоит прокапаться от алкоголя https://vyvod-iz-zapoya-na-domu-ekaterinburg-bqm.ru Не откладывайте. Кто в беде — тому точно.

    Reply ↓
  3. 888starz_mfSl

    Команда поддержки 888starz доступна 24/7 и оперативно реагирует на обращения клиентов.

    Для удобства выбора доступны фильтры, категории и рейтинги игр, помогающие быстро найти подходящий контент.
    stars 888 https://888-uz1.com

    Reply ↓
  4. Vivod iz zapoya na domy_ppoi

    Ребята в Екбе. Отец не просыхает уже пятый день. Родственники не знают что делать. Платная клиника дерёт три шкуры. В итоге, спасли только эти врачи — анонимный вывод из запоя без кодировки. Приехали быстро. В общем, все контакты по ссылке — вывод из запоя вывод из запоя Звоните прямо сейчас. Кто в беде — тому пригодится.

    Reply ↓
  5. 888starz_gnKl

    Кроме того, ресурс публикует советы по безопасной игре и предупреждает о рисках азартных развлечений.

    vip starz vip starz.

    Reply ↓
  6. Vivod iz zapoya na domy_fqEi

    Народ выручайте. Столкнулся с такой бедой. Близкий не выходит из запоя. Жена в слезах. Платные клиники просят бешеные деньги. Короче, только это и спасло — вывести из запоя на дому качественно. Приехали через час. В общем, жмите чтобы не потерять — вывод из запоя анонимно вывод из запоя анонимно Каждая минута дорога. Перешлите тому кому надо.

    Reply ↓
  7. Vivod iz zapoya na domy_nwEi

    Народ выручайте. Жесть случилась полная. Человек уже четвёртые сутки в штопоре. Дети не спят ночами. В диспансер везти — учёт на всю жизнь. Короче, единственное что реально помогло — вывести из запоя на дому качественно. Приехали через час. В общем, смотрите сами по ссылке — вывод из запоя наркология вывод из запоя наркология Не надейтесь на авось. Скиньте другу в беде.

    Reply ↓
  8. Vivod iz zapoya na domy_mlEi

    Народ выручайте. Жесть случилась полная. Близкий не выходит из запоя. Жена в слезах. Скорая не едет. Короче, только это и спасло — срочный вывод из запоя круглосуточно. Приехали через час. В общем, вся инфа вот здесь — вывод из запоя вызов на дом https://vyvod-iz-zapoya-na-domu-samara-yza.ru Не надейтесь на авось. Скиньте другу в беде.

    Reply ↓
  9. Vivod iz zapoya na domy_jwEi

    Друзья ситуация. Жесть случилась полная. Человек уже четвёртые сутки в штопоре. Соседи стучат в дверь. Платные клиники просят бешеные деньги. Короче, нормальные врачи нашлись — срочный вывод из запоя круглосуточно. Поставили систему. В общем, сохраняйте на будущее — запой вызов нарколога https://vyvod-iz-zapoya-na-domu-samara-yza.ru Не надейтесь на авось. Перешлите тому кому надо.

    Reply ↓
  10. Vivod iz zapoya na domy_jiEi

    Самарцы привет. Столкнулся с такой бедой. Брат пьёт без остановки. Дети не спят ночами. Скорая не едет. Короче, нормальные врачи нашлись — профессиональное выведение из запоя капельницей. Отошёл за полчаса. В общем, смотрите сами по ссылке — вывод из запоя врач на дом https://vyvod-iz-zapoya-na-domu-samara-yza.ru Не надейтесь на авось. Скиньте другу в беде.

    Reply ↓
  11. Vivod iz zapoya na domy_yxoi

    Екатеринбург. Брат в штопоре. Дети боятся. Скорая отказывается приезжать. В итоге, реально помогла эта бригада — вывод из запоя на дому анонимно. Сняли интоксикацию за час. В общем, все контакты по ссылке — вывод из запоя капельница на дому вывод из запоя капельница на дому Не тяните время. Перешлите кому надо.

    Reply ↓
  12. Vivod iz zapoya na domy_brEi

    Слушайте что расскажу. Столкнулся с такой бедой. Близкий не выходит из запоя. Соседи стучат в дверь. В диспансер везти — учёт на всю жизнь. Короче, только это и спасло — анонимный вывод из запоя без последствий. Поставили систему. В общем, вся инфа вот здесь — вызов нарколога на дом запой https://vyvod-iz-zapoya-na-domu-samara-yza.ru Не надейтесь на авось. Скиньте другу в беде.

    Reply ↓
  13. Vivod iz zapoya na domy_fpKn

    Слушайте. Попали в жёсткую ситуацию. Жена в истерике. Платная клиника просто грабит. Короче, единственные кто взялся и не прогадал — круглосуточный вывод из запоя в Екатеринбурге. К утру человек пришёл в себя. В общем, жмите чтобы не забыть — вывести из запоя цена https://vyvod-iz-zapoya-na-domu-ekaterinburg-bqm.ru Каждый день без помощи — минус здоровье. Кто в беде — тому точно.

    Reply ↓
  14. LewisMarry

    Your ability to summarize the topic into a single cohesive post is commendable. The format is clear, the tone is completely balanced, and the reading experience was very positive.

    depot visa casino

    Reply ↓
  15. Vivod iz zapoya na domy_yeoi

    Слушайте. Случилась беда. Родственники не знают что делать. Платная клиника дерёт три шкуры. Короче, спасли только эти врачи — вывод из запоя цены приемлемые. Капельницу поставили сразу. В общем, сохраните на будущее — вывод из запоя капельница екатеринбург https://vyvod-iz-zapoya-na-domu-ekaterinburg-gkd.ru Не тяните время. Перешлите кому надо.

    Reply ↓
  16. Vivod iz zapoya na domy_rvEi

    Слушайте что расскажу. Жесть случилась полная. Муж просто пропадает. Соседи стучат в дверь. Скорая не едет. Короче, единственное что реально помогло — вывод из запоя дешево и сердито. Приехали через час. В общем, жмите чтобы не потерять — вывод из запоя телефон https://vyvod-iz-zapoya-na-domu-samara-yza.ru Каждая минута дорога. Скиньте другу в беде.

    Reply ↓
  17. 888starz_pdki

    starz888 هي منصة مراهنات عبر الإنترنت تقدم ألعاب كازينو وخيارات رهان متنوعة للمستخدمين العرب.
    تُعتبر 888starz منصة متكاملة تقدم مجموعة واسعة من الألعاب.

    القسم الثاني:
    تحتوي المكتبة على ألعاب رياضية وحظ وألعاب بطاقات متطورة.

    القسم الثالث:
    تدعم 888starz أنظمة دفع متعددة لتسهيل المعاملات المالية.

    القسم الرابع:
    تخطط 888starz لتطوير خدماتها وتقديم تجربة أكثر ابتكارًا للمستخدمين.

    Reply ↓
  18. 888starz_qtki

    staz888 هي منصة مراهنات عبر الإنترنت تقدم ألعاب كازينو وخيارات رهان متنوعة للمستخدمين العرب.
    888starz هي منصة ترفيهية تقدم تجارب لعب متميزة.

    القسم الثاني:
    تقدم 888starz تحديثات دورية تضيف محتوى جذابًا ومتغيرًا.

    القسم الثالث:
    توفر 888starz قنوات دعم سريعة تساعد في حل المشكلات بكفاءة.

    القسم الرابع:
    تخطط 888starz لتطوير خدماتها وتقديم تجربة أكثر ابتكارًا للمستخدمين.

    Reply ↓
  19. 888starz_ppKt

    888starz تسجيل دخول هو موقع للمراهنات والألعاب الإلكترونية يقدم خدمات تسجيل الدخول والدعم بلغات متعددة.
    تُعرف 888starz كمنصة رائدة تقدم تجارب ترفيهية ومراهنات مبتكرة.

    القسم الثاني:
    توفر 888starz ألعاب سلوتس وبث مباشر ومراهنات على المنافسات الرياضية.

    القسم الثالث:
    توفر 888starz عروضًا ترويجية ومكافآت للمستخدمين الجدد والمستمرين.

    القسم الرابع:
    تولي 888starz اهتمامًا لحماية بيانات المستخدمين وسلامة المعاملات.

    Reply ↓
  20. Vivod iz zapoya na domy_twOn

    Народ выручайте. Столкнулся с такой бедой. Муж просто пропадает. Дети не спят ночами. В диспансер везти — учёт на всю жизнь. Короче, только это и спасло — срочный вывод из запоя круглосуточно. Приехали через час. В общем, вся инфа вот здесь — вывод из запоя наркология вывод из запоя наркология Не надейтесь на авось. Скиньте другу в беде.

    Reply ↓
  21. Vivod iz zapoya na domy_gwOn

    Друзья ситуация. Столкнулся с такой бедой. Брат пьёт без остановки. Жена в слезах. В диспансер везти — учёт на всю жизнь. Короче, нормальные врачи нашлись — анонимный вывод из запоя без последствий. Поставили систему. В общем, сохраняйте на будущее — вывод из запоя цены самара вывод из запоя цены самара Каждая минута дорога. Скиньте другу в беде.

    Reply ↓
  22. JavierGop

    Quietly enthusiastic about this site after the past few hours of reading, and a stop at motovoyager extended that enthusiasm, the calibration of enthusiasm to evidence is something I try to maintain and this site has earned a calibrated quiet enthusiasm rather than the loud excitement that usually fades within a day or two of finding something.

    Reply ↓
  23. 888starz_omKt

    8 starz هو موقع للمراهنات والألعاب الإلكترونية يقدم خدمات تسجيل الدخول والدعم بلغات متعددة.
    تلفت 888starz الانتباه بكونها توفر مجموعة واسعة من الألعاب والخدمات.

    القسم الثاني:
    تقدم 888starz مجموعات من الألعاب تشمل السلوتس والبث الحي والرياضات الافتراضية.

    القسم الثالث:
    يفضل الاطلاع على قواعد العروض لتحقق الاستفادة القصوى دون مشكلات.

    القسم الرابع:
    تركز 888starz على تأمين معلومات اللاعبين وعمليات الدفع.

    Reply ↓
  24. 888starz_ndki

    88 starz هي منصة مراهنات عبر الإنترنت تقدم ألعاب كازينو وخيارات رهان متنوعة للمستخدمين العرب.
    تعمل المنصة وفق معايير أمان وتسوية عادلة للعب.

    القسم الثاني:
    تضم 888starz مكتبة ألعاب متنوعة تشمل السلاسل الكلاسيكية والجديدة.

    القسم الثالث:
    توفر 888starz قنوات دعم سريعة تساعد في حل المشكلات بكفاءة.

    القسم الرابع:
    تخطط 888starz لتطوير خدماتها وتقديم تجربة أكثر ابتكارًا للمستخدمين.

    Reply ↓
  25. Vivod iz zapoya na domy_cpKn

    Народ. Близкий пьёт беспробудно. Соседи уже стучат в стену. В диспансер тащить — клеймо на всю жизнь. Короче, спасла только эта контора — круглосуточный вывод из запоя в Екатеринбурге. Через 40 минут уже были. В общем, все контакты по ссылке — нарколог вывод из запоя нарколог вывод из запоя Каждый день без помощи — минус здоровье. Кто в беде — тому точно.

    Reply ↓
  26. 888starz_gnKt

    88start هو موقع للمراهنات والألعاب الإلكترونية يقدم خدمات تسجيل الدخول والدعم بلغات متعددة.
    واجهة المستخدم في 888starz مصممة لتكون سهلة وواضحة.

    القسم الثاني:
    تنوع الألعاب يساعد على تلبية أذواق اللاعبين المتباينة.

    القسم الثالث:
    تُسهم المكافآت في منح اللاعبين موارد إضافية لتجربة أوسع.

    القسم الرابع:
    بالرغم من خدماتها المتقدمة، من الضروري أن يلتزم اللاعب باللعب المسؤول.

    Reply ↓
  27. Vivod iz zapoya na domy_sdKn

    Екатеринбург. Близкий пьёт беспробудно. Соседи уже стучат в стену. Платная клиника просто грабит. В итоге, врачи реально вытащили — круглосуточный вывод из запоя в Екатеринбурге. Сняли интоксикацию за час. В общем, все контакты по ссылке — вывод из запоя на дому в екатеринбурге https://vyvod-iz-zapoya-na-domu-ekaterinburg-bqm.ru Каждый день без помощи — минус здоровье. Кто в беде — тому точно.

    Reply ↓
  28. 888starz_ftmn

    88start
    تُعرف 888starz بتقديم مجموعة واسعة من الألعاب والخدمات المصممة لراحة اللاعبين وتلبية احتياجاتهم.

    القسم الثاني:
    تشمل مجموعة الألعاب لدى 888starz خيارات متعددة تناسب مختلف الأذواق ومستويات المهارة.

    القسم الثالث:
    توفر المنصة أدوات معلوماتية مثل جداول المباريات وإحصاءات اللاعبين لتسهيل الاختيار.

    القسم الرابع:
    تعتمد المنصة بروتوكولات أمان قوية لحماية الحسابات والمعاملات المالية للمستخدمين.

    Reply ↓
  29. Vivod iz zapoya na domy_qfOn

    Друзья ситуация. Жесть случилась полная. Муж просто пропадает. Жена в слезах. Платные клиники просят бешеные деньги. Короче, только это и спасло — вывод из запоя дешево и сердито. Отошёл за полчаса. В общем, там контакты и прайс — нарколог на дом вывод из запоя на дому нарколог на дом вывод из запоя на дому Не тяните. Скиньте другу в беде.

    Reply ↓
  30. Vivod iz zapoya na domy_lsOn

    Народ выручайте. Жесть случилась полная. Брат пьёт без остановки. Дети не спят ночами. Платные клиники просят бешеные деньги. Короче, только это и спасло — вывести из запоя на дому качественно. Поставили систему. В общем, там контакты и прайс — нарколог вывод из запоя нарколог вывод из запоя Не надейтесь на авось. Перешлите тому кому надо.

    Reply ↓
  31. Vivod iz zapoya na domy_ptOn

    Друзья ситуация. Столкнулся с такой бедой. Брат пьёт без остановки. Соседи стучат в дверь. Скорая не едет. Короче, только это и спасло — вывести из запоя на дому качественно. Приехали через час. В общем, сохраняйте на будущее — вывести из запоя вывести из запоя Каждая минута дорога. Скиньте другу в беде.

    Reply ↓
  32. 888starz_mxSl

    Игровая секция 888starz объединяет видеослоты, классические настольные игры и трансляции с живыми крупье.

    Регулярные акции сопровождаются понятными правилами и выигрывают доверие участников благодаря прозрачности.
    888 вход 888 вход.

    Reply ↓
  33. 888starz_pwpr

    جرب الحظ الآن على 888starz للفوز بجوائز مثيرة ومباشرة.
    المنصة تتميز بواجهة مستخدم بسيطة وسهلة التصفح.

    الفقرة الثانية:
    تتنوع خدمات 888starz بين ألعاب الكازينو والرياضات الافتراضية وعروض ترويجية متعددة.

    Reply ↓
  34. 888starz_axkr

    888starz — это современная онлайн-платформа, предлагающая развлекательные игры и свежие бонусы для новых и постоянных игроков.
    888starz casino login https://888starz-uzb4.com

    Reply ↓
  35. Vivod iz zapoya na domy_emOn

    Друзья ситуация. Столкнулся с такой бедой. Близкий не выходит из запоя. Дети не спят ночами. Скорая не едет. Короче, только это и спасло — профессиональное выведение из запоя капельницей. Приехали через час. В общем, сохраняйте на будущее — вывести из запоя анонимно вывести из запоя анонимно Не надейтесь на авось. Перешлите тому кому надо.

    Reply ↓
  36. 888starz_dipr

    888starz — популярный игровой сервис, предлагающий многообразие ставок, игровых автоматов и интуитивно понятный интерфейс.
    888starz bet зеркало https://888starz-uzb6.com

    Reply ↓
  37. Vivod iz zapoya na domy_vxOn

    Друзья ситуация. Столкнулся с такой бедой. Муж просто пропадает. Жена в слезах. Скорая не едет. Короче, единственное что реально помогло — срочный вывод из запоя круглосуточно. Приехали через час. В общем, там контакты и прайс — вызов нарколога на дом запой вызов нарколога на дом запой Не надейтесь на авось. Скиньте другу в беде.

    Reply ↓

Leave a Reply

Your email address will not be published. Required fields are marked *