7 ms·
Introduction to Computer Graphics Online Textbook (2018)
- jpm48 6y agoWow OpenGL 1.1 in 2018! then to Three.js which doesn't use any of the 1.1 API. Weird.
- cellularmitosis 6y ago“However, modern OpenGL in its pure form has a very steep initial learning curve, and it is really not a good starting place for someone who is encountering 3D graphics for the first time.“
- Agentlien 6y agoI remember when OpenGL 4.0 came out. It was amazing, I loved it, but it was certainly a big change and I am glad it's not what I had to learn to begin with.
- Reelin 6y agoJust imagine what would happen if you tried to start a newcomer with Vulkan. (http://sol.gfxile.net/temp/hellotriangle.png http://sol.gfxile.net/temp/hellotriangle.png)
- thefragen 6y agoI highly recommend this wikibook on the topic of CG progamming: https://en.wikibooks.org/wiki/Cg_Programming https://en.wikibooks.org/wiki/Cg_Programming
- pengaru 6y agoAren't you conflating the field of computer graphics programming with the Cg programming language?
- djmips 6y agoIf you take a glance at the linked document, as I just did, it appears to cover the hardware graphics pipeline which is more than just a Cg programming language reference. Cg as a language is more or less the same as any other high level shader language of the same era.
- pengaru 6y agoI did look at the linked document and poked around, it was all Cg (the programming language) centric. Which obviously overlaps substantially with computer graphics, but isn't what I'd consider an ideal introduction to the field unless the goal is to work with the Cg language.
- odyssey7 6y agoChapter 2, Section 7: “SVG: A Scene Description Language,” looks interesting.
- phendrenad2 6y agoI think that there's a disconnect between academia and industry in the field of computer graphics. This is probably because professors usually mistake profusion for broadness. You can spend one chapter each on: HSV colors | Bezier and NURBS curves | Vector (font) scaling/rotating/etc. | Scene graphs | OpenGL lines API | OpenGL rectangles API | OpenGL texturing API | OpenGL rotation API | OpenGL colors API | GLUT (busywork to get 3D graphics on the screen) | JOGL (busywork to get 3D graphics on the screen) | SVG file format | 3D Model/View/Projection matrices | linear algebra | Lighting (from an OpenGL 1.0 perspective, which misses a lot of lighting theory) | OpenGL material API | OpenGL MipMaps API | More scenegraph, this time with camera and lights | How to do a bunch of stuff you already learned, this time in Three.JS instead of OpenGL | How to do meshes, in Three.JS instead of OpenGL | How to do fixed-function shadows, this time in Three.JS instead of OpenGL | The programmable pipeline (finally) | WebGL busywork to get something on the screen | GLSL syntax | texture units | 2D transforms, this time in GLSL instead of fixed-function | Lighting in GLSL | Textures in GLSL | Multiple framebuffers | deferred shading | ray tracing | path tracing and feel as though you've taught a lot of stuff, but in reality it's not a honest simplification of later graphics knowledge. I think that a better approach would be (1) Explain 3D math, linear algebra, etc. (2) Explain raytracing algorithms, show the student some simple raytracing code (3) Explain the basics of modern GPU-based rendering (4) Show the student some simple software-based raster rendering, which mimics what the GPU does (5) Explain the shader pipeline (6) Using WebGL (no need to teach three.js and OpenGL 1.0 also!), show the student all the various principles of 3D graphics, going into theory when appropriate. Scenegraph? That's irrelevant. GLSL syntax? We don't need a comprehensive explanation, the documentation already does a better job than we would. We just need to cover enough to let them know what's possible. HSV color? Bezier curves? MipMaps? OpenGL 1.0 API in gory brutal detail? GLUT? JOGL? Those deserve a mention but not an entire section.
- Agentlien 6y agoI felt very much the same. Especially the lack of focus on understanding the math. Especially linear algebra. Yes, it shows how to build a classic 4x4 matrix, but I feel there's a lot more which needs to be said about it when teaching this stuff to beginners. Just looking at the chapters and reading a bit here and there doesn't give me a very good feeling. I don't like the approach, it feels like it focuses on the wrong things in the wrong order.
- banachtarski 6y agoI would not recommend this to aspiring graphics engineers today. There is far too much here that is completely disjoint from how computer graphics is done pretty much everywhere (CAD industry, games, film, etc).
- Kilonzus 6y agoWhat text would you recommend to aspiring graphics engineers?
- banachtarski 6y agoI'm very partial to "Real Time Rendering"!