Jump to content

Recommended Posts

I was using the replay function today to create some videos and still images for thumbnails, when it dawned on me that there is water rendered under the entire map, wherever you go on the maps there is water under the map. Now I am no programmer or game dev, but surely having the game render all this water, (which is all constantly moving etc) causes a significant performance hit? Why is it necessary to have water under the entire map? Why can't there just be water where there needs to be?

 

As I said, I am no game dev so forgive me if there is a reason why it is there, but to me it seems like it would cause unnecessary load? Could a significant performance increase be obtained by removing the water under map?

Share this post


Link to post
Share on other sites
Posted (edited)
11 minutes ago, ZEODE said:

I was using the replay function today to create some videos and still images for thumbnails, when it dawned on me that there is water rendered under the entire map, wherever you go on the maps there is water under the map. Now I am no programmer or game dev, but surely having the game render all this water, (which is all constantly moving etc) causes a significant performance hit? Why is it necessary to have water under the entire map? Why can't there just be water where there needs to be?

 

As I said, I am no game dev so forgive me if there is a reason why it is there, but to me it seems like it would cause unnecessary load? Could a significant performance increase be obtained by removing the water under map?

 

Uses less polys to render a water plane rather than tesellate a water volume all around the sides of the map.

 

All the game does is checks if you are in the water volume (under the water plane) and applies water physics/effects.

 

Also, stuff that isn't visible because it's blocked by other geometry is usually culled from rendering using various methods (depth testing for example) so it's no impact to the game.

 

Plus - PUBG isn't really as GPU bound as much as CPU bound as far as I can tell. Wave effects probably just use a vertex shader which is pretty cheap in terms of graphical grunt (the GPU on the Xbox has enough shader units to easily handle that).

 

Other games do it exactly the same way.

Edited by fluffl0rs
  • Like 4

Share this post


Link to post
Share on other sites
Just now, fluffl0rs said:

 

Uses less polys to render a water plane rather than tesellate a water volume all around the sides of the map.

 

All the game does is checks if you are in the water volume and applies water physics/effects.

 

Also, stuff that isn't visible because it's blocked by other geometry is usually culled from rendering using various methods (depth testing for example) so it's no impact to the game.

 

Plus - PUBG isn't really as GPU bound as much as CPU bound as far as I can tell. Wave effects probably just use a vertex shader which is pretty cheap in terms of graphical grunt (the GPU on the Xbox has enough shader units to easily handle that).

 

Other games do it exactly the same way.

 

Thanks for the explanation

Share this post


Link to post
Share on other sites
Posted (edited)
2 hours ago, fluffl0rs said:

 

Uses less polys to render a water plane rather than tesellate a water volume all around the sides of the map.

 

All the game does is checks if you are in the water volume (under the water plane) and applies water physics/effects.

 

Also, stuff that isn't visible because it's blocked by other geometry is usually culled from rendering using various methods (depth testing for example) so it's no impact to the game.

 

Plus - PUBG isn't really as GPU bound as much as CPU bound as far as I can tell. Wave effects probably just use a vertex shader which is pretty cheap in terms of graphical grunt (the GPU on the Xbox has enough shader units to easily handle that).

 

Other games do it exactly the same way.

@Rev0verDrive, I found your UE brother/twin/doppelganger

Edited by pizzaman
  • Haha 2

Share this post


Link to post
Share on other sites
Posted (edited)
1 hour ago, pizzaman said:

@Rev0verDrive, I found your UE brother/twin/doppelganger

Lol I don't work with U4 engine, just that's the general technique and you can see it when you play the game (games are 99% smoke and mirrors)

Edited by fluffl0rs

Share this post


Link to post
Share on other sites

