Jump to content
This Topic
  • 0

VIS? - Should I worry about how much geometry is being rendered at any given moment?


darkfader

Question

I come over from Quake mapping with Trenchbroom.

- Should I separate mapping sections into areas separated by worldspawn to prevent performance issues while playing?

 

- also, in the picture. Are these linked groups? So i modify one, and the others reflect the changes? what is this called?

Is there hotkeys for creating groups? or linked duplicates?

 

any direction would be greatly appreciated.

Screenshot 2024-03-12 185624.png

Share this post


Link to post

13 answers to this question

Recommended Posts

  • 1

Generally with Doom, how much you have to worry depends on what sort of engine you are targeting - a modern source port versus something that could run in the original executable (i.e; Vanilla Doom) or something that's extremely close and will retain similar limits (i.e; Chocolate Doom).

 

In terms of performance, you generally won't have to worry about stuff like partitioning up too much. Doom's BSP tree (the NODES, SECTORS, SSECTORS, VERTEXES, and SEGS lumps) contains all the information about what's visible, and essentially will not render anything not visible from the current area.

 

What you will mainly have to worry about are what's called "visplanes," but since you seem to be using Ultimate Doom Builder, there is a handy "Visplane Explorer" mode. So long as it doesn't identify any areas that go over 128 (denoted in red on the resulting heatmap), your level should generally be fine even in the original engine or something strict like Chocolate Doom. Most source ports raise or even eliminate this limit, so if you're targeting those, even Visplanes aren't something you really don't have to worry about.

 

As for your question in your image, by default, sectors are individual. However, you can click two sectors and select to join or merge the sectors: Joining them makes them the same sector as far as the map is concerned (down to sharing the same sector number), while merging basically merges all selected sectors into one sector: Say if, for example, you had eight 8x64 sector strips. Joining them would make all eight of them mimic one sector's 8x64 attributes eight times, while merging them would essentially turn it into a single 64x64 sector.

Edited by Dark Pulse

Share this post


Link to post
  • 1
  On 3/13/2024 at 3:12 AM, darkfader said:

I will have to learn more about the DOOM visplanes, i hope they are similar to Quake's.

It seems like a lot of commands can be figured out by generally using shift or cntl / click.

 

By any chance, do you know how to align textures in 3d view mode from one surface to another with a KB shortcut?

Any easy way to stretch textures on X and Y axis without numerical input?

Expand  

Visplanes aren't anything like Quake's.

 

Essentially, a Visplane in Doom represents a horizontal run of texture (that is, a floor or a ceiling, commonly called "flats" in the Doom community) that has a particular height, light level, and texture. Assuming any of those changes, the engine is forced to create a new, second visplane to represent that change. So essentially, visplanes are all about how many different combinations of flat textures, light levels, and heights that you see at any given time from any given position, and in the original games, this could not exceed 128 at once or the game would immediately crash (well, originally it just produced a hall-of-mirrors effect, but as of 1.3, they implemented code so that it'd crash). An early source port called Boom replaced this static list with a different mechanism that essentially removed the limit, and as many source ports are derived from Boom or have implemented code from Boom, often you will not find this limit in place. However, for those who prefer ensuring their maps remain vanilla compatible, it is still something to think about and deal with.

 

Aligning textures in 3D view can be done on the X, Y, or both axes; there's keyboard shortcuts for it (though I forget what the default ones are; I know I've remapped mine). It should be somewhere in the options, and you can rebind them as you please. You can either nudge manually or have them auto-align by clicking a texture as the one to align it "to," then hovering over the wall you want align and pressing an auto-align key. Flats CANNOT be aligned in the original map formats, but other map formats (such as UDMF) allow for this. For the original formats, flats are aligned on a fixed 64x64 grid. The map view should show those flats though, so as to ensure you get stuff like teleport pads right.

 

Stretching textures is not possible in the original map formats. You can pan them around, but scaling and so on is something that you'd need a more advanced map format for, such as UDMF.

Edited by Dark Pulse

Share this post


Link to post
  • 1
  On 3/13/2024 at 3:12 AM, darkfader said:

By any chance, do you know how to align textures in 3d view mode from one surface to another with a KB shortcut?

Any easy way to stretch textures on X and Y axis without numerical input?

Expand  

 

Ctrl+A aligns walls that have the same texture, or different textures if you selected the walls first. You can open the Control tab in the settings for shortcuts, I recommend you take a look at all of them as you can find a lot of helpful stuff there

Share this post


Link to post
  • 1

Well it's impossible to align a full circle if the length of the circle isn't divisible by the length of the texture. Some times what I do is to auto-align, then go on one or two of the sides, divide it in half, and nudge the texture around with the arrow keys to make it look better. Or you can move the vertices a bit to make sure all the lines add up to the correct length

Share this post


Link to post
  • 0
  On 3/13/2024 at 2:59 AM, Dark Pulse said:

Generally with Doom, how much you have to worry depends on what sort of engine you are targeting - a modern source port versus something that could run in the original executable (i.e; Vanilla Doom) or something that's extremely close and will retain similar limits (i.e; Chocolate Doom).

 

In terms of performance, you generally won't have to worry about stuff like partitioning up too much. Doom's BSP tree (the NODES, SECTORS, SSECTORS, VERTEXES, and SEGS lumps) contains all the information about what's visible, and essentially will not render anything not visible from the current area.

 

