Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • 0
t3hPoundcake

Can I give the illusion of a building being shorter than the sky?

Question

I'm mapping for ZDoom and my spawn area is the building pictured here. I want to give the illusion that the building is shorter than the surrounding cliff walls because I have a taller building (shown on the far right of the image). Right now all I know to do is to just put a 1px border around the building, lower it's ceiling and apply a sky texture. The only issue is it erases anything behind that part of the map, so the cliffs behind won't render for example. Is there any way for me to do this without using a 3d floor for the ceiling of my building?

 

https://imgur.com/a/fFtPo

Share this post


Link to post

11 answers to this question

Recommended Posts

  • 0

But sky texture doesn't work that way, I'm talking about city sky, which you put on building. If building isn't part of the gameplay or puzzle place, you can try lower ceiling or increase floor height more.

 

 
Also you can open image in new tab and paste link in here to be embeded automatically.
 

 

Share this post


Link to post
  • 0
4 minutes ago, Myst.Haruko said:

But sky texture doesn't work that way, I'm talking about city sky, which you put on building. If building isn't part of the gameplay or puzzle place, you can try lower ceiling or increase floor height more.

 

 
Also you can open image in new tab and paste link in here to be embeded automatically.
 

Ah thanks. And the city sky texture renders the same as f_sky, at least in GZdoom builder and gzdoom. You spawn inside the building, and it has pretty detailed ceiling geometry so I may just have to raise it up to get it to look right. Thanks.

 

Share this post


Link to post
  • 0
2 hours ago, t3hPoundcake said:

I want to give the illusion that the building is shorter than the surrounding cliff walls because I have a taller building (shown on the far right of the image). Right now all I know to do is to just put a 1px border around the building, lower it's ceiling and apply a sky texture. The only issue is it erases anything behind that part of the map, so the cliffs behind won't render for example. Is there any way for me to do this without using a 3d floor for the ceiling of my building?

It is possible to create different building heights with a sky as the ceiling. The method you've used (i.e., having a border around each building & applying different ceiling heights) is the only way to achieve what you're going for without using 3D structures. Sadly, it results in the rendering flaws you're experiencing. The best way to avoid this problem is to create map geometry that will prevent the player from ever getting far enough back (or high enough) to see the cliffs behind the building (thereby causing the rendering problem).

 

Another way to do this is to have a border around the cliffs, and lower the ceiling height so that the cliffs are lower than the buildings within the playable area. In this way, the rendering problem will never occur with the cliffs as the backdrop. [Of course, the rendering problem will continue to occur when you have a taller building behind a shorter one, and the player is far enough in front of the shorter building.]

 

Another way to do this is to have the shorter building constructed of two-sided linedefs, rather than one-sided linedefs, and have the sky the same height as surrounding, taller buildings. The down-side of this is that you won't be able to have "standard" (non 3D) windows and doors on your building.

Share this post


Link to post
  • 0
1 hour ago, ReX said:

It is possible to create different building heights with a sky as the ceiling. The method you've used (i.e., having a border around each building & applying different ceiling heights) is the only way to achieve what you're going for without using 3D structures. Sadly, it results in the rendering flaws you're experiencing. The best way to avoid this problem is to create map geometry that will prevent the player from ever getting far enough back (or high enough) to see the cliffs behind the building (thereby causing the rendering problem).

 

Another way to do this is to have a border around the cliffs, and lower the ceiling height so that the cliffs are lower than the buildings within the playable area. In this way, the rendering problem will never occur with the cliffs as the backdrop. [Of course, the rendering problem will continue to occur when you have a taller building behind a shorter one, and the player is far enough in front of the shorter building.]

 

Another way to do this is to have the shorter building constructed of two-sided linedefs, rather than one-sided linedefs, and have the sky the same height as surrounding, taller buildings. The down-side of this is that you won't be able to have "standard" (non 3D) windows and doors on your building.

 

Thanks for the input. I think I'll just resort to building up the floor so that the building is at a higher elevation so the ceiling is flush with the sky where I want it.

Share this post


Link to post
  • 0

Don't underestimate the value of using 3D floors to create one or more realistic-looking buildings of different heights. Still, you should do what meets your expectations and needs.

 

