Компютърна графика

от Уикипедия, свободната енциклопедия
Вижте пояснителната страница за други значения на графика.

Екранна снимка на Blender 2.45, показваща 3D тестови модел Suzanne

Компютърната графика се занимава с генериране на изображения и дори изкуство с помощта на компютри. Днес компютърната графика е основна технология в цифровата фотография, филмите, видеоигрите, дисплеите на мобилните телефони и компютрите и е в основата на много специализирани приложения. Разработен е голям брой специализиран хардуер и графичен софтуер, като дисплеите на повечето устройства се управляват от графичен хардуер. Това е обширна и наскоро развита област на компютърните науки. Фразата е измислена през 1960 г. от изследователите на компютърната графика Верн Хъдсън и Уилям Фетър от Боинг. Често се съкращава като CG или обикновено в контекста на филмите като компютърно генерирани изображения (CGI). Нехудожествените аспекти на компютърната графика са обект на изследване на компютърните науки. [1]

Някои теми в компютърната графика включват: дизайн на потребителски интерфейс, спрайт графика, рендъринг, проследяване на лъчи, компютърна анимация, векторна графика, 3D моделиране, шейдъри, дизайн на Графичен процесор, имплицитни повърхности, визуализация на данни, научни изчисления и тяхната визуализация, обработка на изображения, изчислителна фотография, изчислителна геометрия и компютърно зрение. Цялостната методология зависи до голяма степен от основни науки като геометрия, оптика, физика и възприятие.

Чрез компютърната графика е възможно показването на потребителя на изкуство и данни ефективно и смислено. Използва се и за обработка на данни за изображения, получени от физическия свят, като например фото и видео съдържание. Развитието на компютърната графика оказва значително влияние върху много видове медии и с масовото си навлизане направи революция в анимацията, киното, рекламата, видеоигрите.

Компютърна графика на тестови модел чайник от Юта, създаден през 1975 г. от Мартин Нюел.

Компютърната графика обхваща няколко подобласти: 3D компютърна графика и в частност рендъринг на триизмерни сцени в реално време (често използвано в компютърни игри), компютърна анимация, специални ефекти (често използвани във филми и телевизия), образна диагностика и геометрично моделиране (често използвано за инженерни и медицински цели).[2]

Общ преглед[редактиране | редактиране на кода]

Терминът компютърна графика се използва в широк смисъл, за да опише „почти всичко на компютрите, което не е текст или звук“. [3] Обикновено терминът компютърна графика се отнася до няколко различни неща:

  • представяне и манипулиране на данни за изображения от компютър
  • различните технологии, използвани за създаване и манипулиране на изображения
  • методи за цифрово синтезиране и манипулиране на визуално съдържание

Днес компютърната графика е широко разпространена. Такива образи се намират във и по телевизията, вестниците, прогнозите за времето и в различни медицински изследвания и хирургични процедури. Една добре изградена графика може да представи сложни статистически данни във вид, по-лесен за разбиране и тълкуване. Такива графики се използват за илюстриране на статии, доклади, дисертации и презентационни материали. [4]

Разработени са много инструменти за визуализация на данни. Компютърно генерираните изображения могат да бъдат категоризирани в няколко различни типа: двуизмерни (2D), триизмерни (3D) и анимирани графики. С напредването на технологиите 3D компютърната графика става все по-разпространена, но 2D компютърната графика все още се използва широко. Компютърната графика се появи като подобласт на компютърните науки и изучава методите за цифрово синтезиране и манипулиране на визуално съдържание. През последното десетилетие бяха разработени други специализирани области като визуализация на информацията и научна визуализация, насочена повече към визуализация на триизмерни обекти (архитектурни, метеорологични, медицински, биологични и т.н.), като акцентът е върху реалистично изобразяване на обеми, повърхности, източници на светлина и т.н., понякога с динамичен (времеви) компонент. [5]

История[редактиране | редактиране на кода]

Предшественици на съвременната компютърна графика са постиженията в областта на електроинженерството, електрониката и телевизията през първата половина на XX век. Изобразяването на кино върху екран датира още от времето на братя Люмиер и първите филми през 1895. Електроннолъчевата тръба, изобретена през 1897 г., последвана от осцилоскопа и военните контролни панели, позволяват генерирането на двумерни електронни изображения и са по-близки като идея до съвременните компютърно генерирани изображения, за които е необходимо въвеждане на данни или програма. Съвременната дисциплина „компютърна графика“ се създава след Втората световна война към 50-те години на XX век. Движещи сили за това са взаимодействието между университетите и научните лаборатории в областта на компютрите, както и развитието на военни технологии като радар и други уреди за авиацията и ракетната техника.

