Creating 3d model building

torrikabe 2007-02-20 00:00 tutorial  > 3ds MAX  > modeling

In this tutorial, we will make a 3d model building from still images (non-orthographic). We can so easliy make 3d model if we have any information about measurements. in first step i'll show you if we don't have any information and measurement of that building, and we just have minimum reference image.

- Creating Guide Scene
setting up the guide scene.

We have two pictures as reference. These picture show a train station. It's located in Semarang, wich were built during dutch colonial. Exactly I don't know any information about its measurement definitely.

Reference image

Open MAX,

Displaying the Background in the Viewport.
Open viewport background window
view>viewport bacground..(alt+b)

Viewport "front".
background set in front viewport.
we can use any orthographic viewport, because we just need 2d view.

Click "Files.." button.
select ref image.

Check Lock zoom/pan.
background autoresize when zoom/pan.

Match Bitmap
background aspect ratio.

Background Texture Size

we need fine detail in viewport background.
Customize>preferences>configure driver>background texture size>check match bitmap as closely as posible.
but if ref image resolution is 1024, i prefer using 1024. so uncheck match bitmap size.

Maximize your viewport and u can turn off grid.
press"G" to show/hide grid

Point Perspective n Horizon.


Use Line to find Vanishing Point.
enable in renderer
enable in viewport.


Vanishing Point
Look at the edge of the object from ref image, find VP in picture area and draw a line by continuing from edge.
See pic. All red line from edges, parallel to y axis(world coordinate system).

We have had a vanishing point/point perspective. Its location must be arround there.

For the next step, we should look for other vanishing point/point perspective. But for this ref image, it will be so difficult to find them.
Approximately, there are 3 point perspective on that ref image.
You should know about point perspective system ( one point perspective - six point perspective ). see links n references in the end of tutorial.


To solve problem of seeking other point perspective, draw line from that building basic form.
see picture


Additional Line Guide
Add additional lines. see pic

Approximate location of horizon.(because we cant see the horizon in ref image).
Horizon will be parallel to x axis (world coord. system). Most photographer will keep a horizon horizontal.
Create a box as a line (automatically box is horizontal). We estimate the position of horizon. Position of horizon and vanishing point not in a line. My estimation horizon wrong?


Set up a rendering background
Set ref image as environment map.
On the menu bar choose: Rendering>Environment>Environment Map> pick Bitmap>select picture.

RENDER (same as ref image resolution, ex 1024x768)
Save as Blueprint1.jpg
Save MAX, we might need it later.


Additional guide scene


Reset MAX

Repeat prev steps. there is such different, point perspective or vanishing point is out of the scene.
use mousescroll to enlarge canvas.

Look for the horizon position by using box. Lengthen box untill passin VP. horizon cut the VP, that is good forerunner.


Additional scene is ready now.

Set up a rendering background

RENDER. Save as Blueprint2.jpg
Save Max.


- Camera Matching

to match the perspective of a camera to a photograph. We will need accurate scene measurements.
but if we don't have any information about measurment we can still make an estimate and matching the perspective to ref image.



Reset MAX

at frontview, use ref image as background.

Analyze ref image. find any object can be use as measure comparator. i use that oldman in the ref image. we estimate height of that oldman is 155cm(too problem)

Create Box with height as high as building(line guide). Rotate box corresponding to Z axis perspective.
add segs box, height of segs as according to height of the people.
we get 7 segs.


Ctrl+N in any numeric field. to display Numerical exp ev. as a calculator.

155cm x 7 = 158.7V
10.85m = 158.7V
V = 0.0678

we get h = 10.85m, V = 0.0678
press cancel to dismiss.
we can display a calculator called the Numerical Expression Evaluator
ctrl+N in any numeric field. but You can't use Variables in the Expression Evaluator, but you can enter the constants pi (circular ratio), e (natural logarithm base), and TPS (ticks per second). These constants are case-sensitive.


