AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Textur in einen Poligone einfügen ?
Thema durchsuchen
Ansicht
Themen-Optionen

Textur in einen Poligone einfügen ?

Ein Thema von mimi · begonnen am 22. Okt 2007 · letzter Beitrag vom 24. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

Textur in einen Poligone einfügen ?

  Alt 22. Okt 2007, 13:55
Hallo,
wie könnte ich in einen Poligone eine Textur einfügen ? so wie das hier passiert:
http://www.delphipraxis.net/internal...ct.php?t=97168

Das ganze müsste unter TBitMap laufen und auf Linux laufen.
Und Natürlich unter Lazarus.... aber ohne Scaneline, was sowas habe ich noch nicht.

edit: so wie das unter www.clonk.de passiert.......
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Textur in einen Poligone einfügen ?

  Alt 22. Okt 2007, 17:11
Warum kein OpenGL?
Markus Kinzler
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Textur in einen Poligone einfügen ?

  Alt 22. Okt 2007, 17:31
Weil das unter Linux bei mir nicht richtig läuft, bzw. gar nicht läuft. Ich könnte noch SDL nehmen, aber das ist mir auch zu viel Aufwand.

Bzw. ich müsste mich erst einarbeiten.....
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#4

Re: Textur in einen Poligone einfügen ?

  Alt 22. Okt 2007, 18:16
Eine Methode, um ein Polygon gleichfarbig auszufüllen, sollte es ja bereits geben. Dann zeichnest du damit ein weißes Polygon auf schwarzen Hintergrund und benutzt dieses als Bitmaske für deine Textur. Soll heißen: weißes Pixel -> Textur, schwarzes Pixel -> schwarz - also eine AND-Verknüpfung. Wenn du einen Alphakanal zur Verfügung hast, kannst du natürlich gleich diesen statt der Bitmaske benutzen.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Textur in einen Poligone einfügen ?

  Alt 22. Okt 2007, 18:27
Ganz verstehe ich das noch nicht......

Ich weiß das ich ein Poligone mit einer Canvas Funktion z.b. Rot Zeichnen könnte.

den nächsten Schritte verstehe ich jetzt noch nicht: Unter Lazarus habe ich im Moment leider nur BitBtl zuverfügung oder draw von TCanvas, aber CopyRect hat leider einen BUG.....

Also, ich lade die Texttur in eine TBitMap rein. und wie soll sie jetzt in das Poligone kommen ?
Dann müsste ich praktisch ein Poligone aus dem TBitMap Kopieren.... oder verstehe ich was falsch ?
Wenn nicht, wie soll das gehen ? bisher habe ich immer nur Vierecke Kopiert, aber noch nie ein Polygone....

Oder müssen die Texturen ein bestimmtes Format haben ? z.b. sehr klein sein oder so.....
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: Textur in einen Poligone einfügen ?

  Alt 22. Okt 2007, 21:20
Was willst du machen? Eine 3D-Anwendung ?
Wenn du ein Polygon mit einem Bitmap (die Textur halt) füllen möchtest für eine 2D-Anwendung
lade dir in das (Canvas.)Brush.Bitmap deine Textur.

Das diese dann aber Passend ( zB. Perspektivisch ) verzerrt wird kannst du vergessen. Dann darfst
du dir eine schöhne nette komplexe Funktion schreiben, natürluch mit einer gehörigen Portion
Mathematikverständnis.

Dann bekommst du für die 0815 GDI-Darstellung mehrerer Polygone ein super ruckeln da der Rechner sich für die massive CPU-Auslastung bedankt.

Tipp: Nimm OpenGL !
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#7

Re: Textur in einen Poligone einfügen ?

  Alt 23. Okt 2007, 09:55
Hm mimi,
wenn ich deine Bemühungen bezüglich der Umgehung der Benutzung von OpenGL immer sehe, denke ich mir langsam, dass es bedeutend einfacher wäre, wenn du openGL auf deinem Rechner zum Laufen bekommst, anstatt die Alternativlösung auf Entwicklerebene zu suchen
Florian Heft
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Textur in einen Poligone einfügen ?

  Alt 23. Okt 2007, 15:28
Ihr habt natürlich recht, aber immer wenn ich versuche Opengl zum Laufen zu bringen, habe ich hinterher einen anderen Fehler, und OpenGL läuft immer noch nicht.....

