Пример #1
0
	def __init__(self):
		tex1 = loader.loadTexture('textures/clouds.jpg')
		tex1.setMagfilter(Texture.FTLinearMipmapLinear)
		tex1.setMinfilter(Texture.FTLinearMipmapLinear)
		tex1.setAnisotropicDegree(2)
		tex1.setWrapU(Texture.WMRepeat)
		tex1.setWrapV(Texture.WMRepeat)
		tex1.setFormat(Texture.FAlpha)
		self.ts1 = TextureStage('clouds')
		#self.ts1.setMode(TextureStage.MBlend)
		self.ts1.setColor(Vec4(1,1,1,1))
		
		#self.plane(-2000, -2000, 2000, 2000, 100)
		self.sphere(10000, -9600)
		
		self.clouds.setTransparency(TransparencyAttrib.MDual)
		self.clouds.setTexture(self.ts1, tex1)
		
		self.clouds.setBin('background', 3)
		self.clouds.setDepthWrite(False)
		self.clouds.setDepthTest(False)
		self.clouds.setTwoSided(True)
		self.clouds.setLightOff(1)
		self.clouds.setShaderOff(1)
		self.clouds.setFogOff(1)
		self.clouds.hide(BitMask32.bit(2)) # Hide from the volumetric lighting camera
		
		self.speed = 0.003
		self.time = 0
		self.dayColor = Vec4(0.98, 0.98, 0.95, 1.0)
		self.nightColor = Vec4(-0.5, -0.3, .0, 1.0)
		self.sunsetColor = Vec4(0.75, .60, .65, 1.0)
		ColoredByTime.__init__(self)
		self.setColor = self.clouds.setColor
Пример #2
0
class CloudLayer(ColoredByTime):
	def __init__(self):
		tex1 = loader.loadTexture('textures/clouds.jpg')
		tex1.setMagfilter(Texture.FTLinearMipmapLinear)
		tex1.setMinfilter(Texture.FTLinearMipmapLinear)
		tex1.setAnisotropicDegree(2)
		tex1.setWrapU(Texture.WMRepeat)
		tex1.setWrapV(Texture.WMRepeat)
		tex1.setFormat(Texture.FAlpha)
		self.ts1 = TextureStage('clouds')
		#self.ts1.setMode(TextureStage.MBlend)
		self.ts1.setColor(Vec4(1,1,1,1))
		
		#self.plane(-2000, -2000, 2000, 2000, 100)
		self.sphere(10000, -9600)
		
		self.clouds.setTransparency(TransparencyAttrib.MDual)
		self.clouds.setTexture(self.ts1, tex1)
		
		self.clouds.setBin('background', 3)
		self.clouds.setDepthWrite(False)
		self.clouds.setDepthTest(False)
		self.clouds.setTwoSided(True)
		self.clouds.setLightOff(1)
		self.clouds.setShaderOff(1)
		self.clouds.setFogOff(1)
		self.clouds.hide(BitMask32.bit(2)) # Hide from the volumetric lighting camera
		
		self.speed = 0.003
		self.time = 0
		self.dayColor = Vec4(0.98, 0.98, 0.95, 1.0)
		self.nightColor = Vec4(-0.5, -0.3, .0, 1.0)
		self.sunsetColor = Vec4(0.75, .60, .65, 1.0)
		ColoredByTime.__init__(self)
		self.setColor = self.clouds.setColor
		
	def plane(self, x1, y1, x2, y2, z):
		self.z = z
		maker = CardMaker('clouds')
		maker.setFrame(x1, x2, y1, y2)
		self.clouds = render.attachNewNode(maker.generate())
		self.clouds.setHpr(0, 90, 0)
		self.clouds.setTexOffset(self.ts1, 0, 1)
		self.clouds.setTexscale(self.ts1, 10, 10)
		
	def sphere(self, scale, z):
		self.z = z
		self.clouds = loader.loadModel("models/sphere")
		self.clouds.reparentTo(render)
		self.clouds.setHpr(0, 90, 0)
		self.clouds.setScale(scale)
		self.clouds.setTexOffset(self.ts1, 0, 1)
		self.clouds.setTexScale(self.ts1, 30, 12)
		
	def setTime(self, time):
		self.colorize(time)
		self.clouds.setTexOffset(self.ts1, self.time * self.speed, self.time * self.speed);
		
	def update(self, elapsed):
		self.time += elapsed
		self.clouds.setPos(base.cam.getPos(render) + Vec3(0, 0, self.z))