Hello, This script loads an image file and sends it to Maya RenderView. It can work, but just too slow when the resolution is larger than 1024x768. Does anyone know how to speed it up please? Not one pixel by one pixel, but region by region. Is there any example like using OpenMayaRender.RV_PIXEL(32) ? I know it's wrong, but how to create a RV_PIXEL array? Thank you very much.
############# CODE BEGIN ################# ## Author: Will Zhou <[email protected]> ## Date: 09/01 2011 import maya.OpenMaya as OpenMaya import maya.OpenMayaRender as OpenMayaRender image = OpenMaya.MImage() #image.readFromFile(r"d:\devroot\lena.jpg") image.readFromFile(r"D:\devroot\Chrysanthemum.jpg") wScriptUtil = OpenMaya.MScriptUtil() widthPtr = wScriptUtil.asUintPtr() hScriptUtil = OpenMaya.MScriptUtil() heightPtr = hScriptUtil.asUintPtr() scriptUtil.setUint(widthPtr, 1) scriptUtil.setUint(heightPtr, 1) image.getSize(widthPtr, heightPtr) width = scriptUtil.getUint(widthPtr) height = scriptUtil.getUint(heightPtr) print width, height size = width * height charPixelPtr = image.pixels() OpenMayaRender.MRenderView.startRender(width, height) for i in range(0, size): redIndex = (i*4) + 0 greenIndex = (i*4) + 1 blueIndex = (i*4) + 2 alphaIndex = (i*4) + 3 red = scriptUtil.getUcharArrayItem(charPixelPtr, redIndex) green = scriptUtil.getUcharArrayItem(charPixelPtr, greenIndex) blue = scriptUtil.getUcharArrayItem(charPixelPtr, blueIndex) alpha = scriptUtil.getUcharArrayItem(charPixelPtr, alphaIndex) # FIXME: { y = int(i/width) x = int(i-y*width) rv_pixels = OpenMayaRender.RV_PIXEL() rv_pixels.a = alpha rv_pixels.r = red rv_pixels.g = green rv_pixels.b = blue if OpenMayaRender.MRenderView.doesRenderEditorExist(): OpenMayaRender.MRenderView.updatePixels(x, x, y, y, rv_pixels) # END FIXME: } OpenMayaRender.MRenderView.refresh(x, x, y, y) #OpenMayaRender.MRenderView.refresh(0, width-1, 0, height-1) OpenMayaRender.MRenderView.endRender() ############# CODE END ################# Regards, Will -- view archives: http://groups.google.com/group/python_inside_maya change your subscription settings: http://groups.google.com/group/python_inside_maya/subscribe
