[No] Layered 3D floors plan.

Moderator: GZDoom Developers

Re: Layered 3D floors plan.

Postby Darkcrafter » Wed Jul 04, 2018 1:00 pm

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.
User avatar
Darkcrafter
 
Joined: 23 Sep 2017
Location: South Russia
Operating System: Windows 10/8.1/8 64-bit
Graphics Processor: ATI/AMD (Modern GZDoom)

Re: Layered 3D floors plan.

Postby Gez » Wed Jul 04, 2018 1:49 pm

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.
Gez
 
 
 
Joined: 06 Jul 2007

Re: Layered 3D floors plan.

Postby Darkcrafter » Thu Jul 05, 2018 3:38 am

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 :)
User avatar
Darkcrafter
 
Joined: 23 Sep 2017
Location: South Russia
Operating System: Windows 10/8.1/8 64-bit
Graphics Processor: ATI/AMD (Modern GZDoom)

Re: Layered 3D floors plan.

Postby Gez » Thu Jul 05, 2018 7:56 am

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.
Gez
 
 
 
Joined: 06 Jul 2007

Re: Layered 3D floors plan.

Postby TDRR » Thu Jul 05, 2018 8:28 pm

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
TDRR
iDeas from the deep (pit of hacks)
 
Joined: 11 Mar 2018
Location: Venezuela
Operating System: Windows Vista/7 64-bit
Graphics Processor: Intel (Modern GZDoom)

Re: Layered 3D floors plan.

Postby Darkcrafter » Fri Jul 06, 2018 6:34 pm

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
Darkcrafter
 
Joined: 23 Sep 2017
Location: South Russia
Operating System: Windows 10/8.1/8 64-bit
Graphics Processor: ATI/AMD (Modern GZDoom)

Re: Layered 3D floors plan.

Postby Rachael » Fri Jul 06, 2018 7:16 pm

I would really encourage to continue this discussion by creating a thread in the General forum, rather than continuously bumping a development thread.
User avatar
Rachael
Webmaster
 
Joined: 13 Jan 2004
Discord: Rachael#3767
Twitch ID: madamerachelle
Github ID: madame-rachelle
Graphics Processor: nVidia with Vulkan support

Previous

Return to Closed Feature Suggestions

Who is online

Users browsing this forum: kipo and 0 guests