What you will mainly have to worry about are what's called "visplanes," but since you seem to be using Ultimate Doom Builder, there is a handy "Visplane Explorer" mode. So long as it doesn't identify any areas that go over 128 (denoted in red on the resulting heatmap), your level should generally be fine even in the original engine or something strict like Chocolate Doom. Most source ports raise or even eliminate this limit, so if you're targeting those, even Visplanes aren't something you really don't have to worry about.

 

As for your question in your image, by default, sectors are individual. However, you can click two sectors and select to join or merge the sectors: Joining them makes them the same sector as far as the map is concerned (down to sharing the same sector number), while merging basically merges all selected sectors into one sector: Say if, for example, you had eight 8x64 sector strips. Joining them would make all eight of them mimic one sector's 8x64 attributes eight times, while merging them would essentially turn it into a single 64x64 sector.

Expand  

 

Thank you for the detailed info.

 

I will have to learn more about the DOOM visplanes, i hope they are similar to Quake's.

It seems like a lot of commands can be figured out by generally using shift or cntl / click.

 

By any chance, do you know how to align textures in 3d view mode from one surface to another with a KB shortcut?

Any easy way to stretch textures on X and Y axis without numerical input?

Share this post


Link to post
  • 0
  On 3/13/2024 at 11:40 PM, rouge_means_red said:

 

Ctrl+A aligns walls that have the same texture, or different textures if you selected the walls first. You can open the Control tab in the settings for shortcuts, I recommend you take a look at all of them as you can find a lot of helpful stuff there

Expand  

 

I will start sorting through them now and getting familiar with the functions. Thank you for the direction.

 

Is aligning textures around a hexagon a tricky deal?

It seems that when i align one side, the others de-align.

I'm assuming that the engine treats all sides of a hexagon as one continuous face?

 

image.png.513d2822cd72ca906176c4c31f4e6960.png

Share this post


Link to post
  • 0
  On 3/14/2024 at 1:12 AM, darkfader said:

Is aligning textures around a hexagon a tricky deal?

It seems that when i align one side, the others de-align.

Expand  

 

If you're mapping in UDMF you can select all lines and in Visual Mode us the "Fit Texture" (Ctrl+Alt+A) to fit them perfectly.

Share this post


Link to post
  • 0
  On 3/14/2024 at 1:17 AM, rouge_means_red said:

Well it's impossible to align a full circle if the length of the circle isn't divisible by the length of the texture. Some times what I do is to auto-align, then go on one or two of the sides, divide it in half, and nudge the texture around with the arrow keys to make it look better. Or you can move the vertices a bit to make sure all the lines add up to the correct length

Expand  

 

Hey Rouge,

After running an analysis of my map, I have a ton of upper-middle-lower texture surfaces not defined.

It seems to be mostly surfaces that aren't visible when playing the map.

Will this be a problem when releasing my map?

 

image.png.fae0875d66847710bf8880bd560a77a4.png

Share this post


Link to post
  • 0

All Doom engines will accept textureless walls. There are even some maps in the original game with missing textures, but they tend to be in areas that are impractical to see.

 

If you look at them, in general, the engine will fill their space with "hall of mirrors", a visual smearing distortion, akin to drawing on a framebuffer without clearing it first. There are also cases where looking at a textureless wall will not show any apparent discontinuity. For instance, if you have a hole in a floor or ceiling, and the untextured sides of the hole are visible, instead of HOM, the surrounding flat will bleed over it and seem to cover up the hole.

Edited by slugger

Share this post


Link to post
  • 0
  On 3/19/2024 at 12:40 AM, darkfader said:

 

Hey Rouge,

After running an analysis of my map, I have a ton of upper-middle-lower texture surfaces not defined.

It seems to be mostly surfaces that aren't visible when playing the map.

Will this be a problem when releasing my map?

 

Expand  

 

It's fine as long as they can't be seen. The main problem I run into is when I forget to set the texture behind a floor (like a lift) that's supposed to move, which exposes the texture-less wall behind it, so just keep an eye out for those cases

Share this post


Link to post
  • 0
  On 3/19/2024 at 12:55 PM, rouge_means_red said:

 

It's fine as long as they can't be seen. The main problem I run into is when I forget to set the texture behind a floor (like a lift) that's supposed to move, which exposes the texture-less wall behind it, so just keep an eye out for those cases

Expand  

 

 

Rouge, I appreciate your time to help me.

 

I have a quake.mdl

 

I export it to a wavefront.obj using blender.

 

I import it into ultimate doombuilder 2, and it doesn't import correctly.

What am i doing incorrectly? I suppose I'm trying to avoid writing a def file for this .. it seems like an extensive task.

 

 

edit -- ok, I see that i need to convert my .mdl to an md3, or md2.

image.png.5f3d11a9e1739c6b8dd872923985c56d.png

 

 

edit II - ok, nvm. I am getting it.

It isn't showing up in game though ...

image.png.7f2c3b6e721e1369d518cd75736092c1.png

 

image.png.56845b6a8c77c44995d8e9c200aca455.png

 

image.png.78f6cadecee2e39db61e3081cb05c49b.png

 

 

 

 

 

 

 

 

 

Edited by darkfader

Share this post


Link to post
  • 0

Does anybody have an idea why GZDoom isn't recognizing my model?

It loads in the map with UDB2, but not in-game. Though the area where the model should be is clipped.

 

 

image.png.7f2c3b6e721e1369d518cd75736092c1.png

 

image.png.56845b6a8c77c44995d8e9c200aca455.png

Edited by darkfader

Share this post


Link to post

Join the conversation

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

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  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.

×
×
  • Create New...