00001000101 00001010011010 00001000101 00001010011010 terraform3d plasma works 3d engine & usgs...
Post on 26-Dec-2015
218 Views
Preview:
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 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
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
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
top related