Laden...

Ruckeln bei simplen HD Animationen.

Erstellt von realpk vor 14 Jahren Letzter Beitrag vor 14 Jahren 4.092 Views
R
realpk Themenstarter:in
98 Beiträge seit 2005
vor 14 Jahren
Ruckeln bei simplen HD Animationen.

Hallo,

ich habe in Expression Blend eine Animation (Rectangle und Text fliegt rein).
In der XAML ist ein "simples" Storyboard mit Keyframes. Es sind auch keine Effekte wie z. B. blur vorhanden.

Leider ruckelt bzw. flackert es. Muss man die GPU Unterstützung erst aktivieren oder was ist dabei das Problem?

Ich habe sowas schonmal in Javascript mit Tracing JIT Browsern und per Flash erzeugt. Überall ist dieser "Effekt" zu sehen 😦

Es wäre super wenn jemand eine Idee hätte.

EDIT: Die Anzahl der fps hat das Resultat leider auch nicht verändert.

Viele Grüße und Dank schonmal.

D
290 Beiträge seit 2006
vor 14 Jahren

Ich hab keine Ahnung von Silverlight und XAML, aber ich bin auf diesen Artikel gestoßen. Vielleicht hilft er.

R
realpk Themenstarter:in
98 Beiträge seit 2005
vor 14 Jahren

Danke. Hat sich nun erledigt. Irgendwie scheint das bei XP ne sehr gute Grafikkarte zu benötigen 😦
Bei Windows 7 läuft es viel besser.

6.862 Beiträge seit 2003
vor 14 Jahren

Hallo,

bei dir sind nicht zufällig Transparenz und rahmenlose Windows im Spiel oder?

Baka wa shinanakya naoranai.

Mein XING Profil.

R
realpk Themenstarter:in
98 Beiträge seit 2005
vor 14 Jahren

Leider muss ich dieses Thema nochmal eröffnen.
Unter Windows 7 läuft es viel besser aber kleine ruckler sind noch immer da.
Sie sind aber immer noch so groß das man sie bemerkt und es als sehr negativ wahrnimmt.

Transparenzen sind aktuell nicht vorhanden. Dies hatte ich mal getestet und hat den Ablauf nicht Positiv oder Negativ beeinflusst.

Das Fenster ist Rahmenlos und Maximiert. Gibt es damit Probleme?
Existiert dafür eine bessere Möglichkeit?

R
realpk Themenstarter:in
98 Beiträge seit 2005
vor 14 Jahren

Ich habe weiter rumprobiert. Ich schaffe es nicht eine simple HD Animation zu erstellen die komplett Ruckelfrei ist.
Bei manchen Zuckt es zwar nur einmal jede Minute aber selbst sowas soll es nicht geben. Mache ich etwas falsch? Oder ist WPF nicht für Full HD Animationen die komplett Ruckel und Zuckfrei geeignet?

6.862 Beiträge seit 2003
vor 14 Jahren

Poste doch einfach mal nen Beispielprojekt und auch deine Testhardware. Mit dem Projekt lässt sich das am einfachsten nachvollziehen und dann Tipps zu geben.

Baka wa shinanakya naoranai.

Mein XING Profil.

R
realpk Themenstarter:in
98 Beiträge seit 2005
vor 14 Jahren

Poste doch einfach mal nen Beispielprojekt und auch deine Testhardware. Mit dem Projekt lässt sich das am einfachsten nachvollziehen und dann Tipps zu geben.

Folgendes Beispiel zuckt alle paar Sekunden. Das Ändern des WindowStyles hat auch keine Änderung hervorgerufen.

Die Animation habe ich unter verschiedenen (4) Systemen getestet. Drei davon waren Windows 7 64bit und einer ein Windows XP.

Auch die Grafikkarten, RAM und CPU waren unterschiedlich. Einer der Windows 7 Maschinen hat 4GB und eine NVIDIA Geforce 9800 GT. Da sollte eigentlich genug Leistung sein. Das Haupttestsystem hat einen onBoard Grafikchip. Komplexere Animationen laufen da auch ohne Probleme, aber immer mit diesem Zucken.

Bildschirmauflösung: 1920x1200

