Advertisement
Guest User

Untitled

a guest
Feb 11th, 2014
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.37 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3.  
  4. #esential python libs
  5. import os, sys
  6. from exceptions import *
  7.  
  8. #import esential panda libs
  9. from panda3d.core import *
  10. from direct.showbase.ShowBase import ShowBase
  11. from direct.stdpy.file import *
  12.  
  13. from direct.filter.CommonFilters import CommonFilters
  14.  
  15. #from panda3d.bullet import *
  16.  
  17. import loaders
  18. import math
  19.  
  20. class Starboard(ShowBase):
  21.     def __init__(self, args):
  22.         ShowBase.__init__(self)
  23.         self.args = args
  24.         self.isRunning = False
  25.         render.setShaderAuto()
  26.         render.setAntialias(AntialiasAttrib.MMultisample)
  27.  
  28.         #lights
  29.         ambientLight = AmbientLight('ambientLight')
  30.         ambientLight.setColor(Vec4(0.5, 0.5, 0.5, 1) * 0.5)
  31.         ambientLightNP = render.attachNewNode(ambientLight)
  32.         render.setLight(ambientLightNP)
  33.  
  34.         dlight = DirectionalLight('dlight')
  35.         dlight.setColor(VBase4(0.8, 0.8, 0.5, 1) * 2)
  36.         self.dlnp = render.attachNewNode(dlight)
  37.         self.dlnp.setHpr(-90, 0, 0)
  38.         render.setLight(self.dlnp)
  39.  
  40.         plight = PointLight('plight')
  41.         plight.setColor(VBase4(0.2, 0.2, 0.2, 1) * 7)
  42.         plight.setShadowCaster(True, 512, 512)
  43.         self.plnp = render.attachNewNode(plight)
  44.         self.plnp.setPos(0, 40, 10)
  45.         render.setLight(self.plnp)
  46.  
  47.         self.skybox = loaders.loadSkybox('OmegaClusterSkybox')
  48.  
  49.         self.testobject = loaders.loadObject('Drone')
  50.         self.testobject.reparentTo(self.render)
  51.         self.testobject.setPos(0,0,0)
  52.  
  53.         plasma = Material()
  54.         plasma.setAmbient(VBase4(0,0,1,1))
  55.         plasma.setEmission(500)
  56.         self.testobject.find('**/motor').setMaterial(plasma)
  57.  
  58.         self.camera.setPos(12,40,8)
  59.  
  60.         self.time = 0
  61.  
  62.         def update(task):
  63.             dt = globalClock.getDt()
  64.             self.time += dt
  65.             fac = 10
  66.             self.plnp.setPos(math.sin(self.time) * fac, self.testobject.getPos()[1]+math.cos(self.time) * fac, math.cos(self.time) * fac)
  67.             cur = self.testobject.getPos()
  68.             if self.isRunning:
  69.                 cur += LPoint3f(0,1,0) * dt * 3.5
  70.             self.testobject.setPos(cur)
  71.             self.skybox.setPos(camera.getPos())
  72.             self.camera.lookAt(self.testobject)
  73.             return task.cont
  74.  
  75.         self.taskMgr.add(update, 'update')
  76.  
  77.         def switchRun():
  78.             self.isRunning = not self.isRunning
  79.  
  80.         self.accept('p', switchRun, [])
  81.  
  82.         filters = CommonFilters(self.win, self.cam)
  83.         #filters.setAmbientOcclusion(numsamples=64, radius=0.01, amount=2.0, strength=0.01)
  84.         filters.setBloom(size = "small", intensity = 1.2, mintrigger = 0.7, maxtrigger = 3)
  85.  
  86.         self.disableMouse()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement