• Advertisement
  • Popular Tags

  • Popular Now

  • Advertisement
  • Similar Content

    • By lucky6969b
      I want to calculate the position of the camera, but I always get a vector of zeros.

      D3DXMATRIX viewMat; pDev->GetTransform(D3DTS_VIEW, &viewMat); D3DXMatrixInverse(&viewMat, NULL, &viewMat); D3DXVECTOR3 camPos(viewMat._41, viewMat._42, viewMat._43); log->Write( L"Camera Position: %f %f %f\n", camPos.x, camPos.y, camPos.z);

      Could anyone please shed some lights on this?
    • By bsudheer
      Leap Leap Leap! is a fast-paced, endless running game where you leap from rooftop to rooftop in a computer simulated world.

      This is a free run game and get excited by this fabulous computer simulated world of skyscrapers and surreal colors in parallax effect. On your way, collect cubes and revival points as many as you can to make a long run.

      Features of Leap Leap Leap:
      -Option of two themes: Black or White.
      -Simple one touch gameplay.
      -Attractive art.
      -Effective use of parallax.
      To Download the game:
      Playstore: https://play.google.com/store/apps/details?id=com.avakaigames.leap
      Appstore: https://itunes.apple.com/us/app/leap-leap-leap/id683764406?mt=8

    • By isu diss
      I'm following rastertek tutorial 14 (http://rastertek.com/tertut14.html). The problem is, slope based texturing doesn't work in my application. There are plenty of slopes in my terrain. None of them get slope color.
      float4 PSMAIN(DS_OUTPUT Input) : SV_Target { float4 grassColor; float4 slopeColor; float4 rockColor; float slope; float blendAmount; float4 textureColor; grassColor = txTerGrassy.Sample(SSTerrain, Input.TextureCoords); slopeColor = txTerMossRocky.Sample(SSTerrain, Input.TextureCoords); rockColor = txTerRocky.Sample(SSTerrain, Input.TextureCoords); // Calculate the slope of this point. slope = (1.0f - Input.LSNormal.y); if(slope < 0.2) { blendAmount = slope / 0.2f; textureColor = lerp(grassColor, slopeColor, blendAmount); } if((slope < 0.7) && (slope >= 0.2f)) { blendAmount = (slope - 0.2f) * (1.0f / (0.7f - 0.2f)); textureColor = lerp(slopeColor, rockColor, blendAmount); } if(slope >= 0.7) { textureColor = rockColor; } return float4(textureColor.rgb, 1); } Can anyone help me? Thanks.

    • By elect
      ok, so, we are having problems with our current mirror reflection implementation.
      At the moment we are doing it very simple, so for the i-th frame, we calculate the reflection vectors given the viewPoint and some predefined points on the mirror surface (position and normal).
      Then, using the least squared algorithm, we find the point that has the minimum distance from all these reflections vectors. This is going to be our virtual viewPoint (with the right orientation).
      After that, we render offscreen to a texture by setting the OpenGL camera on the virtual viewPoint.
      And finally we use the rendered texture on the mirror surface.
      So far this has always been fine, but now we are having some more strong constraints on accuracy.
      What are our best options given that:
      - we have a dynamic scene, the mirror and parts of the scene can change continuously from frame to frame
      - we have about 3k points (with normals) per mirror, calculated offline using some cad program (such as Catia)
      - all the mirror are always perfectly spherical (with different radius vertically and horizontally) and they are always convex
      - a scene can have up to 10 mirror
      - it should be fast enough also for vr (Htc Vive) on fastest gpus (only desktops)

      Looking around, some papers talk about calculating some caustic surface derivation offline, but I don't know if this suits my case
      Also, another paper, used some acceleration structures to detect the intersection between the reflection vectors and the scene, and then adjust the corresponding texture coordinate. This looks the most accurate but also very heavy from a computational point of view.

      Other than that, I couldn't find anything updated/exhaustive around, can you help me?
      Thanks in advance
    • By drcrack
      It is a combination of fundamental RPG elements and challenging, session-based MOBA elements. Having features such as creating your unique build, customizing your outfit and preparing synergic team compositions with friends, players can brave dangerous adventures or merciless arena fights against deadly creatures and skilled players alike.

      This time with no grinding and no pay to win features.

      We're still looking for:
      1) 3D Character Artist
      2) 3D Environment Artist
      3) Animator
      4) Sound Designer
      5) VFX Artist

      Discord https://discord.gg/zXpY29V or drcrack#4575
  • Advertisement
  • Advertisement

3D Horrible texture/object popping

Recommended Posts

What are the commonly used methods that would prevent the texture/object popup in games?

I'm not sure that any actually exist as even the latest SW Battlefront 2 has frequent texture/object popup. If my memory serves me right, I think Gears of War might have had a good solution for this in the form of slightly blurred backgrounds.

Also, why do other devs don't realize that this completely breaks the visual integrity of the game, when did this become acceptable?

Edited by Armantium

Share this post

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

What are the commonly used methods that would prevent the texture/object popup in games?

