AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Strich im transparenten Texture
Thema durchsuchen
Ansicht
Themen-Optionen

Strich im transparenten Texture

Ein Thema von SonnyBoyPro · begonnen am 30. Dez 2013 · letzter Beitrag vom 1. Jan 2014
Antwort Antwort
SonnyBoyPro

Registriert seit: 9. Mai 2007
68 Beiträge
 
#1

Strich im transparenten Texture

  Alt 30. Dez 2013, 15:30
Hallo zusammen,

bin gerade dabei an mein MediaCenter-Programm weiter zu tüfteln....
Nun kämpf ich gerade an folgendem Problem (siehe Ausschnitt Screen-Shot) das nach dem Rendern (DirectX9Ex) beim Fenster
auf der Oberseite ein Strich ist.
Die Texture selbst wird über Direct2D auf eine SharedSurface gezeichnet, ist aber in Ordnung (Texture als PNG abgespeichert, siehe Anhang).

Ob ich die Texture mit einer Ortho oder einer Perspektive rendere (also auf den Vertex unter D3D9Ex) bleibt egal, immer das selbe Ergebnis.

Hat jemand eine Idee oder Anhaltspunkt für mich was da schief geht ?

bg
Miniaturansicht angehängter Grafiken
fehlermitstrich.jpg   di_yyy.png  
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#2

AW: Strich im transparenten Texture

  Alt 30. Dez 2013, 20:07
Ich weiß von OpenGL, dass das evt. durchs Wrapping verursacht werden kann!
Hast du soetwas wie ~WRAP_S, WRAP_T aktiviert (Texturkoordinaten)
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
SonnyBoyPro

Registriert seit: 9. Mai 2007
68 Beiträge
 
#3

AW: Strich im transparenten Texture

  Alt 31. Dez 2013, 08:24
Hi Aphton,

der Tip war gut, danke
Delphi-Quellcode:
D3D9DeviceEx.SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP);
D3D9DeviceEx.SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP);
Scheinbar kommt es hier zu einem Problem mit der Texture und der Koordinatenumrechnung.
Ich hab mir auch das erzeugte PNG nochmals näher angeschaut:
Bei der Direct2D muss die Y Koordinate um -1 gerechnet werden (bei X aber nicht). Dh. ein Rechteck muss zb. von Y 9 nach 49 gezeichnet werden
um am Bitmap dann von 10 nach 50 zu gehen.
wie gesagt, bei X tritt dieser offset nicht auf, klingt komisch ist halt so

wird die texture mit 1 pixel transparenten rand gezeichnet braucht das Adress-Clamping auch nicht eingeschalten werden, die Texture wird dann richtig gerendert (screenshot, mit GIMP geprüft )

D2 Content selbst hab ich noch nicht geprüft, da anscheinend ein bisschen aufwendig http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

Damit werde ich hergehen und die Texture einfach intern in der GUIWindow-Basis-Klasse um 2 pixel vergrößern und einen transparenten Rand lassen. und die Texture-Größe ist mir ja rechentechnisch wurscht, weil das Zeichnen ja eh die GPU machen muss

bg
  Mit Zitat antworten Zitat
SonnyBoyPro

Registriert seit: 9. Mai 2007
68 Beiträge
 
#4

AW: Strich im transparenten Texture

  Alt 1. Jan 2014, 19:21
Hallo zusammen und ein gutes neues Jahr!

Nach ein wenig MSDN Recherche hab ich nun Licht in die Sache gebracht.

Ursächlich für diese Verhalten ist das Texture-Filtering.
Da die Ränder meiner Direct2D Surface am PNG klar sind, am Screenshot allerdings mit Antialiasing Effekt, hab ich mal folgendes probiert:
Delphi-Quellcode:
D3D9DeviceEx.SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_NONE);
D3D9DeviceEx.SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_NONE);
Siehe da, die Texture ist klar, und die Ränder am Rand sind auch weg, auch wenn man bis an den Rand zeichnet.

Vielleicht nützt ja mal jemand anderen

bg
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

AW: Strich im transparenten Texture

  Alt 1. Jan 2014, 19:50
Sollte der Min und Mag Filter nicht eigentlich nur dann angewendet werden, wenn die Textur verkleinert oder vergrößert wird?
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz