Re: Import of lighting from MS Office for extruded shapes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 2/24/24 16:56, Regina Henschel wrote:
Hi Thorsten,

Thorsten Behrens schrieb am 22.02.2024 um 21:04:
Hi Regina,

Regina Henschel wrote:
Any ideas/wishes for a reasonably usable import?

Our 3d engine already supports all this FWICT (I see e.g.
SDRATTR_3DSCENE_LIGHTCOLOR_1 - 8) - so why not extend ODF here, when
it's obviously lacking?

Unfortunately, our 3d engine does not support all needed features.
It does. We need to separate by the parts of the 3D render hierarchy. All 3D renderers do rasterconvert triangles, so do we. Q is how the tesselation in the geometry preparations does things, e.g. we create 'tubes' in 3D for fat lines, etc..
Most important problem is, that in our 3d engine only the first light is specular. We need three specular lights for MS Office light rigs. "Specular" means, that the light produces a bright spot on the shape.
You can just switch it on for every of the 8 lamps, they are all the same. More important is that you need 'phong' rendering to make it 'visible' in the raster conversion. I repeat that we use the standard model for 3D stuff, refer to the book 'Computer Graphics' Foley/VanDam/Feiner/Hughes. Of course today's (esp. HW-stuff) is 'advanced' but those basics always are the starting point.

Further problem with our 3d engine is, that we cannot render the "Bevel" of MS Office. Not only the fancy ones, but the simple round bevel is missing too. Our "Rounded edges" are in fact straight. In MS Office you can use the bevel to create a sphere, for example.
I would need an example for this, but this is of class 'tesselation' AKA geometry creation AKA decomposition since we have primitives in 3D, too. All this needs to be decomposed to triangles (even when in-between you might use stuff like 'bezier patches' in 3D or whatever).

Nevertheless, extending ODF is likely needed anyway. That would include extending our API because the import goes via API properties. The question is more whether to start that immediately or first implement some ersatz lighting so that the shapes are approximately as light as in MS Office. When you use the current import (in daily build which has the 3d geometry) you can see, that our default lighting gives bad results.

As said, we can render that lighting, Q is only how to get it through the levels/hierarchy. We need to separate:

(1) Renderer and capabilities

(2) Geometry creation/decomposition (3D primitives)

(3) Model (SdrObjects and 3DScene - sigh...)

we can anytime adapt (2), e.g. there IS a simple primitive for ANY kind of planar surface if you really need to define the geometry yourself. AFAIR even in (3) we have one 3D SdrObject just holding the data for a 3D plane/Polygon with normal definitions & texture coordinates.

The only thing that might be problematic is the OLD camera definition in SdrObject/ODF level - THAT was just im/exported by someone and is not fully fulfilling that standard - I moved it do do so in a compatible way, but we are not completely free here until we do better in ODF.

Regards,

Armin


Kind regards,
Regina

--
Armin Le Grand

Senior Software Engineer FLOSS
–––
allotropia software GmbH
Versmannstr. 4
20457 Hamburg
Germany
–––
armin.le.grand.extern@xxxxxxxxxxxxx
https://www.allotropia.de
–––
Registered office: Hamburg, Germany
Registration court Hamburg, HRB 165405
Managing director: Thorsten Behrens
VAT-ID: DE 335606919
---




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux