Page MenuHomeSchine - Phabricator

Starmade | transparent blocks touching open doors have invisible faces
Confirmed task for development, NormalPublic

Description

Doors (forcefields) closed

Doors (forcefields) open

Details

Task Type
Bug
Testing Results
Affected Gamemode(s)
Single and Multi
Reproducible
Yes
Last tested (version)
0.19439 (Dev)
Category
Engine
First occurrence (version)
0.18999
Hardware/Software/System
OS-Specific
No
Hardware-Specific
No
Video Card Vendor
uncertain
Serverconfig (server.cfg)
<replace this line with the file content>
Clientconfig (settings.cfg)
<replace this line with the file content>

Event Timeline

SmilingDemon updated the task description. (Show Details)Jun 15 2015, 4:00 PM
SmilingDemon changed Category from none/unspecified to Engine.
SmilingDemon changed Affected Gamemode(s) from none/unspecified to Single and Multi.
SmilingDemon set First occurrence (version) to 0.18999.
SmilingDemon changed Reproducible from uncertain to Yes.
SmilingDemon set Last tested (version) to 0.19266 (Dev).
SmilingDemon edited a custom field.
SmilingDemon edited Serverconfig (server.cfg). (Show Details)
SmilingDemon edited Clientconfig (settings.cfg). (Show Details)
SmilingDemon added a subscriber: SmilingDemon.
SmilingDemon created this task.
SmilingDemon changed the task status from Open to In Queue (Game).
SmilingDemon raised the priority of this task from to Normal.
Restricted Application edited projects, added Game Development; removed Issue Navigation. · View Herald TranscriptJun 15 2015, 4:01 PM
AndyP shifted this object from the S1 Public space to the S3 Starmade space.Aug 11 2015, 10:52 PM
AndyP changed the edit policy from "Starmade (Project)" to "All Users".
AndyP set Task Type to Bug.
AndyP set OS-Specific to No.
AndyP set Hardware-Specific to No.
AndyP set Video Card Vendor to uncertain.
AndyP added a subscriber: AndyP.Aug 11 2015, 10:55 PM

T370 is not fully related, this is about light calc beside closed doors not seeing a reason to calc, and thus no texture gets generated.

lancake changed Last tested (version) from 0.19266 (Dev) to 0.19439 (Dev).Sep 27 2015, 10:54 PM
lancake updated the task description. (Show Details)Jun 12 2016, 7:02 PM
lancake renamed this task from Transparent Blocks behind Doors/Forcefields are invisible .. even when doors are open to transparent blocks behind transparent blocks have invisible faces even with doors open.
lancake renamed this task from transparent blocks behind transparent blocks have invisible faces even with doors open to transparent blocks touching open doors have invisible faces.
Restricted Application added a project: Engine. · View Herald TranscriptMar 10 2017, 5:05 PM
AndyP changed the task status from In Queue (Game) to In Queue.Mar 10 2017, 5:22 PM
AndyP moved this task from Backlog / Unclassed to Rendering on the Engine board.Mar 24 2017, 9:16 PM
AndyP edited projects, added Engine (Rendering); removed Engine.
Spindizzi added a subscriber: Spindizzi.EditedApr 26 2017, 1:43 PM

There's a lot more to this bug then "transparent blocks touching open doors have invisible faces" and it extends throughout the game to all sorts of symptoms of just some weird rendering order or some such.

There's a group of transparent blocks in the game that includes blocks like force fields, metal grills, charged circuits and they're all pretty much invisible when viewed through one another.

The actual bug is any block which exists in the world but has a transparent property (either partial such as a block with the inherent property like a forcefield or fully invisible such as open door) disables the rendering of any other such block when viewed through the transparency of the first block.

Pretty annoying when metal grills are one of the nicer interior blocks to use and they all start disappearing when you put up some force fields too.

This bug doesn't seem to affect all transparent blocks, e.g glass blocks can be viewed through forcefields so I don't see why it shouldn't all be fixable.

To fix it properly, it will need a full rendering queue, to draw everything from "far away to close to the player" in exactly that order.
The engine relies on OpenGL to sort and organise the rendering order,
but it turns out that its not perfect without giving it an exact list for the rendering order.
So once we are feature complete, and know everything we want to render, we can rewrite that part on our own, and help OpenGL doing its job rendering the object we sent to it properly. =)

And yes, glass for example seems to work better, because it has only a partial transparency on an otherwise solid texture, while grates have parts that completely cover the view, and parts that are 100% transparent, this seems to be a weak spot for OpenGL.