Применение Rhinoceros и MaxwellRender для создания сложных интерьерных сцен

Аннотация

В этом обзоре мы опишем процесс создания проекта интерьера на примере двух недавно выполненных работ. Для моделирования мы используем Rhinoceros версии 3.0 SR5b, а для визуализации — Maxwell Render версии 1.1.

Моделирование

План

Как обычно, в первую очередь нужно создать план помещения в Rhino по предоставленному архитектурному плану.

Исходный план помещения

Этот процесс автоматизировать практически невозможно, поэтому приходится просто внимательно переносить все размеры и углы один за другим. Затем плоский чертёж «вытягивается» командой _ExtrudeCrv на высоту стен. Затем в стенах вырезаются проёмы: для этого параллельно плоскости стены чертятся прямоугольники размерами с оконные (дверные) проёмы, затем эти прямоугольники «вытягиваются» той же командой _ExtrudeCrv с параметром Cap=No так, чтобы пересечь требуемую стену, после чего сначала командой Trim вырезаются проёмы в стене, а затем этой же командой убираются «торчащие» по обе стороны от стены части вытянутого проёма. Более простым и очевидным было бы применение команды _BooleanDifference, но использование булевых команд в Rhino имеет ряд особенностей и может привести к нежелательным последствиям, поэтому мысль о применении их при моделировании должна приходить последней. Более подробно об этом можно прочитать в соответствующем разделе справки (файл Rhino.hlp).

Стены и проёмы

«Ремонт»

После создания стен простейшей командой _PlanarSrf создаём пол и потолок. Дальнейшая последовательность работ мало чем отличается от таковой при «реальном» капитальном ремонте. Импортируем в сцену (команда _Import или просто СtrlI ) «столярку» (окна, двери), трубы, батареи, сантехнику, ставим источники света и т. д. не забываем при этом соблюдать масштаб: многие зарубежные модели имеют размер в дюймах, а многие европейские и практически все отечественные — в миллиметрах.

Мебель

Теперь настал черёд мебели и встроенной техники, и на это мы хотим обратить особое внимание. Даже в замечательных, профессиональных с точки зрения художника, стилиста, осветителя студийных работах 3D-дизайнеры стараются обойти стороной проблему создания мебели в интерьере, а ведь это — одна из самых важных его составляющих. При этом часто авторы впадают в две крайности: либо они используют в одном интерьере с добрый десяток моделей разных предметов мебели в стиле Людовика XIV, отчего, например, обычная спальня становится похожей на салон антикварной мебели; либо же, понимая, что имеющиеся у них библиотечные модели не подходят по стилю, пытаются создать собственные модели, но из-за нехватки знаний о конструкции изделий делают их слишком простыми, несоразмерными или же такими, что их просто невозможно будет изготовить.

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

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

Кухня вразлёт

Вот и текст скрипта:

Option Explicit
Sub Scatter
Dim theGroup, bbGroup, theObject, bbObject, dist, distGroup, xg, yg, zg, xo, yo, zo, cg(2), co(2)
theGroup = Rhino.GetObjects("Select objects")
If Not IsArray(theGroup) Then Exit Sub
bbGroup = Rhino.BoundingBox(theGroup)
xg = Rhino.Distance(bbGroup(0), bbGroup(1))
yg = Rhino.Distance(bbGroup(0), bbGroup(3))
zg = Rhino.Distance(bbGroup(0), bbGroup(4))
distGroup = Sqr(xg*xg+yg*yg+zg*zg) cg(0) = bbGroup(0)(0)+0.5*xg
cg(1) = bbGroup(0)(1)+0.5*yg
cg(2) = bbGroup(0)(2)+0.5*zg
Rhino.EnableRedraw (vbFalse)
For Each theObject In theGroup
bbObject = Rhino.BoundingBox(theObject)
xo = Rhino.Distance(bbObject(0), bbObject(1))
yo = Rhino.Distance(bbObject(0), bbObject(3))
zo = Rhino.Distance(bbObject(0), bbObject(4))
co(0) = bbObject(0)(0)+0.5*xo
co(1) = bbObject(0)(1)+0.5*yo
co(2) = bbObject(0)(2)+0.5*zo

Rhino.MoveObject theObject, cg, co

Next
Rhino.EnableRedraw (vbTrue)
End Sub
344 0 850 18
7
2006-11-01
как спомоб может быть... а вообще в сравнении с макс+вирей конечно конкуренции не выдерживает
2006-11-01
Даже максвел надо уметь настраивать! А что тут? - Плохие материалы, засветы, шум...!
2006-11-01
Ужас! Что это? И это автор называет фотореалистичностью?
2006-11-02
Господа критики, урок называется "Применение Rhinoceros и MaxwellRender для создания сложных интерьерных сцен", и фотореалистичность никто не обещал. Максимум, что по этому поводу было сказано,- это "интерьер наполняется предметами, имеющими второстепенную важность, однако, это позволяет придать помещению вид обжитого, что для фотореалистичной визуализации не менее важно, чем качество материалов пола, стен, мебели." и "Как только качество изображения станет приемлемым". Как правильно заметил [b]S.andr[b], в первую очередь урок следует рассматривать "как способ", я так понимаю.
2006-11-06
к maxwell-у приктрагивался тлько издалека, к сожалению у меня нет возможности рендерить по 100 часов, но хотел бы заняться им посерьезней. насчет урока скажу, что прислушиваться стоит к любым советам, другое дело - следовать им или нет. всегда сложно наченать, и если есть помощ, думаю сотит ее принять. изучил сцену, понял что к чему, и крути дальше всё подряд, главное, чтобы жизни хватило во всех тонкостях разобраться, при его-то скоростях :)
2006-11-20
Ну в таком разлете можно говорить про основной плюс риноцероза - это сверхдетализирываные обьекты открываются сверхбыстро. А в общем урок неплохой, вот тока бесполезный...
2006-11-24
Мужики, вы-монстры! так решать проблемы с импортированными обьектами-вам надо памятник поставить! Чтобы Ринолл не вылетал при рендере нужно все меши которые собираетесь импортировать в риновский файл сначала пропустить через какой нибудь сторонний мапер например UVmapper, открыть в нём obj и дать какой нибудь проектор(куб, шар, и т. п.) сохранить файло и можете безбоязненно вставлять в Риновскую сцену, а использовать Студию только потому, чтобы в ней текстурить-тоже сомнительное удовольствие. Поставте Бразил для Рины пусть даже просроченный(сам то Браз нам не нужен) и используйте его инструмент текстурирования (RCM кажется называется) в окне свойств обьекта появится вкладка mapping а там все рычаги управления текстурой и тайлинг и проекторы и повороты-масштабы и вся полагающаяся для этого требуха. а просматривать текстуры можно присвоив обьекту basic материал (ну та галочка в свойствах, что для родного риновского рендера) и выбрав текстуру для него от МХМ файла, включаем режим вьюпорта rendered и все текстуры нам видны на обьектах. З.Ы. на мате ванны слишком белый материал, надо ставить не больше 220 по RGB (белая мелованная бумага-218) иначе Максвелл с ума сходит вычисляя отскоки и дохера шума остаётся.
RENDER.RU