Apollo
Apollo copied to clipboard
[Bug Report] Glow outline does not match vanilla behaviour when armor is equipped
Checklist before creating an issue:
- [x] I'm using the latest version of Apollo.
- [x] I'm using the latest version of Lunar Client. (Relaunched in the last hour)
- [x] I'm running Apollo on ONLY the backend server OR the proxy. (YOU CANNOT RUN IT ON BOTH)
- [x] I do NOT have both Apollo and the LEGACY API installed on the same server. (YOU CANNOT RUN BOTH AT THE SAME TIME)
- [x] I've gathered all screenshots, logs and appropriate information related to creating a bug report.
Issue Description
When armor is equipped the glow module does not outline the armor but still outlines the player's body. This does not match vanilla behaivour.
Reproduction steps
Apply glow effect on a player while he has armor on
Code Snippet (If applicable, if not write N/A)
N/A
Versions
1.8
Platforms
Spigot / Bukkit
Server Version
1.8
Modules
Optifine
Screenshots
Lunar Client outline:
https://lunr.pics/UkVw7TcZ
Modern outglow:
https://imgur.com/a/rm1aS1e
Contact Information
Discord: @1.7.10
Additional Context (Examples, Links, ETC)
No response
This is a 1.8 bug (AFAICT Lunar is using the existing spectator highlighting shader added in 1.8, see the highlighting keybind in MC settings), in the entity outline render pass no layers are rendered.
This is how it looks like in 1.8 (MCP RendererLivingEntity)
if (this.renderOutlines) {
// This is the outlines pass
boolean flag1 = this.setScoreTeamColor(entity);
this.renderModel(entity, f6, f5, f8, f2, f7, 0.0625F);
if (flag1) {
this.unsetScoreTeamColor();
}
} else {
// This is the regular pass
boolean flag = this.setDoRenderBrightness(entity, partialTicks);
this.renderModel(entity, f6, f5, f8, f2, f7, 0.0625F);
if (flag) {
this.unsetBrightness();
}
GlStateManager.depthMask(true);
if (!(entity instanceof EntityPlayer) || !((EntityPlayer)entity).isSpectator()) {
this.renderLayers(entity, f6, f5, partialTicks, f8, f2, f7, 0.0625F);
}
}
while this is 1.9 (RenderLivingBase)
if (this.renderOutlines) {
// This is the outlines pass
boolean flag1 = this.setScoreTeamColor(entity);
// ...
if (!this.field_188323_j) {
this.renderModel(entity, f6, f5, f8, f2, f7, f4);
}
// This is missing in 1.8
if (!(entity instanceof EntityPlayer) || !((EntityPlayer)entity).isSpectator()) {
this.renderLayers(entity, f6, f5, partialTicks, f8, f2, f7, f4);
}
// ...
if (flag1) {
this.unsetScoreTeamColor();
}
} else {
// This is the regular pass
boolean flag = this.setDoRenderBrightness(entity, partialTicks);
this.renderModel(entity, f6, f5, f8, f2, f7, f4);
if (flag) {
this.unsetBrightness();
}
GlStateManager.depthMask(true);
if (!(entity instanceof EntityPlayer) || !((EntityPlayer)entity).isSpectator()) {
this.renderLayers(entity, f6, f5, partialTicks, f8, f2, f7, f4);
}
}
Haven't tried, but the fix might be quite simple.