FilterManager does not handle window resizing correctly

Bug #1056627 reported by Craig Macomber
22
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Panda3D
Fix Released
Undecided
rdb

Bug Description

Bug discussed here: http://www.panda3d.org/forums/viewtopic.php?t=13880

direct.filter.FilterManager breaks such that it only renders part of the scene to part of the window (leaving what ever was previously there in the rest) if:

non power of 2 textures are not enabled
AND/OR
The window gets resized

Both the bloom filter and my do nothing filter break if the window is resized. Only my do nothing filter breaks before resizing if power of 2 textures are not enabled (bloom works correctly in this case until the window is resized).

My code:
from panda3d.core import loadPrcFileData
#loadPrcFileData('', 'textures-power-2 none')

from panda3d.core import Texture
from direct.showbase.ShowBase import ShowBase

ShowBase()
loader.loadModel("models/environment").reparentTo(render)

from direct.filter.FilterManager import FilterManager
from direct.filter.CommonFilters import CommonFilters

#filters = CommonFilters(base.win, base.cam)
#filters.setBloom(blend=(0,0,0,1), desat=0.5, intensity=1.0, size="large",mintrigger=0.0, maxtrigger=1.0)

manager = FilterManager(base.win, base.cam)
finalquad = manager.renderSceneInto(colortex=Texture())
finalquad.setColor(1,1,1,1)

base.run()

Tags: filter
Changed in panda3d:
status: New → Confirmed
status: Confirmed → New
Revision history for this message
rdb (rdb) wrote :

Sorry it took so long for me to get to this. The OpenGL FBO code resizing has been fixed.

summary: - FilterManager does not handel window resizing correctly
+ FilterManager does not handle window resizing correctly
Changed in panda3d:
assignee: nobody → rdb (rdb)
milestone: none → 1.9.0
status: New → Fix Committed
rdb (rdb)
Changed in panda3d:
status: Fix Committed → Fix Released
Revision history for this message
ellie (et1234567) wrote :

I am still seeing this issue in 1.10 (git master) with the glow-filter "basic.py" example. Do maybe the filters themselves still need to be fixed in some way?

Revision history for this message
ellie (et1234567) wrote :

This is how 1.10's unmodified glow-filter example looks like for me: https://www.homeofjones.net/temp/glow-breakage.webm (Fedora 25 / GNOME 3 Xorg session)

Revision history for this message
ellie (et1234567) wrote :

Sorry for the multiple comments, but there appears to be no way to edit them.
This fixed it:

loadPrcFileData('', 'textures-power-2 none')

Maybe the FilterManager should at least emit a warning if that setting isn't properly set and someone attempts to use the filters? It's a bit counter-intuitive that it just breaks with no immediately obvious reason.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers