Jump to content
The Dark Mod Forums

Some questions about performance (FPS)


Capela

Recommended Posts

Do Caulk textures realy have an important impact on performance?

The number of Brushes have impact on performance?

Using func_static will have a gain in performance or slow it down?

And about patchs, as my map is a city if i cover the streets all over with patchs, is this a good ideia?

 

 

Thanks

Edited by Capela
Link to comment
Share on other sites

Q: Do Caulk textures realy have an important impact on performance?

 

A: Yes, there is some benefit to caulking. It's mostly just important that you have visportal

and world-sealing brushes.

 

Q: The number of Brushes have impact on performance?

 

A: The overall brushcount has an affect on map load time and memory usage. The in-game performace

is mostly determined by the number of brushes per portal area (leaf). Every overlapping light will produce

duplicate tris so add that to your brush per leaf considerations

 

Q: Using func_static will have a gain in performance or slow it down?

 

A: Func statics will typically improve performance because the are optimized for the least number of tris. That

said, the engine cannot split them at portals or at light boundaries so they can take a toll if you don't manually at

these boundaries. In scenes with many lights it may be impractical to manually split these and reverting to world

spawn brushes may be more optimal

 

Q: And about patchs, as my map is a city if i cover the streets all over with patchs, is this a good ideia?

 

A: This has been done by many mappers but you must acknowledge that AI cannot path on patch geometry and it doesn't

seal the void. You will need to caulk and monsterclip it.

  • Like 1

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Link to comment
Share on other sites

Q: Do Caulk textures realy have an important impact on performance?

 

A: Yes, there is some benefit to caulking. It's mostly just important that you have visportal

and world-sealing brushes.

 

 

I have yet to see any evidence for this claim. It's very common to recommend caulking, yet the only actual test of it that I'm aware of showed no notable performance benefit.

From the wiki:

 

Every now and then, caulking rises up debates, whether or not it is useful or not. The basic question is, whether or not it is beneficial to spend a lot of time caulking and how much caulk is required to get a solid impact on fps rate. Recent tests performed by Sotha (Link) gave the following results.

Caulking a medium complex scene with tens of windows and other objects (Knighton Manor start) did NOT have any effect on fps counts. Caulking did save roughly 1000 tris, but this is not sufficient to cause any fps improvement. The main benefit of caulking was the decrease of memory usage: 1000 saved tris saved 0.6MB of memory.

Testing indicated that on a rather high-end computer increase of 23000 tris, 75 draws and 2500 shdw reduced the fps count by two. If a window consists of 5 brushes and the wall facing surfaces are caulked, this saves 5 surfaces and thus 10 tris per window. This would mean that 2300 windows should be caulked to get an improvement of 2fps. Basically this shows that caulking does not have much impact on modern hardware. However, on an older piece of hardware the amount of caulking needed for performance effect is lower, but even in this case it should be remembered that 1000 tris is roughly 20% of a single AI character.

 

 

http://wiki.thedarkmod.com/index.php?title=Caulk

  • Like 1
Link to comment
Share on other sites

What Spring said, caulk is nice if you use it in workflow. Savings in modules that need no work so are recommended. It is of no use to bother to manually caulk a lot of stuff.

 

Func_static removes the excess cutting of worldspawn tris. As a rule of a thumb, have all detail work as func_static. Have all f_s as noshadows if they are small enough to not have any gameplay effect.

  • Like 1

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

To expand on that a bit: brushes are the raw material for dmap. But there are no brushes left after dmap has finished its job, and no brushes get loaded into the game when you launch a map. No visible ones that create tris, anyway.

 

