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

453

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

Спосіб №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()

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