Low Poly Building

calendar_today

30.11.2025

label

Architecture

mouse

Houdini 20.5

Description

Building generator for texture sheets with basement, regular and top floor facades as well as roof tiles.

1 Footprint

Random points positions get mapped pair-wise as corners to a grid.

C
        vector pos[] = detail(1, 'positions', 0);

i@group_footprint = 0;

foreach(int i; vector p; pos){
    int n = (i + 1) % len(pos);
    int prs[] = primfind(0, p, pos[n]);
    int index = find(prs, i@primnum);
    if(index >= 0){
        i@group_footprint = 1;
        break;
    }
}
    

2 Facade

The facades are build from a sweep node that also outputs primrow numbers to define basement, regular and top levels.

3 Roof

The roof geometry is created using the polyexpand node with its edgedist attribute mapped to the roof's elevation. The texture coordinates are constructed around on the primitives center position and normal direction.

C
        vector up = {0,1,0};
vector nml = normalize(prim_normal(0, i@primnum, 0.0, 0.0));
vector tang = normalize(up - dot(nml, up) * nml);
vector bitang = normalize(cross(-nml, tang));

vector pos_rel = v@P - prim(0, 'P', i@primnum);

float u = dot(pos_rel, bitang);
float v = dot(pos_rel, tang);

v@uv = set(u, v, 0.0);
    

4 Texture Layout

The textures get mapped into quarters to match the tiled texture map. Primitive faces are unitized and offset based on their groups.

C
        // UNITIZE
v@uv[0] = vertexprimindex(0, @vtxnum) == 0 || vertexprimindex(0, @vtxnum) == 3;
v@uv[1] = vertexprimindex(0, @vtxnum) == 2 || vertexprimindex(0, @vtxnum) == 3;

// QUARTER
v@uv *= 0.5;

// OFFSETS
if(inprimgroup(0, 'regular', i@primnum)){
    v@uv[0] += 0.5;
}
else if(inprimgroup(0, 'top', i@primnum)){
    v@uv[1] += 0.5;
}
    

5 Result

After fusing the facade and roof meshes the texture gets applied. Randomly generating new building variants only takes milliseconds.

6 Credits

Hand painted texture created exclusively by Omar Faruq Tawsif.
Portfolio: https://www.artstation.com/omartawsif

download

Downloads

smart_display

Videos

Low polygon Building – Houdini Breakdown

link

Related articles

favorite

153

label

Architecture

Floor plans and elevations from 3D

favorite

208

label

Architecture

Converting point clouds to a quad mesh

favorite

213

label

Architecture

Extruded walls from floor plans

favorite

175

label

Architecture

Industrial gas station

favorite

119

label

Architecture

Integrating window shapes to facades

favorite

180

label

Architecture

Space-partitioning using KD Trees