Object popup has mainly to do with draw distance which is entirely up to the programmer/s.  Its a performance issue, although in one case I heard it partially had to do with an occlusion culling technique.  You'll notice draw distance as a setting in some games, setting it to 'ultra' usually eliminate object pop up.  Draw distance can be affected by the value of the far clip plane.

Texture pop in has to do with availability of a texture in a device readable format at the time its needed.  Some games don't load all textures into memory at once because there isn't enough memory to fit everything.  Hard drives are an order of magnitude slower than RAM.  So loading something into RAM takes time.  To eliminate pop in you'd need to prefetch textures, which would require you to predict what becomes visible, which can involve predicting what the player does.  Another option is to have alternative textures that are similar to multiple textures and temporarily use those textures while the real texture is loading. 

Share this post

Link to post
Share on other sites

Thanks, that's a great answer.

Can you remember a single modern AAA game that didn't have terrible pop-in? It's really weird to me that this is being so widely tolerated.


Edited by Armantium

Share this post

Link to post
Share on other sites

It is more like we have to live with it than we tolerate it ! In the past, we did not have much, we put a knife cutting fog close by and stop drawing ( think Turok, Unreal 1 ), now the far clip is usually at infinity and we have to draw technically to the end of world, and we have to do it at higher resolution than ever before.


Memory and performance are not unlimited. The hardware deal with performance for texture on the distance, with mip maps, so only memory is an issue with them. Geometry is more complicated, if you draw a thousand triangle model in the distance covering 2 pixels, you will never hit the performance mark, and so we do have LODs. Well done LOD and transition can be impossible to see, but a game amount of asset has boom too, and LODs are more and more automatic geometry processing than artist done, with not enough time to inspect every single case.Then even with LODs, performance may still miss the mark, so the last LOD is just to not draw, hopefully, it happens far enough than you don't see it disappear, especially in complex environment that have the time to occlude it before that, but your world is a desert with a palm tree in the middle, you will have issue here !


Then for texture streaming, until we have a terabyte of memory for our GPU, we will have to deal with it, and then we will still have to deal with it because we always want to draw more. 4K need twice the texel density for four times the memory to achieve the proper visual ( no texture magnification ), 8K will be 16 times more ! 


The final though on that, most of the time, LOD transition and texture streaming are unseen because they work, but sometimes, you may have trickier location in games challenging your system or possibly all the players carry their own customized character, giving even less memory for the rest of the world. Then failure may happen, textures get kicked out more aggressively for what is on screen and because of that, they need more time to get back, giving even more trouble to the system.


My advice, if you do not want to see streaming and popping, play a game that does not need it, like smaller indie games that are likely to fit in memory.

Edited by galop1n

Share this post

Link to post
Share on other sites

In theory we can avoid popping by blending texels and geometry, but in practice we won't yet:

Detail reduces to one half (over the thumb)

Need more complicated geometry processing which has a performance cost.

Need to have at least two LODs in memory and process them both.

Put's more constraints on offline asset processing, which is already hard.


So, the situation will improve in the future like with everything else.

Share this post

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

Can you remember a single modern AAA game that didn't have terrible pop-in?


2 hours ago, JoeJ said:

In theory we can avoid popping by blending texels and geometry, but in practice we won't yet

While not exactly blending, several modern games do try to smooth out LOD popping by using a dithering-like effect. Here's a blog post on how Assassin's Creed 3 does it; Far Cry 4 uses a similar effect, and maybe GTA V too?

Share this post

Link to post
Share on other sites
4 minutes ago, dietrich said:

While not exactly blending, several modern games do try to smooth out LOD popping by using a dithering-like effect

I've noticed this in Quantum Break and FarCry / Nier... QB seems to improve it with some TAA like technique and i really like the result - best LOD switch i ever noticed. It would be interesting to get something with a temproral effect alone - without the need to render two LODs, but i assume the duration we can get is too short in practice. (QB has a duration of about 0.5 seconds, maybe they do it indeed just by postprocessing.)

But rendering 2 LODs really seems a waste. A better way would be to have geometry that consists of both LODs (lerp vertices from a fused to a seperated position for more detail), but this has all the downside mentioned above. Anyone knows a game that used such a technique already for enviroments and not just characters?


Share this post

Link to post
Share on other sites

Until there is unlimited resources for rendering ( processing power, memory etc ), there will always be tradeoff in rendering. Devs usually choose the lesser of 2 evils. Nothing is free, but step can be take to minimize the visual anomalies. You can use some form of progressive mesh for all visual representation, but then you pay the price in requiring more processing power to do so...so would you prefer a game that doesn't pop, vs one that runs like 'you know what'. I agree its can be distracting at times, but for the most part this shouldn't be a show stopper for any good game ( unless you are more interesting in how the game looks vs the story. ). Ex..and this is just my opinon/preference. Assassin's Creed ( the first game ) on XBox 360 , was so bad that characters (NPC) would pop into the scene almost right next to you, but it did not ruin the experience for me as the game itself was more engrossing that I was able to overlook those issues..


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

  • Advertisement