Previous | Next --- Slide 18 of 21
Back to Lecture Thumbnails
shengx

nice explanation of the code example!

yuanzhec

Can't wait to implement all the cool functions! When will the first assignment be out?

Ashley

First assignment will be out on Sep.10, next lecture.

byungjul

What's the main reason for using OpenGL 2.1 for this homework, instead of using version 3 or 4? because 2.1 is much simpler?

motoole2

To be honest, I'm not entirely sure why OpenGL 2.1 was used here. There are some major differences when introducing OpenGL 3.0, namely deprecating the fixed function pipeline and replacing it with a more programmable pipeline. I would argue it is easier to work with and understand OpenGL 2.1's fixed function pipeline, and probably serves as a better introduction to graphic APIs.

adrian_TA

@byungjul To add on to Prof O'Toole, I want to stress that the point of this class is not to learn OpenGL. In addition, the software that we are writing in this class (DrawSVG, Scotty3D) do not need to push performance to its limits. In our case, it is perfectly fine to stick with "the old way" of doing things as we aren't anywhere near the performance limit.

As I alluded to at the end of the lecture, newer Graphics libraries such as Vulkan and even newer versions of OpenGL are significantly more complex and require much more boilerplate to do the same thing. With early OpenGL versions, the driver does a lot of heavy lifting for us. Recall that all original Xbox games and early Xbox 360/PS3 games were written in a similar style of "fixed function" APIs instead of the highly configurable pipelines you see today. So this type of API still gets you very far.

In fact, because OpenGL support is going to be dropped from macOS soon, the course staff is interested in migrating to a non-OpenGL starter codebase (perhaps we could also try MoltenGL, which is a Metal wrapper for OpenGL). So this might change in future course iterations!

wanshenl

(See also this thread: https://news.ycombinator.com/item?id=18841272)

elenagong

I am totally new to OpenGL, and this code tutorial is very helpful! One problem I had is that I had home brew installed on my machine, and it probably would report error when building. The way to solve the problem is do "brew install glm" before building.