The water setup in PubG is pretty basic stuff. Literally a plane (surface that's textured), physics volume (water/buoyancy), post process volume (underwater effects).

 

Having the water under the landscape has zero impact on performance because you aren't rendering or computing anything for it when it is out of view.

Share this post


Link to post
Share on other sites
6 hours ago, fluffl0rs said:

 

Uses less polys to render a water plane rather than tesellate a water volume all around the sides of the map.

 

All the game does is checks if you are in the water volume (under the water plane) and applies water physics/effects.

 

Also, stuff that isn't visible because it's blocked by other geometry is usually culled from rendering using various methods (depth testing for example) so it's no impact to the game.

 

Plus - PUBG isn't really as GPU bound as much as CPU bound as far as I can tell. Wave effects probably just use a vertex shader which is pretty cheap in terms of graphical grunt (the GPU on the Xbox has enough shader units to easily handle that).

 

Other games do it exactly the same way.

WOW! bro im impressed (No sarcasm). Thanks for educating us plebs.

Share this post


Link to post
Share on other sites
Posted (edited)
3 hours ago, Rev0verDrive said:

The water setup in PubG is pretty basic stuff. Literally a plane (surface that's textured), physics volume (water/buoyancy), post process volume (underwater effects).

 

Having the water under the landscape has zero impact on performance because you aren't rendering or computing anything for it when it is out of view.

 

Could they use this technique to render a "plane" of grass for distances that grass wont normally render so that people could lie down in thick grass and be hidden from a distance because people far enough away to not render the grass instead get a green coloured "water plane" thats about a foot high ? Does it only work on flat areas ?

 

Not that its something that really bothers me in this game, but just thinking about ways to handle this area.

Edited by DeadlyEggXoP

Share this post


Link to post
Share on other sites
50 minutes ago, DeadlyEggXoP said:

 

Could they use this technique to render a "plane" of grass for distances that grass wont normally render so that people could lie down in thick grass and be hidden from a distance because people far enough away to not render the grass instead get a green coloured "water plane" thats about a foot high ? Does it only work on flat areas ?

 

Not that its something that really bothers me in this game, but just thinking about ways to handle this area.

 

nope. A plane is literally a sheet (1 sided mesh). When you add tesselation to it for the ripples you increase the poly count. Poly's kill fps.

The post process volume is what changes the lighting/coloring/FX when underwater. Volumes are box shaped. So adding enough to the game world to cover all landscape surfaces would crush client performance.

 

I'll do a water tutorial vid and post it. Give me a few minutes.

Share this post


Link to post
Share on other sites

I just figured that if you could place a 1 foot deep box over the landscape and texture it with grass texture, that it might not add many polys to teh landscape becuase it woudl be hiding the land underneath it.

 

like I said I dont really have an issue with the whole grass not rendering at distance.  but just wondered if there was a way to satisfy those people

Share this post


Link to post
Share on other sites
Posted (edited)
8 hours ago, DeadlyEggXoP said:

I just figured that if you could place a 1 foot deep box over the landscape and texture it with grass texture, that it might not add many polys to teh landscape becuase it woudl be hiding the land underneath it.

 

like I said I dont really have an issue with the whole grass not rendering at distance.  but just wondered if there was a way to satisfy those people

 

It's not that simple though - the terrain elevation changes would mean that the "box" wouldn't just be a box - it would have to be a mesh that followed the ground - essentially just rendering the terrain twice.

 

Also what happens if you are "inside" the grass mesh box (lying down) - do they render the back-face with a grass texture? It would look weird as hell too since you'd be under the grass when people were looking at you at range.

 

Grass doesn't grow sideways, it grows upwards, hence PUBG Corp using the same technique as many other game devs.

 

The grass at the moment is just strips of triangles with an alpha channel texture on - it's pretty cheap to render but obviously the more you render the more polys you are throwing at the Xbox.

 

That's the reason why you can't render grass too far, the further you get the more work you are doing.

Edited by fluffl0rs

Share this post


Link to post
Share on other sites

Nah it was just an idea that from a certain distance you didn't render the land, you just rendered this grass texture so tha same poly count as the terrain already had, but just a foot higher ?  if you were in it it would be like it is now.  But this of course doesn't factor in the transition between normal grass and this terrain render 

Share this post


Link to post
Share on other sites
3 hours ago, DeadlyEggXoP said:

Nah it was just an idea that from a certain distance you didn't render the land, you just rendered this grass texture so tha same poly count as the terrain already had, but just a foot higher ?  if you were in it it would be like it is now.  But this of course doesn't factor in the transition between normal grass and this terrain render 

 

Ah, if you had a think about what the engine is doing and viewed some stuff online about rendering you'd see that what you are suggesting might be a challenge to implement - not from a technical standpoint but from a visual standpoint.

 

Rendering the geometry a foot higher at a certain distance is something a vertex shader could do quite easily and there's no reason some dynamic multi-texturing couldn't apply a blend between the original and a grass texture at range but it would still look funny and you wouldn't be able to see people under that grass if they were lying down (they'd be completely invisible) unless you had some sort of alpha blend on the grass geometry at which point you'd also need to render the underlying ground texture (which would require additional geometry and thus more polys and you are back to square one). It would also probably rape the Xbox GPU since alpha blending is half the reason why we get slowdown when ADSing near the blue and certainly the reason we lose frames walking through smokes.

 

Triangle strips for grass are probably the quickest method.

 

Anyway - stop lying down! I love a good prone player - easy pickings every time.

Share this post


Link to post
Share on other sites
Posted (edited)
2 hours ago, fluffl0rs said:

 

Triangle strips for grass are probably the quickest method.

 

Anyway - stop lying down! I love a good prone player - easy pickings every time.

Dude like those plastic

strips of grass you find in the boxed sushi at groceries stores

 

 

20CCD25A-0943-440F-8CC8-DFA9F94342C8.jpeg

Edited by pizzaman

Share this post


Link to post
Share on other sites
12 hours ago, fluffl0rs said:

 

Ah, if you had a think about what the engine is doing and viewed some stuff online about rendering you'd see that what you are suggesting might be a challenge to implement - not from a technical standpoint but from a visual standpoint.

 

Rendering the geometry a foot higher at a certain distance is something a vertex shader could do quite easily and there's no reason some dynamic multi-texturing couldn't apply a blend between the original and a grass texture at range but it would still look funny and you wouldn't be able to see people under that grass if they were lying down (they'd be completely invisible) unless you had some sort of alpha blend on the grass geometry at which point you'd also need to render the underlying ground texture (which would require additional geometry and thus more polys and you are back to square one). It would also probably rape the Xbox GPU since alpha blending is half the reason why we get slowdown when ADSing near the blue and certainly the reason we lose frames walking through smokes.

 

