Find Jobs
Hire Freelancers

Interactive 3D Viewing

$10-30 USD

Completed
Posted about 7 years ago

$10-30 USD

Paid on delivery
Implement an interactive system for viewing a 3D object. The implementation will let you get more familar with the theories of 3D transformation and camera manipulation and the use of the two OpenGL stacks, GL MODELVIEW and GL PROJECTION, with relevant gl or glu functions. Camera manipulation includes two steps. The first step is to setup the location and orientation of a camera, which aims to build a rigid 3D transformation between the world coordinate system and the camera coordinate system. This is also called external parameter setup. The GLU function gluLookAt() can be used to form the rigid transformation matrix.s. Note that the stack that gluLookAt() manipulates is GL MODELVIEW because it is about a 3D transformation rather than a projection. You will need to implement a function called myCameraLookAt() as an alternative of gluLookAt(). As described in the lecture slides, you can first compute the u, v, n axes and translation vector t, and then construct the rigid transformation matrix ( ux uy uz tx vx vy vz ty nx ny nz tz 0 0 0 1 ) The second step of the camera manipulation is to decide a viewing volume, equivalently, a projection matrix. This is also called internal parameter setup. There are two popular projection modes— orthographic and perspective. In this project, we assume that the camera is a perspective (pinhole) camera. You can use gluPerspective() to setup internal parameters. The system allows a user to use the keyboard to change the camera coordinate system and the projection matrix. Specifically, four keys are used to change the input of gluLookAt() or myCameraLookAt() as follows: • i – move the camera toward the object • m – move the camera against the object • j – move the camera to its left • l – move the camera to its right The amount of a movement can be set as the 20% of the length of an object. For example, is the length of an object is 10, you can set each movement in the unit of 2. Two keys are used to change the input of gluPerspective() as follows: • d – increase the fovy 10 degrees • s – decrease the fovy 10 degrees The glut library provides the implementation of drawing of a few of 3D objects. For example, you can draw a solid or wire cube using the following glut functions: void glutSolidCube(GLdouble size); void glutWireCube(GLdouble size); To have the focus on the 3D viewing, you can start this project using the glut 3D object cube. But the number of glut 3D objects is limited, and the access methods of these objects are also limited. In general, a programmer defines a 3D object as a collection of faces (i.e., polygons), where each face consists of a number of vertices. With such a definition of an object, a programmer can manipulate every face of the object. So, after you pass the test of your code based on the glut 3D object cube, you will need to define an 3D object and test the code on the programmer-defined object.
Project ID: 13476700

About the project

7 proposals
Remote project
Active 7 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
Awarded to:
User Avatar
Hello, Sir I already have the project ready for you. Please contact me and I'll send the files. If any changes required I will do it. Thank you.
$25 USD in 1 day
5.0 (8 reviews)
3.0
3.0
7 freelancers are bidding on average $50 USD for this job
User Avatar
Hello, I am a guru with opengl and C... I will do it perfectly in 1 day ... look at my previous work. I will do a genuine version for you. Best regards!
$40 USD in 1 day
5.0 (69 reviews)
6.4
6.4
User Avatar
Hello, expert in OpenGL programming and Computer Graphics here. I can implement for you an alternative to the gluLookAt function and a way to move the camera using the keyboard as required. Finally, I will implement a slightly more complex 3D object manually (without using the predefined glut objects). Thanks and let me know if you are interested to work with me, Paul
$120 USD in 3 days
5.0 (62 reviews)
6.0
6.0
User Avatar
Hi, I am experienced in C and OpenGL. I can finish this in one day. Please contact me.....................................
$50 USD in 1 day
5.0 (48 reviews)
5.3
5.3
User Avatar
Hey, I'm interested in your project. Please send me a message so that we can discuss more...................
$50 USD in 5 days
5.0 (8 reviews)
3.1
3.1

About the client

Flag of UNITED STATES
Naperville, United States
5.0
4
Payment method verified
Member since Feb 11, 2017

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.