ПредишенСледващото

Почти всички видял стерео изображение, например, спомням си в училище имахме тетрадки на корицата на която са отпечатани на неразбираеми драсканици. Но ако се вгледате в тях на "правилната" - тези драсканици получат обем. Не всички се да ги видите всичките наведнъж, на когото е било лесно, но който не е в състояние да. Има няколко препоръки как да се постигне илюзията за обем: виждат "чрез" изображението или го правят в близост до носа му и бавно се оттеглят.

Как хората възприемат обем? Колкото по-близо въпросния предмет, толкова по-наблюдателя "намалява" очи. по този начин ако въпросният предмет се намира на безкрайно разстояние, очите ще гледат на него "паралелно".

Създаване на стерео изображение - уроци 3ds Max

А сега да разгледаме как да се постигне илюзията за обем на плоска картина. Така че, ние имаме един човек с две очи (Фигура 1): Ляво и дясно око О1 О2, както и равнината на проекция на стерео изображения D1 D2. Нека въпросния предмет B се намира на разстояние ч от наблюдателя. След това, с цел да се "виждат" го на снимката, което трябва да съответства на фигурата в В1 и В2 точки. Оказва се, ние се придържа към плосък модел и изглежда, че "до" него. В лявото око вижда точка В1. Право В2. Изображение за тях върху лист същото и да се създаде илюзията, че ние всъщност виждате обект Б. Намира се зад равнината на листа. по този начин по-голяма от разстоянието между точките В1 и В2, в които едно и също изображение, на "по-нататък" възприема обект В.

Сега се получи чифт изчислителните формули, които ще бъдат полезни за оказване на стерео изображение. Да предположим, че - разстояние между очите, Н - максимално разстояние до отдалечен предмет, з - разстояние от обект h_max - максимално разстояние от отдалечения обект на проекция равнината на изображението на стерео. От сходството на триъгълници ВВ1 В2 и BO1 O2 трябва В1 В2 / BE = О1 О2 / BF. В1 В2 = г. O1 O2 = а. BF = Н. BE = BF-EF. EF = AF-AE = Н-h_max. BE = Н- (Н-h_max). Общо г / (з-Н + h_max)) = а / ч.

Може би теорията на достатъчно дълго, можете да отидете да практикуват. Вие ще трябва Photoshop и 3dsMax. В Photoshop създаде структура, от която по-късно ще бъде построен стерео изображение. Няколко препоръки: колкото повече подробности за структурата, толкова по-добре, за да получите окончателния вариант (с монофонични не получавам нищо); височината на текстурата трябва да съответства на височината на изображението (което е защо е необходимо незабавно да се определи окончателния размер на стерео образа); и ширината зависи от това къде ще се ползва предоставения снимката. Фиг.1 d_max стойност отговаря точно на ширината на текстурата, така че в действителност (на екрана или след отпечатване) не трябва да надвишава разстоянието между очите на един. B е в оригиналната структура, по-добро качество на крайния резултат е да се превърне в едно и също време, колкото повече пиксели в ширина. Аз имам това текстура:

Ширината му е на 100 пиксела и височина 600 (в края на краищата с нетърпение да получите размера на стерео 800 от 600 пиксела на изображението). Въпреки че е по-добре да го направи така, че тя плочки хоризонтално. След това създайте или отворете някоя 3D-обект MAX'e. Използвал съм този модел, за да оси:

За резултатът няма да бъде от полза всякакви материали, или на трети лица за изобразяване или светлинни източници. Така че, ако всичко това е на разположение в сцената, тогава ние възлага всички стандартната материал, премахнете всички източници на светлина и да използва по подразбиране Scanline Renderer. Сега можете да започнете да пишете сценария. За да направите това, изберете менюто MAX'a MAXScript -> New Script и скрипт за редактиране се отваря прозорец. Нашият сценарий ще има свой собствен интерфейс. Това може да стане по два начина: на панела Utilites или в отделен прозорец. Ние изберете първата опция и да се създаде нов скрипт полезност:

полезност stereoImg "Stereo Изображение"

-- създаване на стерео изображения полезност

Така че, в списъка на необходимите елементи: две групи от Texture и визуализиране. В групата на Texture има етикет, който ще се покаже информация за текстурата и бутон, който стартира отворен файл диалог с текстура. В Render група - стругар (рендиране определя ширината), етикетът (информация за височината на оказване), стругар (стерео качество на изображението), прогрес бар, Бутон за избор на обект и на "най-важното", за да стартирате скриптове на погрешна преценка. За тази цел, тялото на помощната програма трябва да добавите следните редове:

