Announcements

Between mid-October and November, the content on AREA will be relocated to the Autodesk Community M&E Hub and the Autodesk Community Gallery. Learn more HERE.

what is the best of way to take snapshot from viewport?

what is the best of way to take snapshot from viewport?

g2m.agent
Collaborator Collaborator
6,454 Views
1 Reply
Message 1 of 2

what is the best of way to take snapshot from viewport?

g2m.agent
Collaborator
Collaborator

My request:

  1. no background.
  2. lighted.
  3. the result is basically the same as the viewport.
  4. ability to render only selected objects.

  5. ability to override material (through Render Setup or some way)

for now, i using

 

import maya.cmds as cmds
cmds.hwRender(renderSelected=True)

 

it basically fit my request, the only problem is that the image gets dark. i tried using Color Management, but it didn't seem to work.

Photoshop_wFoQC79PPI.png

0 Likes
Accepted solutions (1)
6,455 Views
1 Reply
Reply (1)
Message 2 of 2

Anonymous
Not applicable
Accepted solution

I don't know how to hwRender with color management. Instead of hwRender, you can use ogsRender and createImageFormats. Below is a sample code.

import maya.app.general.createImageFormats as createImageFormats
formatManager = createImageFormats.ImageFormats()
# Set Render Mode for ogsRender
# Same as "Render Settings > Maya Hardware 2.0 > Render Options"
cmds.setAttr('hardwareRenderingGlobals.renderMode', 4)
cmds.setAttr('hardwareRenderingGlobals.lightingMode', 0)
# ogsRender needs a Render View. (Open Render View)
mel.eval('RenderViewWindow')
# Execute ogsRender. (The temporary image will be saved to local)
tmp_image_path = cmds.ogsRender(cam='persp')
# Render View stores the result of ogsRender separately from a temporary image.
# Temporarily override the save settings and save a image with color management.
formatManager.pushRenderGlobalsForDesc('PNG')
cmds.renderWindowEditor('renderView', e=1, colorManage=1, writeImage='....your_image_path.png')
# Resume from override.
formatManager.popRenderGlobals()
# Delete the image created by ogsRender.
import os
os.remove(tmp_image_path)

And to check the type of image format, execute below the code.

print(formatManager.listFormats(createImageFormats.ImageDescriptor.kIsImage, createImageFormats.ImageDescriptor.filterFormat))

 

 

0 Likes