Difficulty |
2 |
Prerequisites |
|
Reading material |
Warning
|
Note: before you implement this extension, you need to have at least implemented some kind of 2D material and 3D material, otherwise material transformations will be useless. |
Material transformers should not be confused with primitive transformers. Primitive transformers change the shape of primitives, i.e. they scale, move and rotate 3D objects. Material transformers only transform the materials themselves.
1. 2D
1.1. 2D Material Transformer
For this extension, you will implement the Material2DTransformer
.
It is able to perform arbitrary transformations on 2D materials.
Implement
|
1.2. 2D Translation
Use
|
1.3. 2D Scaling
Define a function
|
1.4. 2D Rotation
Define a function
|
2. 3D
2.1. 3D Material Transformer
Implement
|
2.2. 3D Translation
Define a function
|
2.3. 3D Scaling
Define a function
|
2.4. 3D Rotation
Define functions
|
3. Evaluation
Create one or more scenes that together show that each of your transformations work. |