Do Video Games Fake Buoyancy?

preview_player
Показать описание
Get a free 30 day trial and 20% off an annual plan at

Buoyancy seems easy to fake, but do games actually fake it? Who knows!

Support me on Patreon!

Socials:

References:

Music:
Afternoon Break - Persona 3 OST
Joy - Persona 3 OST
This Mysterious Feeling - Persona 3 OST
Junes Theme - Persona 4 OST
In A Moment's Time - Skullgirls OST
Fearful Experience - Persona 3 OST
New Game - WORLD OF HORROR OST
Underground Club - VA-11 Hall-A OST
Police Station - Persona 1 OST
During The Test - Persona 3 OST
Every Day Is Night - VA-11 Hall-A OST
Your Love Is A Drug - VA-11 Hall-A OST
Those Who Dwell In The Shadows - VA-11 Hall-A OST
Climactic Reasoning - Danganronpa 2 OST

Thanks for watching!

This video is dedicated to my friend, Alotryx.

#acerola #graphics #gamedev #unity3d #graphics #shaders
Рекомендации по теме
Комментарии
Автор


Simple topic today thanks friends happy new year

Acerola_t
Автор

I'm actually really glad the cat gag hasn't been removed because I find it genuinely fun to watch your cat

dotdotmod
Автор

My favorite fake bouyancy is in the original half life.
All they did was put a trigger plane slightly under the surface of the water, every time an object touches the plane it just kinda punches the object up a little bit
And that's all it does

elizabethagudelo
Автор

"Did Archimedes ever take another bath?" Actually yes, IIRC there were historical records uncovered in 2011 stating that he once bathed in blood inside Heavy's ventral cavity

ValeBridges
Автор

The funny PNG computing man is back! My day has improved drastically

Starling
Автор

I have one question - is there any correlation between buoyancy of the objects and successfulness of their distant relationships?
Having trouble with my drowning simulation

llMarvelous
Автор

Great video! I had to create a relatively convincing buoyancy sim at work for VR interactable objects. You did a fantastic job with this break down! The difficulty I found, most of all, was creating an interface for designers to end up implementing the parameters, per object, to determine physical values. Lots of fun! Designers have such high standards but then want simple controls!

AutisticYui
Автор

Working on a buoyancy sim for my own ocean.. watching you go through the same thought processes as me was funny. To address the issues with the voxel approach (no control/ bad performance) i did a couple things instead of a plane fitting algorithm
- Based the rotation of the object, if it aligned orthogonally with the oceans suface such that the cubes could same from ones "below" them, i could drastically cut down on the # of samples especially for ships which almost always maintain a similar equilibrium
-To address control, i worked the buoyancy equation backwards to calculate the water density based on a desired height for the object to be at equilibrium for. This meant that for ships, all I had to do was set a specific y value to be the waterline and the program made it float there no matter what. It also meant the water density was different for each object, but that didn't have any effect so long as there weren't things that were Massively overweight and floating

I have some questions about the gpu read back:
What if you calculated, on the gpu, the lower frequency waves slightly ahead in the future such that when the packets arrived, they would be right on time instead of lagging behind (this would also help with noise). I'm not sure if its practical but I just thought of it now

soliform
Автор

Uh, thinking about the pressure on the surface of the object is actually way more applicable to how 3D objects in game engines are usually implemented.
This can be done by using a displacement mesh, cutting it at the water surface and then calculating the pressure and area for each triangle to get the forces. Implementing things like slamming forces and surface friction also becomes possible.
There is a great article by Jacques Kerner about the Just Cause 3 boat physics on the gamedeveloper website and a person called Habrador also has a Unity implementation with sample code based on it.

iffn
Автор

Your thumbnail made me realize where the word buoy comes from, so thanks for that random little insight :)
(seems kinda obvious in hindsight, but then again I suppose most things do)

idontwantahandlethough
Автор

My immediate thought in regards to the lag is that since it, gameplay-wise, doesn't matter what time the ocean simulation is at, if you could hold back the clock for the rendering time, you could have the wave visual sync up with the values you got from the gpu->cpu reads.
I'm too lazy to go back to the previous vid to chek how the sim was stored, but given it's not just a simple function of time like a sum of sines would be, I suppose this might require a circular history buffer of wave maps or something

SadeN_
Автор

Love that you named your cat Brilliant, and that they sponsored this video 💕

RandomProduct
Автор

Yo Ace I’m loving binging your whole channel as I learn blender

Phizsh
Автор

Fantastic video as always! We need more of what you have to offer! Your work researching, explaining, and covering topics without just talking about what your code does and showing code allows us to learn to code it on our own in our own ways. Keep this up! I'll for sure be subscribing to your Patreon!

Relics_tv
Автор

My first idea would be to sample the 4 corners, use a plane approximation, and filter that using a moving average window.

adrien
Автор

Since you mentioned the signal domain, the "noise" can be filtered with a simple damping filter (also known as Exponential Moving Average Infinite Impulse Response filter): o = lerp(i, o, t). This effectively removes high frequencies from your signal, simulating inertia and mass. Of course, you don't have to stop to just one filter (1st order), you can have up to 3 filters chained one after another for an even smoother frequency cutoff.

AlexTuduran
Автор

Isn't it possible to just stream a downscaled height texture of the water back to the CPU? That should be much faster than individual reads for each object.

Also you can set a spring constraint in many physics engines, even the one unity uses. If you add an X/Z (or X/Y) lock to the body, you end up with a buoy that doesn't move and doesn't topple over (artist control) while still being physics based.

Xaymar
Автор

an acerola video a month keeps one feeling comf

oliverx
Автор

One thing I think could quite improve the simulation is drag. Objects in water experience significant drag which slows them down (tried running through a pool? Impossible). Moving objects, like ships, rely on there being far more drag sideways than forward/back in order to be able to turn properly.
I made a game in 3rd year in high school where I implemented water simulation. The boats I used would sink noticably when jumping into the water, and would slide across when turned. Adding drag (high drag sideways, very high vertically) mostly fixed the issue.

I don't remember much from his previous water sim video, but if the simulation isn't incredibly compute heavy, you can in fact just simulate it on the CPU for every point you need. I sampled 7 points on a boat's hull in order to determine the buoyancy.

boggybolt
Автор

I don’t know what it is about the way you make videos but don’t stop, your videos feel so casual while still being informative and it’s great.

torstonvodesil
visit shbcf.ru