Layered 3D floors plan.

Moderator: GZDoom Developers

User avatar
Darkcrafter
Posts: 562
Joined: Sat Sep 23, 2017 8:42 am
Operating System Version (Optional): Windows 10
Graphics Processor: nVidia with Vulkan support

Re: Layered 3D floors plan.

Post by Darkcrafter »

I tried to say that a 3d floor geometry to be converted into MD3 model and installed in desired spot at the map. I know that for collision GZDoom only uses that BOX of. But what if engine would take collision information from this original 3d floor that is actually presented in map inside of a special dummy sector that would contain these 3d floors.
Gez
 
 
Posts: 17833
Joined: Fri Jul 06, 2007 3:22 pm

Re: Layered 3D floors plan.

Post by Gez »

So basically, you want an invisible but solid 3D floor for collision, and a 3D model of your 3D floor for rendering?

That's needlessly complicated, but also actually possible already.
User avatar
Darkcrafter
Posts: 562
Joined: Sat Sep 23, 2017 8:42 am
Operating System Version (Optional): Windows 10
Graphics Processor: nVidia with Vulkan support

Re: Layered 3D floors plan.

Post by Darkcrafter »

Gez wrote:So basically, you want an invisible but solid 3D floor for collision?
Not just an invisible 3d floor for collision but also it to be non-overlapping to existing linedefs, so it will be much easier to roof a room with extensive linedefs amounts inside of it for example. On the rendering side a 3d model of that 3d floor :)
Gez
 
 
Posts: 17833
Joined: Fri Jul 06, 2007 3:22 pm

Re: Layered 3D floors plan.

Post by Gez »

Darkcrafter wrote:also it to be non-overlapping to existing linedefs
That's harder, but you can sorta do it with a polyobject with the 3D mid texture flag.

Understand that the engine handles collision with geometry by using the existing geometry. Transferring these collisions elsewhere to make them happen independently of geometry is a tall order, because the engine just doesn't work this way. Except for polyobject, but even then they have their own problems.

And I think it illustrates well how the engine internally works and why it's too limited to make what you want: when you have a 3D midtexture polyobject, you can cross it above and below it. When that happens, the engine tests for collision in the "windows" between the ceiling and the 3D midtexture, and between the 3D midtexture and the floor. To know the ceiling and floor heights, it checks the front and back sectors of the line. All this makes sense, right? But we're talking about a polyobject, and polyobjects are moved away from their original map position! So the polyobject line's front and back sectors are not usually the sector the polyobject is actually present. So it checks for collision according to a sector the player isn't present in!

So, suppose we have a sector A which goes from 0 to 384 in height. Then we have a sector B that serves as a holding cell for a polyobject, it goes from 128 to 256. It contains a 3D midtexture polyobject with a 128-texel tall texture, occupying the vertical space between 128 and 256. The anchor and start spot are set up to place the polyobject in sector A. What happens in this example if the player (in sector A) tries to move below (or above, through flying) the polyobject? Visually, it should be possible to pass, since from 0 to 128 and from 256 to 384, it is unobstructed. However, when the player attempts to cross a polyobject line, it's sector B that is referenced. The windows above and below the polyobject are therefore 0 units tall and the player can't move.
User avatar
TDRR
Posts: 815
Joined: Sun Mar 11, 2018 4:15 pm
Operating System Version (Optional): Manjaro/Win 8.1
Graphics Processor: Intel (Modern GZDoom)
Location: Venezuela

Re: Layered 3D floors plan.

Post by TDRR »

But i still don't get it, you can already build all sorts of stuff with 3D floors/portals as long as you have patience, like making a weird spiral or a building with differing floors, i don't see any real limitation here.

Perhaps something to speed things up would be a "3D floor mode" plugin to GZDB that automatically makes control sectors while you draw 3D floors and has a little window to change the heights as you build, which could speed everything up without even doing anything at all to GZDoom itself.

Unless i'm wrong and this suggestion is to add something that is currently 100% impossible to do in GZDoom.
User avatar
Darkcrafter
Posts: 562
Joined: Sat Sep 23, 2017 8:42 am
Operating System Version (Optional): Windows 10
Graphics Processor: nVidia with Vulkan support

Re: Layered 3D floors plan.

Post by Darkcrafter »

Well anyway, would be really neat to have that feature. In my opinion it's really inconvinient and time consuming with complex geometry, linedef wise it starts to look like a real mess. Try to construct a building where a window's glass will be splitted (if I'll want to move a center of that window to the center of a angled roof) and that's gonna generate an unpleasant looking stack on the glass if it's transparent. Imagine if one needs to do lots of shadows and complex shapes. Imho, adding such a "3d floor polyobject" feature would take architecture and design onto a new level. For example I really like stacked sectors feature because it allows me to create great dungeouns underneath things with complex shapes so I don't get that overlapping mess and can work comfortably. But yes, as you said, for this time, I would probaly better to request this feature to be built-in into GZDoom Builder, I don't know how much it will influence its user interface though.

Linedef wise, imagine trying to shift one building that has been already "set" on the top the other, or building something on the top of vertex terrain, it's impossible. So I think this feature will save a lot of time and bring more flexibility and ideas. Whatsoever, would be nice to have at least an implementation without collision, maybe it will improve with time :)
User avatar
Rachael
Posts: 13531
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: Layered 3D floors plan.

Post by Rachael »

I would really encourage to continue this discussion by creating a thread in the General forum, rather than continuously bumping a development thread.
Locked

Return to “Closed Feature Suggestions [GZDoom]”