Анотация
Целта на тази учебна дисциплина е придобиване на теоретични знания и практически умения в областта на компютърната графика – диалоговите графични системи, геометрично моделиране, алгоритмите за визуализация, създаването на ГПИ и др. Практическа задача за студентите е изграждане на проект със средна сложност – диалогова система за графично моделиране с графичен потребителски интерфейс. Придобитите знания и умения са полезни както при разработката на подобни системи, така и при използването на такива в практиката.
Изисквания към проекта
Всеки студент трябва да разработи проект по Компютърна графика. Проекта трябва да представлява диалогова система за графично моделиране (графичен редактор) с примитиви от векторен тип. Диалоговата система за графично (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 или повече на практическата част има право да се яви на теоретичната част на изпита (тест носещ общо до 40 точки). Оценката от теория се формира по същата формула, както тази от практическата част. Крайната оценка от изпита се формира като средно аритметично от двете оценки (практическа и от теория). Ако една от оценките е слаб, то студента трябва да се явяви на поправка.
Работа през семестъра и предаване на проекта
Всеки судент е длъжен да работи по проекта си през семестъра. Работата задължително става с използването на SVN сървъра на ФМИ (повече информация за достъпа и начина на използването на тази система за контрол на версиите вижте сайта на сървъра тук). Всеки студент ще получи име и парола за достъп до своето SVN хранилище (repository) на първото упражнение.
Когато по един проект се работи от двама души, то те трябва да използват хранилището на единия, като другия бива присъединен с право за достъп, чрез интерфейса на 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.
- и други.