commonFilters improperly handles screen edges
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Panda3D |
Fix Released
|
High
|
Unassigned |
Bug Description
As discussed and verified http://
When a window has non power of 2 dimensions, filters such as the bloom filter appear to sample from an uninitialized section of the texture beyond the top and/or right edges of the windows.
Initially found on a mac with a Nvidia GeForce 9600m GT. Related issue found by FenrirWolf on Windows, Nvidia 6800 Ultra.
I suspect it has to do with both the bloom shader and the resizing shader sampling outside of the screen region of the texture. This is possible related to a lack of padding being specified in CommonFilters.py, or likely could be resolved by modifying the shaders in question to specially handle the top and right screen edges.
Fix for the filter-bloomx.sha file:
added the clamps to these 3 lines:
l_texcoord0 = clamp(float4(
l_texcoord1 = clamp(float4(
l_texcoord2 = clamp(float4(
tried to fix bloom y the same way, and failed.
Found with the released 1.6.2 version of panda.
Workaround:
In prc file: "textures-power-2 none"
description: | updated |
description: | updated |
Changed in panda3d: | |
milestone: | none → 1.7.1 |
Changed in panda3d: | |
milestone: | 1.7.1 → 1.7.2 |
Changed in panda3d: | |
milestone: | 1.7.2 → none |
Can you see if the problem still occurs with "textures- auto-power- 2 #t" in
your Config.prc?