Анотация
Целта на тази учебна дисциплина е придобиване на теоретични знания и практически умения в областта на компютърната графика – диалоговите графични системи, геометрично моделиране, алгоритмите за визуализация, създаването на ГПИ и др. Практическа задача за студентите е изграждане на проект със средна сложност – диалогова система за графично моделиране с графичен потребителски интерфейс. Придобитите знания и умения са полезни както при разработката на подобни системи, така и при използването на такива в практиката.
КОНСПЕКТ (виж видео лекциите в 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-ла). Оценката от теория се формира по същата формула, както тази от практическата част. Двете оценки практическа и от теория формират крайната оценка по предмета. Ако една от оценките е слаб, то студента трябва да се явяви на поправка (следваща дата).
Работа през семестъра и предаване на проекта
Всеки судент е длъжен да работи по проекта си през семестъра. Работата задължително става с използването на SVN сървъра на ФМИ (повече информация за достъпа и начина на използването на тази система за контрол на версиите вижте сайта на сървъра тук). Всеки студент ще получи име и парола за достъп до своето SVN хранилище (repository) малко след като се регистрира в Google Classroom съгласно изискванията.
Когато по един проект се работи от двама души, то те трябва да използват хранилището на единия, като другия бива присъединен с право за достъп, чрез интерфейса на SVN сървъра описан по-горе.
Очаква се в хранилището да бъдат качени всички съществени промени от началото на развитие на проекта до окончателното му завършване. Всеки решава дали да изпраща промените (commit) си в сървъра по-често или по-рядко, но задължително по всеки проект трябва да има поне 4 commit-а в течение на семестъра: В началото при съзадване на празен проект (или съответния стартов проект от помощните материали, ако такъв ще бъде използван), през 5-та седмица на триместъра, през 8-ма седмица и 10-та седмица (за задочно обучение пропорционално от първото занятие до деня преди изпита). Състоянието на проекта в тези версии може да окаже влияние върху общия брой на точките, които ще получите. От 10-та седмица до изпита всеки може да продължи работата си по проекта и съответно да продължава да качва промени в хранилището.
Очаква се проекта да се намира в подпапка trunk/CGProject на SVN хранилището. Той трябва да е във вид готов за сваляне и компилация. Проекти не отговарящи на това изискване няма да бъдат проверявани и оценявани.
На изпита всеки ще използва последното състояние на работното копие, като след решение на задачата трябва да я качи като нова версия в хранилището.
Проектите подлежат и ще бъдат проверявани автоматично и ръчно. Автоматичната проверка включва (но не се ограничава само до) използване на системи за автоматизирана проверка за плагиатство (т.е. преписване от ваши колеги и/или от чужди проекти в Интернет). Ръчната проверка представлява преглед и експерементиране с проекта от страна на преподавател. При установяване на плагиатство или съмнение за такова точките на съответните студенти ще бъдат драстично намалени (пропорционално на процента на "взаимстваните" части от код), в допълнение на това ще бъде публикуван списък с провинилите се студенти, както и ще се вземат всички други мерки в съответствие с Регламента за реакция при нечестни прояви.
Литература
- Д. Димов, А. Пенев, "Ръководство за упражнения по компютърна графика", Пловдивско унуверситетско издателство, 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) и да се присъедини към курс с код: poidigz
Информация за лекциите, упражненията и други текущи ще може да намерите след присъединяаването си в Classroom.
Ако се наложи онлайн връзка ще ползваме Meet бутона "Присъединяване" горе в ляво в класрума на дисциплината. (за извънредни онлайн лекции, упражнения, изпити, консултации и др.)