F1, F2, F3 przełącza odpowiednio na światło point, Sun, spot.
Czemu torusy nie rzucają cienia na płaszczyznę?
Kółko myszki zbliża i oddala kamerę, a przesunięcie myszki przy naciśniętym lewym przycisku — obraca kamerę.
opcje linkera dla Code::Blocks w systemie Windows: -lglfw3 -lglew32 -lopengl32 jak na rysunku
(6
punktów)
Dodaj do swojej planety z księżycem Słońce. Niech planeta obraca się wokół Słońca i wokół własnej osi, a księżyc obraca się wokół planety i własnej osi.
Umieść w centrum Śłońca żródło światła point, żeby oświetlało ono planety. Zdefiniuj materiał Słońca, tak żeby ono „świeciło”.
Czemu umieszczamy światło point, a nie Sun?
Dla wszystkich trzech sfer wykorzystaj te same wierzchołki.
Dodaj do sceny płaszczyznę z teksturą gwiezdnego nieba. Ustaw płaszczyznę tak, aby nie było widać jej krawędzi. Na płaszczyźnie-niebie nie powinno być widocznym ani odbicie zwierciadlane, ani tłumienie światła. Podopowiedź: wykorzystaj dla renderowania nieba TextureCameraProgram z poprzedniego ćwiczenia.
Wektory normalne na sferze: gdzie , .
Czynności:
Zamień torus na sferę — jak zwykle. Zwróć uwagę na wektory normalne.
Dodaj trzecią macierz model_matrix_ oraz trzecią macierz normal_matrix_, uzupełnij procedury Move() oraz Draw().
Dodaj nowe tekstury.
Dodaj drugi i trzeci obiekt texture_ w modelu. Uzupełnij procedurę Draw().
Dodaj trzeci materiał oraz odpowiednią funkcję SetMaterial(). Uzupełnij procedurę Draw(). Materiał Słońca powinien emitować światło.
Płaszczyzna. Skopiuj model z poprzedniego zadania. Skompiluj program do renderowania płaszczyzny wykorzystując shadery z poprzedniego ćwiczenia. Ustaw renderowanie płaszczyzny tym programem w metodzie Window::Run().
Obserwuj odbicie zwierciadlane na Słońcu, planecie i księżycu. Jeżeli nie widzisz żadnych nieprawidłowości (przykładowo: odbicie „nie patrzy” w kierunku światła), wszystko jest gotowe. Przenieś źródło światła do środka Słońca.
Ostatnie szlify mistrza. Wyzeruj w materiałach planety i księżyca odbicie zwierciadlane. Podbij odbicie ambient, aby były widoczne nieoświetlone części.
Termin oddania zadań:
klasowych: na zajęciach. Zadania, oddane po terminie, warte są połowę punktów
domowych: do momentu, gdy się pojawi następne zadanie. Zadania, oddane po terminie, warte są 0 (słownie: zero) punktów