__file__ usage in CommonFilters

Removed __file__ usage due to unavailability in deploy-ng builds
Moved Cg filters from sha files into separate python scripts
Removed now obsolete loadShader function from CommonFilters
This commit is contained in:
fireclawthefox 2017-06-10 21:59:18 +02:00
parent 55ce23fbba
commit cfad049992
8 changed files with 35 additions and 23 deletions

View File

@ -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 = {}

View File

@ -1,3 +1,4 @@
BLOOM_I = """
//Cg //Cg
// //
// blend.rgb // blend.rgb
@ -83,3 +84,4 @@ void fshader(float2 l_texcoordNW : TEXCOORD0,
o_color = (colorNW + colorNE + colorSW + colorSE) * 0.25; o_color = (colorNW + colorNE + colorSW + colorSE) * 0.25;
} }
"""

View File

@ -1,3 +1,4 @@
BLOOM_X = """
//Cg //Cg
void vshader(float4 vtx_position : POSITION, void vshader(float4 vtx_position : POSITION,
@ -45,3 +46,4 @@ void fshader(float4 l_texcoord0 : TEXCOORD0,
color += 50 * tex2D(k_src, l_texcoord2.zw); color += 50 * tex2D(k_src, l_texcoord2.zw);
o_color = color / 1200.0; o_color = color / 1200.0;
} }
"""

View File

@ -1,3 +1,4 @@
BLOOM_Y = """
//Cg //Cg
void vshader(float4 vtx_position : POSITION, void vshader(float4 vtx_position : POSITION,
@ -36,3 +37,4 @@ void fshader(float4 l_texcoord0 : TEXCOORD0,
o_color = color / 1200.0; o_color = color / 1200.0;
o_color = o_color * k_intensity; o_color = o_color * k_intensity;
} }
"""

View File

@ -1,3 +1,4 @@
BLUR_X = """
//Cg //Cg
// //
//Cg profile arbvp1 arbfp1 //Cg profile arbvp1 arbfp1
@ -31,3 +32,4 @@ void fshader(float2 l_texcoord0 : TEXCOORD0,
o_color.w = 1; o_color.w = 1;
} }
"""

View File

@ -1,3 +1,4 @@
BLUR_Y = """
//Cg //Cg
// //
//Cg profile arbvp1 arbfp1 //Cg profile arbvp1 arbfp1
@ -30,4 +31,4 @@ void fshader(float2 l_texcoord0 : TEXCOORD0,
o_color /= 7; o_color /= 7;
o_color.w = 1; o_color.w = 1;
} }
"""

View File

@ -1,3 +1,4 @@
COPY = """
//Cg //Cg
@ -17,4 +18,4 @@ void fshader(float2 l_texcoord : TEXCOORD0,
{ {
o_color = tex2D(k_src, l_texcoord); o_color = tex2D(k_src, l_texcoord);
} }
"""

View File

@ -1,3 +1,4 @@
DOWN_4 = """
//Cg //Cg
void vshader(float4 vtx_position : POSITION, void vshader(float4 vtx_position : POSITION,
@ -30,4 +31,4 @@ void fshader(float2 l_texcoordNW : TEXCOORD0,
float4 colorSE = tex2D(k_src, l_texcoordSE); float4 colorSE = tex2D(k_src, l_texcoordSE);
o_color = (colorNW + colorNE + colorSW + colorSE); o_color = (colorNW + colorNE + colorSW + colorSE);
} }
"""