VSFX 721

Procedural Modeling and Animation

Project 1 - Complex Scene

Modeling the Courtyard

The courtyard here is basically houses in a rectangle arrangement. There is a main house being used as living room, and other houses as kitchen, storage or bedroom. Along with these buildings, the courtyard is surrounded by layered walls and doors.

According to the construction rule of a typical courtyard, three basic elements were used to build into a procedural courtyard model, then combined into a courtyard object with control to each component’s dimensions.

Layout of items are based on points, and used point attributes to control dimension and detail switch.

Individual building’s dimensions are calculated automatically from the width and depth of entire courtyard.

Trees are made using Houdini’s L-system.

Modeling the Street Block

*“Hutong” *(“water well”, or “town” in Mongolian) is the name of these narrow alley between courtyards and houses.

Since the individual courtyard house is finished, the next step is to replicate them into street blocks.

Copy and Copy Stamping are widely used to achieve a randomized look of the street block.

The distribution of courtyard houses are based on actual street plan, but also with varieties and functionality. The orientation of each courtyard is calculated from it’s position in columns / rows, so that all courtyard houses have their main entrance facing the street.

For optimization purpose, proxy objects are used to replace the highly detailed courtyard model. The proxy objects will turn into detailed model after frame 2, leaving frame 1 safe for viewport display.

Modeling Variaties

Since each courtyard is copy onto points, the point information are used to generate random seed. So that every courtyard will have different appearance, such as various number of trees, spacing of columns, height and width or position.

Texture and Shader

In order to avoid the unnatural look caused by texture repetition, many materials were assigned with 2–3 textures, each of them has slightly different variations.

Lighting and Rendering

The scene is render with Houdini’s environment light, and Mantra Physically Based Renderer.

Complete information of this project is available on my blog.