MCPcopy Create free account
hub / github.com/OGRECave/ogre / main

Function main

Samples/Python/numpy_sample.py:8–62  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

6from matplotlib import pyplot
7
8def 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
64if __name__ == "__main__":
65 main()

Callers 1

numpy_sample.pyFile · 0.70

Calls 15

initAppMethod · 0.80
addSceneManagerMethod · 0.80
ImageMethod · 0.80
createScreenSpaceRectMethod · 0.80
attachObjectMethod · 0.80
getRootSceneNodeMethod · 0.80
getRenderWindowMethod · 0.80
addViewportMethod · 0.80
startRenderingMethod · 0.80
createSceneManagerMethod · 0.45
loadImageMethod · 0.45

Tested by

no test coverage detected