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

AW: Strich im transparenten Texture

  Alt 31. Dez 2013, 07: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
 
#2

AW: Strich im transparenten Texture

  Alt 1. Jan 2014, 18: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
 
#3

AW: Strich im transparenten Texture

  Alt 1. Jan 2014, 18: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 00:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz