def disable(self): if not self.shadowsEnabled: return self.shadowsEnabled = 0 taskName = 'shadowCamCompass' taskMgr.remove(taskName) self.shadowCamArm.removeNode() self.shadowCam.removeNode() if base.main_rtt: cam = base.main_rtt.camera_node_path.node() if cam: cam.clearTagState('caster') else: base.camNode.clearTagState('caster') self.turnOffShadows() self.shadowTex = None self.shadowStage = None ShadowCaster.setGlobalDropShadowFlag(1) return
def enable(self, fMoreShadows=False): self.fMoreShadows = fMoreShadows self.disable() self.shadowsEnabled = 1 ShadowCaster.setGlobalDropShadowFlag(0) camNode = Camera('shadowCam') camNode.setCameraMask(OTPRender.ShadowCameraBitmask) self.shadowLens = OrthographicLens() if fMoreShadows: self.shadowLens.setFilmSize(60 * 4, 60 * 4) else: self.shadowLens.setFilmSize(60, 60) camNode.setLens(self.shadowLens) self.shadowCamArm = base.camera.attachNewNode('shadowCamArm') self.shadowCam = self.shadowCamArm.attachNewNode(camNode) self.shadowCamArm.setPos(0, 40, 0) self.shadowCam.setPos(0, -40, 0) taskName = 'shadowCamCompass' taskMgr.remove(taskName) def applyCompassEffect(task, self=self): self.shadowCamArm.setHpr(self.lightSrc, 0, 0, 0) self.shadowCamArm.setScale(1) return Task.cont taskMgr.add(applyCompassEffect, taskName, priority=46) self.shadowTex = Texture('shadow') self.shadowTex.setBorderColor(self.clearColor) self.shadowTex.setWrapU(Texture.WMBorderColor) self.shadowTex.setWrapV(Texture.WMBorderColor) self.casterState = NodePath('temp') self.casterState.setColorScaleOff(10) self.casterState.setColor(self.shadowColor, self.shadowColor, self.shadowColor, 1, 10) self.casterState.setTextureOff(10) self.casterState.setLightOff(10) self.casterState.setFogOff(10) camNode.setInitialState(self.casterState.getState()) render.hide(OTPRender.ShadowCameraBitmask) self.shadowStage = TextureStage('shadow') self.shadowStage.setSort(1000) self.turnOnShadows()
def disable(self): if not self.shadowsEnabled: return None self.shadowsEnabled = 0 taskName = 'shadowCamCompass' taskMgr.remove(taskName) self.shadowCamArm.removeNode() self.shadowCam.removeNode() if base.main_rtt: cam = base.main_rtt.camera_node_path.node() if cam: cam.clearTagState('caster') else: base.camNode.clearTagState('caster') self.turnOffShadows() self.shadowTex = None self.shadowStage = None ShadowCaster.setGlobalDropShadowFlag(1)
def enable(self, fMoreShadows = False): self.fMoreShadows = fMoreShadows self.disable() self.shadowsEnabled = 1 ShadowCaster.setGlobalDropShadowFlag(0) camNode = Camera('shadowCam') camNode.setCameraMask(OTPRender.ShadowCameraBitmask) self.shadowLens = OrthographicLens() if fMoreShadows: self.shadowLens.setFilmSize(60 * 4, 60 * 4) else: self.shadowLens.setFilmSize(60, 60) camNode.setLens(self.shadowLens) self.shadowCamArm = base.camera.attachNewNode('shadowCamArm') self.shadowCam = self.shadowCamArm.attachNewNode(camNode) self.shadowCamArm.setPos(0, 40, 0) self.shadowCam.setPos(0, -40, 0) taskName = 'shadowCamCompass' taskMgr.remove(taskName) def applyCompassEffect(task, self = self): self.shadowCamArm.setHpr(self.lightSrc, 0, 0, 0) self.shadowCamArm.setScale(1) return Task.cont taskMgr.add(applyCompassEffect, taskName, priority = 46) self.shadowTex = Texture('shadow') self.shadowTex.setBorderColor(self.clearColor) self.shadowTex.setWrapU(Texture.WMBorderColor) self.shadowTex.setWrapV(Texture.WMBorderColor) self.casterState = NodePath('temp') self.casterState.setColorScaleOff(10) self.casterState.setColor(self.shadowColor, self.shadowColor, self.shadowColor, 1, 10) self.casterState.setTextureOff(10) self.casterState.setLightOff(10) self.casterState.setFogOff(10) camNode.setInitialState(self.casterState.getState()) render.hide(OTPRender.ShadowCameraBitmask) self.shadowStage = TextureStage('shadow') self.shadowStage.setSort(1000) self.turnOnShadows()