|
@@ -16,6 +16,13 @@ clunky approach. - Josh
|
|
|
"""
|
|
"""
|
|
|
|
|
|
|
|
from .FilterManager import FilterManager
|
|
from .FilterManager import FilterManager
|
|
|
|
|
+from .filterBloomI import BLOOM_I
|
|
|
|
|
+from .filterBloomX import BLOOM_X
|
|
|
|
|
+from .filterBloomY import BLOOM_Y
|
|
|
|
|
+from .filterBlurX import BLUR_X
|
|
|
|
|
+from .filterBlurY import BLUR_Y
|
|
|
|
|
+from .filterCopy import COPY
|
|
|
|
|
+from .filterDown4 import DOWN_4
|
|
|
from panda3d.core import LVecBase4, LPoint2
|
|
from panda3d.core import LVecBase4, LPoint2
|
|
|
from panda3d.core import Filename
|
|
from panda3d.core import Filename
|
|
|
from panda3d.core import AuxBitplaneAttrib
|
|
from panda3d.core import AuxBitplaneAttrib
|
|
@@ -102,12 +109,6 @@ class CommonFilters:
|
|
|
self.task = None
|
|
self.task = None
|
|
|
self.cleanup()
|
|
self.cleanup()
|
|
|
|
|
|
|
|
- def loadShader(self, name):
|
|
|
|
|
- fn = os.path.join(os.path.abspath(os.path.dirname(__file__)), name)
|
|
|
|
|
- fn = Filename.fromOsSpecific(fn)
|
|
|
|
|
- fn.makeTrueCase()
|
|
|
|
|
- return Shader.load(fn)
|
|
|
|
|
-
|
|
|
|
|
def cleanup(self):
|
|
def cleanup(self):
|
|
|
self.manager.cleanup()
|
|
self.manager.cleanup()
|
|
|
self.textures = {}
|
|
self.textures = {}
|
|
@@ -184,9 +185,9 @@ class CommonFilters:
|
|
|
self.blur.append(self.manager.renderQuadInto(colortex=blur0,div=2))
|
|
self.blur.append(self.manager.renderQuadInto(colortex=blur0,div=2))
|
|
|
self.blur.append(self.manager.renderQuadInto(colortex=blur1))
|
|
self.blur.append(self.manager.renderQuadInto(colortex=blur1))
|
|
|
self.blur[0].setShaderInput("src", self.textures["color"])
|
|
self.blur[0].setShaderInput("src", self.textures["color"])
|
|
|
- self.blur[0].setShader(self.loadShader("filter-blurx.sha"))
|
|
|
|
|
|
|
+ self.blur[0].setShader(Shader.make(BLUR_X, Shader.SL_Cg))
|
|
|
self.blur[1].setShaderInput("src", blur0)
|
|
self.blur[1].setShaderInput("src", blur0)
|
|
|
- self.blur[1].setShader(self.loadShader("filter-blury.sha"))
|
|
|
|
|
|
|
+ self.blur[1].setShader(Shader.make(BLUR_Y, Shader.SL_Cg))
|
|
|
|
|
|
|
|
if ("AmbientOcclusion" in configuration):
|
|
if ("AmbientOcclusion" in configuration):
|
|
|
ssao0=self.textures["ssao0"]
|
|
ssao0=self.textures["ssao0"]
|
|
@@ -200,9 +201,9 @@ class CommonFilters:
|
|
|
self.ssao[0].setShaderInput("random", loader.loadTexture("maps/random.rgb"))
|
|
self.ssao[0].setShaderInput("random", loader.loadTexture("maps/random.rgb"))
|
|
|
self.ssao[0].setShader(Shader.make(SSAO_BODY % configuration["AmbientOcclusion"].numsamples, Shader.SL_Cg))
|
|
self.ssao[0].setShader(Shader.make(SSAO_BODY % configuration["AmbientOcclusion"].numsamples, Shader.SL_Cg))
|
|
|
self.ssao[1].setShaderInput("src", ssao0)
|
|
self.ssao[1].setShaderInput("src", ssao0)
|
|
|
- self.ssao[1].setShader(self.loadShader("filter-blurx.sha"))
|
|
|
|
|
|
|
+ self.ssao[1].setShader(Shader.make(BLUR_X, Shader.SL_Cg))
|
|
|
self.ssao[2].setShaderInput("src", ssao1)
|
|
self.ssao[2].setShaderInput("src", ssao1)
|
|
|
- self.ssao[2].setShader(self.loadShader("filter-blury.sha"))
|
|
|
|
|
|
|
+ self.ssao[2].setShader(Shader.make(BLUR_Y, Shader.SL_Cg))
|
|
|
|
|
|
|
|
if ("Bloom" in configuration):
|
|
if ("Bloom" in configuration):
|
|
|
bloomconf = configuration["Bloom"]
|
|
bloomconf = configuration["Bloom"]
|
|
@@ -212,25 +213,25 @@ class CommonFilters:
|
|
|
bloom3=self.textures["bloom3"]
|
|
bloom3=self.textures["bloom3"]
|
|
|
if (bloomconf.size == "large"):
|
|
if (bloomconf.size == "large"):
|
|
|
scale=8
|
|
scale=8
|
|
|
- downsampler="filter-down4.sha"
|
|
|
|
|
|
|
+ downsampler=DOWN_4
|
|
|
elif (bloomconf.size == "medium"):
|
|
elif (bloomconf.size == "medium"):
|
|
|
scale=4
|
|
scale=4
|
|
|
- downsampler="filter-copy.sha"
|
|
|
|
|
|
|
+ downsampler=COPY
|
|
|
else:
|
|
else:
|
|
|
scale=2
|
|
scale=2
|
|
|
- downsampler="filter-copy.sha"
|
|
|
|
|
|
|
+ downsampler=COPY
|
|
|
self.bloom.append(self.manager.renderQuadInto(colortex=bloom0, div=2, align=scale))
|
|
self.bloom.append(self.manager.renderQuadInto(colortex=bloom0, div=2, align=scale))
|
|
|
self.bloom.append(self.manager.renderQuadInto(colortex=bloom1, div=scale, align=scale))
|
|
self.bloom.append(self.manager.renderQuadInto(colortex=bloom1, div=scale, align=scale))
|
|
|
self.bloom.append(self.manager.renderQuadInto(colortex=bloom2, div=scale, align=scale))
|
|
self.bloom.append(self.manager.renderQuadInto(colortex=bloom2, div=scale, align=scale))
|
|
|
self.bloom.append(self.manager.renderQuadInto(colortex=bloom3, div=scale, align=scale))
|
|
self.bloom.append(self.manager.renderQuadInto(colortex=bloom3, div=scale, align=scale))
|
|
|
self.bloom[0].setShaderInput("src", self.textures["color"])
|
|
self.bloom[0].setShaderInput("src", self.textures["color"])
|
|
|
- self.bloom[0].setShader(self.loadShader("filter-bloomi.sha"))
|
|
|
|
|
|
|
+ self.bloom[0].setShader(Shader.make(BLOOM_I, Shader.SL_Cg))
|
|
|
self.bloom[1].setShaderInput("src", bloom0)
|
|
self.bloom[1].setShaderInput("src", bloom0)
|
|
|
- self.bloom[1].setShader(self.loadShader(downsampler))
|
|
|
|
|
|
|
+ self.bloom[1].setShader(Shader.make(downsampler, Shader.SL_Cg))
|
|
|
self.bloom[2].setShaderInput("src", bloom1)
|
|
self.bloom[2].setShaderInput("src", bloom1)
|
|
|
- self.bloom[2].setShader(self.loadShader("filter-bloomx.sha"))
|
|
|
|
|
|
|
+ self.bloom[2].setShader(Shader.make(BLOOM_X, Shader.SL_Cg))
|
|
|
self.bloom[3].setShaderInput("src", bloom2)
|
|
self.bloom[3].setShaderInput("src", bloom2)
|
|
|
- self.bloom[3].setShader(self.loadShader("filter-bloomy.sha"))
|
|
|
|
|
|
|
+ self.bloom[3].setShader(Shader.make(BLOOM_Y, Shader.SL_Cg))
|
|
|
|
|
|
|
|
texcoords = {}
|
|
texcoords = {}
|
|
|
texcoordPadding = {}
|
|
texcoordPadding = {}
|