Browse Source

some typos and improvement viewed together with Afonso

content-update
Chris 3 years ago committed by Christopher Fremond
parent
commit
cb6d08995f
  1. 38
      subjects/rt/README.md
  2. 16
      subjects/rt/audit/README.md

38
subjects/rt/README.md

@ -1,50 +1,50 @@
## rt
There are two ways to render a 3d scene into a 2d image: `rasterization` that basically converts the shapes and geometric to pixels and applies calculations to obtain the color, shadows, refraction, etc... of those pixels. The other method is called `ray tracing` and consists in drawing each pixel with already its color, shadow, refraction, reflection, etc....
There are two ways to render a 3d scene into a 2d image: `rasterization` which basically converts the shapes and geometric figures to pixels and applies calculations to obtain the color, the shadows, the refraction, etc... of those pixels. The other method is called `ray tracing` and consist in drawing each pixel with its color, shadows, refraction, reflection, etc.... already present from the start.
Imagine a camera pointing at a scene, and from that camera it is coming a bunch of rays that bounce from object to object until it reaches the light source (lamp, sun, etc...). That is basically how a ray tracer works.
Imagine a camera pointing at a scene, and from that camera, a bunch of rays are coming, which bounce from object to object until they reach the light source (lamp, sun, etc...). This is basically how a ray tracer works.
In `ray tracing` each of these rays can be seen as a pixel in the image captured by the camera, and recursively the ray tracer will calculate from where the light comes from in that pixel, being able to give that pixel a color with some shadow aspect, some refraction aspect, and so on.
In `ray tracing` each of these rays can be seen as a pixel in the image captured by the camera. Recursively the ray tracer will calculate where the light comes from in that pixel, allowing to give that pixel a color with some shadow aspect, some refraction aspect, and so on.
To understand better how ray tracing works it is highly suggested that you look online for this subject, as it can get quite complicated.
To understand better how ray tracing works, it is highly suggested that you search online this subject, as it can get quite complicated.
Next is an image produced by a ray tracer like the one you should create:
Below is an example of an image which your ray tracer should be able to produce:
![image.png](raytrace.png)
### Objectives
In this project you have to implement the ray tracer method in order to be able to render a computer generated image containing a few objects.
In this project, you have to implement the ray tracer method in order to be able to render a computer generated image containing a few objects.
When building your ray tracer you have to take some points into consideration:
- you need at least 4 simple objects: sphere, cube, plane and a cylinder.
- you need to be able to create at least 4 simple objects: a sphere, a cube, a flat plane and a cylinder.
- your program must be able to change an object location before creating the image. (Example: render a sphere with its center on the point (1,1,1)).
- you have to be able to look at the same scene from different angles by moving the camera/ point of view.
- you also have to implement small light management, which includes: different brightness and shadows.
- you have to be able to look at the same scene from different angles by moving the camera/point of view.
- you also have to implement simple light management, which includes: different brightness and shadows.
As your ray tracer will probably be a bit slow to render high resolution scenes, you should make 4 .ppm images for the auditers to evaluate. The scenarios of these 4 images that you have to create consist of:
As your ray tracer will probably be a bit slow to render high resolution scenes, you should make 4 .ppm images for the auditors to evaluate. The scenarios of these 4 images that you have to create consist of:
- a scene with a sphere;
- a scene with a plane and a cube with lower brightness than in the sphere image;
- a scene with one of each of all the objects (one cube, one sphere, one cylinder and one plane);
- a scene with a flat plane and a cube with lower brightness than in the sphere image;
- a scene with one of each of all the objects (one cube, one sphere, one cylinder and one flat plane);
- a scene like the previous one, but with the camera in another position (thus generating the same image from a different perspective).
All of the images should be in the format of 800x600. But while testing you can use smaller resolution images in order to not wait for a long time.
All of the images should be in the format of 800x600. However, while testing you should use smaller resolution images in order to reduce your rendering time (a 1200x1000 can take up to 40 mins to create).
Another aspect you should consider is that the auditer will have to use your ray tracer, so make it as usable and optimized as possible. You should provide the auditer some documentation.
Another aspect you should consider is that the auditor will have to use your ray tracer, so make it as usable and optimized as possible. You should provide the auditor clear documentation.
#### Documentation
By documentation we mean, the explaining of how does the ray tracer works and how to work with it, for example: how to create an object, how to change brightness in a scene, etc. A new user of your ray tracer, after reading the documentation has to be able to use it without too much guessing work.
By documentation we mean, the explaining of how does the ray tracer work and how to work with it, for example: how to create an object, how to change brightness in a scene, etc... A new user of your ray tracer, after reading the documentation has to be able to use it without much guessing work.
So for this you will have to create a [markdown](https://www.markdownguide.org/getting-started/) file, in which will have to contain:
You will have to create a [markdown](https://www.markdownguide.org/getting-started/) file, which will have to contain:
- Explanation on the features of your ray tracer
- Code examples and explanations on how to:
- create an instance of each object (sphere, cube, plane and cylinder)
- change brightness
- change camera position and angle
- create an instance of each object (a sphere, a cube, a flat plane and a cylinder)
- change the brightness
- change the camera position and angle
### Instructions

16
subjects/rt/audit/README.md

@ -1,28 +1,26 @@
#### Functional
##### Using the ray tracer construct any scene you want, including at least one of all objects. (this can take a while to render, so in the meanwhile you can answer the next questions)
##### Using the ray tracer construct any scene you want, including at least one of all objects. (this can take a while to render, so in the meantime you can skip the first two questions and answer the following ones)
###### Does the image corresponds to the scene you created?
###### Does the image correspond to the scene you created?
##### Move the camera and render the same scene.
###### Does the image corresponds to the same scene, but from a different perspective?
###### Does the image correspond to the same scene, but from a different perspective?
###### Did the student provided 4 .ppm pictures?
###### Did the student provide 4 .ppm pictures?
###### Does one of these images consist of a scene with a sphere?
###### Does one of these images consist of a scene with a plane and a cube with lower brightness than in the sphere image?
###### Does one of these images consist of a scene with a flat plane and a cube with lower brightness than in the sphere image?
###### Does one of these images consist of a scene with one of each of all the objects (one cube, one sphere, one cylinder and one plane)?
###### Does one of these images consist of a scene with one of each of all the objects (one cube, one sphere, one cylinder and one flat plane)?
###### Does one of these images consist of a scene like the previous one, but with the camera in another position (thus generating the same image from a different perspective)?
###### Considering all of the previous pictures, can you see any changes in brightness?
###### Considering all of the previous pictures, can you see shadows from the objects?
###### Did the student provided documentation for the ray tracer on how to use it (create elements, change brightness and move the camera)?
###### Did the student provide clear documentation for the ray tracer on how to use it (create elements, change brightness and move the camera)?
#### Bonus

Loading…
Cancel
Save