Първите графични проекти от 50-те години на XX век като Уърлуинд I (Whirlwind) и SAGE използват като дисплей CRT и светлинна писалка като входно устройство. Дъглас Т. Рос от системата Whirlwind SAGE извърши личен експеримент, в който написа малка програма, която улавяше движението на пръста му и показваше неговия вектор (проследеното му име) върху обхват на дисплея. Една от първите интерактивни видео игри, които включват разпознаваема, интерактивна графика – Тенис за двама – е създадена за осцилоскоп от Уилям Хигинботам, за да забавлява посетителите през 1958 г. в Националната лаборатория Брукхейвън и симулира тенис мач. През 1959 г. Дъглас Т. Рос отново прави нововъведения, докато работи в Масачузетския технологичен институт, като трансформира математически изрази в компютърно генерирани 3D вектори и създава изображение на анимационен герой на Дисни. [6]

Пионерът в областта на електрониката Хюлет-Пакард става публична компания през 1957 г., и установява силни връзки със Станфордския университет чрез своите основатели, негови възпитаници. Така започва трансформацията на южния район на Санфранциския залив във водещ световен център за компютърни технологии – днес известен като Силициева долина. Областта на компютърната графика се развива с появата на специализиран хардуер за компютърна графика.

Фразата „компютърна графика“ се приписва на Уилям Фетър, графичен дизайнер на Boeing през 1960 г. Фетер от своя страна го приписва на Верн Хъдсън, също от Boeing. [7] [8]

През 1963 г. Иван Съдърланд (Ivan Sutherland) разработва първата компютърна програма с графичен потребителски интерфейс.

Често се споменава, че първият филм, използващ компютърна графика е бил 2001: Космическа одисея (1968), но анимацията му е изцяло направена на ръка, а специалните ефекти са изцяло направени с конвенционални оптични и моделиращи ефекти.

В края на 70-те години на XX век се появяват по-съвършени компютри, работещи под управлението на операционната система CP/M. Тя е пълноценна ОС с файлова система, дискови устройства, компилатори, програми и игри, но всичко се представя в текстов вид чрез ASCII код. Опитите за представяне на графични изображения водят до възникването на т.нар. ASCII изкуство. Все пак някои машини имат зачатък на графика, например моделът Visual 1050 от 1983 г.

Поради специфичните особености при обработка на графичните данни (голям обем на данните, необходимост от компресия, различни цветове и др.) изискванията към хардуера и софтуера нарастват[9]. Възникват и специализирани графични файлови формати. Един от най-ранните графични формати за CP/M е RLE, при който се кодират черно-бели изображения с разделителна способност 256 х 192 пиксела. През 1981 г. е въведен графичният формат CGA (Color Graphics Adapter), а компютрите с MS-DOS вече могат да показват графика с разделителна способност 320 х 240 пиксела в четири цвята. След няколко години на пазара се появяват и VGA графичните карти, които могат да показват на екрана 256-битови изображения.

Видове изображения[редактиране | редактиране на кода]

Двуизмерни (2D)[редактиране | редактиране на кода]

Растерни графични спрайтове (вляво) и маски (вдясно)

2D компютърната графика е генериране на цифрови изображения с компютър – предимно от модели, като цифрово изображение, и чрез специфични за тях техники.

2D компютърната графика се използва главно в приложения, разработени първоначално въз основа на традиционни технологии за печат и рисуване. В тези приложения двуизмерното изображение не е просто представяне на обект от реалния свят, а независим артефакт с добавена семантична стойност; следователно двуизмерните модели са предпочитани, защото дават по-директен контрол върху изображението, отколкото 3D компютърната графика, чийто подход е по-близък до фотографията отколкото до полиграфията.

Пикселно изкуство[редактиране | редактиране на кода]

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

Спрайт графики[редактиране | редактиране на кода]

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

Първоначално спрайтовете са метод за интегриране на несвързани растерни изображения, така че да изглеждат като част от нормалната растерна графика на монитора, като например създаване на анимиран герой, който може да се мести по екрана, без да се променят данните, определящи цялостния екран. Такива спрайтове могат да бъдат създадени от електронна схема (хардуерен спрайт) или чрез софтуер. Хардуерният спрайт използва персонализирани канали за директен достъп до паметта за да интегрира визуални елементи с основния екран, като наслагва два отделни източника на видео. Софтуерът може да симулира това чрез специализирани методи за изобразяване (рендериране).

Векторна графика[редактиране | редактиране на кода]

Пример, показващ разликата на векторна спрямо растерна графика

Векторните графични формати допълват растерните. Растерната графика представя изображенията като масив от пиксели и обикновено се използва за представяне на фотографски снимки. [10] Векторната графика кодира информацията за формите и цветовете, които съставляват изображението, което може да позволи по-голяма гъвкавост при рендиране. Има случаи, когато най-добре да се работи с векторни инструменти и формати, и други случаи, когато е по-добре да се работи с растерни инструменти. Понякога се комбинират и двата формата. Ефективно използване на инструментите е свързано с разбирането на предимствата и ограниченията на всяка технология и връзката между тях.

Генеративни модели на машинно обучение[редактиране | редактиране на кода]

Stable Diffusion: резултат на задача „астронавт, яздещ кон, в стил Хирошиге“, 2022 г.

