Question

Texturing surfaces with specific images


Hi everyone,

I've had trouble with texturing surfaces of building such as wall surfaces, roof surfaces with specific images for each surface.

I used AppearanceSetter for texturing surface, and simply all the surface will have the same image texture.

My question is how do I texture a number of images to their surfaces. My idea is to create two equal IDs for each surface and its image texture but I don't really know how to do it with the FME transformers.

Could anyone help me with it, please? Or any new suggestion or idea will be highly appreciated.

Regards,


12 replies

Userlevel 2
Badge +17

Hi @anhphanuet, if you have already classified the surfaces into roofs and walls, add a common attribute (e.g. "type") which stores a value indicating "roof" or "wall" to the surface features and the raster features (texture sources), then set the "type" to the Group By parameter in the AppearanceSetter.

Hi @anhphanuet, if you have already classified the surfaces into roofs and walls, add a common attribute (e.g. "type") which stores a value indicating "roof" or "wall" to the surface features and the raster features (texture sources), then set the "type" to the Group By parameter in the AppearanceSetter.

Thank you @takashi for your answer.

 

 

Actually, there are more than one texture and surface. I think the classification is just the first step but then we still go back to multiple images and surfaces with "roof" and "wall" types each. Assume that, I have 4 roof surfaces and 4 wall surfaces for a building with gable roof. I also have 8 images, 4 for 4 roof surfaces and the rest for wall surfaces and we know which surface is the roof and which is the wall with the "type" feature. What is the next step? What do you think?

 

 

Thank you.
Userlevel 2
Badge +17

Hi @anhphanuet, if you have already classified the surfaces into roofs and walls, add a common attribute (e.g. "type") which stores a value indicating "roof" or "wall" to the surface features and the raster features (texture sources), then set the "type" to the Group By parameter in the AppearanceSetter.

The approach is the same regardless how many surface types you have. If you have 8 type surfaces and 8 images for each type, just make 8 groups.

 

I assume that you have already classified the surfaces 8 types in this case.

 

 

The approach is the same regardless how many surface types you have. If you have 8 type surfaces and 8 images for each type, just make 8 groups.

 

I assume that you have already classified the surfaces 8 types in this case.

 

 

@takashi

 

So as my understanding, we will have the attribute value like below

 

surface attribute

 

texture attributeroof1roof1......roof4roof4wall1wall1......wall4wall4Is that correct? Because I mean I have 2 types of surface which are roof and wall, and there are 4 roof surfaces and 4 wall surfaces and we need to match texture images with the surfaces.

 

Userlevel 2
Badge +17
The approach is the same regardless how many surface types you have. If you have 8 type surfaces and 8 images for each type, just make 8 groups.

 

I assume that you have already classified the surfaces 8 types in this case.

 

 

Yes, the table illustrates exactly my intention. If the surfaces and the texture images have those values (roof1, 2, ... wall1, 2, ... etc.) as an attribute with a common name (e.g. "type"), you can set it to the Group By parameter in the AppearanceSetter.

 

 

Yes, the table illustrates exactly my intention. If the surfaces and the texture images have those values (roof1, 2, ... wall1, 2, ... etc.) as an attribute with a common name (e.g. "type"), you can set it to the Group By parameter in the AppearanceSetter.

 

 

@takashi Yes, thank you for your answer.

 

But I got one problem to create "type" feature for each surface which is the input data is a 2D polygon and I will use the Extruder to create a 3D model. The problem is that I don't know how to create a new feature and its value for each surface which is extruded from lines of the polygon.

 

Userlevel 2
Badge +17

Hi @anhphanuet, if you have already classified the surfaces into roofs and walls, add a common attribute (e.g. "type") which stores a value indicating "roof" or "wall" to the surface features and the raster features (texture sources), then set the "type" to the Group By parameter in the AppearanceSetter.

That's a different question.

 

It would be easy to make four walls from a 2D rectangular polygon if you know the elevation of the ground and the height of the walls.

 

What kind of roof do you need to create from the 2D polygon?

 

What is the criteria to specify corresponding image for each surface? Would you map different textures to individual wall/roof surfaces according to their orientation - north, south, east, and west?

 

 

That's a different question.

 

It would be easy to make four walls from a 2D rectangular polygon if you know the elevation of the ground and the height of the walls.

 

What kind of roof do you need to create from the 2D polygon?

 

What is the criteria to specify corresponding image for each surface? Would you map different textures to individual wall/roof surfaces according to their orientation - north, south, east, and west?

 

 

@takashi, I've been successful in creating 3D building model with wall and roof. Actually, I do not yet have any specific criteria for the corresponding image for each surface, what I need is just simply adding the texture to its surface.

 

About the orientation, I think about it but the surface's orientations are more complicated than just west, north... My idea is deaggregating the polygon into lines and then create feature "type" as we already discussed above but I'm stuck in this step because I don't know to find a corresponding line with each image. Please let me know what you think

 

 

Hi @anhphanuet, if you have already classified the surfaces into roofs and walls, add a common attribute (e.g. "type") which stores a value indicating "roof" or "wall" to the surface features and the raster features (texture sources), then set the "type" to the Group By parameter in the AppearanceSetter.

Thank you @takashi please follow up with me on this problem. I'm now doing to specify the criteria for adding textures to surfaces and will inform you as soon as possible. Thank you very much for your time.

 

Badge +12

Hi! Did you get any further on this track? I am wondering if it is possible to number each building and surface to give them unique IDs, and then read images from some folder where you've named the images with corresponding IDs, to match them with the AppearanceSetter. Would this be a possible approach?

Badge

jamiedrapemesh3.fmw

Still having issues!

Here is the workflow.

 

The Output is 2D rather than 3D. There is no variance visually in the Z Plane.

Any idea why?
Badge

jamiedrapemesh3.fmw

Still having issues!

Here is the workflow.

 

The Output is 2D rather than 3D. There is no variance visually in the Z Plane.

Any idea why?

Sorry, posted to wrong thread. Please ignore

Reply