В тази публикация в блога ще се съсредоточим върху „Реализъм в 3D графиката: Принципи и предимства на проследяването на лъчи“.
Компютърна графика и рендиране
След появата на компютрите, непрекъснатите изследвания в областта на входните и изходните устройства доведоха до изобретяването на монитора и хората разработиха различни графични техники за проектиране на изображения и форми върху екрана. Започвайки с представянето на прости двуизмерни обекти, съставени от точки и линии, сега е възможно да се проектират сложни триизмерни обекти върху двуизмерна равнина (монитора), а технологията става все по-усъвършенствана. Тази технология в крайна сметка се свежда до въпроса как триизмерно виртуално пространство се проектира върху двуизмерна равнина. Казано по-просто, това включва поставяне на обекти и източници на светлина във виртуално пространство, което прилага законите на физиката, заснемане на сцената с виртуална камера и картографиране на изгледа на камерата върху екрана на компютъра; тази серия от процеси се нарича рендиране.
Основната цел на компютърната графика е проекцията на изображения. Следователно, поредицата от процеси, описани по-горе, може да се обобщи като задача за проектиране на триизмерно виртуално пространство върху двуизмерна равнина на монитор чрез прилагане на необходимите закони на физиката. Най-важните закони на физиката в този процес са отражението и пречупването на светлината. Докато светлината пътува през пространството и се сблъсква с обект, нейният цвят, яркост и път се променят в зависимост от свойствата на обекта. По принцип бялата светлина – включително слънчевата светлина – съдържа дължини на вълните в целия видим спектър, а яркостта ѝ се определя от сумата от енергиите на съставните ѝ дължини на вълните. Отражението променя посоката на светлината под ъгъл, равен на ъгъла на падане, докато пречупването определя степента, до която светлината се огъва, въз основа на разликата в плътността между двете среди от двете страни на повърхността. И в двата случая някои дължини на вълните се абсорбират от повърхността, намалявайки яркостта, и един обект може да притежава множество свойства едновременно.
Методи и ограничения на рендирането
Обикновено, една сцена в 3D графиката съответства на процеса на изчисляване, в рамките на виртуално пространство, на това как светлината в реалността се отразява и пречупва от безброй обекти, преди да достигне до очите ни. С други думи, след определяне на броя и посоката на светлинните лъчи, излъчвани от виртуален източник на светлина, всеки лъч се проследява по права линия и законите за отражение и пречупване се прилагат, за да отразят или предадат светлината на повърхността на обекта. След това изображението се конструира чрез синтезиране на светлинната информация, която достига до позицията на обектива на виртуалната камера. Макар че този метод е интуитивен, той има няколко недостатъка. Първо, тъй като светлината, излъчвана от източника на светлина, трябва да бъде разделена и изчислена по посока, разделянето ѝ на твърде малко сегменти води до големи грешки, докато разделянето ѝ на твърде много сегменти води до драстично увеличаване на изчислителното натоварване. Освен това, изчислената светлина трябва да достигне обектива на камерата, за да бъде смислена, така че съществува проблемът, че много изчисления, които не достигат до обектива, се губят.
За да се получат висококачествени изображения, тези проблеми трябва да бъдат решени, но това не е лесна задача. Първият проблем изглежда решим чрез използване на високопроизводителни компютри за по-фино подразделяне на светлинния източник; високопроизводителните компютри обаче не са леснодостъпни за широката публика, а изчислителното натоварване се увеличава експоненциално с нарастването на броя на подразделенията или светлинните източници. Ако отраженията или пречупванията се случват непрекъснато, дори един единствен светлинен източник може да доведе до необходимостта от изчисляване на стотици резултати. Вторият проблем е по-фундаментален. В крайна сметка няма причина да се извършват изчисления, които няма да бъдат включени в крайния резултат. Колкото по-голямо е пространството спрямо зрителното поле на камерата, толкова по-голямо е количеството загубени изчисления. Следователно, колкото по-голяма точност се стреми към този метод, толкова по-очевидна става неговата неефективност.
Принципите и предимствата на лъчевото проследяване
След продължителни изследвания, като решение на тези проблеми е разработено проследяване на лъчи. Вместо да проследява светлината, излъчвана от светлинен източник в посока напред, проследяването на лъчи събира информация чрез проследяване обратно от камерата. Лъч се излъчва от гледната точка на виртуалната камера към точка на обектива, съответстваща на пиксел на екрана, и се изследват точките на пресичане между този лъч и всеки модел (3D обект). Сред тях се идентифицира точката, най-близка до гледната точка; ако обектът притежава отразяващи, пречупващи или полупрозрачни свойства, се прилагат съответните физични закони за генериране на нов отразен или пречупен лъч, който след това се излъчва.
Този процес се повтаря, докато най-близката точка не стане източник на светлина. Когато лъч достигне източника на светлина, информацията за цвета и яркостта на източника на светлина се комбинира с първоначално излъчения лъч, като се прилагат използваните дотук физични закони в обратен ред. Получената комбинация от цвят и яркост става информация за този пиксел. Въпреки че методът на изчисление варира в зависимост от формата на обекта, проследяването на лъчите има предимството, че значително намалява изчислителното натоварване в сравнение с традиционните методи за директно рендиране, като същевременно запазва високо качество. То може също да генерира сенки, като определя дали има обект между началната точка на лъча и източника на светлина, и е способно да рендира полупрозрачни и огледални повърхности.
Този метод е позволил сравнително ефективното изобразяване на висококачествени изображения с висока резолюция. Поради естеството на компютрите като машини, понякога трябва да се използват множество методи за прилагане на едни и същи физични закони, а с напредването на технологиите стават възможни по-сложни реализации. Както е споменато в документа, има примери за изображения, които прилагат усъвършенствани техники, като например прилагане на текстури върху повърхностите на обекти и използване на различни източници на светлина. Това показва, че дори проблеми, които първоначално изглеждат трудни за решаване, могат да бъдат решени чрез използване на заобиколни решения или алтернативни подходи, когато директните методи не са осъществими.