[Incidentally, when you say: "... the ceiling is flush with the sky where I want it ..." I presume you mean you'll create a "pillar" of one-sided linedefs when you start constructing your building. Otherwise, you'll defeat the purpose of having walls into which you can build windows & doors.]

Share this post


Link to post
  • 0

You could let your main map area have ceiling only as high as the shortest building, and use a ceiling portal to redirect view to a different area containing the tops of the buildings, possibly having different heights.

Share this post


Link to post
  • 0

Not to be rude or anything but, if you're mapping for ZDoom, why are you not using 3D floors? As long as the 3D floors aren't slopes, it shouldn't have any problem rendering in software render (as far as I know).

Share this post


Link to post
  • 0
1 hour ago, Gez said:

You can do that with either portals or 3D floors.

There probably isn't any other practical way to achieve this. UDMF + GZDOOM Builder is terrific at implementing 3D floors easily.

Share this post


Link to post
  • 0
23 hours ago, Zulk RS said:

Not to be rude or anything but, if you're mapping for ZDoom, why are you not using 3D floors? As long as the 3D floors aren't slopes, it shouldn't have any problem rendering in software render (as far as I know).

I'm still sort of ignorant when it comes to map formats, to be specific I'm using "ZDoom (Doom in Doom Format) for the map. I have no issue with putting a 3d floor here or there if I can't get the desired effect another way, but the interior of the building, where you spawn, is really detailed and it would be a pain in the ass for me to do 3d floors there to retain the detail I already have, so if I can get away with just making the building upon some higher elevation I'd rather do that. I was just wondering if I was missing a simpler trick.

Share this post


Link to post
  • 0

Yeah, you'll want portals then. But keep in mind that the Doom format map is not the best way to exploit new features, it's extremely limited in its capabilities for extension, and that's largely the reason why ZDoom historically embraced the Hexen format, then when this other format became too constrictive, pioneered the UDMF standard which is infinitely extensible.

 

Anyways, here's a quick guide on how to solve your problem with portals. First, copy and paste the outside area. This copy will be the "sky portal" area. Simplify its geometry as much as possible, because things like floor height differences will not matter. You should keep only different inner sectors for the buildings. Turn your buildings into single flat sectors, too, they will no longer be the buildings, they'll just be the roofs of the buildings. Replace the floor buildings (where it's not a roof) with the sky texture, that'll help you visualize what is what.

 

Set your outside area to have the same height as the inner building's roof. So everything gets the same height -- cliff walls, tall building, short building, they're all short. Now, note the height of the outside ceiling in the playable area, and use it as the height of the floor in the sky portal area. (Except for your buildings that stick out.) Everywhere where you've put sky floor in the sky portal area, the floor height must correspond to the height of the ceiling in the normal area.

 

Now you need to set up the portal. Since you're using the Doom format, you'll run into the first problem: there's no line action defined for portals in the Doom format. You'll need to define them yourself with a map translator.

 

First, write your custom map translator. Make a text lump with a name like XLATPORT for example.

#include "xlat/doom.txt"

// Eternity's linked portals, vertical link version (floor-to-ceiling)
358 = 0, Sector_SetPortal(tag, 6, 1, 1, 0) // "Portal_AnchoredCeiling"
359 = 0, Sector_SetPortal(tag, 6, 0, 1, 0) // "Portal_AnchoredFloor"
360 = 0, Sector_SetPortal(tag, 6, 1, 0, 0) // "Portal_AnchorLine"
361 = 0, Sector_SetPortal(tag, 6, 0, 0, 0) // "Portal_AnchorLineFloor"

I've reused the same numbers as Eternity, so that I can refer you to the Eternity documentation.

 

Secondly, in your MAPINFO, set the translator for your map.

Translator = "XLATPORT"

 

Now that it's done, go back to your map editor and set the four linedefs as explained on the Eternity wiki to anchor your normal area to your sky portal area. Save and test, and if you've done everything correctly, it should work.

 

You can now further decorate each area independently. Create a sloped roof, add a hovering spaceship, extend the cliff faces outward, you can do this kind of things easily.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×