mvrdevelopment / spec

DIN SPEC 15800 General Device Type Format (GDTF) and My Virtual Rig (MVR) File Format description DIN SPEC 15801
63 stars 13 forks source link

GDTF Transform matrix should prohibit skew and shear #113

Open RichardTea opened 2 years ago

RichardTea commented 2 years ago

Skew and shear transforms cannot be decomposed to the usual translation, rotation and scale, so cannot be shown by most CAD applications.

I would also recommend prohibiting Mirror in both GDTF and MVR transforms as these often cause rendering issues, especially when texturing, and many 3D UIs (including the GDTF Builder) do not permit a user to mirror objects at all, so cannot show a user that it is mirrored.

An object that has been mirrored on should have the mirroring part of the transform baked into the mesh at export, to ensure all importers and renderers display and edit it correctly.

moritzstaffel commented 2 years ago

I think that change is not wanted for GDTF and MVR.

Mirroring is often used for Truss Construction from various CAD Plattforms.

For the other operations. Have in mind that GDTF is not only targeting lighting devices, where for sure you don't need this operation. But we also support other object types with GDTF. One example that I wan't to point out is a tree. When you want to use multiple tree in a 3D scene, you can use only one mesh of the tree and than apply scaling and shear to make each instance of the tree look different.

RichardTea commented 2 years ago

Skew and Shear is explicitly prohibited by most 3D modelling and rendering engines. May even be all of them.

Including glTF, Vectorworks, Godot, Unity, Unreal Engine and more. I'm not actually aware of any that allow it.

If those transforms are permitted then Vectorworks cannot ever implement GDTF fully.

reneberhorst commented 2 years ago

We will not prohibit Skew & Shear even though no one is using it right now. We see a future use that needs to be further defined.

RichardTea commented 2 years ago

Nothing CAN support these types of 3D transform. Khronos prohibit them for a reason - and they know more about 3D than any of us ever will (other than Epic!)

A hierarchy that includes Skew and Shear transforms is not possible for a lighting engine to illuminate or cast light in any meaningful way, as it has no physical meaning.

Can you please provide a specific example of where a 3D skew or shear transform is necessary, desirable or even possible to meaningfully render? Note that 3D skew/shear has nothing to do with projector/camera lenses and keystoning.