Hola,
En una aplicación que estoy realizando necesito que lo que aparece en el ViewPort3D tenga unas medidas reales que me pidan. Por ejemplo, quiero representar un cuadrado de lado 10x10cm y que en la pantalla aparezca un cuadrado de 10x10cm cuando utilizamos una cámara ortográfica (no en perspectiva).
Hasta ahora he conseguido que controles 2D en un panel tengan las medidas que yo quiero sabiendo que por cada 96px se corresponde con 1inch si ajusto antes la dimensión de la pantalla en pulgadas según comenta Olivier Dewit en este artículo http://www.odewit.net/ArticleContent.aspx?id=WpfDpiScaling&format=html&lang=en. Me gustaría obtener algo similar a esto en un ViewPort3D. Lo único que he conseguido mediante la vía experimental es que en un monitor de 19 pulgdas, un cm de algo que se vé en el Viewport3D son unas 0.049 unidades de WPF a la hora de definirlo de la siguiente forma:
<ModelVisual3D>
<ModelVisual3D.Content>
<Model3DGroup>
<GeometryModel3D>
<GeometryModel3D.Material>
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<SolidColorBrush Color="Black"/>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</GeometryModel3D.Material>
<GeometryModel3D.Geometry>
<MeshGeometry3D Positions="0,0.049,0 0,0,0 0.049,0,0 0.049,0.049,0"
TriangleIndices="0 1 2, 0 2 3"
TextureCoordinates="0,0 0,1 1,1 1,0"
/>
</GeometryModel3D.Geometry>
</GeometryModel3D>
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
El problema es que sólo es válido para monitores de 17 pulgadas. Si ejecutamos en otros tamaños no sale lo mismo...
¿Alguna idea de cómo afrontar esto?
Saludos