Jump to content
The Dark Mod Forums

Visportal miss!


ocn

Recommended Posts

caulking is pretty easy to do though, especially if you do it from the start. make a brush, apply caulk, add the textures to required faces.

 

as an afterthought it is more work. But still if you use caulk>filter when you are doing it (so faces hide as you apply caulk, letting you see more faces) you can run through an entire mission pretty quickly.

 

Typically I've been happy hitting say 85% of the unseen faces, if there are a few here and there I wouldn't kill myself over it.

Dark is the sway that mows like a harvest

Link to comment
Share on other sites

Long ago during the Quake 3 era, many of the more prominent mappers told us that they map in Caulk, and only texture afterwards.

I always do this since reading that, but I don't know if it helps. I actually like the way Caulk looks and it's nice seeing things starting to get textured.

I always assumed I'd taste like boot leather.

 

Link to comment
Share on other sites

caulking is pretty easy to do though, especially if you do it from the start. make a brush, apply caulk, add the textures to required faces.

 

as an afterthought it is more work. But still if you use caulk>filter when you are doing it (so faces hide as you apply caulk, letting you see more faces) you can run through an entire mission pretty quickly.

 

Typically I've been happy hitting say 85% of the unseen faces, if there are a few here and there I wouldn't kill myself over it.

 

Yeah, even with these results, I think I will continue caulking the unseen surfaces on objects I will clone. It is really small extra job to caulk the surfaces on the clone prime, and the good tris saving effect will multiply when I clone the brushes.

 

Every little bit helps, of course.

 

But the performance yield is not worth doing this afterwards.

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

No, in D3, backward faces cast shadows. (you can easily try this, add a ceiling bar 5 units below the ceiling and caulk its topside, lights placed under the bar will no longer cast a shadow on the ceiling). So if you have a light in front of a desk, the backside of the desk will cast the shadow *towards the wall*. Since the backside is flush with the wall, the shadow will never be seen (and I think the engine has no way to know this, so calculates the shadow anyway).

Yes but my understanding is that if you move the brush to touch the ceiling then Doom recognizes this and in fact disregards that back surface in dmap unless it is a func_static. I stopped caulking for that reason except with func_statics. How can we test this?
Link to comment
Share on other sites

Yes but my understanding is that if you move the brush to touch the ceiling then Doom recognizes this and in fact disregards that back surface in dmap unless it is a func_static. I stopped caulking for that reason except with func_statics. How can we test this?

 

That is correct. dmap creates an internal hull and disregards joins and hidden surfaces (and when it goes wrong, black lines/missing polys etc). For brushes (i.e NOT func_static etc) Caulking external, void facing surfaces and 'internal' faces is redundant and a waste of time/effort.

 

When doing something like ribbing on a roof (i.e beams) it's best to func_static the complex ribs and joins etc then caulk their hidden faces. The reason for this is not due to magic or textures etc. When the optimization happens it will try to make all of the visible faces it will often end up with a lot of triangles which are long and thin with a minimal surface area. The more complex the brush work, the more of these small triangles will be inadvertently created. These triangles often cross multiple light sources which means that draw calls rise heavily and sharply at certain areas.

 

On the up side, using brushes optimized by dmap decreases drawcalls slightly in a 'still' scene. But most often, these savings are very minor compared to the loss in performance due to excessive tri-count increases and the resulting increase in shadow work etc.

 

Examples: (download)

map1 - all worldspawn

map2 - optimized func_statics

 

On my box:

map1 : draws 29, tris 5736, shdw 1952

map2 : draws 32, tris 3260, shdw 656

 

If you take a look at the maps, make sure to look at the differences in the walls/ceiling, notice how the optimization results in more triangles on those surfaces which you don't ordinarily think of. These are quite minor in this case but are the expensive bit when it comes to lighting/textures in a complex scene. Just remember that having showtris enabled will increase the tri etc count, so disable it when measuring.

 

I'm not sure what you wish to test. But using r_showtris 3 will give you a good idea of what's going on with culling of surfaces etc. You can get the drawcall numbers out using r_showprimatives [1/2].

