Анотация
Целта на тази учебна дисциплина е придобиване на теоретични знания и практически умения в областта на компютърната графика – диалоговите графични системи, геометрично моделиране, алгоритмите за визуализация, създаването на ГПИ и др. Практическа задача за студентите е изграждане на проект със средна сложност – диалогова система за графично моделиране с графичен потребителски интерфейс. Придобитите знания и умения са полезни както при разработката на подобни системи, така и при използването на такива в практиката.
КОНСПЕКТ (виж видео лекциите в ClassRoom и презентациите в помощните материали в края на тази страница)
Изисквания към проекта
Всеки студент трябва да разработи проект по Компютърна графика. Проекта трябва да представлява диалогова система за графично моделиране (графичен редактор) с примитиви от векторен тип. Диалоговата система за графично (2D) моделиране трябра да бъде със следните функционални възможности:
- Изграждане на изображение от различни графични примитиви (векторни) – например точки, отсечки, многоъгълници, елипси и др.; (2.5 точки)
- Визуализация на примитивите на базата на техните визуализационни характеристики като цвят, дебелина на линия, прозрачност и др.; (2.5 точки)
- Указване на графичен примитив от изображението; (2.5 точки)
- Манипулиране с графични примитиви – например, преместване, завъртане, мащабиране и др.; (2.5 точки)
- Създаване на структура на изображението чрез йерархично групиране, т.е. създаване на групи от примитиви и/или други групи; (5 точки)
- Манипулиране с групи – например, преместване, завъртане, мащабиране, различни видове разгрупиране и др.; (5 точки)
- Различни начини за определяне на характеристики на обектите от изображението – например задаване на цвят чрез името му, именуване на обектите от изображението и др.; (2.5 точки)
- Различни начини на задаване на операциите от потребителя – например чрез меню, бутони, мишка и др.; (2.5 точки)
- Поддръжка от богат набор от операции за редактиране на изображение като добавяне на елементи, отстраняване на елементи, копиране, актуализация на характеристики, йерархично групиране и разгрупиране и др.; (2.5 точки)
- Различни възможности за избор на обект(и) от изображението; (2.5 точки)
- Използване на многопрозоречна техника за поддръжка на няколко изгледа на едно и също изображение, както и за работа с няколко изображения едновременно; (бонус 5 точки)
- Различни възможности за четене/запис на модела на изображението от/на външен носител. (10 точки)
Вие можете да:
- използвате произволен език за програмиране (за предпочитане обектно ориентиран);
- използвате произволна среда за разработка;
- използвате произволна операционната система;
- работите самостоятелно или в групи от двама човека (на изпита всеки решава самостоятелно задачата);
- използвате произволна графична библиотека;
- използвате стартовия проект (даден е в помощните материали), като основа за създаване на собствен проект;
- обсъждате проблема, изискванията и материалите с всеки;
Вие НЕ можете да:
- използвате проекти (или части от тях) създадени от други лица за целите на този курс, включително създадени в предишни учебни години;
- използвате проекти (или части от тях) създадени от други лица за сходни цели;
- използвате код, който не сте реализирали собственоръчно (с изключение на код от стартовия проект);
Критерии за оценяване
Оценката на проект се формира по формулата: (20 + Брой точки)/10. Оценката се получава на практическата част от изпита при решена задача и при представен/защитен проект. Задачата се състои в промяна на разработения проект в определена насока (например добавяне на нов тип примитив и др.). Всеки който получи 3.00 или повече на практическата част има право да се яви на теория. Теоретичния изпит е под формата на тест с 20 затворени въпроса (всяки верен отговор носи 2 точки, а всеки грешен 0-ла). Оценката от теория се формира по същата формула, както тази от практическата част. Двете оценки практическа и от теория формират крайната оценка по предмета. Ако една от оценките е слаб, то студента трябва да се явяви на поправка (следваща дата).
Работа през семестъра и предаване на проекта
Всеки судент е длъжен да работи по проекта си през семестъра. Работата задължително става с използването на GitLab сървъра на ФМИ (повече информация за достъпа и начина на използването на тази система за контрол на версиите вижте ТУК).
Задължително е в хранилището да бъдат качени всички съществени промени от началото на развитие на проекта до окончателното му завършване. Всеки решава дали да изпраща промените (commit) си в сървъра по-често или по-рядко, но задължително по всеки проект трябва да има поне 4 commit-а в течение на семестъра. Наличието или липсата на такива регилярни версии, както и конкретното съдържание на кода на проекта може да окаже влияние върху общия брой на точките, които ще получите. Работата по проекта може да продължи до изпита (както между изпита и евентуалната поправка) и съответно качва промени в хранилището да продължи.
Задължително е проекта да се намира в хранилището, като той трябва да е във вид готов за сваляне и компилация. Проекти не отговарящи на изискванията няма да бъдат проверявани и оценявани.
На изпита всеки ще използва последното състояние на работното копие, като след решение на задачата трябва да я качи като нова версия в хранилището.
Проектите подлежат и ще бъдат проверявани автоматично и ръчно. Автоматичната проверка включва (но не се ограничава само до) използване на системи за автоматизирана проверка за плагиатство (т.е. преписване от ваши колеги и/или от чужди проекти в Интернет). Ръчната проверка представлява преглед и експерементиране с проекта от страна на преподавател. При установяване на плагиатство или съмнение за такова точките на съответните студенти ще бъдат драстично намалени (пропорционално на процента на "взаимстваните" части от код), в допълнение на това ще бъде публикуван списък с провинилите се студенти, както и ще се вземат всички други мерки в съответствие с Регламента за реакция при нечестни прояви.
Важно за изпита
На изпита всеки студент се явява, ако е изпълнил всички изисквания по време на семестъра в срок (предал е проекти и др. задължителни за съответната дисциплина курсови работи, съгласно изискванията). Всеки задължително трябва да носи студентската си книжка надлежно попълнена и заверена от учебен отдел за съответния семестър. Студенти не отговарящи на условията няма да бъдат допускани до съответната изпитна дата.
Литература
- Д. Димов, А. Пенев, "Ръководство за упражнения по компютърна графика", Пловдивско унуверситетско издателство, 2002;
- Д. Димов, "Компютърна графика", Пловдивско унуверситетско издателство, 1999;
- Darrell Hajek, 3D Modeling: Blender Basics by Example, CreateSpace Independent Publishing Platform, 2018, 178 pages, ISBN 978-1717540492;
- A. P. Godse, Computer Graphics, Technical Publications, 2009, 564 pages, ISBN 8-184-31737-9;
- Peter Shirley, Steve Marschner, Fundamentals of Computer Graphics, A K Peters, 2009, 752 pages, ISBN 1-568-81469-0;
- John Vince, Mathematics for Computer Graphics (3rd Edition), Springer, 2010, 293 pages, ISBN 1-849-96022-4;
- Sumanta Guha, Computer Graphics Through OpenGL: From Theory to Experiments, CRC Press, 2010, 858 pages, ISBN 1-439-84620-0;
- Д. Мекеров, Линейна алгебра и аналитична геометрия: За студентите от ПУ Паисий Хилендарски, Унив. изд. Паисий хилендарски, 1997, 260 стр., ISBN 9-544-23115-3.
- и други.
Регистрирай се за курса и изпита
Внимание!!!
Всеки студент (включително студентите от предишни години, които ще се явяват на изпит през предстоящата сесия) трябва да се регистрира в Google Classroom с университетската си поща (т.е. с адрес завършващ на @uni-plovdiv.bg) и да се присъедини към курс с код: p4mbm3q
Информация за лекциите, упражненията и други текущи ще може да намерите след присъединяаването си в Classroom.
Ако се наложи онлайн връзка ще ползваме Meet бутона "Присъединяване" горе в ляво в класрума на дисциплината. (за извънредни онлайн лекции, упражнения, изпити, консултации и др.)