Render.ru

Как точно совместить камеру с моделью?

Рейтинг
159
#1
Допустим есть плоскость там со всякой фигнёй текстурой и какими ни будь штуками, но это не важно.
Важно поставить камеру так чтоб плоскость максимально точно была в кадре, чтоб не один пиксел с этой плоскости не был за кадром, и чтоб не один пиксел не был лишним с фона. Допустим эта плоскость как раз размера 1920х1080, что соответствует разрешению рендера!

конечно же я подогнал это с помощью пирамидки,
но там всё равно есть расхождение в районе тысячных, в общем не совсем идеально!

1632174130225.png
 
Последнее редактирование:

Warslav

Знаток
Рейтинг
39
#2
На виде из камеры плоский объект будет искажен согласно законам перспективы. Это надо плоскость изогнуть немного как бы вокруг камеры, по типу как делают изогнутые мониторы или экран кинотеатра. Может проще вместо перспектив вью выставить ортографический вид, нажать кнопку "z" (обьект закроет собой весь вьюпорт) и просто с вьюпорта рендерить. Только не помню, можно ли пропорции самого вьюпорта сделать равными пропорциям объекта.
 

damien

Мастер
Рейтинг
199
#3
Допустим есть плоскость там со всякой фигнёй текстурой и какими ни будь штуками, но это не важно.
Важно поставить камеру так чтоб плоскость максимально точно была в кадре, чтоб не один пиксел с этой плоскости не был за кадром, и чтоб не один пиксел не был лишним с фона. Допустим эта плоскость как раз размера 1920х1080, что соответствует разрешению рендера!

конечно же я подогнал это с помощью пирамидки,
но там всё равно есть расхождение в районе тысячных, в общем не совсем идеально!

Посмотреть вложение 301380
Как раз сейчас и раньше занимаюсь этим. Я науки не знаю, уроков не встречал, может подскажут, но пока делаю так: беру данные расположения камеры по X Y Z и угол её поворота по этим же осям и выставляю плоскость перпендикулярно направлению камеры, затем поворачиваю также перпендикулярно данным поворота луча камеры. На глаз всё идеально совпадает с рамками окон проекций. Но это только "на глаз", наверно судя по замечанию Warslava, тысячные доли не совпадают из-за кривизны линзы (но мне такая точность не нужна). Возможно нужно войти в настройки камеры и изменить настройки кривизны (не пробовал). Но есть программа и для корректировки кривизны линз, она представлена в уроке на Ютубе. Это о плоскости, а что касается фона, то с ним в рендере Корона ещё проще - достаточно поставить Scrine в настройках карты для фона. При всём этом надо не забывать, что работать надо с физкамерой.
 

ЛМА

Смотритель
Рейтинг
1 160
#4
Важно поставить камеру так чтоб плоскость максимально точно была в кадре, чтоб не один пиксел с этой плоскости не был за кадром, и чтоб не один пиксел не был лишним с фона
Можно вообще не заморачиваться с подгонкой камеры, а просто отрендерить как получиться, а потом отрендерить еще и маску на эту плоскость по ID этой плоскости и в фотошопе потом по этой маске и вырезать эту плоскость, тогда кроме нее ничего больше и не будет в кадре.
 
Рейтинг
159
#5
Спасибо за отзывы
по типу как делают изогнутые мониторы или экран кинотеатра
Но есть программа и для корректировки кривизны линз,
да это дельное уточнение, ортографическая проекция подошла бы идеально, но возможно при камере с градусом больше 100 это будет достаточно ровно, это существенный момент, но более существенный другой:
Важно чтоб плоскость полностью идеально совпала с размером рендера!

Z ставит объект, но по краям не подгоняет,

ID этой плоскости и в фотошопе потом по этой маске и вырезать эту плоскость, тогда кроме нее ничего больше и не будет в кадре.
нет маска и какая либо обрезка не подойдёт,
допустим у меня 1920 полос по вертикали толщиной с пиксел их важно так и отрендерить в картинку 1920
если обрезать подрезать чу-чуть увеличивать, уменьшать, то пикселы поплывут, уже не будет необходимой чёткости.
 
Рейтинг
159
#6
тут наверно задачка сугубо математическая
есть объект пирамидка, камеру можно с привязкой поставить на его вершину, а далее неким хитрым математическим подсчётом определить параметры самой пирамиды, а именно: её высоту по отношению к градусу камеры будь там 200мм или 100мм
я подбирал вручную высоту пирамидки методом тыка, и наткнулся на то, что уже не хватает знаков после запятой чтоб это совсем уж точно подправить, возможно тут какие-то значения градусов камеры могут просить более целых значений высоты пирамиды, но мой мозг совсем не математического склада %))) чтоб в это как-то въехать,,,

1632234936636.png



