EGR 199:
Fundamentals of Engineering

Distance Collaboration in 3D Modeling

Prabhaker Mateti
     
 
The complete model
PovRay rendered F1
Table of Contents

Background Information

Procedures

Appendix A: Acronyms
Appendix B: Further Reading Links
Achievement

 

 

 

 

Executive Summary

This article is a continuation of  distance collaboration, and 3d modeling.  We continue our experimentation with 3d modeling using the freeware package called sPatch, and collaboration with Net Meeting.  This article assumes that the student is already familiar with distance collaboration and 3d modeling tools.

Background Information

The lab for this week builds on two that we did in previous weeks.  The following is a summary of relevant information from two articles that you already read.  For full details, read the following.

sPatch

sPatch is freeware.  It is a Bezier patch based modeler that exports POV, DXF and VRML on Windows 95/NT. It can build models for VRML browsers and  POV-Ray.  Because it is spline based it especially good for bio shapes and curvy objects.

What is POV?

POV is a freeware 3-dimensional ray tracing engine. It takes your 3D model and simulates the way light interacts with the objects you have defined.  It can create stunning 3D pictures and animation. In addition to ray tracing,  POV uses radiosity to add greater realism to scenes containing diffuse light sources such as the fluorescent lighting.  POV can simulate many atmospheric and volumetric effects (such as smoke and haze).

The coordinate system for POV-Ray has the positive Y axis pointing up, the positive X axis pointing to the right, and the positive Z axis pointing into the screen.  The X, Y, Z coordinates of a location is specified with a 3-part vector of 3 numeric values, between  angle brackets and separating the values with commas.

POV is a rendering engine only, it does not include a modeler.  A modeler is a program which uses graphics to make the job of creating 3D objects simpler. Using a modeler you can arrange structures by visually interacting.

Net Meeting 3.01

Microsoft NetMeeting is a real-time multimedia communications tool that can create a collborative environment for geographically distant people.  It uses the TCP/IP network facility readily available on the Internet.  NetMeeting's Program Sharing feature lets you flexibly share multiple programs during a conference and retain greater control over the way they're used.  NetMeeting can control how shared programs are displayed on your desktop, and gives the person sharing the program control over who uses it. You can share a program with other people--even if those people do not have that program installed on their computer, which makes setting up carpool schedules or organizing family reunions easy when you meet on the Net.

Procedures

In this lab, you pair up with a classmate and model a  formula one racing car (following the excellent tutorial from  www.mech.ed.ac.uk/~dom/index.html) using sPatch.  This tutorial covers the creation of a simple F1 model. It gives general instructions, and is meant to guide you through, to show you how things can be done in sPatch.
Pov-Ray rendered F1
Explore the Help menu items of Net Meeting and the sPatch programs.  Do not simply call your TA for details on how to accomplish a task.

Following the different phases should bring you to a model usable with PovRay.

PovRay rendered F1
If you have not understood how to do welding in sPatch, try doing it on a few samples first. 

Model the different parts in different layers. It will make things easier as you will be able to disable a finished layer while working on another and will also allow you to export your model efficiently for render purposes.

 
0.  Get Ready

1. The air collector
 
collector profile
extruded profile
Use add tool to draw a profile for the air collector in the YZ plan.
Extrude  that profile three times along the X axis.
Scale  and translate  the created profiles to obtained desired shape.
Extrude , translate  and scale the profile at the large end of the shape to give some thickness.
shaded collectorTip: To obtain the sharp end, scale down the narrow end until the knots overlap but do NOT weld them together as this would create unwanted curves. 
 
2. The central body
 
half body profile
Use add tool to draw a profile for half the car body in the XZ plan.
Extrude  that profile along the Y axis.
Make a copy of the obtained surface. Flip that copy along Z.
Translate  the flipped copy along Z until the central surfaces overlap. 
Join the two surfaces together by welding (left click to grab a knot then still holding right button, right click on the knot you want to weld on) each of their corners.
Note: Flipping a surface under sPatch will invert the orientation of facet normal when exporting the model into VRML or DXF files.
wire frame body
shaded body
 
3. Combining the first two elements
 
not joined
not joined (shaded)
Select  the air collector and place  it at the desire position, on top of the central body.
Use add tool to create segments to be used for joining the two objects.
Weld created segments to the air collector on one end and to the central body on the other as show on the right.
Use smooth tool to solve problems occuring when welding the rear end of the air collector.
 
welding
welding (shaded)
finished bodyNote: welding the two objects together creates the missing patches and acheives a seamless connection with curve continuity. The back of this part, where the air collector meets the main body can be a bit troublesome when trying to create the missing patches. Don't lose your calm, proceed with caution and use the Undo function if it goes wrong.

 
4. The nose.
nose profile
wireframe nore
Use add tool  to draw a profile for the nose in the YZ plan.
Extrude that profile three times along the X axis.
Scale  and translate  the created profiles to obtain the desired shape.
Use add tool  to draw a curve segment. Weld this segment horizontally between the two middle knots.
Weld the top two knots to the middle two knots to seamlessly close the tip of the nose and create the diving effect.
 
Tip closeup
shaded nose
 
5. Combining the nose with the rest.
 
