top of page

Creating a procedural courtroom blueprint I Nona Bocheva Week 17

Prototype

In order to have more control and over the final design and make it easier to direct I wanted to create a blueprint object for the room, which we can use to place the other objects.

I started with a grid that has division every several meters. I made some groups for the edges along the walls as well as a procedural group for the podium. Then I extruded the grid and separated its back, front and side group - the floor, ceiling and walls.


Figure 1. Top row - floor and podium; bottom left - walls with different edge groups; bottom right - ceiling.

Floor

The floor was the simplest part, I just extruded the podium upwards. Created a group for its side faces and deleted the one that is towards the wall.

Walls

Columns

The walls inherited the divisions of the initial grid, which separated them in panels. I wanted to place a column between each panel and then possibly smaller columns in the panel itself. I would place those by extruding each part of the wall to create a bounding box, then copy a column to that box and conform the column to the generated bounding box by using 'MatchSize'. To create the volume for the large columns I beveled the edges of the wall geometry (Fig. 2).


Figure 2. Top left - panels; Top right - beveled panel-divider edges; Bottom left - column placeholders; Bottom right - copied and fitted columns.


To copy columns to those faces I had to process them in a for-each loop. First I wrote the normal vector of the polygon to an attribute, to know which direction should the column should be facing. Then I packed the polygon, which converts it to a packed primitive with a single point at its centroid. Even though packed primitives are used to speed up instancing in Houdini, in my case it was helpful that it substitutes the panel with a point I can use 'Copy to Points' on. From the initial beveled face I branched off and created a bounding box by extruding it from the level of the wall. Then I used this bounding box with 'MatchSize' to fit the column to the chosen size. This made the parameters that affect size of different parts on the column behave a bit strangely, because they would not actually change the size of the column in the end but rather the proportion of each of its features. However by ensuring that each part will definitely be the right sped up tweaking much faster.

Wall panels

Other than the colums I wanted to add more complexity to the walls. First I clipped a division at the top, then to the resulting bottom part added a division at each side. (Fig. 3)


Figure 3. Top left - wall panel divisions; Top right - wall panel with columns; bottom left - wall panels with columns and arc; bottom right - complete wall panel


In the side divisions I placed another column and changed the parameters, so it is not as prominent as the large ones. In the top panel I placed an arc asset and for the resulting (blue-ish) part I used the panel asset. The arc assed had a bit of space left for a detail to be copied, so I downloaded this - https://www.cgtrader.com/free-3d-models/architectural/decoration/round-rosette-022 - 3d model, reduced its polycount, as it was quite high and copied it to each arc. To do that I used the same technique I used for copying the columns.


Since all assets adjust their UV maps automatically I was able to see how the texured model would look (Fig. 4). Some addidtional post processing was needed to combine all of the UVs and make sure they have the same texel density, but that was also automatic, once I set it up.

Figure 4. Final result, textured walls.

Comments


bottom of page