Course Links

Resources

External

The goal of this homework is to practice creating realistic 3D models in Blender (including lighting, texture mapping, and rendering in Blender). We will also practice ray tracing computations on paper.

Chess piece in Blender

For this part, the goal is to create a realistic chess piece in Blender.

Requirements:

Extensions:

Choose one of the two extensions below.

  1. Lighting and Texture Mapping: Create at least one light source that illuminates the chess piece in a similar way to your photograph, including specular highlights. Think about how to position the light source and/or change its intensity to achieve the desired effect.

    The chess piece should be texture mapped. It's up to you how to do this. You're welcome to find your own wood texture to help with this part (or if your piece is a different material, try to find a texture that matches as closely as possible).

    Render the chess piece and save both a .png file, and a .blend file. Submit both on Moodle.

  2. Exporting to WebGL: A main reason for learning Blender is to build objects that we can bring into our WebGL animations. There are a number of file formats for doing this, but people have mostly converged on GLTF as the preferred format. We will be using a related format with a .glb extension that includes any applied textures right within the file.

    Saving your model is quite easy. From the File menu, choose Export -> glTF 2.0. The entire scene will be saved, so before you export make sure that you have deleted any objects you don't want. If you want to check the contents of your file, you can upload it to the GLTF Viewer made by Dom McCurdy.

    In your web page, you will need to load the model using a process similar to loading texture maps. (The process is also similar in that when opened locally, files will only load properly under the same browser constraints as a texture map. Repl.it doesn't suffer from this limitation.) Take a look at this sample file that shows how to load a particular model. You can fork this project and adapt it to your needs. Note that in addition to the main Three.js script this page also loads a second script (GLTFLoader.js) that performs the model load.

    <script src="GLTFLoader.js"></script>
    

    You should put the GLTF loader script in your folder along with the other files. (Make sure that the loader version matches your version of Three.js, or you may get strange execution errors. It's easiest to copy the files from my example, since Three.js has recently changed the way its modules are loaded.)

    In the end, your goal is to have your own chess piece displayed in an HTML file via Three.js. Save your .blend file, your .glb file, and your .html file (rotating chess piece). Submit all three on Moodle.

Ray tracing

The second part of this homework assignment is a paper-and-pencil exercise related to ray tracing. Instructions here: hw9.pdf. Scan your work (or take a picture) and submit it on Moodle as one file.

Collaboration

For this assignment, everyone should complete the first part (the Blender model) alone. For the second part (the ray tracing calculations) you are welcome to discuss the problem with a partner or partners so long as you fully understand the solution you arrive at. Everyone should write up their own individual solution that accurately reflects their understanding of the problem. You may discuss with people who have been partners on previous homework assignments. Please cite anyone you worked with and/or any resources you used at the top of your assignment.

Submit

Submit your blender file and the rendered image, and a picture or scan of your ray-tracing work.