Triangle strips for grass are probably the quickest method.

 

Anyway - stop lying down! I love a good prone player - easy pickings every time.

 

Heh, the whole point was so that when people lay down you wouldn't be able to see the player at all. perhaps it could be height adjusted so that a level 2 backpack would poke out a bit and a 3 would be as obvious as it is now.

 

But like I said before I don't have a problem with how it is now, It was more thinking about a way to solve the issue of all the complainers that like lying down in grass to hide.  I too agree that I get a little bit giddy and excited when I see someone go prone.. because it just means that you have at least 2 headshots on them before they can move.  

 

If they did this perhaps they might have to lower the amount of area that had long enough grass for this because otherwise it could lead to some really boring games.

Share this post


Link to post
Share on other sites
On ‎8‎/‎15‎/‎2018 at 9:38 AM, ZEODE said:

I was using the replay function today to create some videos and still images for thumbnails, when it dawned on me that there is water rendered under the entire map, wherever you go on the maps there is water under the map. Now I am no programmer or game dev, but surely having the game render all this water, (which is all constantly moving etc) causes a significant performance hit? Why is it necessary to have water under the entire map? Why can't there just be water where there needs to be?

 

As I said, I am no game dev so forgive me if there is a reason why it is there, but to me it seems like it would cause unnecessary load? Could a significant performance increase be obtained by removing the water under map?

The water is holding up the land,,Lol

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×