Value range of c3DSpecularAmt
rb.henschel at t-online.de
Sun Jan 30 22:28:09 UTC 2022
Hi all, hi Miklos,
MS Office uses value 80000/65536 ≈ 1.22 for attribute c3DSpecularAmt.
The specification reads, "c3DSpecularAmt (4 bytes): A value of type
FixedPoint, as specified in [MS-OSHARED] section 220.127.116.11, that specifies
the ratio of incident to specular light that is reflected on a shape."
The corresponding ODF attribute is draw:extrusion-specularity. That has
a data type zeroToHundredPercent. So we cannot write the imported 122%
to ODF. But currently LibreOffice writes 122% to file and so produces
When the shape is rendered, the product of light intensity and
specularity is converted to a gray color for the 3D-Scene attribute
D3DMaterialSpecularIntensity. Because the light intensity is often
smaller than 100% a value for c3DSpecularAmt larger than 100% can be
The range to [0%,100] has been introduced with [Office-2509] for ODF
1.2. In ODF 1.1 the data type was "percent".
What to do?
My suggestion is: Allow larger values than 100% in LibreOffice. Clamp
the value to 100% in case of writing ODF 1.2 and 1.3 strict and use
loext in case of ODF 1.2 and 1.3 extended. And write to ODF TC to
re-enable values larger than 100% for ODF 1.4.
What do you think?
More information about the LibreOffice