How do artists simulate motion of muscle, since these seems uncontrollable by the rig?

Can all inverse kinematics be solved with convex optimization?

What if we have multiple solution after solving the equation?

Can we consider the images on the right column a combination those of previous two columns?

If we take reflection rate as the contribution sample, how would the rendering be affected by this?

What kinds of strategies work best for these two cases?

Why does the 1-alpha image has a black whole in the middle?

@riceroll If you correct the typo mentioned above, then you can have a material that reflects 100% of the light, but not necessarily in the specular direction.

@mdsavage Right; a general rule about physics is that you can always cook up exotic scenarios where some assumption doesn't hold. There's a very nice discussion of Helmholtz reciprocity, as well as a good list of references, in Chapter 6 of Eric Veach's (Academy Award-winning) PhD thesis.

@yongchi1 Yes, thanks; that's a typo indeed.

@riceroll Yes, as mentioned in the footnote, we ultimately care about constants such as the energy per hit. Here we're just trying to give some basic intuition that differentiates between the different quantities.

To my understanding, only for glass surface, the distribution function would equal to one, otherwise, there would be energy reflected to other directions.

I was a little confused by the difference between the physical interpretations of radiance and intensity. Intensity is energy per unit time per unit solid angle.

We should also take the average hit energy into consideration right?

@intelligentDungBeetle You tell me! ;-)

@IntelligentDungBeetle Yes, at least as far as this slide is concerned. Later in this lecture we break light down further and further until we have spectral radiance, which captures basically everything you could possibly want to know. (At least according to geometric optics.)

@intelligentDungBeetle The point of this slide is that a *spectral* description of color is far more accurate than a low-dimensional color model like RGB or CMYK. The question of emission, absorption, etc., spectra is just a matter of what phenomenon you're trying to describe (are you modeling a light bulb? or reflected light? Etc.)

@Sleepyhead08 Right, the most fundamental thing (as noted by @merc) is to convert from RGB to CMYK, since the latter corresponds to the color model of printed inks. Of course, it's a lot more complicated than this to get an accurate reproduction: the color space should really be tailored to the specific inks you'll be printing with (and printers often do come with special profiles for this purpose), as well as the way the ink interacts with the color and chemistry of the paper, as well as the lighting conditions under which the printed piece will be viewed. You also need to make sure you have a display that's calibrated to show these colors properly. In general, color calibration is hard!

@kc1 Thanks! Indeed. I actually have a fun quiz planned that didn't make it in this semester...

@Eaglee Yeah, the Bridson book is a good place to start once you've taken 462.

@tcl1 I don't recall if splitting/merging was handled in this paper, but it was certainly a subject of the author's subsequent work.

@Kuragama Really depends on the particular phenomenon of interest; the two papers above provide a couple examples.

@tpan496 An incompressible fluid is something like water that essentially doesn't change volume. As a result, you know that its velocity field must be divergence-free (can't compress or expand), and this assumption can be used to simplify equations or come up with alternative representations that are more amenable to computation. A good example of compressible fluids are gases, which easily change in volume (consider, for instance, the ideal gas law...). Here your solver may have to accommodate effects not seen in incompressible fluids, such as formation of "shocks." Here's an earlier paper on compressible flow simulation in graphics, and a more recent one.

@zpb The difficulty *is* all about the difficulty of solving them numerically (stability, accuracy, etc.). These almost always translate directly to more computational effort. So it's not just a matter of "thinking harder"; it really does come down to more time steps, finer grids, more nonlinear equations to solve, etc.

@echo No, it's just a typo (and a pretty bad one, since it suggests you might be differentiating the function $u^2$ instead of $u$).

@mdsavage Yes indeed. Unsurprisingly, that's the way physicists often do it! Also unsurprisingly, the mathematicians are typically not satisfied with this kind of argument. :-)

@silentQ Fracture simulation that exactly predicts real-world behavior is (for all practical purposes) essentially impossible for the reason you mention: real physical materials have imperfections, and one will generally not know where these imperfections are *a priori* (unless, perhaps, you take some extremely meticulous CT scan, say). So, as you say, you might incorporate some model of randomness; ideally this model should at least match statistical assumptions about the material or phenomenon being simulated.

@adam For physically based animation, the boundary conditions are typically just given in the model of the physical phenomenon you're trying to simulate. (The question of how to properly build these models is indeed a tricky one...)

@siliangl I think that's just a typo; not sure what I was writing there!

@merc You're right, it's quite a zoo out there! A good place to start is Robert Bridson's book on fluid simulation in computer graphics, and from there, you can start taking a look at recent graphics papers. In general it's more than just runtime vs. accuracy; there are particular fluid phenomena you care about, or particular temporal and spatial scales where you need to resolve the solution. For instance, a technique for simulating small water droplets (where you care a lot about surface tension, adhesion, etc.) might look very different from one that simulates large crashing waves. Likewise, methods for simulating water may look very different from methods for simulating viscous, coiling liquids like honey.

@ljelenak It's certainly possible to track all quantities on an Eulerian grid, but modern methods often mix particles and grids. In fact, this has been going on for a very long time; consider for instance the Particle in Cell (PIC), which doesn't *quite* combine Eulerian and Lagrangian in the sense we're talking about here: there, the grid is used to compute a quantity (pressure) at each time step, but information is propagated using particles. A similar idea that became quite popular in graphics is FLIP. An example of a real hybrid method is the one mentioned above (particle level set method) which uses a mixed Lagrangian/Eulerian representation to actually represent the fluid domain itself. Outside of graphics (and typically for a somewhat different class of problems), there are so-called Arbitrary Lagrangian Eulerian (ALE) which nicely combine the two points of view. ...The list goes on and on!