Create a box according to width building.
positioning of box as close as possibly to horizon.
we get 304.8

304.8 x V = width.
304.8 x 0.0678 = 20.665m

we get w = 20.665m


Camera Matching1


Reset MAX

Displaying the Background in the Viewport.
select perspective viewport. add "blueprint1.jpg"(we have made before) in viewport background.

Creating Basic Object
Create a box, w = 20.669m, h = 10.85m and l = any size
don't forget to change unit display.
Costumize>unit setup>display unit scale>metric.



we estimate length depend additional line helper/guide we have made.
see pic.

we assume that length is 30m.
the length is depend on you.


Setup Camera Matching

right click on 3d snap, check only vertex. then click snap to activate (S).


Create>helper>Camera Match>Campoint.


Camera Point helper/3D Point.

Create point wth clockwise, so we can easily remember.

Open box object properties, uncheck backface cull. and check see-trough.
so we can see box backface.


Assign Position/2d point.

utility>Camera match>assign position. see pic.

warning,"background image ratio should be set to that of the renderer, fix?" yes, ok.

a red plus sign displayed on the bitmap.
If a red/green plus does not appear, you might be using an OpenGL/direct3d driver. Press ` to redraw the viewport. If the red plus doesn't appear, change display driver.
Customize>preferences>viewport tabs>display driver>choose driver>software>restart MAX


Create camera.

we can see, box not match with which we expect. that mean estimation of our length is wrong or position of vanishing point is not accurate.



change position of 2d point and assign new position. we just need to assigning new position of campoint05 and campoint06.
a good camera error range is about 0 - 1.5

Change the position with path at line guide we have made.


With camera selected, click modify camera.

at camera modifier, Check show horizon.
horizon is not paralell to x axis(world coord system). it show it's raw photography or the photographer isnt professional (it's my sister:) ).

almost perfect, fix it.


Until we have satisfied with match result. then we see camera position which have been made.
the photographer height is about 165cm and camera position is about 160cm..


Camera matching 2

Camera matching for second image.


we should hide 6 campoint we have made into different layer.
Selection filter>helper
select all>Layer Manager>create new layer.
rename helper1>hide.


on other viewport (say a left viewport), change to perspective view.

add viewport background with "blueprint2.jpg ".

Create new layer. rename with helper2.

Create campoint.
see pic

Assign position.

warning again, ok..

before we create camera, uncheck "use this point" at campoint 1-6, because we dont need now.
utilities>camera match>uncheck use this point.

Create camera,
error, not enough point, ok we need 2 additional point.
the problem is, where we can determine position of 2 additional point.


Open blueprint2.max, create additional line guide. and render>save as blueprint3.jpg.


Switch to matching work, change viewport background with blueprint3.jpg.

re-set selection filter>all
select box> add lentgh segs, see pic.

Create campoint11 and campoint12. dont forget to activate snap.

Assign campoint11-12 position.

Create camera, fix it.
a good camera error range is about 0 - 1.5


create new basic object and match with blueprints.
we can added more campoint if needed.

I hope this tutorial was useful for you.

trust yourself..and sorry for the english.




Links and references:

other Architectural reference image to 3d, tutorial:

Point Perspective:


  • MAX user reference.
  • Ken milburn.Digital.Photography.Expert.Techniques.2nd.Edition.OReilly

problem and any question
fell free to contact me
email: (with o).
YM: Fabolousview

Author: torrikabe
You may also like...
Blender Boxcutter 6.5

Blender Boxcutter 6.5

BoxCutter is a fully featured Boolean system / slicer. 


You need to be logged in to leave a comment. Don't have account? Register now.
jayarjo13:54:15  |  03-11-2011
Great tutorial. Although I had a hard time understanding how you find where to place campoints. Is there somewhere good writeup on this technique, specifically on how to use perspective lines, their intersections to set campoints in some third party photos?


  • ul. Przedzalniana 8, 15-688 Bialystok, POLAND
  • ph.: +48 85 674 50 05