課程名稱︰虛擬實境
課程性質︰選修
課程教師:歐陽明
開課學院:電資學院
開課系所︰資工所、網媒所
考試日期(年月日)︰2013.05.06
考試時限(分鐘):
試題 :
Virtual Reality Mid-term Exam, May 6, 2013
1. (20%) Hierarchical animation using OpenGL
Andy downloads a Human medical model from the internet, and he wants to
make animation of this model using OpenGL, so he splits the model into many
parts. But Andy doesn't know how to build model in OpenGL and let it stand.
Please answer the following question:
http://i.imgur.com/rEaBGH4.png
(a.) (10%) How to combine each part to make model standing? Please write
pseudo OpenGL code to complete it. Notice that you should use Body as
root, and you need to consider that the model must be able to do other
motion in design. (The following are functions you need, and you don't
need to define any parameter.)
(Function: glPushMatrix(), glPopMatrix(), glRoatef(), glTranslatef(),
DrawHead(), DrawBody(), DrawRightArm(), DrawLeftArm(), DrawRightLeg(),
DrawLeftLeg(), and any other OpenGL function is okay.)
(b.) (5%) Andy thinks that the model is too small, and he wants the model
bigger than a 50-meter-high wall in animation. Please briefly answer
that how to enlarge the whole model.
(c.) (5%) Andy thinks the model's head is so big that it looks weird. Please
briefly answer that how to reduce the scale of head and let other parts
unchanged.
2. Term project (5%)
What is the term project you want to do for this semester? What kind of
technical problems will you encounter and have to be solved?
3. (20%) In terms of graphics acceleration, there are at least two approaches
been proposed, namely (1) parallel processing or SIMD, such as in the
nVidia GeForce4 chip set, and (2) binary machines such as the PixelPlanes
chip set.
(a) (10%) There is a functon fast_calculate (A, B, C, x, y) which can be
evaluated in parallel, where fast_calculate() can calculate
A*x + B*y + C for each pixel position (x, y) in PixelPlanes. For a
triangle defined by vertices (5, 9), (3, 2) and (10, 3), please write a
parallel procedure using fast_calculate() to draw all the pixels
(x1, y1) inside this triangle. (Hint: you have to determine whether
(x1, y1) is inside of the triangle first, and for this case, what are
the value of A, B, and C for this particular triangle. In general, what
is the distance from (x1, y1) to the triangle edge?)
(b) (5%) For 3D triangle vertices A(5, 9, 0), B(3, 2, 0) and C(10, 3, 0),
how to use Z-buffer algorithm in Pixel Planes for visibility testing?
Hint: Z-buffer algorithm:
(a) Initialize frame_buffer [1000, 1000] to be all very big numbers
(far from view point).
For a pixel (x, y) located inside a triangle,
(b) If it is closer (its Z value) to the view point (human eye), then
paint this pixel with its color. At the same time, set
frame_buffer (x, y) = Z value.
(c) Otherwise, don't paint this pixel.
4. (15%) Assume that a Google glass VERSION G has
(i) camera
(ii) lens on the right eye, that can reflect images from a Android phone,
through a prism, for head-up display
(iii) a Microsoft Kinect depth camera.
(iv) Blue-tooth for near field communication
(v) a GPS sensor.
Hint: how to make the images from Android phone to be projected to your
right eye through a prism?
(a) (10%) Although the exact configuration is not yet disclosed, please
draw a design (sketech diagram) so that every module is connected, and
in its correct positions.
(b) (5%) Please give one example of its possible cool usage, especially
those that are not yet mentioned in the Internet introduction.
5. Augmented Reality (10%)
(a) (5%) What's Augmented Reality (AR) and Mixed Reality (MR)?
(b) (5%) Design an AR application. Please describe in detail about the
motivation, hardware/software system, and operating scenario of your
design.
6. Force-feedback devices (15%)
Agent Mulder build his 3D sculpting system with a force-feedback joystick.
The pseudo code of his main algorithm is the following:
┌───────────────────────────────────┐
│while(sculpting){ │
│ Do the "collusion detection" with current sculptor position │
│ Calculate the "feedback force" and set it to force-feedback device│
│ Modify the 3D scene │
│ Render the 3D scene │
│} │
└───────────────────────────────────┘
(a) (5%) What are the parameters that the force feedback device needs to
send them back to the computer to simulate the force system? Can you
write down and explain the formula for simulating the force feedback
system with previous parameters?
(b) (5%) Let's simulate a "rock" wall (hard surface) using such a spring
system using a large spring constant K = 100000 NT/m. Do you think it
is a good system design? What are the potential problems?
Hint: (for a system to be stable: Sampling period T <= B/K, where B is
the total system viscosity, K is the total system stiffness.)
(c) (5%) For the problem in (b), can you think of ways to actually simulate
a hard surface in virtual reality?
7. (15%) The goal of 3D sound is to simulate the direction and distance of a
sound source in a real world.
(a) (5%) Please explain how to reduce the (big) engine noise in an airplane
for the pilot wearing a headphone, while listening to music.
(b) (10%) The following is the shape of your study room, and you want to
hear the music (without wearing a headphone) exactly as it was generated
in the opera house in Paris, France. Can it be done? How?
Hint: use head related transfer functions (HRTF) and its measurements,
then write down each steps to achieve this goal.
http://i.imgur.com/xFOTU0t.png