Kendzi3D - 3D Viewer as plugin for JOSM.

There are few things to work out with dormers. Currently the easiest way is to add tag 3dr:dormers:front:row5:depth for entire dormers row. We need to work out easy way to add custom tags for each dormer. Some time ago someone proposed to use nodes for dormers.

I for some time try to focus on adding new roof shapes and editor capabilities. So it is good time to write down some ideas about dormers.

New things:

  • Holes on flat roofs:

  • new half-round roof (5.2)

The round depends on roof:height tag.

In next release I will change behavior of roof:direction tag. Currently it is pointing form left to right side of building. After change it will pointing to roof front. As it is discussed here.

In current version v169 I added support for multi-layer texture. Netzwolf prepare multi-layer texture for colored brick. Currently it is possible to change only background color and color of mortar between the bricks can’t be changed. But it looks much better then old brick texture.

Currently roof parts of wall aren’t using new textures. Comparison between old and new textures:

Short description how to configure textures.

I hope Netzwolf prepare some more textures :wink:

There is also a roof:slope:direction (used by osm2world). Is this the same?


Currently it look like this:

roof:slope:direction tag should be interpreted the same as in Osm2World

Does lighting of the mortar between the bricks work correctly for you? If yes, how did you solve that?

That image is not correct regarding roof:slope:direction. The tag is currently only used for one roof shape in OSM2World, skillion/monopitched, where it is identical to the definition roof:direction for that roof shape: down towards the front.

If we agree to introduce roof:direction, I think roof:slope:direction will become redundant. I would continue to support it for backwards compatibility for a while, but discourage using it further, as it was never properly documented anyway.

Edit: typo

I didn’t. I think that can be done using two over layers for mortar. First combine (interpolate) alpha and color and on second combine lighting and alpha. But glTexEnvi is deprecated and in modern OpenGl this is solved by shaderes. So I don’t plan currently adding two over layers for mortar and windows.

But even without proper lighting new multilayer textures look better then old ones.

Nice description of glTexEnvi is here.

I didn’t understand your description here of this tag. I fixed image and I will fix it in my application soon.

After few trials it can be done using glTexEnvi But you can’t use ambient or diffuse color for coloring textures.

I archive this using one additional texture unit:

  • Unit 1
    Interpolate texture color with texture

  • Unit2
    Interpolate over-layer with previous result using alpha

  • Unit3
    Multiple by lighting (environment)


Advance of this is that it use transparency exactly like in Netzwolf css example.

  • In last version of plug-in was added support for basic roof lines:

It is very basic support for roof line tagging schema. I’m using algorithm invented by Tordanik. Which is really nice. Triangulation code come from hjanetzek. So results should be similar to O2W. It would be nice to known if you find some non working examples.

  • Basic editor for building height. It still need lot of work but it should be possible to use it.

Hy, i think it would be a good idea to set an default height for building=garage that is smaller than the default height for buildings. 2,5m for example.

Yes. May I suggest 2,70? this Height includes roof construction.
Best regards,

Hi guys, I hope it’s correct place to discuss this issue.

Kendzi 3d plugin is nice, but there is also a big problem.

Kendzi 3d extrudes the third dimention from the building outline (polygon or multipolygon with building=yes+building:levels) even if there are building parts (polygons or multipolygons puilding:part=yes), inside this building.

In the Simple_3D_Buildings it is stated that it should NOT be done:

As the result, some buildings are rendered correctly in F4 and completely wrong in Kendzi 3d:
How it is now:

How it should be:

(I’ve just removed Building=yes from the outline)

How it looks in F4

Is this a known problem? Is it possible to fix it?

It’s important, because the common practice is to map the building outline with polygon with building=yes for 2d renderes, and add to the building=yes tags for the total height of the building and its total levels, even if the building has complex shape.

F4 map try to automatically connect building parts with outline and remove outline if it is not necessary. In kendzi3d you need to add all parts and outline to relation type=building then you should get the same result.



However, may be it’s possible to consider implementing the same algorith in Kendzi 3d, as in F4? Currently Kendzi 3d plugin is rather a tool for preparing models for F4 (and possibly other renders) in Josm. It looks very confusing, when you download some building which looks correctly in F4 (renderer), and it is corrupted in Josm/Kendzi 3d (editor).

I don’t see why not, but there are some major problems with it:

  1. F4 for searching polygons inside polygons uses DB function, JOSM don’t have any fast and indexed function for that, so it have to be implemented.
  2. Searching entire data set for polygons inside polygons will be slow.
  3. Personally I think it is an error if building relation don’t exist. I see checking for that more as validation rule.

I will think about it in future but don’t expect it fast…

I agree with Kendzi, don’t expect F4map and Kendzi3D to match on everything.

They are distinct software maintained by distinct people. We could converge to similar rendering on most case (i already got in touch with Kendzi to uniformize some tag handling) but it will never be perfectly matching as we are using different algorithm and technologies.

By the way i’m glad you enjoy both Kendzi3D and F4map.

Yea, I enjoy Kendzi3D and F4map, thanks to you both for your efforts.

Different web-browsers may use different algorithms, but they should produce more or less the same result. For example this very page looks the same way in Crome and IE :slight_smile:

I hope that different OSM-3D applications will achieve the same level of convergence, and will follow the same basic conventions. Otherwise OSM-3D will not be usable. Why to use Kendzi3d? Just adjust tags, upload data to osm, and wait to see how it will be rendered in F4.

Regarding building relation – I do not think that is should be a must. The majority of building parts do not have it. What to do with them? Do not render them?

At least the basic idea {the building outline should not be extruded if there are building parts} is accepted and not argued. It’s good :slight_smile:

There are quick and easy to use implementations of the R-Tree for java, e.g. I use it to find junctions :slight_smile:

OSM2World also does not need the relation, but does some funny logic.

It subtracts all building-parts from the building. So, if the building-outline should not be rendered, it must be covered
fully with the building-parts.

I don’t find Kenzi’s approach to bad. Advantage is you have full control: Building should not be rendered →
use relation, otherwise don’t put it to the relation.

F4maps does the same using the same database request :wink:

Doesn’t kendzi (or f4 map) support building parts as lines? I’ve got a building with a glass front (not over the complete height). So I drawed a line on this building site, and set building:part and materiel=glass but this didn’t work. On kendzi plugin the building was completely gone.

Afaik that’s exactly what I would expect: “building:part”=* as a non-closed way is not defined and if there’s a “building:part”=* within (since it’s not defined I’d say it is not wrong to interpret it as “within”, but in this case that’s what you want anyway) the Buildings outline the latter should be ignored (aka “be completely gone”).