@ericchan A classic paper from graphics to look at is Practical Animation of Liquids by Foster and Fedkiw, which introduced the *particle level set method*. The rough idea is to track both particles (Lagrangian) and a level set function on a grid (Eulerian), and use the particles to correct errors in the grid, but only near the liquid-air interface (where errors are most visible).

@yongchi It does work! Absolutely. You can say what the final value is, and what the incoming derivative at that final value is. (Especially if there's no PDE involved, i.e., no condition to satisfy on the derivatives of the function.)

@cou Whoops; I realized you're just asking about the sign! Yes, that's a sign error. But it's important to know that different people and different communities (physicists, geometers, etc.) will adopt opposite sign conventions for the Laplacian. For some it's positive semidefinite; for others it's negative semidefinite. So, just like the symbol used for the Laplacian, you have to be careful! :-)

@cou Suppose I have a function $f(x)$, but can only evaluate this function as a "black box," i.e., I don't know the explicit form of the function, but can only ask for its value at given points. How can I approximate its first derivative? Well, assuming the function is differentiable, the definition of the derivative is

$$ f^\prime(x) := \lim_{h \to 0} \frac{f(x+h) - f(x)}{h}$$

So, if I've sampled the function $f$ onto a regularly spaced grid with values $f_1, f_2, \ldots$ separated by a small but *fixed* distance $h$, I can approximate the derivative as

$$ f^\prime_{i+1/2} := \frac{f_{i+1}-f_i}{h}. $$

The strange index on $f'$ reflects the fact that this gives me an approximation of the derivative at the location "$i+1/2$", i.e., halfway between $i$ and $i+1$. Now suppose I want to approximate the *second* derivative. Well, I now have another grid of regularly sampled values $f^\prime_{1/2}, f^\prime_{3/2}, \ldots$, again spaced by a distance $h$, and so I can again apply the same approximation to get

$$ f^{\prime\prime}*i := \frac{f^\prime*{i+1/2}-f^\prime_{i-1/2}}{h}. $$

If I now plug in the expression for $f'*{i+1/2}$ and $f'*{i-1/2}$ into the expression for $f''_i$, I get

$$ f''*i := \frac{\frac{f*{i+1}-f_i}{h}-\frac{f_{i}-f_i-1}{h}}{h} $$

which simplifies to just

$$ f''*i = \frac{f*{i+1}-2f_i+f_i-1}{h^2}. $$

In other words, in 1D, I can approximate the 2nd derivative by adding the value of my two neighbors, subtracting twice my value, and dividing by the square of the grid spacing.

Suppose now that I want to approximate, in 2D, the Laplacian

$$ \Delta f = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} $$

All I have to do is repeat this procedure in both the $x$ and $y$ directions. In the end, the formula will say: add up the values of the four neighbors (top, bottom, left, and right), subtract *four* times the value at the center (since both $x$ and $y$ directions each contribute two instances of the middle value), and divide by $h^2$. That's the expression above says.

@HelloWorld, @jkalapos As I mentioned to @BellaJ, you can find all the details of how this algorithm works here.

@BellaJ It's a little hard to see from the picture, but the left picture is just some particles that track the motion of the smoke, whereas the right picture also shows a collection of polygonal curves that describe the physics of the smoke (namely, the distribution *vorticity*, which is something like the amount by which the smoke is "swirling around"). You can find the original paper here.

The definitions suggested here actually capture the general case quite nicely. For any vector space $X$, a set $U \subset X$ is convex if for every pair $x,y \in X$ the points $(1-t)x + t y, t \in [0,1]$ are all contained in $X$. A function $f: X \to \mathbb{R}$ is convex if for every pair $x,y \in X$, $f((1-t)x + ty) \leq (1-t)f(x) + tf(y)$. These statements make sense for any vector space; not just $\mathbb{R}^2$ or $\mathbb{R}^3$, but also for (say) any space of functions. The definitions can be extended even further by replacing the straight line segment on a flat domain (like the plane) with a straight or "geodesic" arc on curved domain (like an arc of a great circle on the sphere); here you might say that a set or function is "geodesically convex." But really, most of the basic intuition is already provided by the simple 2D examples above.

@jzhanson Yes, you start to get the feeling that the question of implicit vs. explicit representations, Eulerian vs. Lagrangian discretizations, and so forth, are fundamental themes in computer graphics and numerical methods. And that's absolutely true---that's why we teach it! ;-). As far as specific examples of Eulerian vs. Lagrangian, you've nailed the most important ones from geometry, animation, and rendering. Conspicuously missing, perhaps, is the use of Lagrangian representations in image processing. Though surely there are examples of this kind of thinking (e.g., in motion estimation), for "meat and potatoes" image processing the Eulerian representation (pixels on a grid) really is hard to beat.

How is this different from a BVH?

So would radiant energy be considered the least amount of information and radiant flux density be considered the most amount of information?

This was a really cool lecture. If you have more time next semester I think it could use another lecture since we just scratched the surface.

If we do not have a uniform grid, but instead a tessellation of other shapes/polygons, would we be performing Eulerian if we update the position of each face/vertex? For example, in a triangle mesh, it is very easy to find the neighbors of any given vertex, so in this way it is not like polygon soup. If we update each vertex position to simulate a fluid, would we be using Eulerian or lagrangian?

Is fire simulation here using Lagrangian or Eulerian method to simulate?