After a conversation on the Discord chat, I would like to request of the ability to create 3D floors without a dummy sector or line special using pure UDMF attributes. This would make it easier to build maps with detailed 3D floors, especially slanted rooftops in large, open areas, which have to be aligned over a large distance. It might also be easier to optimize, and a bit cleaner, because it would be a native part of the sector instead of something applied to it by dummy sectors and tags. The drawback of this would probably be that you wouldn't be able to script it, but that's fine.
The format we were discussing would involve defining the top, side, and bottom textures, and the slope/height based on an absolute center point, possibly with the option to sync the dlope with the ceiling. Another possible format would be to define 3D floors as a separate UDMF item, and somehow linked them back into the sector, which might be a little more difficult to work with, but would definitely be easier to optimize because they would all have the same visplanes.
I don't know exactly how to implement this, but maybe someone who has worked with the 3D floor system would have a quick idea...
3D floors from UDMF attributes
Moderator: GZDoom Developers
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49056
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: 3D floors from UDMF attributes
The entire 3D floor setup depends on a sector being present to serve as a model. So this cannot possibly work, unless it just created a sector on the fly. But that would cause problems with the nodes because they wouldn't contain all of the map.
- RockstarRaccoon
- Posts: 598
- Joined: Sun Jul 31, 2016 2:43 pm
Re: 3D floors from UDMF attributes
Interesting.
And said model couldn't be built at load time, rather than setting up from a pre-made dummy sector? And does the nodebuilder really need to understand a 3D floor sector? Because they aren't exactly meant to be seen...
As I said, it's the Boom source code I'm most familiar with, so I don't fully understand how 3D floors are implemented...
And said model couldn't be built at load time, rather than setting up from a pre-made dummy sector? And does the nodebuilder really need to understand a 3D floor sector? Because they aren't exactly meant to be seen...
As I said, it's the Boom source code I'm most familiar with, so I don't fully understand how 3D floors are implemented...
Last edited by RockstarRaccoon on Tue May 22, 2018 3:35 pm, edited 1 time in total.
Re: 3D floors from UDMF attributes
I think it would be possible to do it without a dummy sector, just all the references would have to be redone to take both arbitrary models as well as the dummy sector model. And that would be a lot of work.
- RockstarRaccoon
- Posts: 598
- Joined: Sun Jul 31, 2016 2:43 pm
Re: 3D floors from UDMF attributes
Wouldn't that be a good opportunity to optimize the current implementation somehow then? It was a quality-of-life feature, so I'm ok if you guys want to put it "[on hold]"...Rachael wrote:I think it would be possible to do it without a dummy sector, just all the references would have to be redone to take both arbitrary models as well as the dummy sector model. And that would be a lot of work.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49056
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Re: 3D floors from UDMF attributes
Having two different setups would rather deoptimize it. There's tons of dependencies on the model sector - not only in the maintenance code but also in the render setup. The 3D floor descriptor keeps several references to data structures in the sector - in fact it keeps references to nearly everything important in the sector. So at best you end up with a new data structure that's essentially half the size of a sector.RockstarRaccoon wrote: Wouldn't that be a good opportunity to optimize the current implementation somehow then? It was a quality-of-life feature, so I'm ok if you guys want to put it "[on hold]"...