SHBIN: Difference between revisions

Smea (talk | contribs)
Line 165: Line 165:
|  0x18
|  0x18
|  0x4
|  0x4
|  Offset (relative to DVLE start) to unk1 table
|  Offset (relative to DVLE start) to uniform table
|-
|-
|  0x1C
|  0x1C
|  0x4
|  0x4
|  Number of entries in unk1 table (each entry is 0x14-byte long)
|  Number of entries in uniform table (each entry is 0x14-byte long)
|-
|-
|  0x20
|  0x20
Line 228: Line 228:
|  Offset (relative to DVLE symbol table start) to label's symbol
|  Offset (relative to DVLE symbol table start) to label's symbol
|-
|-
|}
Uniform table entry :
{| class="wikitable" border="1"
|-
!  Offset
!  Size
!  Description
|-
|  0x2
|  0x1
|  Uniform ID
|-
|  0x4
|  0x4
|  x (float24)
|-
|  0x8
|  0x4
|  y (float24)
|-
|  0xC
|  0x4
|  z (float24)
|-
|  0x10
|  0x4
|  w (float24)
|}
|}


Line 253: Line 281:
Each DVLE is associated to an individual shader shader program contained in the binary blob. A single shader binary blob may contain multiple shader programs of the same kind.
Each DVLE is associated to an individual shader shader program contained in the binary blob. A single shader binary blob may contain multiple shader programs of the same kind.


The data contained in unk1 table is sent over to the GPU.
Each program's constants are stored as vec4 in a uniform table. These are sent over to the GPU when changing to a give program.