()
| 6 | from matplotlib import pyplot |
| 7 | |
| 8 | def main(): |
| 9 | app = Ogre.Bites.ApplicationContext("PySample") |
| 10 | app.initApp() |
| 11 | |
| 12 | root = app.getRoot() |
| 13 | scn_mgr = root.createSceneManager() |
| 14 | |
| 15 | shadergen = Ogre.RTShader.ShaderGenerator.getSingleton() |
| 16 | shadergen.addSceneManager(scn_mgr) |
| 17 | |
| 18 | ## [numpy_image] |
| 19 | arr = np.zeros((256, 256, 3), dtype=np.uint8) |
| 20 | arr[:,:,1] = np.mgrid[0:256,0:256][1] |
| 21 | ## [numpy_image] |
| 22 | |
| 23 | ## [np_to_ogre] |
| 24 | ogre_img = Ogre.Image() |
| 25 | ogre_img.loadDynamicImage(arr, 256, 256, Ogre.PF_BYTE_RGB) |
| 26 | |
| 27 | Ogre.TextureManager.getSingleton().loadImage("gradient", "General", ogre_img) |
| 28 | ## [np_to_ogre] |
| 29 | |
| 30 | ## [apply_to_rect] |
| 31 | mat = Ogre.MaterialManager.getSingleton().create("gradient_mat", "General") |
| 32 | rpass = mat.getTechniques()[0].getPasses()[0] |
| 33 | rpass.setLightingEnabled(False) |
| 34 | rpass.createTextureUnitState("gradient") |
| 35 | |
| 36 | rect = scn_mgr.createScreenSpaceRect(True) |
| 37 | rect.setCorners(-0.5, 0.5, 0.5, -0.5) # in normalized screen space |
| 38 | rect.setMaterial(mat) |
| 39 | |
| 40 | scn_mgr.getRootSceneNode().createChildSceneNode().attachObject(rect) |
| 41 | ## [apply_to_rect] |
| 42 | |
| 43 | cam = scn_mgr.createCamera("myCam") |
| 44 | win = app.getRenderWindow() |
| 45 | vp = win.addViewport(cam) |
| 46 | |
| 47 | ## [py_to_primitive] |
| 48 | gray = np.array([0.3, 0.3, 0.3]) |
| 49 | vp.setBackgroundColour(gray) |
| 50 | ## [py_to_primitive] |
| 51 | |
| 52 | root.startRendering() |
| 53 | |
| 54 | ## [ogre_to_np] |
| 55 | mem = np.empty((win.getHeight(), win.getWidth(), 3), dtype=np.uint8) |
| 56 | pb = Ogre.PixelBox(win.getWidth(), win.getHeight(), 1, Ogre.PF_BYTE_RGB, mem) |
| 57 | win.copyContentsToMemory(pb, pb) |
| 58 | ## [ogre_to_np] |
| 59 | |
| 60 | ## [zero_copy_view] |
| 61 | pyplot.imsave("screenshot.png", mem) |
| 62 | ## [zero_copy_view] |
| 63 | |
| 64 | if __name__ == "__main__": |
| 65 | main() |
no test coverage detected