2023/2024 - Компютърна графика (Информатика)

Регистрирай се за курса и изпита

Внимание!!!

Всеки студент (включително студентите от предишни години, които ще се явяват на изпит през предстоящата сесия) трябва да се регистрира в Google Classroom с университетската си поща (т.е. с адрес завършващ на @uni-plovdiv.bg) и да се присъедини към курс с код: poidigz

Информация за лекциите, упражненията и други текущи ще може да намерите след присъединяаването си в Classroom.

Ако се наложи онлайн връзка ще ползваме Meet бутона "Присъединяване" горе в ляво в класрума на дисциплината. (за извънредни онлайн лекции, упражнения, изпити, консултации и др.)

Анотация

Целта на тази учебна дисциплина е придобиване на теоретични знания и практически умения в областта на компютърната графика – диалоговите графични системи, геометрично моделиране, алгоритмите за визуализация, създаването на ГПИ и др. Практическа задача за студентите е изграждане на проект със средна сложност – диалогова система за графично моделиране с графичен потребителски интерфейс. Придобитите знания и умения са полезни както при разработката на подобни системи, така и при използването на такива в практиката.

КОНСПЕКТ (виж видео лекциите в ClassRoom и презентациите в помощните материали в края на тази страница)

Изисквания към проекта

Всеки студент трябва да разработи проект по Компютърна графика. Проекта трябва да представлява диалогова система за графично моделиране (графичен редактор) с примитиви от векторен тип. Диалоговата система за графично (2D) моделиране трябра да бъде със следните функционални възможности:

  1. Изграждане на изображение от различни графични примитиви (векторни) – например точки, отсечки, многоъгълници, елипси и др.; (2.5 точки)
  2. Визуализация на примитивите на базата на техните визуализационни характеристики като цвят, дебелина на линия, прозрачност и др.; (2.5 точки)
  3. Указване на графичен примитив от изображението; (2.5 точки)
  4. Манипулиране с графични примитиви – например, преместване, завъртане, мащабиране и др.; (2.5 точки)
  5. Създаване на структура на изображението чрез йерархично групиране, т.е. създаване на групи от примитиви и/или други групи; (5 точки)
  6. Манипулиране с групи – например, преместване, завъртане, мащабиране, различни видове разгрупиране и др.; (5 точки)
  7. Различни начини за определяне на характеристики на обектите от изображението – например задаване на цвят чрез името му, именуване на обектите от изображението и др.; (2.5 точки)
  8. Различни начини на задаване на операциите от потребителя – например чрез меню, бутони, мишка и др.; (2.5 точки)
  9. Поддръжка от богат набор от операции за редактиране на изображение като добавяне на елементи, отстраняване на елементи, копиране, актуализация на характеристики, йерархично групиране и разгрупиране и др.; (2.5 точки)
  10. Различни възможности за избор на обект(и) от изображението; (2.5 точки)
  11. Използване на многопрозоречна техника за поддръжка на няколко изгледа на едно и също изображение, както и за работа с няколко изображения едновременно; (бонус 5 точки)
  12. Различни възможности за четене/запис на модела на изображението от/на външен носител. (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.
  • и други.

Помощни материали