not connected
The extra curve
connected
Move the nose part in place in front of the main body.
Use the add tool  to create a 4 points curve (don't connect it to anything yet).
Place that curve at the front of the main body, facing the top of the nose part.
Weld the two extremities of that curve to the sides of the cockpit. If you encounter curve problems, use the peak tool on the two extrimities once connected to the cockpit.
Create simple segments with the add tool  then use these segments to connect the knots facing eachother. 
Use another couple of segment to close the bottom of the cockpit.
almost finishedNote: This part is one of the most tricky phase of this tutorial. Welding these two objects together this way creates curve problems as sPatch tries to connect the different curves to form one.
 
6. Modeling the wings.
Create the wings side support with simple squares for the rear and two patches for the front.
Two parallel squares are enough to create the fixture parts for both front and rear.
Draw  a three points curve, give it a aerodynamic shape. Extrude it once or twice depending whether you want it bendy or not.
Place  the created wings at the correct position on the car body. Make sure the fixture part touches the body.
F1 with wingsIf you think wings are really simplistic, well, do them better!
front wing
rear wing
 
7. Creating the tires
 
wireframe tire
Create a 4 points circle.
Extrude , translate  and scale  that circle profile to obtain the tire shape.
 
shaded tire
 
8. The alloy wheels
 
a loop hole
wheel profile
wireframe wheel
Using the model menu, create two 8 knots circles in the XZ plan. One fro the outside and one for the inside of the wheel.
With the add tool , create a three point loop. Move the knots to obtain a suitable shape.
Make a copy , flip along Y, then translate along Y to get a symetric position of both loops (so you can rotate around the origin).
Make three copies  of the two loops together and rotate them around the wheel.
Create a long curve  and use it to create patches (zigzag weld it around the wheel as show on the right). Weld the inner circle too!
Extrude  the outside circle once to obtain an little bevel, then twice to create the inside of the wheel.
Note: When rotating an object, sPatch automaticaly compute the rotation center as the geometric center of the selection. By creating a symetric copy of the loop, this center becomes the origin, making it easy to place our shapes around.
symetric position
wheel patched
shaded wheel
 
9. Bolts to hold the wheels.
 
nut profile
Create a 8 points circle and use the peak tool on it to get sharp edges.
Extrude , translate  and scale  that octogon profile to obtain a nut shape.
 
shaded nut
 
10. The driver's seat.
seat profile
creating patches
Use the add tool  to draw the ouline of the driver seat. Make sure it's symetric either by using the grid or by drawing one half the clone , flip, translate  and weld.
Use the add tool  to draw a curve representing the bottom of the seat. Use an appropriate number of points to ease the incoming welding operation.
Create curve segments  and use them to create patches (by welding them horizontally as show on the left).
Extrude the outline profile, move  it sliglty backward and scale  it down to give some thickness to the seat.
 
seat profile
shaded seat
 
Render your model

This tutorial covers the creation of a simple F1 model. It gives general instructions, and is meant to guide you through, to show you how things can be done in sPatch. It's now up to you to add all the missing part of the car. Wheel support triangles, steering wheel, extra aerodynamic curves ...

Or, download the finished result by Jacquel here.

Now, that our Formula 1 model is complete, we can use it in some kind of rendering package. sPatch can export directly into Pov files, so let's use Pov-Ray!  A minor drawback in sPatch is that the export function groups all the layers in one big union, making it difficult to apply different textures to your model. There is a way around it.  Export only output the visible layers, so to render your model with different textures applied to different parts, apply this following procedure: The complete model
 
Select each layer one by one. Make only the current layer visible.
Export the current layer into a new pov file. Create a new Pov file for each part of the car you want to assign a different texture to (like wheels, tires, seat...).
In the Pov-ray files you generated, add a #declare a_name = before the generated union and remove the pigment and finish lines at the end of the file. Also remove the camera setting and the lights form the file (keep a copy of that part somewhere).
Create a new Pov file in which you include all the exported files from sPatch and your texture file. Copy the original camera and light setting you saved (they are a good start!).
Now use your declared objects with object { a_name ... etc ... } and apply your textures to them ... RENDER!! :-)

Appendix A: Acronyms

CSCW Computer Supported Cooperative Work
IP Internet Protocol
FTP File Transfer Protocol
ILS Internet Locator Server
NM Net Meeting
POV "Persistence of Vision"
URL Universal Resource Location
A few acronyms and their expansions are collected in the table here. If you are curious about an acronym or term not listed, type it in the input box below, and then press


 the button to look it up in the TechEncyclopedia.

Appendix B: Further  Links

  1. Download Net Meeting 3.01 from http://www.microsoft.com/windows/NetMeeting/
  2. "Microsoft Internet Explorer 4.0: NetMeeting Internet Collaboration Tool" - a CBT training course -- for NetMeeting 2.1 but has some good animations and explanations 
  3. www.povray.org  The home of POV-Ray.  Freely download the binaries for many OSs.
  4. http://www.mech.ed.ac.uk/~dom/3d/3d.html  Excellent tutorials on sPatch by D. Jacquel.  The Coke Bottle and the F1 are from here.
  5. Internet Ray-Tracing Competition (IRTC).  Must visit.  See the past winning entries created with sPatch and POV-Ray combinations.
  6. http://www.cableone.net/alyson/spatch.html is sPatch's home.  The link in the Help menu is broken.
  7. Prabhaker Mateti,  Distance Collaboration with Net Meeting, EGR 199, Winter 2000
  8. Prabhaker Mateti, 3D Modeling and Ray Tracing, EGR 199, Winter 2000

Achievement

 
pmateti@cs.wright.edu