Sources of Computer Graphics knowledge and art

Books


This book is a hollistic view of theory and implementation of a physically based renderer, from generating camera rays to materials, radiometry and volumes. The book is available for free as a web book at the link above.

This book goes into more specific details of implementation for ray traced rendering. It offers problem statements and their solutions with code. It’s past edition is free on the link above.

Game Engine Architecture

The book goes from theory involved in real-time rendering to memory management and organization of implementation. It is very cool for newbies in graphics to get an overview of the game engine, it can help with basics of graphics and understanding possible performance improvements by exploiting game engines. There are multiple editions with introductions to newer practices.

Advanced Animation and Rendering (from theory to practice)

This book is an oldie (from the 90’s) but goldie in the basics of graphics. It can be considered as a standard textbook for students. It goes into some details that can really help you understand the reasons for some problems and solutions in graphcs, like the mathematical reasons for anti-aliasing, theory of microfacets and many more. It covers a lot of ground and also has many pseudocodes for common algorithms. It is definitely an excellent read.

Level of Detail for 3D Graphics

This book is all about LODs and is perfect for starting off with geometry in CG. It goes through mesh simplificaiton and discrete/continuous LODs, practical implementations, terrain structures and various useful algorithms.

Conferences


This is a free conference on various news in everything involving graphics cards: AI, graphics, programming and profiling tools. It is a nice place to hear about technologies that are adopted in the industry and academy.

Websites


This is an amazing website for starting off in graphics. It coveres all the basics for creating a basic realtime renderer with phisically based materials.

Blogs and newsletters


Jason (Rampe?) posts various posts about fractals, cellular automata, dynammic systems, fluids and various other topics. I absolutely love the articles on Strange Attractors.

This blog has various special topics in graphics, math and other areas.

Fabian Giesen writes detailed post series about architectures and implementations. I particularly like his “A trip through the Graphics Pipeline” series that detailes (in healty amounts) how communicaiton and computation in the graphics pipeline of DirectX works.

Kyle Halladay writes about implementations of various specific effects and implementations. I particularly like his “A Pencil Sketch Effect” post which describes the effect implementation and performance tricks in Unity’s shader language.

Andrew Price is very popular for his tutorials and promotion of Blender. Every week or so he publishes a newsletter with various interesting stuff he hears about. Following you may hear about new free tools and extensions for Blender, awesome art projects that fans send him, news about asset libraries (models, textures, HDRs, etc.), new technologies in the industry and many more.

Muzli community is focused around digital design. Every week or so they publish a newsletter with news in the design community, weekly design inspiration, creative UIs and interactions, beautiful and unconventional websites and many more.

Medium is a platform for blog posts on anything and everything. It can have very useful and pleasing tutorials on new technologies (especially useful for deep learning). In your accont settings you can opt-in for a weekly or monthly newsletter on blog posts you might like. Almost always it recommended a post where I learned about a new technology or a useful syntactic trick in Python.

Similar to Medium, this is a good source of tutorials and implementation tricks, but with a heavy focus on Machine Learning. Oftentimes you learn about a new tool that solves some previous problem.

Infinum is a company that developes web and mobile apps in various forms and complexity. They also have a blog which can have useful tips on implementing various tech in mobile apps and web apps.

Course pages


Coursera consists of many various courses, from Physics and Computer Science to Psychology and Medicine. These courses remind me of college courses, but with more interaction via mini-quizzes. Most courses are free, but some require an enrolement fee for later certification. They offer a mobile app that I find most useful as I like to watch courses before going to sleep.

Stanford offers free courses on various topics. The courses also remind me of college, but can get very detailed and require homework. I personally enjoied the “Quantum Mechanics for Scientists and Engineers” course which gave me a taste of what quantum mechanics is all about.

Udacity has various narrow-themed courses that often require a fee. However, now and then a free scholarship is offered for specific courses to a handful of those who can most benefit from it (there is an applicaiton form with a motivation letter). As an undergrad, I was awarded a scholarship for a “Associate Android Developer Fast Track” course, which taught me invaluable skills that helped me prepare for my first student job as an Android developer in Microblink.

For a Croat student reading this, Infinum offers summer courses on various technologies they use day-to-day, like Android, IOS, RubyOnRails, JS and Angular and more. The courses last several weeks, give you the basics for development and in the end you will have created a (example) product. If you are particularly good, they might even offer you a job. There is a quota for each course and there is an entry exam. I was lucky to get into RubyOnRails course where I learned the invaluable skill of creating and deploying a web app, which came in very handy for my college projects.