Capstone Project Fall 2009 Team # 6 October 8 2009

sizzlepictureΛογισμικό & κατασκευή λογ/κού

2 Δεκ 2013 (πριν από 3 χρόνια και 6 μήνες)

59 εμφανίσεις

Capstone Project Fall 2009

Team # 6


October 8 2009


Mentors from Tietronix company


Michel Izygon


-

Michel.Izygon@tietronix.com


Peter Armstrong


-

peter.armstrong
-
1@tietronix.com


Insia Iftiqhar


-

Insia.Iftiqhar@tietronix.com


Claus Nilsson


-

Claus.Nilsson@tietronix.com


Team members:


Ngoc Vu (Team leader, Researcher, Developer)


Hai Tran (Researcher, Algorithm , PR, Documentation Composer)


Hai Nguyen (Researcher, Website admin, Developer)


Tuan Le (Researcher, Developer, Documentation Composer)


Project Description


Project Specification


Applied Technologies


CUDA


Open GL


Issues


Blocking and Shading


Ray Tracing


Project Demo


Milestone


Conclusion


Reference



Solar Thermal Plant is power plant by using
solar energy.


It includes a thousand mirrors around a tower
to reflect the sun light to the receiver at the
top of the tower.


It collects the sun’s energy to generate heat
that is used to run a turbine generator.

(Solar Thermal Energy form http://www.solar
-
thermal.com/images/image_players.jpg)


The heliostats track the movement of the sun.


The received energy is used to heat the fluid
inside the receiver. This process will generate
water vapor to run turbine generator.


The capstone project will
develop a photo
-
realistic 3D simulation of a solar power plant
.


It will model the motion of the sun and
heliostats and will be updated in faster than real
time.


The system is a photo
-
realistic 3D simulation
of a concentrating solar power plant using
Cuda and OpenGL.


It tracks the movement of the sun.


Heliostats will be represented as flat
rectangular mirrors.


The tower will be models as a cylinder.


It will show the shadows of heliostats upon
neighboring heliostats.


The shadow of the tower will be casted.


The system will maintain a graphical frame
rate at a minimum of 20 fames per second.


It will allow users to control the simulation
date and time, the rate of change of time, the
camera position.


NVIDIA CUDA is a parallel processing
architecture.


CUDA leverages the parallel compute engine
in NVIDIA graphic processing units (GPUs) to
solve complex computational problems in
such a much shorter time on CPU.


Developer use C, C++ to program to the
CUDA architecture.


CUDA architecture includes
OpenCL
[2]

and
DirectCompute


CUDA Features:


CUDA driver is used for computing with fast data
transfer path between GPU and CPU


CUDA driver interoperates with OpenGL and
DirectX graphics drivers


It supports for Linux and Windows XP.



GPUs have a
parallel "many
-
core"
architecture,
and each core
can run
thousands of
threads
simultaneously



The Application Programming Interface (API )
to graphic hardware.


The streamlined, hardware independent
interface.


The standard for computer graphic
programming.




Provides :


Separation of interaction from rendering


3D geometric objects.


3D modeling transformations


Viewing functions to create views of 3D scenes
using the idea of a virtual camera.


High quality rendering of scenes.


Display lists for creating graphic caches and
hierarchical models.


The manipulation of images.


Frame
-
buffer effects.



Main libraries : provide functions



GLU ( OpenGL Utility Library ) :



M
ore complex primitives.


GLUT ( OpenGL Utility Toolkit ) :


Managing windows on the display screen.


Handling input events from mouse and
keyboard.


Drawing 3D objects


Tools for creating GUI


Shading: the sunlight
to a heliostat is
blocked by another
heliostat.



Blocking: the
reflection light beam
from one heliostat to
the receiver is blocked
by another heliostat.



Complicated formula



Time consuming



Peter’s document


Simple formula



Easy to understand and program


Compute vertices of each
heliostats


For each (representative)
heliostat


Find its neighbors


Eliminate don’t
-
care neighbors


For each do
-
care neighbor


Project it to the plane that contains
the representative heliostat (just
four vertices of the neighbor
heliostats are projected)


Indicate if a vertex is inside the
representative heliostat


Indicate the shading/blocking
region


Go to next neighbor


Go to next heliostat

Source: siggraph.org

Light source

Light source

Source: siggraph.org

Source: siggraph.org

Light source


OpenGL supports


Draw 3D model (heliostats, tower)


Define virtual screen


Define viewpoint (where eyes or camera locates)


Use CUDA to process each pixel on the screen


Viewpoint

Screen

From file

Heliostats’ center
coordinates

Plant configurations

Sun position

Vertices’ coordinates of each heliostat

Using Cuda (one thread for each
heliostat)

3D Model using our
shading and blocking
algorithm

3D Model using ray
tracing

Render 3D model to
screen using OpenGL


Milestones


Basic tasks:


Research OpenGL, CUDA, Ray tracing…


Apply OpenGL, CUDA to the project.


Draw 3D objects : tower, heliostats …


Apply changing time, changing direction of
heliostats .




Processing tasks :


Apply shading and blocking for heliostats.


Simulate sun’s movement for the project.


Optimize the algorithm for the project.


Parallel processing with CUDA
http://www.nvidia.com/docs/IO/55972/22040
1_Reprint.pdf


CUDA Zone
http://www.nvidia.com/object/cuda_what_is.
html


An algorithm for shading and blocking
computations of a field of heliostats arranged
in a grid layout
-

Peter
Amstrong
,
Tietronix

Software, Inc