Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 19 Feb 2012
Offline Last Active Today, 07:18 AM

Posts I've Made

In Topic: Sharpen shader performance

Yesterday, 11:34 PM

Also, AFAIK nVidia is still internally translating GLSL into its own native shader language (Cg). This might explain some non-optimized paths.

In Topic: correct modeling for game developement (poly count)

21 September 2016 - 05:11 AM

What I answered before is still valid for your clarification.


Sometimes, some engines require to know each part of a thing, let's say, as you talked about it, a building. Doing so, will allow to easily tell to the game editor that this is a wall, this is not a wall, this is a room, this is a door. Each of them will be recognized as different things in the engine: the walls will allow to split the building into different areas, or to tell that all what is behind cannot be seen (major occluder), the doors will allow to create portals in between these areas, and so on...


All of this is generally done so that to improve the performance of the rendering engine. Nowadays, this is less true, but some engines still require to tell that this geometry is a major occluder, this area is a portal, this set of walls is considered as a portal area...


And even if the engine does not require to know all of this, or if the engine editor allows to select sub-pieces of the geometry, people will tend to have different manners to work. For example, when you dispatch a building into many pieces, some pieces might be easily reused. For example, you can reuse the doors in several locations, so this will allow to save the amount of geometry, thus allowing to require less memory to the graphic card, thus allowing the engine to do some instancing...


Hope I went on your direction this time :)

In Topic: correct modeling for game developement (poly count)

21 September 2016 - 03:02 AM

That's it. We can do so in order to avoid artifacts for example, z-fighting issues, aliasing with textures...


Game editors (or engine editors) are not modelers. They might most of them provide tools to work on or create the models, but they are not meant to modelize.

For things like walls, first because this is easy to model, and also because walls could help the engine having better performances (occluders and such), one would generally model them directly in the editor. But they could also be imported from a model (for example if the wall has a lot of geometry details, like holes, hills and other discontinuities).

But for more complex things (characters, cars, trees and so on), people will tend to model them in a modeler, create different levels of details, and different normal maps, then import them in the editor.


This is my knowledge about this. Real game developers will give more exact answers :)

In Topic: correct modeling for game developement (poly count)

21 September 2016 - 01:49 AM

Normal-mapping is an imagery-effect to move the details from the geometry (triangles) into the texture. This fakes the geometry detail on the image and since you provide extra normal values which are (generally) non-linear between each vertex of a face, then you lit the geometry as if it was not flat (but it is). This works well as long as the faces do not cover a too-big region in the screen.


This is why you need both the explanations mentioned above: put a higher-detailed normal-map into a lower-poly geometry, and have different levels of details of the geometry (and the normal-map) and choose accordingly, depending on the screen coverage.

In Topic: Fast Way To Determine If All Pixels In Opengl Depth Buffer Were Drawn At Leas...

21 September 2016 - 12:56 AM

Mipmapping is not only a performance thing; it's also affects image quality


Right. But one could notice aliasing effects more easily. Aliasing on a textured object could probably means a texture issue (or depth issue, right). But a sudden FPS drop can have many reasons.


Mipmaps don't use almost double the memory - they use one-third extra.


Right too. I'm still wondering how I could reach such a result...