StrandedKitty / streets-gl

🗺 OpenStreetMap 3D renderer powered by WebGL2
http://streets.gl
MIT License
598 stars 43 forks source link

Rendering roof parts without volumes #165

Open Tntnnbltn opened 10 months ago

Tntnnbltn commented 10 months ago

When rendering certain roof types, such as gabled or skillion, a partial segment of wall is rendered with that shape, e.g. the triangular wall sements for a gabled roof, or a wedge shape for skillion. It also renders a face along the bottom of the object.

There are certain situations where it would be nice to be able to render the roof without this wall or bottom face, to reflect the appearance of the actual object. For example:

roof:shape=gabled: image

roof:shape=skillion: image

roof:shape=skillion (to the left): image

These shapes can be approximated in streets.gl already (despite having the partial wall face), but having the ability to control this would allow for more accurate rendering of objects. e.g. F4maps currently does not render any side walls if tagged as building:part=roof, which allows this veranda to be modelled. image

Possible existing tags that could be used to guess author intent include:

Note: There are example of situations where the wall face should be rendered, so any change should take this into consideration. image

waldyrious commented 10 months ago

There are example of situations where the wall face should be rendered, so any change should take this into consideration.

Are there existing tagging practices for indicating whether this face should be present or not? According to the diagram in Simple 3D Buildings § Terminology in the OSM wiki, it seems like the correct term for this wall face is "gable". Taginfo shows two tags that perhaps are used with this goal: roof:gable=yes/no and building:gable_wall=yes/no.

If I'm reading the Wikipedia article correctly, the former should represent only the triangular shape in the roof, using in the same material as the roof (so this would match the situation you illustrated above), whereas the latter would represent the entire wall extending upwards in a triangular shape to meet the roof, i.e. the triangle bit has the same material as the wall.

Does this sound correct to you?