Link to comment
Share on other sites

Yes but my understanding is that if you move the brush to touch the ceiling then Doom recognizes this and in fact disregards that back surface in dmap unless it is a func_static. I stopped caulking for that reason except with func_statics. How can we test this?

 

What ungoliant said, plus, of course you only need to caulk the surface on a func_static. On Worldspawn, such surfaces are indeed optimized out by the map compiler, since worldspawn never moves. func_static could move, tho, so d3 does leave the hidden surface in there, just in case :)

 

(I wonder why we always blame everything on Justin Case, poor fellow)

"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

These triangles often cross multiple light sources which means that draw calls rise heavily.

 

Surely the long thin triangles can't be any longer than the largest dimension of the single unbroken face that you get if you convert the detail brushes to func_statics? In which case, I don't see how the subdivision of triangles would increase the amount of multiple-light overdraw. Depending on the orientation of the generated triangles relative to light sources, it could reduce it however.

Link to comment
Share on other sites

Surely the long thin triangles can't be any longer than the largest dimension of the single unbroken face that you get if you convert the detail brushes to func_statics?

 

Yeah, I thought the same thing... and I still do somewhat.

 

During many games of 'this map runs really badly' I ended up func_static'ing a lot of detail and such. On mature/released maps I've noticed that this reduces the intersection of tris with multiple volumes and at the same time a good drop in draw calls, it's mostly noticable in areas with large ambient lights(i.e a large moonlight volume). I mean, there could be something else going on but seeing this seemingly move hand-in-hand I'm at a loss to really explain how it happens.

 

In any case, I know that the statement isnt universally true as on testmaps consisting of complex brushwork and without any caulking there is usually about 10%-30% less draw calls than the hand-optimized version.

 

Most of the time I find areas to optimize by looking for nucleations of these long triangles and work backwards to try and limit detail interacting with that surface. Even if its not draw calls directly, I cant blame a couple of extra tris for the noticable decrease in performance?

Link to comment
Share on other sites

I think somebody did some tests a while ago comparing single-textured models against multi-textured models, and discovered a minor but noticeable difference because of this factor.

 

 

Again, are we sure about this? If there is a test that actually demonstrates this, I'd like to see it, as my test showed the opposite. I was refuting this idea back in 2008:

 

I missed this the first time around. I did some tests to see whether multiple shaders had an impact on performance, and they did not (comparing 40 models with 10 different shaders to identical ones with 1). So if it has any effect, it's negligible.

 

I remember doing that test, but I don't know if I recorded the results anywhere.

 

 

Yep, looks like the people who say caulking is useless for fps gain are correct.

 

It seems like these myths keep circulating...a year from now, someone's going to start talking again about how using lots of caulk will help performance. We should save the results of these tests on the wiki somewhere. :ph34r:

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

    • Petike the Taffer  »  DeTeEff

      I've updated the articles for your FMs and your author category at the wiki. Your newer nickname (DeTeEff) now comes first, and the one in parentheses is your older nickname (Fieldmedic). Just to avoid confusing people who played your FMs years ago and remember your older nickname. I've added a wiki article for your latest FM, Who Watches the Watcher?, as part of my current updating efforts. Unless I overlooked something, you have five different FMs so far.
      · 0 replies
    • Petike the Taffer

      I've finally managed to log in to The Dark Mod Wiki. I'm back in the saddle and before the holidays start in full, I'll be adding a few new FM articles and doing other updates. Written in Stone is already done.
      · 4 replies
    • nbohr1more

      TDM 15th Anniversary Contest is now active! Please declare your participation: https://forums.thedarkmod.com/index.php?/topic/22413-the-dark-mod-15th-anniversary-contest-entry-thread/
       
      · 0 replies
    • JackFarmer

      @TheUnbeholden
      You cannot receive PMs. Could you please be so kind and check your mailbox if it is full (or maybe you switched off the function)?
      · 1 reply
    • OrbWeaver

      I like the new frob highlight but it would nice if it was less "flickery" while moving over objects (especially barred metal doors).
      · 4 replies
×
×
  • Create New...