Also, just to make sure I understand the difference between Forward Euler and Symplectic Euler.

$$ \ddot{u} = \Delta u $$

- Forward Euler

$$ u_{k+1} = u_k + \tau v_{k} \\ v_{k+1} = v_k + \tau \Delta u_k $$

- Symplectic Euler

$$ v_{k+1} = v_k + \tau \Delta u_k \\ u_{k+1} = u_k + \tau v_{k+1} $$

It seems the only difference is the order to update $u$ and $v$?

What is numerical damping?

I'm assuming $A(S)$ is the normalized area of $S$?

Got a bit confused. I understand this is inconsistent, but why is it unbiased? Can anyone explain?

I guess that's a typo.

Why there isn't a $ cos $ term for the outgoing radiance similar to the $ cos \theta$ term for the incoming radiance?

Shouldn't $\Phi$ be radiant flux?

I think the visible light wavelength should be $390 - 700$ nm, which converts to $390 - 700 \times 10^{-9}$ m.

Irradiance is number of hits/ (given_time * given_area). So irradiance is total hits from all direction. Why in the above equation is irradiance said to be a function of direction?

I find some diagrams summarizing radiant energy, radiant flux, radiant intensity, irradiance and radiance here.

There is a lot of debate about this question: https://en.wikipedia.org/wiki/Full-spectrum_light#Use_in_seasonal_affective_disorder.

Yes, you're both absolutely right---this is the "bug" I mentioned in class. Everything (including the picture on the bottom) makes sense if you think of g as the percent reflected, rather than the percent absorbed. (Of course, these two quantities are complementary, as pointed out by @shhhh.)

@Haboric: Correct; this algorithm will generate too many samples in the direction of the corners, and too few in the direction of the axes.

Looks like a typo; probably this slide was created by duplicating the previous slide, and someone (not me!) forgot to delete the "=1".

Given a direction, the number of points within the bounding box lying in this direction is different.

Why does $CDF(b)$ equal 1?

Is p(w) a pdf here? What is the range of w ?

Thanks!

It's because it makes **clipping** easy, i.e., because it makes it easier to determine if a triangle is outside the view frustum, and also much easier to actually compute the geometry of clipped (i.e., partial) triangles.

Correct. :-)

No, it's probably because blending is not the most common mode for drawing. So, (i) the user likely doesn't expect it to be turned on initially, and (ii) drawing operations with blending operations turned on still costs more (the blending operations are computed, even though the result is the same).

Why do we transform view frustum to unit cube? Is it because it will make rasterization easy?

The split edges shouldn't be counted as new edges :-)

Is it because the rasterization pipeline does not support the penetration of transparent triangles well that OpenGL turns off GL_BLEND by default?

Yes, if the point is inside the triangle then it's a convex combination. In general, it's an affine combination.

Great!

I might be a little pedantic here, but technically it is a convex combination right? Or is there a case where $\alpha, \beta$ and $\gamma$ can be negative? I thought since they are ratios of areas they have to be non-negative.

Worked it out, and got it finally! Thank you :)

@nmrrs: Modern GPUs are responsible for implementing *some* algorithm whose output passes the diamond test. That does not mean this algorithm has to proceed by walking through the image pixel-by-pixel checking the diamond geometry explicitly.

The reality of the situation is that there is still a little flexibility in what vendors are forced to implement. Roughly speaking, anything that's not spelled out in black-and-white in the OpenGL spec (somewhat like our own Scotty3D User Guide) is up to the developer to decide (much like your last assignment!).

Distance functions that are based on closed-form expressions (like $x^2 + y^2 + z^2 - r^2$) are very uncommon, because it is hard to describe interesting geometry this way. The example above is perhaps an exception, but it takes a huge amount of work to design scenes this way, and the rendering performance is still rather poor compared to an optimized mesh-based renderer.

However, the advantage is that there are potentially fewer "geometric aliasing" artifacts. For instance, if you zoom in on a mesh of a sphere, eventually you will see a blocky polygonal boundary. Not true with the implicit description above. Also, it is easier to draw fractal surfaces with infinite detail if you're willing to ray trace implicit surfaces. (But again, controlling this fractal detail is very difficult, and performance is typically not great.)

Yes. Thank you.

In response to the first question, it's when the total energy of the system decreases in a way not modeled by the system. Using the pendulum example, the pendulum will decrease in speed over time with backward euler, and eventually come to rest at 0, which is not the expected behavior of a frictionless system with no air resistance.

For the second question: you're correct.