AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Pixelgenaue Positionierung mit DirectX
Thema durchsuchen
Ansicht
Themen-Optionen

Pixelgenaue Positionierung mit DirectX

Ein Thema von Fingolfin · begonnen am 11. Aug 2004 · letzter Beitrag vom 11. Aug 2004
Antwort Antwort
Fingolfin

Registriert seit: 8. Okt 2003
62 Beiträge
 
#1

Pixelgenaue Positionierung mit DirectX

  Alt 11. Aug 2004, 08:19
Hallöle,

ich habe mich etwas mit Direct3D beschäftigt und auch schon einige Versuche damit gemacht. Ich kriege es aber nicht hin, pixelgenau zu positionieren.

Ich möchte sowas wie FillRect(x1, x2, y1, y2, color) realisieren. Da ich beim besten Willen keine Möglichkeit gefunden habe, einen Bildbereich so ohne weiteres zu füllen, habe ich eine neue Fläche (3D-Objekt) erstellt und allen Vertizes dieselbe Diffuse-Farbe zugeordnet.

Jetzt kannn ich dieses Viereck aber immer noch nicht pixelgenau positionieren, lediglich über die Daten des Vertexbuffers skalieren und translieren. Aber die übergebenen Pixelwerte jetzt in eine Matrix umzurechnen, erscheint mir dann doch etwas sehr umständlich.

Gibt es denn da keine einfachere Möglichkeit, Positionierungen auf Pixelebene vorzunehmen?!?
Oder vielleicht eine einfachere Variante das umzusetzen?

Vielen Dank im Voraus,

Fingolfin
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Pixelgenaue Positionierung mit DirectX

  Alt 11. Aug 2004, 10:29
hab dir in DelphiDX was zu geschrieben! ...du cross poster
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Fingolfin

Registriert seit: 8. Okt 2003
62 Beiträge
 
#3

Re: Pixelgenaue Positionierung mit DirectX

  Alt 11. Aug 2004, 10:45
Danke. Sorry, aber ich bin nicht wirklich davon ausgegangen darauf überhaupt eine Antwort zu erhalten und wollte meine Chancen maximieren. Besonders da nicht viele Threads zu dem Thema hier herumschwirren.

Der Vollständigkeit halber maximovs Antwort:

Zitat:
Moin,

am einfachsten wäre es, wenn du die viewmatrix einfach auf die pixelmetrik skalierst:


Code Sample
Code:
 viewmatrix:= D3DXMatrixIdentity;
 viewmatrix._00 := 2/backBufferWidth;
 viewmatrix._11 := 2/backBufferHeight;
Dann wäre eine einheit im 3D-raum genau ein pixel und du kannst prima damit arbeiten.

Wenn der nullpunkt in der oberen, linken ecke sein soll, dann musst du _11 vermutlich noch negieren
Fingolfin
  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 04:25 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