<Window
	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
	x:Class="TextPerformanceLow.MainWindow"
	x:Name="Window"
	Title="MainWindow"
	Width="640" Height="480" WindowState="Maximized" WindowStyle="SingleBorderWindow" WindowStartupLocation="CenterScreen" Background="Black" mc:Ignorable="d">
	<Window.Resources>
		<Storyboard x:Key="Storyboard1" AutoReverse="True" RepeatBehavior="Forever">
			<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="textBlock" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
				<SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/>
				<SplineDoubleKeyFrame KeyTime="00:00:01" Value="5"/>
				<SplineDoubleKeyFrame KeyTime="00:00:01.5000000" Value="2"/>
			</DoubleAnimationUsingKeyFrames>
			<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="textBlock" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
				<SplineDoubleKeyFrame KeyTime="00:00:00" Value="1"/>
				<SplineDoubleKeyFrame KeyTime="00:00:01" Value="5"/>
				<SplineDoubleKeyFrame KeyTime="00:00:01.5000000" Value="2"/>
			</DoubleAnimationUsingKeyFrames>
			<ColorAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="textBlock" Storyboard.TargetProperty="(TextElement.Foreground).(SolidColorBrush.Color)">
				<SplineColorKeyFrame KeyTime="00:00:03" Value="Red"/>
				<SplineColorKeyFrame KeyTime="00:00:03.5000000" Value="#FF00FF34"/>
			</ColorAnimationUsingKeyFrames>
			<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="image" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)">
				<SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
				<SplineDoubleKeyFrame KeyTime="00:00:02" Value="464"/>
				<SplineDoubleKeyFrame KeyTime="00:00:03" Value="371.5"/>
				<SplineDoubleKeyFrame KeyTime="00:00:04" Value="0"/>
				<SplineDoubleKeyFrame KeyTime="00:00:06" Value="464"/>
			</DoubleAnimationUsingKeyFrames>
			<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="image" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)">
				<SplineDoubleKeyFrame KeyTime="00:00:00" Value="0"/>
				<SplineDoubleKeyFrame KeyTime="00:00:02" Value="-1"/>
				<SplineDoubleKeyFrame KeyTime="00:00:03" Value="522.625"/>
				<SplineDoubleKeyFrame KeyTime="00:00:04" Value="0"/>
				<SplineDoubleKeyFrame KeyTime="00:00:06" Value="-1"/>
			</DoubleAnimationUsingKeyFrames>
			<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="image" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
				<SplineDoubleKeyFrame KeyTime="00:00:02" Value="1"/>
				<SplineDoubleKeyFrame KeyTime="00:00:03" Value="2.744"/>
				<SplineDoubleKeyFrame KeyTime="00:00:04" Value="1"/>
			</DoubleAnimationUsingKeyFrames>
			<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="image" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
				<SplineDoubleKeyFrame KeyTime="00:00:02" Value="1"/>
				<SplineDoubleKeyFrame KeyTime="00:00:03" Value="2.744"/>
				<SplineDoubleKeyFrame KeyTime="00:00:04" Value="1"/>
			</DoubleAnimationUsingKeyFrames>
		</Storyboard>
	</Window.Resources>
	<Window.Triggers>
		<EventTrigger RoutedEvent="FrameworkElement.Loaded">
			<BeginStoryboard Storyboard="{StaticResource Storyboard1}"/>
		</EventTrigger>
	</Window.Triggers>

	<Grid x:Name="LayoutRoot">
		<Image x:Name="image" HorizontalAlignment="Left" Margin="0,0,0,-136" Width="160" RenderTransformOrigin="0.5,0.5" Source="Image2.png" Stretch="Fill" Height="600">
			<Image.RenderTransform>
				<TransformGroup>
					<ScaleTransform/>
					<SkewTransform/>
					<RotateTransform/>
					<TranslateTransform/>
				</TransformGroup>
			</Image.RenderTransform>
		</Image>
		<TextBlock x:Name="textBlock" HorizontalAlignment="Center" Margin="181.458,141.668,165.355,152.078" VerticalAlignment="Center" RenderTransformOrigin="0.5,0.5" FontSize="64" Foreground="Red" Text="Mein Demotext" TextWrapping="Wrap" d:LayoutOverrides="Width, Height">
			<TextBlock.RenderTransform>
				<TransformGroup>
					<ScaleTransform/>
					<SkewTransform/>
					<RotateTransform/>
					<TranslateTransform/>
				</TransformGroup>
			</TextBlock.RenderTransform>
		</TextBlock>
	</Grid>
</Window>
R
realpk Themenstarter:in
98 Beiträge seit 2005
vor 14 Jahren

Das Problem besteht leider noch immer.
Gibt es niemand der Full HD Animationen mit WPF macht?
Ruckelt es bei euch nicht (spezifisch bei dem Beispiel)?

Viele Grüße