00001000101 00001010011010 00001000101 00001010011010 terraform3d plasma works 3d engine & usgs...

30
00001000101 00001010011010 00001000101 00001010011010 TerraForm3D Plasma Works 3D Engine & USGS Terrain Modeler Heather Jeffcott Craig Post Deborah Lee Soltesz Trent D’Hooge

Upload: ariel-heath

Post on 26-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

0000100010100001010011010

0000100010100001010011010

TerraForm3DPlasma Works 3D Engine & USGS Terrain Modeler

Heather Jeffcott

Craig Post

Deborah Lee Soltesz

Trent D’Hooge

0000100010100001010011010

0000100010100001010011010

Team Organization

Heather Jeffcott – Programming Support

Craig Post – Plasma Works 3D Engine

Deborah Soltesz – USGS Terrain Modeler

Trent D’Hooge – Parallelization

0000100010100001010011010

0000100010100001010011010

OverviewDesign of Two 3D Packages

PlasmaWorks – 3D Engine• 3D Game Engine with a variety of special

effects to choose from.

USGS – Terrain Modeler• User interface and high-quality parallelized

image renderer which handles large image data files

0000100010100001010011010

0000100010100001010011010

Scheduling and Organization

Good Stuff Meetings

• Short meetings held often• Business first, then brainstorm

Records• Minutes• Regular Status Reports• Meaningful Documentation

Deadlines• Early but reasonable – realistic!• Built-In lead time

0000100010100001010011010

0000100010100001010011010

Scheduling and Organization

What could have been better…. Published a monthly calendar along with the

Status Reports• Keep better track of upcoming projects and

deadlinesScheduling around high stress times

mid-terms unforeseen events

• documentation for this project• papers, programs, and other large assignments

in other classes

0000100010100001010011010

0000100010100001010011010

Plasma Works 3D Engine

Craig Post

0000100010100001010011010

0000100010100001010011010

Plasma Works 3D Engine - Craig Post 7

PW3D: Architecture Overview:

Object

Vertex Animations Texture

Renderer

Camera Textures Lights

Pointer to objects to render

0000100010100001010011010

0000100010100001010011010

PW3D: Architecture Analysis

Lessons Learned: Integrating functionality into one class made up

of multiple subclasses is best Inheritance is GOOD! Due to OS, it is difficult to make a completely

independent renderer An event driven architecture might work better

than a looping architecture Adding functionality to the renderer is difficult

0000100010100001010011010

0000100010100001010011010

PW3D: Design Methodology

Design Methodology Used: Prototype Benefits

• Good for learning• Easy to add on to• Easy to see real implementation

Drawbacks• Easy to get stuck in paradigms• Tough to throw away work

0000100010100001010011010

0000100010100001010011010

PW3D: Tools and Languages

Tools used: OpenGL Benefits:

• much easier than DirectX• more help available• handles a lot of the behind the scenes work for

you

Drawbacks:• not as widely supported in gaming• only handles graphics, nothing else• not strictly game oriented

0000100010100001010011010

0000100010100001010011010

PW3D: Coordinate Systems

Coordinate systems are very important for retaining system consistency It is important to learn your coordinate system

inside and out very early on

0000100010100001010011010

0000100010100001010011010

PW3D: Final CommentsOverall Lessons Learned:

Mathematics is much more difficult when trying to apply it

It is difficult to take an algorithm on paper and convert it to code

There are too many goodies to add in one semester

0000100010100001010011010

0000100010100001010011010

Deborah Lee Soltesz

Terrain Modeler

0000100010100001010011010

0000100010100001010011010

USGS Terrain Modeler - Deborah Lee Soltesz

Package Interface ViewImage Manager

Manages input image files

GUI

Manages user input, data manipulation, image rendering and screen display

Media Output

Manages output image rendering and files

Request:

Create media of specific type

Give:

transformation matricespointer to Image Manager

Request:

Retrieve data from a specific region of a terrain or overlay imageSet detail level

Request:

Open file(s)Retrieve data from a specific region of a terrain or overlay imageSet detail level

0000100010100001010011010

0000100010100001010011010

USGS Terrain Modeler - Deborah Lee Soltesz

Design & ImplementationIterative Prototyping

Build up and test functional classes and packages iteratively

• allows more strenuous, automated testing• work bugs out before adding more complexity

