def init(): global renderer, camera, scene, object, realCamera, realScene, cube, renderTarget pygame.init() pygame.display.set_mode( (width, height), DOUBLEBUF|OPENGL ) renderer = THREE.OpenGLRenderer renderer.init() renderer.setSize( width, height ) camera = THREE.PerspectiveCamera( 70, 1, 10, 1000 ) camera.position.z = 400 scene = THREE.Scene() scene.fog = THREE.Fog( 0x000000, 1, 1000 ) object = THREE.Object3D() scene.add( object ) geometry = THREE.SphereGeometry( 1, 4, 4 ) material = THREE.MeshLambertMaterial( color = 0xffffff ) for i in xrange( 100 ): mesh = THREE.Mesh( geometry, material ) mesh.position.set( random.uniform( -0.5, 0.5 ), random.uniform( -0.5, 0.5 ), random.uniform( -0.5, 0.5 ) ).normalize() mesh.position.multiplyScalar( random.uniform( 0, 400 ) ) mesh.rotation.set( random.uniform( 0, 2 ), random.uniform( 0, 2 ), random.uniform( 0, 2 ) ) mesh.scale.x = mesh.scale.y = mesh.scale.z = random.uniform( 0, 50 ) object.add( mesh ) scene.add( THREE.AmbientLight( 0x222222 ) ) light = THREE.DirectionalLight( 0xffffff ) light.position.set( 1, 1, 1 ) scene.add( light ) realCamera = THREE.PerspectiveCamera( 70, width / height, 10, 1000 ) realCamera.position.z = 200 renderTarget = THREE.OpenGLRenderTarget( 256, 256 ) realScene = THREE.Scene() realScene.background = THREE.Color().setHSL( 0, 1, 0.5 ) cubeGeom = THREE.BoxGeometry( 100, 100, 100 ) cubeMat = THREE.MeshBasicMaterial( map = renderTarget.texture ) cube = THREE.Mesh( cubeGeom, cubeMat ) realScene.add( cube )
def init(): global renderer, camera, scene, boxObject, bufferScene, bufferTexture, bufferCamera, mainBoxObject pygame.init() pygame.display.set_mode((width, height), DOUBLEBUF | OPENGL) renderer = THREE.OpenGLRenderer renderer.init() renderer.setSize(width, height) camera = THREE.PerspectiveCamera(70, width / height, 1, 1000) bufferCamera = THREE.PerspectiveCamera(70, 1, 1, 1000) scene = THREE.Scene() bufferScene = THREE.Scene() bufferTexture = THREE.OpenGLRenderTarget(256, 256, minFilter=THREE.LinearFilter, magFilter=THREE.NearestFilter) redMaterial = THREE.MeshBasicMaterial(color=0xF06565) boxGeometry = THREE.BoxGeometry(5, 5, 5) boxObject = THREE.Mesh(boxGeometry, redMaterial) boxObject.position.z = -10 bufferScene.add(boxObject) blueMaterial = THREE.MeshBasicMaterial(color=0x7074FF) plane = THREE.PlaneBufferGeometry(width, height) planeObject = THREE.Mesh(plane, blueMaterial) planeObject.position.z = -15 bufferScene.add(planeObject) boxMaterial = THREE.MeshBasicMaterial(map=bufferTexture.texture) boxGeometry2 = THREE.BoxGeometry(5, 5, 5) mainBoxObject = THREE.Mesh(boxGeometry2, boxMaterial) mainBoxObject.position.z = -10 scene.add(mainBoxObject)