Fn fltr_cam OBJ = superClassOf OBJ == камера - връща истина, ако OBJ камера (за филтър за избор)

етикет l_T_img "не текстура" - информация за размера

бутон b_T_img "Load текстура растерна графика" - товарене текстура

етикет l_R_h "височина: 0" - височината

фабрика s_R_prec "качество на стерео изображение" диапазон: [1, 10, 4] Тип: широчина #integer: 80 подравняване: #right - стерео качество на изображението

progressBar prb_R_status стойност: 0 - прогресира направи

pickbutton pb_R_cam "Pick камера" филтър: fltr_cam през: 2 - Избор на фотоапарат

бутон b_R_stereo ""- да започне оказване

В началото на ползата от тялото (преди описващ персонализирани елементи) да определят местните променливи, необходими за създаване на стерео изображение:

-- определението на локални променливи

местно ширина, височина, d_max - ширина и височина на изобразяването, ширината на текстурата

Остава да се регистрирате със събития, за елементите на потребителския интерфейс. Описания на всички събития, са както следва: за<имя элемента> <название события> <список аргументов>направя (<обработка события>). За да започнете, ние се опише поведението на MAX'a до натискане на бутона текстура натоварване. Какво трябва да се случи: отворите диалоговия прозорец за избор на файл, след като изберете файла текстура се зарежда в MAX, показани под формата на информация за размера и структурата на неговото име, а след това по инициатива на местните променливи и конфигуриране на глобалните настройки за да се изобрази.

T_file_name = getOpenFileName типа: "растерна графика (* BMP.) | * .bmp" - отворен файл диалоговия

b_T_img.caption = filenameFromPath T_file_name - бутон върху името на файла на снимката

d_max = T_img.width - обновяване на всички локални променливи

ширина = 4 * височина / 3 като цяло число - определяне, за да се направи ширината на евентуално беше 3: 4

s_R_w.value = широчина - информационен дисплей за резолюцията на рендиране

renderWidth = широчина - глобалните настройки за визуализация по конфигуриране (ширина, височина)

Ние определя формата, която искаме да се кача на стерео образа. За това ние трябва камерата. Ако на сцената вече имат камери с "правилната" View - отлични, можете да ги използвате. Ако не, тогава ще трябва да се създаде камерата. Най-лесният начин да отидете на екрана за перспектива, където изберете желания ъгъл. След това се създаде фотоапарат по рода си: Създаване Main Menu -> Камери -> CreateCameraFromView или Crtl + C. Припомнете теория, има параметри като Н - максимално разстояние до отдалечения обект и h_max - разстоянието от проекция равнина за максимизиране на отдалечен предмет. Така че да не ги въведете ръчно, ние ще ги вземе от свойствата на камерата, а именно подстригване Самолети. Изберете желания камерата на панела Промени разкрие превъртане параметри. сложи отметка до Клип ръчно. Остава само да се коригира Близо Clip и Далечния клип. Близо Clip самолет отговаря на проекцията на самолета стерео изображение, и Далечния Clip - разстоянието до най-далечен обект. Препоръки: обекти, които ще бъдат построени стерео изображение трябва да се поставят между щипката близо и далеч клип. Близо Clip е около половината от Далечния клип. съоръжения трябва да са разположени далеч от Близо клип и в близост до Clip Далечния. Въпреки, че това може да бъде взета под внимание и друг опит с изрезка Самолети. за получаване на желания резултат. по този начин вид, създаден, наляво, за да "обясни" скрипт, който ние ще работим с този фотоапарат, това ще пиша на водача натискане на бутона за избор на камера:

pb_R_cam.caption = pb_R_cam.object.name - бутон върху името на камера

-- промени обработка правят широчина

Остава да се справят с последното събитие - Натискането на "най-важното" бутона. Отново теория ще се основава на получения по-горе формула: г / (з-Н + h_max)) = а / ч. Ето един. Н и h_max - постоянна. Последните две poluchayutsya подстригване Самолети от камерата. Ще дефинираме. този заместител стойност часа вместо Н - краен случай, когато един обект с максимално разстояние. Следователно, = d_max * Н / h_max. Крайната формула е: D = A * (Н-Н + h_max) / ч - това се изчислява от разстоянието между точките D. образи, в които едно и също, за да се създаде илюзията, че обектът се намира на разстояние ч от наблюдателя.

