我是新來的WPF中的3D和動畫。我一直在試圖創建一個非常簡單的場景,由一個地板和2個立方體(很好,3D矩形,直角棱鏡,無論稱爲什麼)組成。這個場景有一個透視攝像機,我正在嘗試動畫(我基本上希望它可以在場景中飛行)。簡單的相機動畫有很多閃爍效果
該代碼非常簡單,我相信大多數情況下都是很好的方法。請在下面找到相關摘錄和sample project can be downloaded here。
XAML:
<Viewport3D ClipToBounds="false" IsHitTestVisible="false">
<!-- Camera -->
<Viewport3D.Camera>
<PerspectiveCamera x:Name="ViewportCamera"
Position="0 0 20"
LookDirection="40 40 0"
FarPlaneDistance="600"
UpDirection="0 0 1"
NearPlaneDistance="0.01"
FieldOfView="75" />
</Viewport3D.Camera>
<!-- Light -->
<ModelVisual3D>
<ModelVisual3D.Content>
<DirectionalLight Direction="1 0.5 1" />
</ModelVisual3D.Content>
</ModelVisual3D>
<ModelVisual3D>
<!-- Floor -->
<local:CubeControl Color="Black" Size="300,300,1" Center="0,0,0" />
<local:CubeControl Color="LightGray" Size="15,25,40" Center="40,40,20" />
<local:CubeControl Color="LightGray" Size="25,20,60" Center="40,-40,30" />
</ModelVisual3D>
</Viewport3D>
VB:
Dim tAnimation As New Vector3DAnimation(ViewportCamera.LookDirection, New Vector3D(40, -40, -20), New Duration(TimeSpan.FromMilliseconds(1000)))
ViewportCamera.BeginAnimation(PerspectiveCamera.LookDirectionProperty, tAnimation)
Dim tAnimation2 As New Point3DAnimation(ViewportCamera.Position, New Point3D(-10, -10, 30), TimeSpan.FromMilliseconds(1000))
ViewportCamera.BeginAnimation(PerspectiveCamera.PositionProperty, tAnimation2)
動畫運行時的窗口非常小,預計(約320×240)。隨着窗口大小的增加,動畫閃爍和整個幀似乎被跳過,導致白屏。在一個大窗口(1920x1080)中,動畫幾乎不可見(在攝像機設置到新位置之前,這一切都是空白的)。
不知何故,它似乎非常類似於this problem但這並沒有幫助我。
這是一個非常基本的動畫,我不能相信WPF有這樣做的任何問題,所以我認爲我做錯了什麼。
任何人都可以幫我弄清楚爲什麼?我花了足夠多的時間在此。
在此先感謝!
任何人都可以至少嘗試我的示例項目,並讓我知道他們的機器上是否出現同樣的問題? – Nicolas 2011-05-26 11:51:01