Як отрендерить сітку

80

У статті наведено різні способи фонового сітки моделі.

Спосіб №1: Рендер сітки з допомогою опції Contour в mental ray

Налаштування фонового

1. Перейти у вкладку «Features».

2. Прокрутити її з MMB вниз і розкрити вкладку «Contours».

3. Включити опцію «Enable Contour Rendering».

4. Розгорнути розділ «Draw by Property Difference».

5. Включити опцію «all Around Poly Faces».

Примітка: Для фонового сітки необхідно виконати всі описані вище кроки.

Як отрендерить сітку

Налаштування Maya 2014

За замовчуванням mental ray в Maya 2014 рендерить зображення за методом «Unified Sampling». Цей метод не підтримує рендер типу Contour, що характерно тільки для Maya 2014.

1. У вкладці Quality в розділі Sampling section увімкніть опцію «Legacy Sampling Mode», щоб контурні лінії почали рендеритись. При цьому Max Sample Level повинен складати 2.

Як отрендерить сітку

Налаштування матеріалів

1. Для початку створіть Lambert білого кольору і назвіть його «mat_wireframe».

2. Перейдіть в Shading Group, наприклад: «lambert2SG», та перейменувати її в «mat_wireframeSG».

3. Розгорніть розділ «Contours» в розділі mental ray.

4. Увімкніть опцію «Contour rendering», встановіть колір чорний.

5. Призначте об’єкту матеріал і отрендерьте сцену.

6. При необхідності настроїти товщину лінії (зазвичай значення 0.5 виглядає цілком симпатично на рендері).

Як отрендерить сітку

7. Тепер залишилося тільки застосувати матеріал на необхідні об’єкти, для яких потрібно отрендерить сітку, і натиснути на кнопку Render.

Примітка: Якщо ви рендерите в смуз меш превью (в режимі трієчки), mental ray отрендерит більш складну сітку. У таких випадках необхідно вибрати об’єкт і перейти в режим одинички, так mental ray отрендерит лоупольную версію моделі.

Спосіб №2: Рендер сітки з допомогою команди UV Snapshot

httpvh://www.youtube.com/watch?v=ZUFAtkVJdpg&NR=1

А цей спосіб варто робити тільки по відео. Він досить складний і не дуже логічний, але згадки варто хоча б для загального розвитку.

Спосіб №3: Maya Vector

1. Виділіть необхідні об’єкти та відкрийте налаштування фонового. Зі списку рендереров виберіть Maya Vector.

2. Перейдіть в налаштування рендерера.

3. Відключіть опцію Fill objects.

4. Відключіть опцію Show back faces.

5. Виберіть Include Edges у вкладці Edge Options.

6. Визначтеся з товщиною ребра. Зазвичай значення 0.5 виглядає цілком симпатично на рендері.

7. Виберіть Entire Mesh для Edge Style.

8. Натисніть на кнопку Render.

Як отрендерить сітку

Спосіб №4: Maya Toon shader

1. Виберіть всі об’єкти і застосуйте до них Toon shader.

2. У налаштуваннях PFXToonShape вимкніть ProfileLines та Border Lines, увімкніть Crease Lines.
3. У вкладці Crease Lines вимкніть Hard Creases Only, для опції Crease Min/Max встановіть значення 0.

4. Визначтеся з товщиною ребра, яка залежить від того, наскільки ваша модель віддалена від камери.

5. Отрендерьте сцену з допомогою Maya Software.

Спосіб №5: Скрипт на Python

Спосіб для лінивих. За допомогою сценаріїв на Python, наведеного нижче, можна швидко і легко отримати такий же результат, як і в першому способі.

import pymel.core as pm

import subprocess, os

def findRenderCam():

«»»

Finds current rendercam or returns «persp»

return: Camera

«»»

for cam in pm.ls(cameras=True):

if cam.renderable.get():

return cam

pm.PyNode(«persp»).renderable.set(True)

return pm.PyNode(«persp»)

def create_wireframe_RL(name=»wireframe»):

«»»

Creates wireframe material

Creates wireframe layer

Adds all geometry and rendercam to the renderlayer

name: str layername

«»»

mat_name = «%s_mat» % name

if not pm.objExists(mat_name):

matNode = pm.shadingNode(«lambert», n = mat_name, asShader = True)

matNode.setColor([1,1,1])

matSGNode = pm.sets(renderable=True, noSurfaceShader=True, empty=True, name=»%sSG» % mat_name )

matSGNode.miContourEnable.set(1)

matSGNode.miContourColor.set([0,0,0])

matSGNode.miContourWidth.set(1.5)

matNode.outColor >> matSGNode.surfaceShader

if not pm.objExists(name):

render_layer = pm.createRenderLayer(n = name)

render_layer.setCurrent()

render_layer.addMembers(pm.ls(geometry = True, cameras = True))

matSGNode.message >> render_layer.shadingGroupOverride

def render_wireframe(name=»wireframe»):

«»»

Renders Renderlayer

using Mental Ray Legacy options

«»»

pm.mel.miCreateDefaultNodes()

renderGlobals = pm.PyNode(«defaultRenderGlobals»)

renderGlobals.currentRenderer.set(«mentalRay»)

renderGlobals.imageFormat.set(3)

#Legacy Options

miOptions = pm.PyNode(«miDefaultOptions»)

miOptions.miRenderUsing.set(2)

pm.mel.miSetRenderUsingValue()

miOptions.maxSamples.set(2)

pm.PyNode(«miDefaultFramebuffer»).contourEnable.set(1)

miOptions.contourPriData.set(1)

#Camera Set options

renderCam = «RENDER_CAM»

if not pm.objExists(renderCam):

renderCam = findRenderCam()

[cam.renderable.set(renderCam == cam.name()) for cam in pm.ls(cameras=True)]

pm.editRenderLayerAdjustment(pm.PyNode(renderCam).backgroundColor)

pm.PyNode(renderCam).backgroundColor.set([1,1,1])

pm.runtime.RenderViewWindow()

#Render Image

f = pm.Mayatomr(pv = True, layer=»wireframe»)

f = os.path.normcase(f)

os.system(«open %s» % f)

subprocess.Popen(r explorer /select,»%s»‘ %f)

#Reset to Unified Sampling

miOptions.miRenderUsing.set(0)

pm.PyNode(«miDefaultFramebuffer»).contourEnable.set(0)

if __name__ == «__main__»:

create_wireframe_RL()

render_wireframe()

Журналіст: Альона