GUI Prototyped• works out bugs before adding in complex

underlying functional packages• tests usability and fertilizes brainstorming• “Eye Candy” factor

0000100010100001010011010

0000100010100001010011010

USGS Terrain Modeler - Deborah Lee Soltesz

TerraGUITerraGUI serves

as the user interface and on-screen 3D manipulation

package

TerraGUI serves as the user

interface and on-screen 3D manipulation

package

...

...

Terra camera

...

...

Terra light

...

...

Terra terrain

...

Terra main

...

...

Color Code

0000100010100001010011010

0000100010100001010011010

USGS Terrain Modeler - Deborah Lee Soltesz

TerraGUI User Interface3D Engine / 3D Engine Lite

Great idea - didn’t work• Terrain Model functionality did not apply to

needs of 3D Engine Prototyping helped make the decision to make

two separate screen renderers early in the process

Terrain Reduction Algorithm Simple “pick every n points” vs. picking points

that best add definition• great algorithm, but came too late

0000100010100001010011010

0000100010100001010011010

USGS Terrain Modeler - Deborah Lee Soltesz

#parseImage()

BMP Image

...

...

Image

...

...

Image Manager

#parseImage()-parseLabelFile()

MIPS Image

...

Img String

#parseImage()

TIFF Image

#parseImage()

JPEG Image

ImageManager serves as a generic interface to a plethora of image file formats

ImageManager serves as a generic interface to a plethora of image file formats

ImageManager

write TGA

0000100010100001010011010

0000100010100001010011010

USGS Terrain Modeler - Deborah Lee Soltesz

MediaOutput handles saving

transformations set in TerraGUI to high-resolution imagery,

digital video frames, or VRML

MediaOutput handles saving

transformations set in TerraGUI to high-resolution imagery,

digital video frames, or VRML

MediaOutput

...

...

Perspective View

...

...

Media Output

writeVRML()

VRML

...

...

Transform List

...

...

Transform Node

*

0000100010100001010011010

0000100010100001010011010

USGS Terrain Modeler - Deborah Lee Soltesz

3D File RenderingOriginal Plan: write a renderer

Optimized to data and purpose Open Source - can be tweaked

New Plan: POV-Ray Open Source - can be tweaked Has parallelized version: PVM-POV Fits data and purpose fairly well, but

has weaknesses

0000100010100001010011010

0000100010100001010011010

USGS Terrain Modeler - Deborah Lee Soltesz

3D Rendering: ConclusionPOV-Ray should have been part of the

original plan

TimeTime could have been spent better making improvements to POV-Ray

• improve file input management• add MIPS image format as input/output type• interface directly to POV-Ray libraries instead

of making cheesy system call

0000100010100001010011010

0000100010100001010011010

USGS Terrain Modeler - Deborah Lee Soltesz

IssuesDeb’s development environment

finding an OpenGL system to work on• installing necessary hardware, software,

libraries, etc. should have started sooner

0000100010100001010011010

0000100010100001010011010

Parallel Processing

Trent D’Hooge

0000100010100001010011010

0000100010100001010011010

ProtoType MethodAllowed for learning MPI and how to best set

up and use a Beowulf ClusterAllowed for testing of different ideas from

algorithms for splitting up the work to communication between computers

Brought forth issues in networking and memory management

0000100010100001010011010

0000100010100001010011010

ResourcesNFS

Allowed for the sharing of data between computers at the kernel level

MPI and PVM Allows computers to pass messages back and

forth

POVRAY Software that can run across multiple computers

for 3D rendering

0000100010100001010011010

0000100010100001010011010

ImplementationFound that PVM POVRAY would do the 3D

rendering and would run in parallel Very little change had to be made to the cluster

Works very well for images that can be buffered Gets good performance increase when the

computers do not have to swap Allows for load balancing and redundancy

0000100010100001010011010

0000100010100001010011010

PVM POVRAYProblem

POVRAY brings in the whole image on each machine

Solution Instead of using the PVM based software,

rewrite the parallelization of POVRAY with MPI and use the algorithms used from prototyping to only bring in what is needed on each computer

0000100010100001010011010

0000100010100001010011010

In conclusion…Few problemsThings went smoothly

0000100010100001010011010

0000100010100001010011010

0000100010100001010011010

0000100010100001010011010