Also der Linux befehl lspci: meint ich hätte folgende Grafik-Chip satzt:
Zitat:
00:00.0 Host bridge: VIA Technologies, Inc. VT8378 [KM400/A] Chipset Host Bridge
und die läuft leider nicht unter Linux...... bzw. nur Eingeschrängt. OpenGL ist sehr langsam....
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von Lossy eX
Lossy eX

Registriert seit: 7. Aug 2007
113 Beiträge
 
#9

Re: Textur in einen Poligone einfügen ?

  Alt 23. Okt 2007, 16:23
Ohne passende Hardware/Treiber wird unter Linux eigentlich immer MesaGL benutzt was ausschließlich auf der CPU läuft. Allerdings wenn es sich dabei nicht gerade um einen NoteBook handelt dann wäre es denkbar noch eine extrerne Karte einzubauen. Die Kosten dafür liegen bei 20-30€ da es ja nicht state of the art sein muss. Was das und andere Probleme wohl gut lösen dürfte.

Aber zu dem eigentlichen Thema. Polygon ist da sicherlich etwas falsch ausgedrückt, denn dieses Clonk bzw bei Andora handelt es sich um 2 Dimensionale Anwednungen. Und eigentlich möchtest du ja nur eine Maske für ein Bitmap benutzen. Also mit anderen Worten ein Bild darstellen bei denen einige Stellen Transparent sind? Klar würde ich in jedem Falle zu OpenGL raten. Der ein oder andere weiß warum und es wäre auch wesentlich schneller und leistungsfähiger. Aber deine Frage sehe ich bei weitem nicht so kompliziert. Mag auch sein, dass ich mich da gerade voll vertue.

Aber würde es nicht ausreichen gewissen Teile der Bilder in einer Farbe zu füllen und dann diese Farbe als Transparentz einzustellen. Vorrausgesetzt Lazarus kann das.
Ich habe ja keine Vorurteile gegenüber Autofahrern ... aber Fahrer von BMW und Mercedes bestätigen diese regelmäßig.
Außerdem neue technologische Errungenschaften: Serienmäßig eingebaute Rechtsfahrsperre und der stromsparende Blinker.
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Textur in einen Poligone einfügen ?

  Alt 23. Okt 2007, 16:47
Zitat:
Aber würde es nicht ausreichen gewissen Teile der Bilder in einer Farbe zu füllen und dann diese Farbe als Transparentz einzustellen. Vorrausgesetzt Lazarus kann das.
Wie genau meinst du das ? Tranzparent geht.

Ich habe leider nur einen Laptop: Aspire 1350
Sonst hätte ich mir schon lägst eine neue Grafik Karte gekauft. die unter Linux besser läuft.....


Ich habe auch nur Intressehalber gefragt, weil ich es einfach mal wissen wollte wie sowas gehen könnte. und ich habe mich schon seit längern gefragt, wie das gehen könnte...

Nehmen wir mal ein Viereckiges Bild: Da währe es ja einfach(relativ gesehen)
ich habe eine Textur von 200*200 Pixeln.
und die Zeichne ich per Draw oder wie auch immer auf das Viereck drauf.....
Praktisch gesehen wie ein Raster.

Aber bei einem Polygone kann ich mir das immer noch nicht vorstellen, weil ich bisher immer nur mit Vierecken arbeite. Es müsste doch möglich sein einen bestimmten bereich aus einer TBitMap einfach rauß zukopieren, so wie bei Paint: Ich gebe ein Polygone ein, welches dann aus der angeben TBitMap rauß kopiert wird.....

Allerdings, müsste die Grafik an die Größe des Polygones angepasst werden, und genau hier kommt das Problem ins spiel: Ein Polygone muss ja nicht immer ein Viereck sein, es kann aussehen wie es möchte, d.h. ich müsste die Textur zuschneiden oder ? aber wie ?

Mir geht es eigentlich nur um das Prinzip. Ich möchte das jetzt nicht in einen 2D Spiel einsetzten oder in einer anderen Anwendung, evlt. später. Aber erstmal möchte ich nur wissen, wie das gehen könnte ohne OpenGL oder DX. Ich weiß damit währe es einfacher. SDL könnte ich unter Lazarus zum Laufen bringen, währe das ein ersatzt ? für openGL ? weil SDL läuft ohne Probleme z.b. SuperTux verwende es ja....

Aber am liebsten währe mir das per TCanvas... weil ich nutze es sehr viel im Moment, bei jeder Gelegenheit.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:28 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