Sodium

Sodium

44M Downloads

Vertex ordering in entity rendering is different, breaking core shaders

ArubikU opened this issue ยท 3 comments

commented

Bug Description

Sodium load all the entity shaders correctly but changuing a bit the faces id`s causing some incompatibilities with "core shaders"

Expected behavior:
image

Actual:
image

Reproduction Steps

Pack for sodium example.zip
example_skin

  1. Install the Resourcepack
  2. Apply the example skin what add wings

In vanilla the wings will be rendered correctly in sodium fail on the read of faces
Method use in vertex to detect faces: int face = gl_VertexID / 4 % 6;
Vanilla faces i identify:
#define BOTTOM_FACE 0
#define TOP_FACE 1
#define RIGHT_FACE 2
#define NORTH_FACE 3
#define LEFT_FACE 4
#define SOUTH_FACE 5

Log File

latest.log

Crash Report

crash-2024-09-12_17.26.57-client.txt

commented

I want to note that this is an issue with the entity data provided by sodium to the resource pack's core shader and not a matter of getting sodium to load a pack's terrain core shaders (since this isn't terrain). This was misunderstood in the preceding discussion on discord multiple times.

commented

It would probably be enough to fix this issue if the ordering of constants here were changed to match Minecraft.

commented

However, it is possible that future versions of Sodium will discard back-facing triangles when rendering entities, and that core shaders which rely on this specific ordering will be broken once again.

We do not support core shaders and we cannot guarantee that relying on extremely specific behavior like this will continue to work.