CS 488: Lecture 22 – Spotlights and Projective Texturing
Dear students: Today we examine two new lighting effects. First we focus light along a particular direction to produce a spotlight effect. Second we broadcast an image from a light source, just as our projectors broadcast input from a DVD player or our computer. Such textures are not bound to a particular object, like our […]
CS 488: Lecture 19 – Value Noise
Dear students: Algorithms produce visual content that is too perfect. We humans see the artifice and find it distasteful. When we explore the physical world, we see surfaces full of splotches and cracks. To achieve similar imperfections in algorithmic content, we introduce randomness. But pure randomness will take us to the opposite extreme of chaos. […]
CS 488: Lecture 20 – Perlin Noise
Dear students: Last time we examined value noise as a means of adding coherent randomness to too-perfect surfaces to make them feel more natural and less algorithmic. We continue that discussion today, but explore a different noise generation scheme invented by Ken Perlin. The Rise and Fall of Value Noise The algorithm for generating value […]
CS 488: Lecture 18 – Modeling in Blender
Dear students: In game studios, roles are usually divided. There are engineers, artists, UX people, sound people, game designers, managers, and other roles. Each role has their expertise, but they should be familiar with the activities of others. Today, we engineers will explore what its like to be a 3D artist. We will interactive work […]
CS 430: Lecture 8 – Activation
Dear students, Today we take a foray into a technical topic: the mechanics of calling functions. We might think this is information that is pretty well hidden from us when we’re writing in a high-level language. But abstractions leak. The way that functions are called bubbles up into the design of our languages. Having some […]
CS 488: Lecture 17 – Heightmaps
Dear students: We’ve been applying images to existing surfaces. Today, let’s turn things around a bit. Let’s generate a surface using an image. We’ll consider the image to be a grayscale map of elevations, which is sometimes called a heightmap. From this raster, we’ll generate geometry that we can traverse interactively with a camera. Convert […]
CS 488: Lecture 16 – Skyboxes and Environment Mapping
Dear students: Today we pull another treasure out of the bag of tricks that is computer graphics. We add a surrounding environment to our scenes that gives an illusion of immersion. The surrounding scene is made entirely of textures pasted on a simple cube, so it’s cheap to implement. We can also make highly reflective […]
CS 488: Lecture 15 – Extra Extra Texturing
Dear students: Today we visit just a few more miscellaneous topics related to texturing. We’ll examine texturing a cube, dealing with constraints on a texture’s dimensions, and apply textures to produce more discrete shading. Texture Atlas Texturing a quadrilateral is like biking down hill. You don’t have to exert much effort to paste a rectangular […]
CS 430: Lecture 7 – Subprograms and Parameters
Dear students, Programs are recursive. They are built out of smaller chunks of code that are themselves programs. We call these smaller chunks of code subprograms. These subprograms organize our code into coherent pieces, with each piece solving a small computational task and deferring to other pieces as needed. We expect that we’ll write better […]
CS 488: Lecture 14 – Extra Texturing
Dear students: Last time we introduced texturing as a way of adding surface details without adding extra geometry. Textures are effectively our way of defining attributes at the fragment level. Today we extend our discussion of textures with a hodge podge of miscellaneous topics surrounding their use. Interpolation Suppose I have 3 cats at the […]