это только как вариант решения, может есть и другие :)
 

damien

Мастер
Рейтинг
199
#7
Спасибо за отзывы
да это дельное уточнение, ортографическая проекция подошла бы идеально, но возможно при камере с градусом больше 100 это будет достаточно ровно, это существенный момент, но более существенный другой:
Важно чтоб плоскость полностью идеально совпала с размером рендера!
Z ставит объект, но по краям не подгоняет,
нет маска и какая либо обрезка не подойдёт,
допустим у меня 1920 полос по вертикали толщиной с пиксел их важно так и отрендерить в картинку 1920
если обрезать подрезать чу-чуть увеличивать, уменьшать, то пикселы поплывут, уже не будет необходимой чёткости.
Я понял что решение своей задачи вы пока не нашли, но на 99% уверен, что она решаема и если для вас это важно, то уточните её, попробуем решить вместе. Итак, снова - что требуется, 1. Показать плоскость в окне перспективы так, чтобы её контур полностью совпал с контуром окна перспективы? Или 2. Фотографию показать в окне перспективы так, чтобы контур ее краев полностью совпал с рамкой окна перспективы?
 
Рейтинг
159
#8
Показать плоскость в окне перспективы так, чтобы её контур полностью совпал с контуром окна перспективы? Или 2. Фотографию показать в окне перспективы так, чтобы контур ее краев полностью совпал с рамкой окна перспективы?
плоскость - модель, объект макса.
важно поставить камеру таким образом чтоб плоскость полностью была в кадре и не одним пикселом микронной не выступала и не заступала за рамки рендера,

да решение немного прояснилось,
параметр камеры FOV не знаю кстати, что это за параметр и что он вообще делает, но установив ему целое значение удалось натыкать подобрать высоту пирамидки в рамках трёх знаков после запятой так чтоб она идеально совпала с этим контейнером камеры.
Вот теперь интересно как это можно более точно вычислять чтоб не тыкаться, :)

пирамида в основании 640х360 высота 3657,617
камера ленс 205,741 FOV 10
полное совпадение при максимальном зуме,.
1632236651830.png
 

igorznag

Мастер
Рейтинг
103
#9
Простой пример: Допустим в сцене есть плоскость Plane с названием Plane001 и камера Free Camera с названием Camera001.
Render Width "соответствует" Plane Width, а Render Height "соответствует" Plane Length.
С помощью Align выравниваем камеру относительно плоскости.
Запускаем код:
Код:
in coordsys $Plane001 
$Camera001.pos.z=1.0*$Plane001.width/(2*tan (1.0*$Camera001.fov/2))
completeredraw()
Такой вариант подходит для вас?

 

ЛМА

Смотритель
Рейтинг
1 160
#10
Ну или как вариант просто рассчитать все расстояния и углы.
Например по привязке к сетке ставим плоскость 1920х1080 мм в ноль координат, туда же ставим таргет камеры, саму камеру отодвигаем строго перпендикулярно плоскости на расстояние 10000 мм. Имеем треугольник где одна сторона половина от 1920, т.е. 960, другая сторона 10000, и угол между сторонами в 90 градусов. Теперь нужно вычислить оставшиеся углы. Заходим по этой ссылке https://www.calc.ru/raschet-treugolnika.html вводим там имеющиеся данные и получаем результат. Скриншот прилагаю. Нас в этом расчете интересует угол бета, это половина угла зрения камеры. При таких исходных данных он получается 5,48 градусов, т.е. полный угол равен (умножаем на 2) 10,96. Вводим это значение в настройки камеры в максе в параметр Field of viev и включаем галочку. По идее все должно точно совпасть. Ну и понятное дело задаем в настройках рендера соотношение сторон 1920х1080

З.Ы. Стесняюсь спросить, а зачем вам это все нужно? Отрендерить некую пиксельную сетку, например растр 1920х1080 у которого один пиксель черный а другой белый в шахматном порядке?
 

Вложения

  • 218,6 КБ Просмотров: 117
Последнее редактирование:
Рейтинг
159
#11
Простой пример: Допустим в сцене есть плоскость Plane с названием Plane001 и камера Free Camera с названием Camera001.
Render Width "соответствует" Plane Width, а Render Height "соответствует" Plane Length.
С помощью Align выравниваем камеру относительно плоскости.
Запускаем код:
Код:
in coordsys $Plane001
$Camera001.pos.z=1.0*$Plane001.width/(2*tan (1.0*$Camera001.fov/2))
completeredraw()
Такой вариант подходит для вас?

это круто волшебно,
а куда его вставлять я не понял,,
открыл New Script вставил и после Evaluate All ни чего не произошло :oops:
 
