1 Уроки Rhino MaxwellRender для создания сложных интерьерных сцен 1 Пн Окт 04, 2010 8:44 am
Admin
Admin
Аннотация В этом обзоре мы опишем процесс создания проекта интерьера на примере двух недавно выполненных работ. Для моделирования мы используем Rhinoceros версии 3.0 SR5b, а для визуализации — Maxwell Render версии 1.1. Моделирование План Как обычно, в первую очередь нужно создать план помещения в Rhino по предоставленному архитектурному плану. [Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение] Исходный план помещения Этот процесс автоматизировать практически невозможно, поэтому приходится просто внимательно переносить все размеры и углы один за другим. Затем плоский чертёж «вытягивается» командой _ExtrudeCrv на высоту стен. Затем в стенах вырезаются проёмы: для этого параллельно плоскости стены чертятся прямоугольники размерами с оконные (дверные) проёмы, затем эти прямоугольники «вытягиваются» той же командой _ExtrudeCrv с параметром Cap=No так, чтобы пересечь требуемую стену, после чего сначала командой Trim вырезаются проёмы в стене, а затем этой же командой убираются «торчащие» по обе стороны от стены части вытянутого проёма. Более простым и очевидным было бы применение команды _BooleanDifference, но использование булевых команд в Rhino имеет ряд особенностей и может привести к нежелательным последствиям, поэтому мысль о применении их при моделировании должна приходить последней. Более подробно об этом можно прочитать в соответствующем разделе справки (файл Rhino.hlp). [Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]Стены и проёмы «Ремонт» После создания стен простейшей командой _PlanarSrf создаём пол и потолок. Дальнейшая последовательность работ мало чем отличается от таковой при «реальном» капитальном ремонте. Импортируем в сцену (команда _Import или просто Сtrl I ) «столярку» (окна, двери), трубы, батареи, сантехнику, ставим источники света и т. д. не забываем при этом соблюдать масштаб: многие зарубежные модели имеют размер в дюймах, а многие европейские и практически все отечественные — в миллиметрах. Мебель Теперь настал черёд мебели и встроенной техники, и на это мы хотим обратить особое внимание. Даже в замечательных, профессиональных с точки зрения художника, стилиста, осветителя студийных работах 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 | ||
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение] | ||
<TABLE border=0 cellSpacing=0 cellPadding=0 width="100%"> <TR> <td width=3>[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]</TD> <td class=text10 width="100%">Автор: Mon, Alexander_77 </TD></TR></TABLE> |