VR Unit 2& 3
VR Unit 2& 3
The culture of design & manufacturing incorporates various crucial aspects for producing a
market- efficient product. Computer-aided Engineering or CAE is a central part of the entire
manufacturing process. Over the years, the function of CAE has evolved so much that it has
developed its applications depending upon the type of usage and execution. Geometric
Modeling happens to be one of the most popular CAE applications.
As curves are easy to manipulate and bend as per application, geometric modeling uses curves
extensively to construct surfaces. The formation of curves can be achieved by - a set of points,
analytic functions, or other curves/functions.
he mathematical representation of an object can be displayed on a computer and used for the
generation of drawings, which go on for analysis and eventual manufacturing of the object. In
general, there are three conventional steps to creating a geometric model:
They create key geometric elements using commands like points, lines, and circles.
Applying Transformations on the geometric elements using commands like rotation,
achieve scaling, and other related transformations functions.
Construct the geometric model using various commands that integrate the geometric
model's elements to form the desired shape.
Two-Dimensional or 2D: It projects a two-dimensional view and is used for flat objects.
Three-Dimensional or 3D: This representation permits complete three-dimensional
viewing of the model with intricate geometry. The leading process of geometric modeling
in 3D is Solid modeling.
There are two main types of representations in geometric modeling. The classical presentation of
geometric objects consists of geometric pointsets defined by boundaries. On the other hand,
modern geometric modeling uses parametric families of pointsets. Parametric families are
defined using geometric operation graphs, features, and constraints. In both cases, a user
interacts with an example object from the family. It may also be a surface, a volume, or a solid.
In addition to these models, geometric modeling can incorporate other design and manufacturing
aspects. Computer- aided engineering, or CAE, is the central component of the manufacturing
process. With the help of geometric modeling applications, key elements can be created,
transformed, and integrated into the desired shape. In addition to this, CAD applications can also
incorporate complex mathematical operations.
Solid modeling
Solid modeling also known as volume modeling, this is the most widely used method, providing
a complete description of solid modeling. Solid modeling tools allow you to build many sides of
an object at once. Solid models make multiple sides at once, reducing the ambiguity in surface
modeling.
Surface modeling
Surface modeling is another popular method. This type of modeling represents the object by its
surface and is used to describe the object with a clear view of manufacturing. This method uses
surface geometry to create objects with complex forms. From this clear point of view, surface
modeling cannot be used to develop an internal surface of any model. Surface modeling uses
Bezier and B-spines. Surface modeling is better for design engineers as it organizes the edges
that define polygonal surfaces.
Wireframe modeling
It is a simple modeling system used to represent the object with the help of lines only. Hence, it
is also known as Line model representation. However, wireframe modeling is not enough to
express complex solids; therefore, it is used to describe only wiring systems. Wireframe
geometric modeling is a good option for small-scale companies, where intricate surface details
are essential for product design.
In computer graphics, we often need to draw different types of objects onto the screen. Objects
are not flat all time and we need to draw curves many times to draw an object.
Types of Curves:
The curve is an infinitely large set of points. Each point has two neighbors except endpoints.
1. Implicit curves
2. Explicit curves
3. Parametric curves
4. Bezier curves
5. B-spline curves
1. Implicit Curves:
An implicit curve or surface is the set of zeros of a function of 2 or 3 variables. We use
implicit curve functions to define lines and planes. Provides no control over tangents at
connection points when joining several implicit functions. Implicit functions are hard to find
for many shapes. Use a function that states which points are on and off the curves.
Mathematical function:
f = y(x) can be plotted on curve
eg: y = 2X^5+3X^4
y=mx+c
3. Parametric curves:
Curves have a parametric form called parametric curves. A curve in the plane is said to be
parameterized if the set of coordinates on the curves (x,y,z) is represented as a function of a
variable t. The variable t is called a parameter and the relations between x,y,z, and t are called
a parametric equation
The parametric form of a curve is a function that assigns a position to values of the free
parameters. That the parametric function is a vector-valued function. This example is a 2D
curve, so the output of the function is a 2-D vector, in 3D it would be a 3 vector. It is simple
and flexible
The parametric form is suitable for representing closed and multivalued curves. In parametric
curves, each coordinate of a point on a curve is represented as a function of a single parameter.
There are many curves that we cannot write down as a single equation in terms of x and y. The
position vector of a point on the curve is fixed by the value of the parameter. Since a point on a
parametric curve is specified by a single value of the parameter, the parametric form is axis -
dependent. The function of each coordinate can be defined independently
Eg: x=acost; y=asint
4. Bezier curves:
A bezier curve is particularly a kind of spline generated from a set of control points by forming
a set of polynomial functions. Discovered by the french engineer Pierre bezier. These functions
are computed from the coordinates of the control points. These curves can be generated under
the control of other points. Tangents by using control points are used to generate curves.
It is an approximate spline curve. A bezier curve is defined by the defining polygon. It has no
properties that make them highly useful and convenient for curve and surface design.
3. Cubic curve: The cubic bezier curve is determined by four control points.
Properties of Bezier Curve:
1. Bezier curves are widely available and used in various CAD systems, in general graphics
packages such as GL
2. The slope at beginning of the curve is along the line joining the first two control points and
the slope at the end of the curve is along the line joining the last two points
3. Bezier curve always passes through the first and last points i.e p(o)=po, p(1,=pnlie)
4. The curves lies entirely within the convex hall formed by the four control points
5. The slope at the beginning of the curve is along the line joining the first two control points
and the slope at the end of the curve is along the line joining the last two points.
6. The degree of polynomial defining the curve segment is one less than the no of defining the
polygon.
Bezier curves exhibit global control points means moving control points alert the shape of
the whole curve.
5. B-spline curves:
the sum of the b-spline basic function at any parametric ‘u’ equal to 1
Summation of i from 1 to n+1 nik(u)=1
n+1= no of control points;
k=order of b-spline curve
We can add/modify any no of control points to change the shape of the curve without
affecting the degree of polynomial .Control points affect the shape of the curve only
over range of parameter values where is associated basic function is non-zero. The
polynomial curve has degree (d-1) and C^d-2 continuity over the range of u. Where
each blending function is defined our d sub intervals of the total range of u. The
selected set of subintervals endpoints u is referred to as a knot vector. The basic
function is positive or zeroes for all parameter values. Expect for k=1 each basis
function has one maximum value.
Virtual Environment
A virtual environment is a tool that helps to keep dependencies required by different projects
separate by creating isolated python virtual environments for them. This is one of the most
important tools that most Python developers use.
A virtual environment is a networked application that allows a user to interact with both the
computing environment and the work of other users. Email, chat, and web-based document
sharing applications are all examples of virtual environments. Simply put, it is a networked
common operating space. Once the fidelity of the virtual environment is such that it "creates a
psychological state in which the individual perceives himself or herself as existing within the
virtual environment" (Blascovich, 2002, p. 129) then the virtual environment (VE) has
progressed into the realm of immersive virtual environments (IVEs)
A virtual environment as the name goes works as a virtual machine as well whereby the installed
operating system is separate from the actual operating system. During updates and upgrades, it
affects just the virtual machine and not the actual system. This concept works the same with a
virtual environment whereby an isolated runtime environment helps a user or an application to
install and upgrade python packages without messing with other application built with python on
the system. Due to how python packages are stored on systems in different location for instance,
most system packages are stored in a child directory of the path stored in sys.prefix.
Computing Environments
Computing environments refer to the technology infrastructure and software platforms that are
used to develop, test, deploy, and run software applications. There are several types of
computing environments, including:
1. Mainframe: A large and powerful computer system used for critical applications and large-
scale data processing.
2. Client-Server: A computing environment in which client devices access resources and
services from a central server.
3. Cloud Computing: A computing environment in which resources and services are provided
over the Internet and accessed through a web browser or client software.
4. Mobile Computing: A computing environment in which users access information and
applications using handheld devices such as smartphones and tablets.
5. Grid Computing: A computing environment in which resources and services are shared
across multiple computers to perform large-scale computations.
6. Embedded Systems: A computing environment in which software is integrated into devices
and products, often with limited processing power and memory.
Computing Environments : When a problem is solved by the computer, during that
computer uses many devices, arranged in different ways and which work together to solve
problems. This constitutes a computing environment where various number of computer
devices arranged in different ways to solve different types of problems in different ways. In
different computing environments computer devices are arranged in different ways and they
exchange information in between them to process and solve problem. One computing
environment consists of many computers other computational devices, software and
networks that to support processing and sharing information and solving task. Based on the
organization of different computer devices and communication processes there exists
multiple types of computing environments.
Types of Computing Environments : There are the various types of computing
environments. They are :
1. Mainframe: High reliability, security, and scalability, making it suitable for mission-critical
applications.
2. Client-Server: Easy to deploy, manage and maintain, and provides a centralized point of
control.
3. Cloud Computing: Cost-effective and scalable, with easy access to a wide range of resources
and services.
4. Mobile Computing: Allows users to access information and applications from anywhere, at
any time.
5. Grid Computing: Provides a way to harness the power of multiple computers for large-scale
computations.
1. Mainframe: High cost and complexity, with a significant learning curve for developers.
2. Client-Server: Dependence on network connectivity, and potential security risks from
centralized data storage.
3. Cloud Computing: Dependence on network connectivity, and potential security and privacy
concerns.
4. Mobile Computing: Limited processing power and memory compared to other computing
environments, and potential security risks.
5. Grid Computing: Complexity in setting up and managing the grid infrastructure.
Model of interaction in VR
VR animation is typically created using specialized software and tools designed for
creating 3D environments and objects. The animation process for VR is similar to
traditional animation in many ways, but there are some key differences due to the
immersive nature of the medium.
The first step in creating VR animation is to develop a concept and story for the
experience. This includes deciding on the setting, characters, and storyline. Once the
concept is finalized, the next step is to create a storyboard that outlines the visual elements
and actions for each scene.
After the storyboard is complete, the actual animation process begins. This involves
creating 3D models of the environment and characters using computer software. The
models are created by sculpting a digital mesh, which is then textured and rigged with a
skeletal structure to allow for movement.
Once the models are complete, the animation process begins. This involves creating
keyframes for each action and movement in the scene. The animator sets up the camera and
moves the characters and objects in the scene to create the desired movement and
interaction.
In VR animation, it is important to consider how the user will interact with the
environment and objects. This means creating interactive elements that respond to the
user’s movements and actions. For example, if the user reaches out to touch an object, the
object should react to its touch.
After the animation is complete, it is integrated into the VR platform or engine. This
involves optimizing the graphics and performance of the VR environment to ensure a
smooth and immersive experience for the user.
Interpolation Techniques
Interpolation is the process of using known data values to estimate unknown data values. Various
interpolation techniques are often used in the atmospheric sciences. One of the simplest methods,
linear interpolation, requires knowledge of two points and the constant rate of change between
them. With this information, you may interpolate values anywhere between those two points.
More sophisticated interpolations are also available in the Data Library. They are often applied
to station datasets with irregular spacing between stations.
Linear Interpolation
Linear interpolation is a method useful for curve fitting using linear polynomials. It helps in
building new data points within the range of a discrete set of already known data points.
Therefore, the Linear interpolation is the simplest method for estimating a channel from the vector
of the given channel’s estimates. It is very useful for data prediction, data forecasting, market
research, and many other mathematical and scientific applications.
Linear interpolation is useful while searching for a value between given data points. Therefore
mathematician considers it as “filling in the gaps” for a given data values in tabular format. The
strategy for linear interpolation is to use a straight line to connect the given data points on positive
as well as the negative side of the unknown point.
Often, Linear interpolation is not accurate for non-linear data. If the points in the data set to change
by a large value, then linear interpolation may not give a good estimate. Also, it involves estimating
a new value by connecting two adjacent known values with a straight line.
Formula of Linear Interpolation
Its simplest formula is given below:
y=y1+(x−x1)(y2−y1)x2−x1
This formula is using coordinates of two given values to find the best fit curve as a straight line.
Then this will give any required value of y at a known value of x.
y=y1+(x−x1)(y2−y1)x2−x1
i.e. y=4+(4−2)×(7−4)(6−2)
y = 112
Day Height
1 0
3 4
5 8
7 12
9 16
Based on this chart, calculate the estimated height of the plant on the fourth day.
Solution: This is an example of linear growth and hence the linear interpolation formula is very
much suitable here. We may take (3,4) as the first data point and (5,8) as the second data point.
Y1=4
X1=3
Y2=8
X2=5
Now, applying the formula:
y=y1+(x−x1)(y2−y1)x2−x1
Substituting the values we have:
y=4+(x−3)(8−4)5−3
y=4+2(x−3)
y=2x−2
Thus for forth day x = 4.
Hencey=2×4–2
Y=6
Non-linear interpolation
Non-linear interpolation can be used to make a smooth curve between two or more points,
though it is slightly more complicated. However, assuming you're decent at math, it should not
be a hard concept to understand. I will first discuss linear interpolation, just to make sure that
you're familiar with it. Please note that, in this tutorial, I will leave much room for optimization;
that is, I will explain the concepts to you, and let you make it faster if you wish.
Timing and Spacing in animation is what gives objects and characters the illusion of moving
within the laws of physics.
Timing refers to the number of frames between two poses, or the speed of action. For example, if
a ball travels from screen left to screen right in 24 frames, that would be timing. It takes 24
frames or 1 second (if you’re working within the film rate of 24 rates per second) for the ball to
reach the other side of the screen. Timing can also establish mood, emotion, and personality.
Spacing refers to how those individual frames are placed. For instance, in the same example, the
spacing would be how the ball is positioned in the other 23 frames. If the spacing is close
together, the ball moves slower. If the spacing is further apart, the ball moves faster.
Squash and stretch is what gives flexibility to objects. The easiest way to understand how squash
and stretch work is to look at a bouncing ball. As the ball starts to fall and picks up speed, the
ball will stretch out just before impact.
As the ball impacts the ground, it squashes before stretching again as it takes off. Please note, the
volume of an object doesn’t change. In the case of the ball, when it is squashed or stretched, the
width and depth need to correspond accordingly.
There’s a lot of examples of “squash and stretch” happening in real life that you may not notice.
For instance, squashing and stretching occurs in the face when someone speaks because the face
is very flexible. In animation, this can be exaggerated. Squash and stretch can be implemented in
many different areas of animation to add comical effect or more appeal, like for the eyes during a
blink or when someone gets surprised or scared.
3. Anticipation
Anticipation is used in animation to set the audience up for an action that is about to happen, and
is required to sell believable movements.
An easy way to think about this is before a baseball player pitches the ball, they first need to
move their entire body and arm backward to gain enough energy to throw the ball forward. So, if
an animated person needs to move forward, they first must move back. Or, if a character is
reaching for a glass on a table, they must first move their hand back. This not only gets up their
momentum, but it lets the audience know this person is about to move.
Other cases where anticipation is used include when a character looks off screen when someone
is arriving, or when a character’s attention is focused on something they are about to do.
As any object moves or comes to a stop, there needs to be a time for acceleration and
deceleration. Without ease in and ease out (or slow in and slow out), movements become very
unnatural and robotic.
As a car moves away from a stop, it doesn’t just reach full speed in an instant. It must first gain
speed. As it comes to a stop, it doesn’t go from sixty to zero in the blink of an eye. Instead, it
slows down until it reaches a complete stop.
The same must be accomplished in animation and the easiest way to accomplish ease in and ease
out is to utilize the principle of spacing. As a character stands up from a sitting position, the
spacing of each pose will be closer together at the start so that they can ease into the movement.
As they stand up, they will ease out of the movement by spacing the poses further apart at the
end of the action. Without this acceleration and deceleration of actions, everything would be very
abrupt and jerky.
Follow through is the idea that separate parts of the body will continue moving after the
character has come to a stop. As a character comes to a stop from a walk, the arms may continue
forward before settling in a down position. This could also be the case with articles of clothing.
Overlapping action (also called “drag” or “lead and follow”) is very similar in that it means
different parts of the body will move at different times. An example of overlapping action is
when a character raises their arm up to wave: The shoulder will move first, then the arm, and
then the elbow, before the hand lags behind a few frames. You can also see this when a blade of
grass waves in the wind. The base moves first and then the rest of the grass follows behind at
different rates, giving it that waving motion.
Additionally, characters who are remaining still need to display some sort of movement (blinking
eyes, breathing, etc.) to prevent the animation from becoming “dead.” This is called “moving
hold.”
6. Arcs
Everything in real life typically moves in some type of arcing motion. Since it's unnatural for
people to move in straight lines, you should adhere to this principle of animation to ensure you
get smooth, realistic movements. The quicker something moves, the flatter the arc and the
broader the turn. The only time something would move in a perfectly straight line is a robot.
If a character is turning his head, he will dip his head down during the turn to create an arcing
motion. You also want to ensure that more subtle things move in arcs. For example, when a
character walks, even the tips of their toes should move in a rounded, arcing motion
7. Exaggeration
Exaggeration is used to push movements further, adding more appeal to an action, and should
always be implemented to some degree.
Exaggeration can be used to create extremely cartoony movements including physical alterations
or supernatural elements. Or, exaggeration can be incorporated with a little more restraint for
more realistic actions. But, even then you can still use exaggeration to make a more readable or
fun movement while still staying true to reality.
So, if a character is preparing to jump off a diving board, you can push them down just a little bit
further before they leap off. Alternatively, you can use exaggeration in the timing to enhance
different movements or help sell the weight of a character or object.
8. Solid Drawing
In 2D animation, solid drawing is about creating an accurate drawing in terms of volume and
weight, balance, shadow, and the anatomy in a pose. With 3D animation, animators need to
think about how to pose out your 3D character rig to ensure there is correct balance and weight,
as well as a clear silhouette.
Avoid “twinning,” which is creating a mirrored pose across to the other side (both arms on hips
or both hands in pockets) because this creates a rather boring and unappealing pose.
9. Appeal
This principle can really come down to adding more appeal (charisma) in many different areas of
your animation, such as in posing. The most obvious example, however, is appeal in the
character design because you want to have a character that the audience can connect with or
relate to, whereas a complicated or confusing character design can lack appeal.
You can find areas on the character to push and exaggerate in order to create a more unique
design that will stick out in your audience’s memory. One example is to simply exaggerate the
jawline or push the youthfulness in the eyes. Either of these can help create more appeal.
Keep in mind that appeal is also required for villains.
Straight ahead action is a very spontaneous and linear approach to animating and is animated
from start to finish, frame by frame. With this, you’ll create each pose of the animation one after
the other. So, if your character is landing on the ground after jumping in the air, you would
create the poses where he is standing, then the poses where he is beginning to kneel down, and
then completely crouched. In other words, you’re really working through the animation as you’re
going to make quick action fluid and dynamic.
With pose to pose, the animation is much more methodical, with just the most important poses
required to properly tell the story. You would animate the character landing on the ground after
jumping in the air by using fewer poses (standing and crouched). This allows for more simple
work and ensures the proportions and timing are correct before you add more intervals later, and
is great for slow, dramatic, or emotional scenes.
Often, these two approaches are used in combination to great effect.
Secondary action refers to the actions that support or emphasize the main action to breathe more
life into the animation and create a more convincing performance. It’s important to remember
that the secondary action should typically be something subtle that doesn’t detract from the main
action happening (perhaps even thought of as a subconscious action). For this reason, dramatic
movements take priority over things like facial expressions.
Let’s say a character is talking to another character in a waiting room. The two of them talking
would be the main action, but if one of them begins tapping their foot nervously, that would be
the secondary action. Other examples would be a character whistling, leaning on a wall, or
crossing their arms while a primary action is taking place.
12. Staging
Staging is how you go about setting up your scene, from the placement of the characters, to the
background and foreground elements, the character’s mood, and how the camera angle is set
up. Staging is used to make the purpose of the animation unmistakably clear to the viewer. You
want to keep the focus on what you want to communicate to the audience (and avoid
unnecessary detail) so they don’t become confused.
shape & object inbetweening
Traditional inbetweening involves the use of a light table to draw a set of pencil and paper
drawings.[1]
The process of inbetweening in traditional animation starts with a primary artist, who draws key
frames to define movement. After the testing and approval of a rough animation, the scene is
passed down to assistants, who perform clean-up and add necessary inbetweening. In large
studios, assistants usually add breakdowns, which define the movement in more detail. The scene
is then passed down to another assistant, the inbetweener, who completes the animation. In
small animation teams, animators will often carry out the full inbetweening process themselves.
Dick Huemer developed this system in the 1920s, and it has become widely used due to its
efficiency. Art Davis is said to be the first Inbetweener.
It is the process of forming a transitional frame between two separate objects. It aims to show
the appearance of movement and evolution of the first drawing into the second. During in-
betweening, there is the formation of a middle frame which we are calling the in-betweens. The
function of the in-betweens is to ensure the illusion of the fluid motion.