Рейтинг
159
#12
По идее все должно точно совпасть.
нимножко не совпало
наверно дело в знаках после запятой, которые сокращаются до двух в расчёте треугольника
потыкал вручную 10,967 получается точней, но всё равно не сходится, 10,968 уже значительно больше получается
а 4 знака после запитуйки в этом параметре нету,,
тут наверно нужно нащупать как-то такие может размеры плоскости, которые будут давать более короткие значения, или вообще целые
1632255542521.png


З.Ы. Стесняюсь спросить, а зачем вам это все нужно? Отрендерить некую пиксельную сетку, например растр 1920х1080 у которого один пиксель черный а другой белый в шахматном порядке?
Есть такая тема как стереоваре, линзовый растр, ну помните наверно всякие там переливные календарики та объёмные открытки,,
вот под этот растр изображение там скажем с анимацией из десяти картинок кодируется в полоски,
есть конечно программы всякие, которые это делают, но платить за них от 100$, что-то вообще не вижу смысла, одно дело чтоб они там действительно нечто сложное делали, а так, и тем более мне только под одну конкретную задачу, что по сути потребует всего одного шаблона. который можно конечно же и в шопе порезать,.
Но мне вот, что-то в максе именно захотелось, Чтоб так взял, открыл, например, десять картинок на порезанные полоски и готово :)
 

ЛМА

Смотритель
Рейтинг
1 160
#13
потыкал вручную 10,967 получается точней, но всё равно не сходится, 10,968 уже значительно больше получается
а 4 знака после запитуйки в этом параметре нету,,
Можно тогда чуть чуть отодвинуть камеру, тогда все сойдется точно. Вместо 10000 в настройках камеры вбить 10000,607. А угол сделать 10,967. Вроде все точно сходится, насколько это можно вообще в максе определить визуально при максимальном увеличении.
Я, честно говоря, никогда не интересовался каким образом в максе можно увеличить точность привязки, или как увеличить разрядность размеров (цифр после запятой), но наверное это как то можно все же сделать.
 

damien

Мастер
Рейтинг
199
#14
Я не строил никаких пирамид, ничего не вычислял, а основывался на логике и всё получилось идеально точно. Логика была такой: раз сетка в окне перспективы по умолчанию повернута на 45 градусов, то и нашу плоскость надо повернуть по оси Z на -45. Раз по умолчанию невидимая камера окна перспективы повернута X 64.104 Y 0 Z -45 , то и плоскость надо повернуть по этим же параметрам, восстановить к ней перпендикуляр и посадить камеру в его конец, а таргет камеры в центр плоскости, вот и всё! Не надо заморачиваться с FOV и другими параметрами камеры, просто в окне перспективы назначить вид из камеры и все дела!
Plan 1920 1080.jpg
PrintSkrin.jpg
 

ЛМА

Смотритель
Рейтинг
1 160
#15
Нифига не понял чего там Александр поворачивает и зачем
На самом деле можно все сделать очень просто. Выставить в настройках рендера пропорции 1920х1080 и там же переключить Area to render из режима View в режим Crop и включить Auto Region Selected, затем сделать в окне "фронт" (или в окне Top, не суть) плоскость размером 1920х1080, выделить ее и нажать внизу справа кнопку Zoom Extenns All Selected что бы позиционировать выделенную плоскость точно в центр окна. И нажать рендер. В окне рендера отрендериться выбранная плоскость автоматически полностью заняв все поле рендера. Ну и свет и окружение настроить таким образом что бы не было пересветов. Правда так отрендериться не вид из камеры, а вид в окне, но зато не будет искажений из-за угла зрения камеры.
Впрочем и с видом из камеры тоже самое можно сделать. Камера и ее таргет позиционирцются по привязке к сетке так же как и плоскость. Таргет камеры точно в центре плоскости, а камера точно перпендикулярно плоскости, расстояние в принципе любое, но чем плоскость а окне камеры будет занимать по максимум места, тем лучше.
Минус этого метода в том, что разрешение рендера будет хотя и в тех же пропорциях, но численно будет меньше, т.е. именно точно в 1920х1080 отрендерить так не получиться, будет какое то другое, чуть меньшее разрешение, но в тех же пропорциях.
Можно еще попробовать режим Blowup вместо Crop, все остальное тоже самое. Но я не до конца понял насколько точно он работает, но зато при этом режиме рендериться как раз в заданное разрешение 1920х1080 при полном (точность этого я как раз и не очень понял) заполнении плоскостью всего окна рендера.
Вообщем можно поискать в этом направлении - в настройках Area to render
 
Последнее редактирование:

ЛМА