-- погрешна преценка на стерео изображение

DOF_img = направи камера: pb_R_cam.object outputwidth: ширина outputheight: височина канала: # (#zDepth)

-- създаване на растерни изображения за бъдещето на стерео изображение

-- запълване на първата текстура лента

показване OUT_img - отворите прозореца с крайния стерео изображение

Тогава дълбочината на канала е линия сканирани (с проверка на факта, че разстоянието не е превишил Clip камерата Far). Въз основа на тази стойност ч (скрипт дист) и формула получени по-рано изчислява разстоянието между повтарящи пиксела. Така върви изграждането на стерео образа, за напредъка по пътя за изчисления се актуализира. В крайна сметка, на екрана се показва крайния резултат (фигура 7).

По-долу е пълен списък на помощната програма скрипт-базиран с някои подобрения:

полезност stereoImg "Stereo Изображение"

-- създаване на стерео изображения полезност

-- определението на локални променливи

местно ширина, височина, d_max - ширина и височина на изобразяването, ширината на текстурата

Fn fltr_cam OBJ = superClassOf OBJ == камера - връща истина, ако OBJ камера (за филтър за избор)

етикет l_T_img "не текстура" - информация за размера

бутон b_T_img "Load текстура растерна графика" - товарене текстура

етикет l_R_h "височина: 0" - височината

фабрика s_R_prec "качество на стерео изображение" диапазон: [1, 10, 4] Тип: широчина #integer: 80 подравняване: #right - стерео качество на изображението

progressBar prb_R_status стойност: 0 - прогресира направи

pickbutton pb_R_cam "Pick камера" филтър: fltr_cam през: 2 - Избор на фотоапарат

бутон b_R_stereo ""- да започне оказване

T_file_name = getOpenFileName типа: "растерна графика (* BMP.) | * .bmp" - отворен файл диалоговия

b_T_img.caption = filenameFromPath T_file_name - бутон върху името на файла на снимката

d_max = T_img.width - обновяване на всички локални променливи

ширина = 4 * височина / 3 като цяло число - определяне, за да се направи ширината на евентуално беше 3: 4

s_R_w.value = широчина - информационен дисплей за резолюцията на рендиране

renderWidth = широчина - глобалните настройки за визуализация по конфигуриране (ширина, височина)

prb_R_status.value = (100 * х / d_max) като цяло - актуализиране на напредъка на текущата операция

-- оказване на "разширен" стерео изображение

Н = pb_R_cam.object.farclip - разстоянието от очите на максималната дълбочина

h_max = pb_R_cam.object.farclip - pb_R_cam.object.nearclip - разстоянието от проекция равнина до макс. дълбочина

-- ред по ред изграждане на стерео изображение ( "разширен")

-- отнеме от оказване на дълбочина от камерата, за да най-близката точка (тук също има линейна изглаждане)

-- получаване на "разширен", "нормално" стерео изображение

FIN_img = растерна графика (широчина + d_max) височина цвят: черен - създаване на растерни изображения за крайния стерео изображение

показване FIN_img - отворите прозореца с крайния стерео изображение

Промяната е само в алгоритъма за изчисление на стерео образа. Добавяне на отметка "безопасен": погрешна преценка няма да започне, ако не сте избрали текстурата и камерата. Така че има един алгоритъм, "подобрена" изчисление на стерео образа е реализиран с използването на "качество" стругар. С две думи, това, което е: изображението е първият линейно протегна и погрешна преценка, също се "разтяга", а след това резултатът се компресира до първоначалния си размер. Разликата може да се види на фигура 7, фигура 8, Фигура 9.

Фиг.7 качество таксувани единица, и Фиг.8 и Фиг.9 - 4 и 8, съответно. Разбира се колкото по-високо е качеството, толкова по-голямо време за рендиране.

Това е всичко. Сега имаме скрипт инструмент, който може да се използва от всеки 3D-обект, за да се получи стерео изображение. Аз много се надявам, че урокът е ясен (което трябва да бъдат приятели с геометрията :) и полезно (поне за това, че всъщност можете да гледате "по обем" модел).

Свързани статии

Подкрепете проекта - споделете линка, благодаря!