diff --git a/direct/src/filter/CommonFilters.py b/direct/src/filter/CommonFilters.py index ce4b9078c8..c5313d0662 100644 --- a/direct/src/filter/CommonFilters.py +++ b/direct/src/filter/CommonFilters.py @@ -26,7 +26,7 @@ from .filterCopy import COPY from .filterDown4 import DOWN_4 from panda3d.core import LVecBase4, LPoint2 from panda3d.core import Filename -from panda3d.core import AuxBitplaneAttrib +from panda3d.core import AuxBitplaneAttrib, AntialiasAttrib from panda3d.core import Texture, Shader, ATSNone from panda3d.core import FrameBufferProperties from panda3d.core import getDefaultCoordinateSystem, CS_zup_right, CS_zup_left @@ -189,11 +189,22 @@ class CommonFilters: fbprops.setSrgbColor(False) clamping = False + if "MSAA" in configuration: + if fbprops is None: + fbprops = FrameBufferProperties() + fbprops.setMultisamples(configuration["MSAA"].samples) + self.finalQuad = self.manager.renderSceneInto(textures = self.textures, auxbits=auxbits, fbprops=fbprops, clamping=clamping) if (self.finalQuad == None): self.cleanup() return False + if "MSAA" in configuration: + camNode = self.manager.camera.node() + state = camNode.getInitialState() + state.setAttrib(AntialiasAttrib.make(AntialiasAttrib.M_multisample)) + camNode.setInitialState(state) + if ("BlurSharpen" in configuration): blur0=self.textures["blur0"] blur1=self.textures["blur1"] @@ -454,6 +465,19 @@ class CommonFilters: if task != None: return task.cont + def setMSAA(self, samples): + fullrebuild = "MSAA" not in self.configuration or self.configuration["MSAA"].samples != samples + newconfig = FilterConfig() + newconfig.samples = samples + self.configuration["MSAA"] = newconfig + return self.reconfigure(fullrebuild, "MSAA") + + def delMSAA(self): + if "MSAA" in self.configuration: + del self.configuration["MSAA"] + return self.reconfigure(True, "MSAA") + return True + def setCartoonInk(self, separation=1, color=(0, 0, 0, 1)): fullrebuild = (("CartoonInk" in self.configuration) == False) newconfig = FilterConfig() @@ -673,6 +697,8 @@ class CommonFilters: return True #snake_case alias: + set_msaa = setMSAA + del_msaa = delMSAA del_cartoon_ink = delCartoonInk set_half_pixel_shift = setHalfPixelShift del_half_pixel_shift = delHalfPixelShift