Смотритель
Рейтинг
1 160
#16
Есть такая тема как стереоваре, линзовый растр, ну помните наверно всякие там переливные календарики та объёмные открытки,,
вот под этот растр изображение там скажем с анимацией из десяти картинок кодируется в полоски,
есть конечно программы всякие, которые это делают, но платить за них от 100$, что-то вообще не вижу смысла, одно дело чтоб они там действительно нечто сложное делали, а так, и тем более мне только под одну конкретную задачу, что по сути потребует всего одного шаблона. который можно конечно же и в шопе порезать,.
Но мне вот, что-то в максе именно захотелось, Чтоб так взял, открыл, например, десять картинок на порезанные полоски и готово
Все равно не понял в чем тут смысл. Если вам нужно что бы картинка менялась при изменении угла зрения при анимации то для этого есть обычная стандартная карта Falloff, забиваете в нее два разных жепега и они будут в зависимости от угла зрения переливаться друг в друга. Пример прилагаю - одна и та же плоскость с одним и тем же материалом, но под разными углами. А так же скриншот настроек этой карты для получения этого эффекта
А что бы сделать объемную картинку вам нужно по любому рендерить в стерео и смотреть потом через стереочки т.к. объем только двумя глазами виден. Но это можно и так сделать сразу на 3д модели.
 

Вложения

  • 286,7 КБ Просмотров: 73
  • 75,8 КБ Просмотров: 67

damien

Мастер
Рейтинг
199
#17
ЛМА, чтобы понять, надо желать это, поясняю - я показал кратчайший способ получения вида из камеры в окне перспективы, что хотел Терен Тамабрахама без ваших лишних, ненужных вычислений пирамиды, лазания в настройки камеры и прочего, человек хотел в окне перспективы, а не в других окнах, хотел идеальной точности - я всё и показал и без заморочек.
 

ЛМА

Смотритель
Рейтинг
1 160
#18
Но мне вот, что-то в максе именно захотелось, Чтоб так взял, открыл, например, десять картинок на порезанные полоски и готово
А можно и просто тупо как в реальности эти штуки делались, т.е. треугольники у которых у всех на одной стороне одна картинка, а на другой другая.
Прилагаю скриншот окна макса с таким решением, там один и тот же объект под разными углами, сечение объекта видно сверху, этакая гармошка с гранями под 45 градусов, на одной части повернутой вправо одна картинка, а на другой которая влево другая картинка. А так же рендер с трех углов зрения. Это решение более точно воспроизводит реальные печатные открытки и календарики.
 

Вложения

  • 1 017,6 КБ Просмотров: 69
  • 280,5 КБ Просмотров: 68

ЛМА

Смотритель
Рейтинг
1 160
#19
ЛМА, чтобы понять, надо желать это, поясняю - я показал кратчайший способ получения вида из камеры в окне перспективы, что хотел Терен Тамабрахама без ваших лишних, ненужных вычислений пирамиды, лазания в настройки камеры и прочего, человек хотел в окне перспективы, а не в других окнах, хотел идеальной точности - я всё и показал и без заморочек.
Что вы показали? Ничего вы не показали. Что бы рендер с камеры абсолютно точно захватил только плоскость нужно так же абсолютно точно совместить угол зрения камеры с краями это плоскости. Это можно достичь только или идеально точным (как оказалось точность тут нужна более четырех знаков после запятой, в то время как макс оперирует только тремя знаками) выставлением угла зрения камеры FoV, или идеально точным выставлением расстояния от камеры до плоскости. Для чего нужно знать и то и другое с точностью выше четырех знаков после запятой. А вы на какое расстояние камеру поставили? Где находится конец этого вашего перпендикуляра и как он там оказался?
 

damien

Мастер
Рейтинг
199
#20
Что вы показали? Ничего вы не показали. Что бы рендер с камеры абсолютно точно захватил только плоскость нужно так же абсолютно точно совместить угол зрения камеры с краями это плоскости. Это можно достичь только или идеально точным (как оказалось точность тут нужна более четырех знаков после запятой, в то время как макс оперирует только тремя знаками) выставлением угла зрения камеры FoV, или идеально точным выставлением расстояния от камеры до плоскости. Для чего нужно знать и то и другое с точностью выше четырех знаков после запятой. А вы на какое расстояние камеру поставили? Где находится конец этого вашего перпендикуляра и как он там оказался?
Говорю же - вы ничего не поняли, потому что и понять не хотели. Абсолютно не нужны не вычисления пирамиды, ни FoV, всё это лишнее, а насчет где находится конец моего перпендикуляра:), то вы сами писали, что это всё равно, главное чтобы на перпендикуляре, ну а как я установил перпендикуляр к плоскости без всяких вычислений и с точностью до 3 знаков после запятой, могу поделиться с теми, кому интересно, в максе это предельно просто и устанавливал я как сам умел, без каких-либо модификаторов и прочих заморочек для изучения которых нужно тратить время, которого к сожалению у меня нет.
 
Сверху