Dmap uses your brushes to make several things that go into the .proc file that it generates:

  • The BSP tree: this is the division of your 3d map space into accessible regions, separated by visportals, and "solid" or "void" areas that are inaccessible. NB the insides of brushes are void too, which is why all visportals open when you noclip into a wall -- the game can't tell what area of the map you are in any more.
  • Worldspawn models: these are the brush surfaces that you can see in the map. Dmap takes any brush surfaces that face onto accessible areas and turns them into models just like the models that you'd make in blender or lightwave. It's highly efficient in doing that: Any surface that doesn't face an accessible area gets culled away. See diagram below: If you make a simple map like that, only the dashed red lines will end up in your proc file and will generate tris in game. That's why you don't need to caulk inner surfaces. Dmap does the same thing for func statics made from brushes.
  • Prelight shadows: Any opaque brush surfaces hit by a light in the map generate pre-calculated shadow shapes, again stored in the proc file as 3d models.
  • Visportals: a list of which of the boundaries between BSP areas are visportals.
  • AAS: paths through the accessible areas that AI can use.

The first 4 are what go in the proc file. Dmap also generates a .cm file that stores all the details of the solidity of the surfaces in the map, and what kind they are (i.e. solid to player or AI or both, and what sound they made when stepped on or hit by an arrow). That file isn't essential: if it's missing it'll get generated on the fly during map load anyway. The cm file might retain brush shapes -- I'm not sure without checking -- but it's invisible information that doesn't generate any tris on screen.

 

post-29566-0-61252400-1420865457_thumb.gif

Edited by SteveL
  • Like 2
Link to comment
Share on other sites

I'm sure that I've watched the dmap code doing it :-) I've not actually tested it. I'll try it shortly when I get to my computer.

Ah we might be talking about slightly different things. Dmap will remove faces internal to your func static, but it won't remove the back face of a window, for example. That's unseen but on the outside of the func static.

I need to correct one thing in my part above: AAS goes in a separate file too of course. I forget what the 4th output of dmap into the proc file is, but I'll look it up and amend my post.

Edit: the other outputs are the models for worldspawn-based FS and the list of visportals

Edit2: Confirmed that dmap removes internal faces from FS, but not faces that are hidden by other FS or by worldspawn.

Link to comment
Share on other sites

Yeah, caulking world spawn brushes is different than caulking func_static. Once you convert geometry to func_static, think of it as a model. It doesn't seal the void and AI can't path it. This is where caulk serves its purpose.

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Link to comment
Share on other sites

Are you sure about this, I am fairly sure that hidden side of and FS are still rendered so it good practice to caulk them.

 

 

It becomes especially important if these faces can cast shadows or generate AAS. If you have a brush-face from a column flush with the floor, the brush face will be removed during dmap. Not so if you turn the column into a func_static.

 

In this case the bottom of the column will cast a shadow into the floor, which wil always be invisible, but stil has to be computed. If you caulk that face, the shadow is not cast.

 

Scenes with moving lights will generate a much greater impact on performance than the same scene with static (or no) lights.

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent Status Updates

    • nbohr1more

      Was checking out old translation packs and decided to fire up TDM 1.07. Rightful Property with sub-20 FPS areas yay! ( same areas run at 180FPS with cranked eye candy on 2.12 )
      · 2 replies
    • taffernicus

      i am so euphoric to see new FMs keep coming out and I am keen to try it out in my leisure time, then suddenly my PC is spouting a couple of S.M.A.R.T errors...
      tbf i cannot afford myself to miss my network emulator image file&progress, important ebooks, hyper-v checkpoint & hyper-v export and the precious thief & TDM gamesaves. Don't fall yourself into & lay your hands on crappy SSD
       
      · 5 replies
    • OrbWeaver

      Does anyone actually use the Normalise button in the Surface inspector? Even after looking at the code I'm not quite sure what it's for.
      · 7 replies
    • Ansome

      Turns out my 15th anniversary mission idea has already been done once or twice before! I've been beaten to the punch once again, but I suppose that's to be expected when there's over 170 FMs out there, eh? I'm not complaining though, I love learning new tricks and taking inspiration from past FMs. Best of luck on your own fan missions!
      · 4 replies
    • The Black Arrow

      I wanna play Doom 3, but fhDoom has much better features than dhewm3, yet fhDoom is old, outdated and probably not supported. Damn!
      Makes me think that TDM engine for Doom 3 itself would actually be perfect.
      · 6 replies
×
×
  • Create New...