AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi GLScene - Hintergrund
Thema durchsuchen
Ansicht
Themen-Optionen

GLScene - Hintergrund

Ein Thema von Floesmaan · begonnen am 8. Sep 2005 · letzter Beitrag vom 14. Sep 2005
Antwort Antwort
Seite 1 von 2  1 2      
Floesmaan
(Gast)

n/a Beiträge
 
#1

GLScene - Hintergrund

  Alt 8. Sep 2005, 12:25
Hallo Allerseits,
ich bastle mal wieder ein kleines spiel (diesmal sowas wie "eyetoy-kinetic") und möchte dafür 3D objekte (GLScene) auf webcambilder projezieren. die bilder werden aller 40ms in ein TImage kopiert und nun wollte ich irgendwie:

entweder den hintergrund des GLSceneViewers transparent einstellen, sodass man das TImage darunter sieht, es aber von den 3D objekten teilweise überlagert wird

oder

in den hintergrund der szene einfach die webcambilder reinkopieren (also ohne das darunterliegende TImage).
die einzelnen bilder von der webcam liegen auch noch als TBitmap oder auch als ByteArray vor.

geht das überhaupt oder hat jemand noch eine andere idee?

Viele Grüße,
Thomas
  Mit Zitat antworten Zitat
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#2

Re: GLScene - Hintergrund

  Alt 8. Sep 2005, 12:27
Ich würde das mit den GR32-Komponenten machen. Die sind relativ einfach zu bedienen und du hast Ebenen, die auch Transparent sein können.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

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

Re: GLScene - Hintergrund

  Alt 8. Sep 2005, 12:31
Zitat von Floesmaan:
in den hintergrund der szene einfach die webcambilder reinkopieren (also ohne das darunterliegende TImage).
die einzelnen bilder von der webcam liegen auch noch als TBitmap oder auch als ByteArray vor.

geht das überhaupt oder hat jemand noch eine andere idee?
Ja, erstelle ein Plane mit einer Texture und benutze es als Hintergrund...

GLSenefenster kann man nicht transparent machen.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Floesmaan
(Gast)

n/a Beiträge
 
#4

Re: GLScene - Hintergrund

  Alt 8. Sep 2005, 19:02
danke für die tipps, ich habs mal mit dem TPlane versucht. leider bekomm ich die textur mit diesem gl-materialmanager nur einmal auf das Tplane draufgemapt. die textur müsste also nur noch erneuert werden können. kann man texturen in der materialLibrary nachträglich noch ändern? oder gibts andere wege das bild auf das tplane zu mappen und laufend zu updaten?
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

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

Re: GLScene - Hintergrund

  Alt 9. Sep 2005, 04:47
Ein Plane ist keine schöhne Lösung nimm doch besser ein Sprite, dem wiest du eine Textur (ohne MatLib) zu und fertig ist's.
Mit einem Timer kannst du dann einfach die Textur nue zuweisen.

Beispiel im Anhang.
Angehängte Dateien
Dateityp: zip sample.exe_516.zip (298,0 KB, 34x aufgerufen)
Dateityp: zip sample_270.zip (35,3 KB, 25x aufgerufen)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Floesmaan
(Gast)

n/a Beiträge
 
#6

Re: GLScene - Hintergrund

  Alt 10. Sep 2005, 19:15
gute nachricht: es geht, jippi!
der tipp mit dem hudsprite war echt gut, da dann das bild nicht perspektivisch verzerrt dargestellt wird, die objekte davor aber schon
und DANKE für das beispielprogramm, nun ist mir das alles ein bischen klarer geworden und funktioniert schon vom prinzip

die schlechte nachricht: es funktioniert zu langsam?!
irgendwie braucht mein rechner 2 sekunden um die textur zu updaten, obwohl er nicht gerade der langsamste ist mit 2.8GHz usw. ist das bei dir auch so, TPascal? und kann man das noch irgendwie beschleunigen?

ändert man das bitmap übigens direkt, also mit "canvas" einfach was reinzeichnen, wird die textur im hudsprite nicht mitverändert. sie wird also anscheinend nochmal extra in den grafischkartenspeicher reingeladen. ich frag mich, was daran 2 sekunden dauern kann.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

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

Re: GLScene - Hintergrund

  Alt 10. Sep 2005, 19:23
Also von der Geschwindigkeit kann ich mich nicht beklagen, da ich nicht weis wie du es in deinem Code anstellst mache ich jetzt auch keine Aussage.

Zeig mal die Stelle an der Du die Map änderst. Weie gross sind die Bilder ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Floesmaan
(Gast)

n/a Beiträge
 
#8

Re: GLScene - Hintergrund

  Alt 10. Sep 2005, 19:30
hudsprite1.Material.Texture.Image.Assign(Image.Pic ture);

image ist 640x480-24bit

statt image.picture habe ich auch mal "buf:TBitmap" versucht, also:
hudsprite1.Material.Texture.Image.Assign(buf);

kommt aufs gleiche raus.. ist ja auch fast das gleiche *g*
  Mit Zitat antworten Zitat
Floesmaan
(Gast)

n/a Beiträge
 
#9

Re: GLScene - Hintergrund

  Alt 13. Sep 2005, 10:30
hier nochmal ein code, der das problem mit der zeitverzögerung beim texturaufbau verdeutlich:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var bmp:tbitmap;
begin

bmp:=TBitmap.Create;
bmp.PixelFormat:=pf24bit;
bmp.Width:=640;
bmp.Height:=480;

//in das TBitmap "hallo" reinschreiben
bmp.Canvas.Font.Size:=40;
bmp.Canvas.TextOut(15, 5, 'hallo');

//die größe vom HUDSprite anpassen
HUDSprite1.Width := GLSceneViewer1.Width;
HUDSprite1.Height := Round(GLSceneViewer1.Height);
HUDSprite1.Position.X := GLSceneViewer1.Width div 2;
HUDSprite1.Position.Y := Round(GLSceneViewer1.Height) div 2;

//Textur zuweisen
//dauert bei voller leistung meines rechners (2.8GHzCPU & 450MHz der GraKa) ca. 0.8 sekunden.
HUDSprite1.Material.Texture.Image.Assign(bmp);
end;
den letzten befehl kann man natürlich auch in einen extra button schreiben, damit es "schneller" geht, aber die befehle oberhalb brauchen nur wenige ms, nicht so der letzte befehl

gibt es irgendwie eine variante, ein video auf eine textur zu mappen?

EDIT: sollte man dafür nen neues thema anfangen? ^^
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

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

Re: GLScene - Hintergrund

  Alt 13. Sep 2005, 15:03
Tja, mit GLScene Textures wird es nichts werden da diese erst über den Speicher laufen bzw. das umwandeln von Video-Information zu GLScene Texture-Bitmap zu lange dauert.
Da die CPU-Belastung durch GLScene hoch ist müsste man diese noch begrenzen (Framerate)

1. Möglichkeit
verwende zwei Formulare, das erste enthält das Video, das zweite die GLScene und dann mit transparentfarben der Form arbeiten (siehe Anhang)

2. Möglichkeit
mit Videooverlay arbeiten im blueboxverfahren also das Videobild nur auf bestimmte Farben projizieren (hab ich aber keine erfahrung wie man das machen kann)
Angehängte Dateien
Dateityp: zip glscnvideo.exe_412.zip (337,5 KB, 23x aufgerufen)
Dateityp: zip glscnvideo.source_416.zip (3,7 KB, 10x aufgerufen)
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  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 12:03 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