标签: viewport3d

是否有一个秘密技巧在Windows XP中强制使用Viewport3D内的抗锯齿功能?

在Windows XP WPF下,真正的3D内容(通常使用Viewport3D控件显示)看起来非常难看,因为默认情况下它不像其他WPF图形那样被抗锯齿.特别是在较低分辨率下,体验非常糟糕,因此无法在生产代码中使用.

我已经设法使用驱动程序的设置强制对一些Nvidia显卡进行抗锯齿处理.不幸的是,这有时会产生丑陋的文物,只适用于特定的卡和驱动程序版本.微软在这方面的官方消息是,在Windows XP下通常不支持抗锯齿3D,我看到的工件是由于WPF已经自己进行了抗锯齿(在XP上仅用于2D).

所以我想知道是否有其他一些秘密技巧可以让我在Windows XP下强制对WPF 3D内容进行抗锯齿处理.

3d wpf windows-xp viewport3d antialiasing

6
推荐指数
1
解决办法
1892
查看次数

如何在 WPF 中使用鼠标在 ViewPort3D 中旋转相机?

我能够直接在 XAML 中设置放置在 viewport3d 中的透视相机的位置和方向。但我想知道如何使用鼠标输入旋转相机。我更喜欢 C# lang。我实际上被困在如何使用鼠标输入旋转相机的问题上。请帮我。如果有人给我一个示例代码会很有帮助....

c# wpf xaml viewport3d

6
推荐指数
1
解决办法
2万
查看次数

Viewport2DVisual3D创建的框架不可见

大家好,我有一个框架代码

<Frame Name="wow" Width="1200" Height="600" ></Frame>
Run Code Online (Sandbox Code Playgroud)

当我点击a时button,它会加载一个url

wow.Source=(new Uri("http://www.google.com"));
Run Code Online (Sandbox Code Playgroud)

当我把它扔进一个时它起作用grid,看起来很好但是当我将它扔进一个viewport2dvisual3d容器时,它不会出现.

  <Viewport2DVisual3D.Visual >
    <Grid Width="1200" Height="600" Name="frontPanel" Background="Blue">
      <Frame Name="wow" Width="1200" Height="600" ></Frame>            
        </Grid>                   
          </Viewport2DVisual3D.Visual>
Run Code Online (Sandbox Code Playgroud)

frame甚至不可见.我确实看到我的鼠标改变为加载符号几秒钟,但我似乎仍然无法看到框架.

这是一个错误吗?或者我必须做些什么来使框架出现在viewport2dvisual3d视口3d中?

wpf viewport3d frame visible

5
推荐指数
1
解决办法
331
查看次数

WPF 显示 FPS

我正在尝试显示 Viewport3D 的 FPS。

经过一些搜索,我发现了 CompositionTarget.Rendering,但这似乎给“WPF Performance suite”工具中显示的 FPS 提供了不同的结果。

使用 CompositionTarget.Rendering 时,我会显示稳定的 60 fps,直到我与视口相机交互(响应鼠标/键盘事件),然后 fps 飙升至 150 到 200 fps,而“WPF 性能套件”工具仍显示稳定的 60 fps。

我认为这是因为“WPF 性能套件”工具显示准确的 FPS,即每当 WPF 团队实际在后台缓冲区上调用 Present 时,而 CompositionTarget.Rendering 是内部更新的 fps,但不代表真实的 fps。

我想显示一些更符合“WPF Performance suite”工具的东西,我怎样才能实现这一点?

我使用 CompositionTarget.Rendering 如下 -

Viewport3D()
{
    CompositionTarget.Rendering += (s, a) =>
                {
                    ++m_frames;
                };

            DispatcherTimer fpsTimer = new DispatcherTimer();
            fpsTimer.Interval = TimeSpan.FromSeconds(1);
            fpsTimer.Tick += (s, a) =>
                {
                    m_fpsText.Text = string.Format("FPS:{0}", m_frames);
                    m_frames = 0;
                };
            fpsTimer.Start();
    }
Run Code Online (Sandbox Code Playgroud)

wpf viewport3d frame-rate

5
推荐指数
0
解决办法
3075
查看次数

如何在 WPF 中更改 ViewPort3D 背景颜色?

我有 viewport3d,我想改变它的背景颜色。

我对 Wpf 很陌生。我从其他帖子中不明白该怎么做。所以我在这里问。

我更改了 viewport3d 的画笔属性,但它什么也没做

<Window x:Class="W3DTinker.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="800" Width="1200">
<Grid HorizontalAlignment="Left" Height="780" Margin="10,10,0,-21" VerticalAlignment="Top" Width="1180">
    <Viewport3D Grid.Row="0" Grid.Column="0" x:Name="Viewport" Margin="350,10,10,10" OpacityMask="{DynamicResource {x:Static SystemColors.AppWorkspaceBrushKey}}" />
</Grid>
Run Code Online (Sandbox Code Playgroud)

c# wpf background viewport3d colors

3
推荐指数
1
解决办法
2730
查看次数

ViewPort3D:如何从Code后面创建一个带有文本的WPF对象(Cube)

我想绘制一组3D立方体,每个立方体应该显示一个名称,并且在选择立方体时也应该有自己的事件处理程序.

是否可以使用代码隐藏或xaml绑定来实现它?

c# wpf viewport3d wpf-controls helix-3d-toolkit

2
推荐指数
1
解决办法
6644
查看次数

如何在WPF Viewport3d中自动调整相机的LookDirection?

我使用HelixToolKit的ModelImporter函数向Viewport3d添加了一个模型(STL文件),但首先没有任何显示。要查看添加的3DModel,我必须进行缩小。我的问题是,有什么方法可以动态/以编程方式缩小或将相机旋转到新添加的模型,或需要立即显示它的任何方法。

我正在将带有C#WPF的helix工具包用于该项目。

c# wpf viewport3d helix-3d-toolkit

2
推荐指数
1
解决办法
1479
查看次数

在WPF中禁用面部剔除

我正在开始尝试使用WPF 3D渲染,我面临的第一个问题是如何禁用面部剔除.我知道如何在DirectX和OpenGL中做到这一点,但我找不到在WPF中这样做的方法.这是我的ViewPort标记.模型在运行时生成,它是GeometryModel3D中的MeshGeometry3D

  <Viewport3D x:Name="viewport"  DockPanel.Dock="Right" Margin="0" >
                <Viewport3D.Camera>
                    <PerspectiveCamera x:Name="camera" FarPlaneDistance="50" LookDirection="0,0,-10"
     UpDirection="0,1,0" NearPlaneDistance="0" Position="0,0,5"
     FieldOfView="45" />
                </Viewport3D.Camera>

                <ModelVisual3D x:Name="model">
                    <ModelVisual3D.Content>
                        <Model3DGroup x:Name="group">
                            <AmbientLight Color="DarkGray" />
                            <DirectionalLight Color="White" Direction="-5,-5,-7" />
                        </Model3DGroup>
                    </ModelVisual3D.Content>
                </ModelVisual3D>
            </Viewport3D>
Run Code Online (Sandbox Code Playgroud)

非常感谢您给我的任何建议.

wpf viewport3d culling

1
推荐指数
1
解决办法
2017
查看次数