От средата на 10-те години на XXI век, в резултат на напредъка в дълбоките невронни мрежи, бяха създадени софтуерни модели, на които се задава описание на задача на естествен език и произвеждат като резултат изображение, съответстващо на заданието. Те обикновено комбинират езиков модел, който трансформира входния текст в латентно представяне, и генеративен модел, който произвежда изображението, съобразено с нужния стил. Най-ефективните модели обикновено са обучени с помощта на огромно количество изображения и текстови данни. До 2022 г. най-добрите от тези модели, например Dall-E 2 и Stable Diffusion, са в състояние да създават изображения в редица стилове, вариращи от имитации на художници до почти фотореалистични, и това става за секунди, ако има на разположение достатъчно мощен хардуер. [11]

Триизмерен (3D)[редактиране | редактиране на кода]

3D графиките използват триизмерно представяне на геометрични данни. За по-голяма ефективност междинните етапи се съхраняват в компютъра и може да се използват по-късно. Рендерирането е процес на генериране изображения от модел. Процесът на рендериране може да бъде зададен така, че да симулира преноса на светлина за създаване на реалистични изображения или да създава изображения с определен художествен стил при нефотореалистичното рендериране.

3D компютърната графика разчита на подобни алгоритми като 2D компютърната графика в крайния резултат. В софтуера за компютърна графика разликата между 2D и 3D понякога е неясна; 2D приложенията могат да използват 3D техники за постигане на ефекти като осветление, а 3D могат да използват техниките за 2D рендериране.

3D компютърната графика е същата като 3D моделите, но моделът се съдържа във файла с графични данни отделно от рендерирането. Разликата е, че докато не бъде показан визуално, моделът не е графика. 3D моделите не са ограничени само във виртуалното пространство, а могат и да се отпечатат, например с 3D принтиране. Моделите може да се използват в неграфични компютърни симулации и изчисления.

Компютърна анимация[редактиране | редактиране на кода]

Пример за компютърна анимация, създадена чрез улавяне на движение
Фрактален пейзаж, пример за компютърно генерирани изображения

Компютърната анимация е изкуството за създаване на движещи се изображения чрез използването на компютри. Това е междинна област на компютърната графика и анимацията. Все по-често се създава с помощта на 3D компютърна графика, въпреки че 2D компютърната графика все още се използва широко за стилистични нужди, при ниски скорости на предаване на данни и когато е нужно по-бързо изобразяване в реално време. Понякога резултатът на анимацията се получава в самия компютър, но понякога се пренася на друг носител, например филм. Нарича се още CGI (компютърно генерирани изображения), особено когато се използва във филми.

Приложения[редактиране | редактиране на кода]

Компютърната графика може да се използва в следните области:

Симулиран полет над долината Трента в Юлийските Алпи

Обработка на изображения и анализ на картини[редактиране | редактиране на кода]

Компютърната графика се занимава със синтеза на изображения на реални или въображаеми обекти от техните компютърно-базирани модели. Обработката на изображения третира обратния процес – анализът на сцени или реконструирането на дву- и триизмерни модели от техните изображения.

Обработката на изображения има подобластите откриване на модели (pattern detection), разпознаване, сценичен анализ, компютърно зрение, подобрение на изображения.

Източници[редактиране | редактиране на кода]

  1. ACM Computing Classification System ToC // www.acm.org. Архивиран от оригинала на 2020-07-28. Посетен на 2020-04-28. (на английски)
  2. Христо, Тужаров. Компютърна графика // 2008. Архивиран от оригинала на 2021-12-03. Посетен на 3.12.2021.
  3. What is Computer Graphics?, Cornell University Program of Computer Graphics. Last updated 04/15/98. Accessed November 17, 2009.
  4. University of Leeds ISS (2002). "What are computer graphics?" Архив на оригинала от 2015-01-06 в Wayback Machine.. Last updated: 22 September 2008
  5. Michael Friendly (2008). "Milestones in the history of thematic cartography, statistical graphics, and data visualization".
  6. Ross on MIT TECH TV 1959 https://www.youtube.com/watch?v=ob9NV8mmm20
  7. Carlson, Wayne. A Critical History of Computer Graphics and Animation
  8. Jon Peddie: The History of Visual Magic in Computers: How Beautiful Images are Made in CAD, 3D, VR and AR, Springer, 2013, p. 101, ISBN 978-1447149316
  9. David Hemmendinger. Computer graphics // Encyclopedia Britannica. Посетен на 17 януари 2023. (на английски)
  10. Greenberg, Ira. Processing: Creative Coding and Computational Art. Apress, 2007. ISBN 978-1-59059-617-3.
  11. Vincent, James. All these images were generated by Google's latest text-to-image AI // The Verge. Vox Media, May 24, 2022. Посетен на May 28, 2022.

Вижте също[редактиране | редактиране на кода]

Използвана литература[редактиране | редактиране на кода]

  • Foley, James D., van Dam, Andries, et.al., Computer Graphics: Principles and Practice, USA, 1990, Addison-Wesley, 1174 стр., английски език.
  Тази страница частично или изцяло представлява превод на страницата Computer graphics в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите. ​

ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни.​