W drugiej części artykułu o projekcie „małego rysownika” zajmiemy się przede wszystkim implementacją obsługi programów cieniujących (tzw. shaderów). Oczywiście nie będziemy implementować całego nowego języka, a tylko sam mechanizm w postaci odpowiednich funkcji. Omówimy też implementację systemów oświetlenia takich jak np. cieniowanie płaskie czy cieniowanie Phonga. Ponadto dodamy obsługę map normalnych, co pozwoli na odwzorowanie wypukłości tekstury obiektu i istotnie poprawi jakość otrzymanej grafiki.