View Issue Details

IDProjectCategoryView StatusLast Update
0000275Software Renderer[All Projects] Bugpublic2017-04-30 14:00
Assigned ToRachael 
Status closedResolutionopen 
PlatformAnyOSAnyOS VersionAny
Summary0000275: Sprites are cut off by interactive portals
DescriptionIn software mode (tested under QZDoom), sprites are cut off by interactive portal windows, both for linedef and sector portals.
Steps To ReproduceLoad the test wad and look at the big tree next to the line portal. Then turn on chasecam and the flight cheat and rise through the sector portal, to see your sprite cut off.
Additional InformationFor the sector portals, I fixed it in Eternity by creating duplicate vissprites and attaching them to the sectors behind all intersected portals. It was easier for me than figuring out how to setup the column clipping array.

For line portals, I'm trying to figure out how to do it, now.

The map also shows other problems with QZDoom and sector portals, not related to this.
TagsEffects, Visual





2017-02-15 14:19


testportalrender.wad (7,892 bytes)
Graf Zahl

Graf Zahl

2017-02-16 16:38

administrator   ~0000629

I never implemented this in the software renderer because at least back then it was too messy.

If you are interested how to handle sprites with line portals, what I did was to link each actor into a list with all potentially touching line portals and then go through that list for all rendered portals and check each sprite if it actualy intersects with the portal (See gl_sprite.cpp, gl_RenderActorsInPortal)

QZDoom's software renderer should of course use the same lists that are already present for OpenGL.

Issue History

Date Modified Username Field Change
2017-02-15 14:19 printz New Issue
2017-02-15 14:19 printz File Added: testportalrender.wad
2017-02-15 14:19 printz Tag Attached: Effects
2017-02-15 14:19 printz Tag Attached: Visual
2017-02-16 16:38 Graf Zahl Note Added: 0000629
2017-03-10 10:55 Rachael Status new => on hold
2017-04-30 14:00 Rachael Assigned To => Rachael
2017-04-30 14:00 Rachael Status on hold => closed