Seiten: 1 [2] 3 4
|
 |
|
Autor
|
Thema: Ambilight (Gelesen 40024 mal)
|
nuss
Stichsägenquäler

Karma: +0/-0
Offline
Geschlecht: 
Beiträge: 51

Casemodding braucht keinen Grund
|
das muss doch viel einfacher gehn...kann man ned seinen treiber abfragen und dann die RGB leitung anzapfen?
idee: die steuerung von nem altem tft anzappen da muss doch irgendwo nen rgb-ausgang für die anzeige sein wenn ich da einfach ne verstärkerschaltung dran hänge um größere lichtquellen anzusprechen könnte das doch funzen oder?
|
|
|
Gespeichert
|
|
|
|
|
hackspider
Wakü-Poseidon

Karma: +4/-0
Offline
Geschlecht: 
Beiträge: 412

|
so was die hardware angeht weiß ich nicht inwiefern das machbar ist. bin jetzt nicht so bewandert aber wie werden die bildschirme den angesteuert. Digital oder analog ? wenn digital dann denk ich ein decoder is zu umständlich wenn analog könnte man einfach schaun welches signal das stärkste ist.
aber mal zum neuen ich hab mal gecodet so quick and dirty aus dem screenshot tipp von avtivevb. Also hab ein raster gemacht also jedes 50te twip wird abgefragt das gibt ein sauberes ergebnis bei akzeptabler zeit. (im ms bereich).
http://hackspider.toxic-link.n...en/screen0r.exe also wie gesagt quick and dirty also nich lästern sieht alles S****sse aus und so aber es geht.
mfg hackspider
PS: wenn wirklich bedarf besteht dann bin ich bereit mal eine final zu schreiben.
|
|
|
Gespeichert
|
|
|
|
|
Blocki
Case-Konstrukteur

Karma: +3/-1
Offline
Geschlecht: 
Beiträge: 710

|
so was die hardware angeht weiß ich nicht inwiefern das machbar ist. bin jetzt nicht so bewandert aber wie werden die bildschirme den angesteuert. Digital oder analog ? wenn digital dann denk ich ein decoder is zu umständlich wenn analog könnte man einfach schaun welches signal das stärkste ist. aber mal zum neuen ich hab mal gecodet so quick and dirty aus dem screenshot tipp von avtivevb. Also hab ein raster gemacht also jedes 50te twip wird abgefragt das gibt ein sauberes ergebnis bei akzeptabler zeit. (im ms bereich). http://hackspider.toxic-link.n...en/screen0r.exealso wie gesagt quick and dirty also nich lästern sieht alles S****sse aus und so aber es geht. mfg hackspider PS: wenn wirklich bedarf besteht dann bin ich bereit mal eine final zu schreiben. hmmm... ich habe das teil mal getestet... bei einem zum grossteil weissem screen, meinte er, rot weare der winner... hmmm find ich ganz komisch
|
|
|
Gespeichert
|
"Mehrmalige Ausrufezeichen", fuhr er kopfschüttelnd fort, "sind ein sicheres Zeichen für einen kranken Geist." (Terry Pratchett in "Eric")
"May the wind always be at your back and the sun upon your face, and the winds of destiny carry you aloft to dance with the stars..." by George Jung
|
|
|
melloman
Case-Konstrukteur

Karma: +1/-0
Offline
Geschlecht: 
Beiträge: 506

let's mod something
|
hab's auch getestet...
bei nem fast nur schwarzen wallpaper kan auch rot... bie m-faq page kam blau...
fazit: test nicht bestanden...
|
|
|
Gespeichert
|
|
|
|
|
hackspider
Wakü-Poseidon

Karma: +4/-0
Offline
Geschlecht: 
Beiträge: 412

|
ich hab ja gesagt das es arg q &d ist aber das programm mach nix anderes als ein screen vom aktuellen bildschirm und rechnet dan jedes 50 twip in seine grundbestandteile auf rot grün blau d.h. es kann kein schwarz bzw weis geben er gibt die farbe als gewinner aus die auf dem screen am meisten vorkommt das ist bei der mfaq halt blau und bei einem "fast" schwarzen desktop halt die farbe die am meisten da ist in deinem fall blau. Es gibt nur 3 möglichkeiten die angesteuert werden könnten. Eine weitere idee wäre ein hell/dunkel rechnung für alle leds an bzw allle leds aus. oder wenn 2 farben in etwa gleich viel anteile haben diese 2 led (balken) dann auch anzusteuern d.h. z.B. rot und blau gleichzeitig oder grün und rot gleichzeitig.
@ Olaf ich hab das mit dem zufall über den haufen geschmissen weil da ja viel müll rauskommen könnte. deshalb hab ich ein gitter mit je 50 twips abstand über den desktop gespannt so das ich eine eher gleichmäßige Abfrage hinbekomme.
mfg hackspider
|
|
|
Gespeichert
|
|
|
|
firest0rm
LED-Tauscher

Karma: +0/-0
Offline
Beiträge: 25
Ich liebe dieses Forum!
|
Ja schon klar aber man müsste dazu mindestens 1x die Sekunde einen Screenshot machen und bei diesem dann die RGB-Werte der Pixel zusammenrechnen und dann durch die Anzahl der Pixel insgesamt teilen. Das ist bei z.B. 1280x1024 sehr langwierig (1-2 Sekunden im Debug Modus von C#.Net) und auch stark CPU-fressend. Das heißt man könnte maximal alle 2 Sekunden das Ambilight ändern und das unter relativ hoher CPU-Last. Ist für z.B. Spiele nicht zu empfehlen.
Und glaub nich ich hab nen schlechten PC.. AMD64 3500+, 2GB Ram Dual, ..
|
|
|
Gespeichert
|
|
|
|
melloman
Case-Konstrukteur

Karma: +1/-0
Offline
Geschlecht: 
Beiträge: 506

let's mod something
|
ich würd auch sagen hardware mässig realisieren... das sollet ja scho in realtime laufen...
man müsste einfach irgendwie die rgb werte auslesen und auf die leds übertragen, damit die jeweiligen farben dann stärker oder schwächer leuchten...
|
|
|
Gespeichert
|
|
|
|
OlafSt
Global Moderator

Karma: +13/-0
Offline
Geschlecht: 
Beiträge: 2138

Master of STLCD and LISA III
|
C#.Net ist auch nicht wirklich pfeilschnell, muß man dazusagen. Der ganze DotNet-Krams ist P-Code, ähnlich wie die VB6-Programme - die auch nicht für atemberaubendes Tempo berühmt waren.
Mir schwebte da ein anderer (softwaremäßiger) Ansatz vor, einen richtigen Compiler vorausgesetzt:
- Screenshot ziehen (z.B. 1024x768 Pixel, 24Bit = 2.4MByte)
Dann hat man sozusagen ein Array aus RGB-Werten vor der Nase. Ich nehme mal 200ms als Zeitdauer dafür an. [Edit: 76ms]
- Mittelwert aus Rotem Kanal bilden (Scannen von 768KB) - Mittelwert aus Grünem Kanal bilden (Scannen von 768KB) - Mittelwert aus Blauem Kanal bilden (Scannen von 768KB)
Die Scanvorgänge dürften kaum mehr als 10ms an Zeit fressen. Die RGB-Werte sind allesamt schon Bytes, Bitshiftereien entfallen also. da käme man vielleicht sogar ohne Assembler hin.
[Edit: Die "übliche" Methode benötigt 3,5 Sekunden]
- Ausgabe Roter Mittelwert an PIO - Ausgabe Grüner Mittelwert an PIO - Ausgabe Blauer Mittelwert an PIO
Alle drei zusammen kaum mehr als 100µs.
Der komplette Vorgang dauert dann 230ms - ergo ist eine Aktualisierung je Sekunde problemlos möglich.
Die eigentliche PWM müßte dann ein am PIO angeklemmter µC machen, der dafür eh mehrere Klassen besser geeignet wäre. Dieser könnte auch das "hinfaden" zur eingestellten Farbe übernehmen, so das dann fließende Übergänge möglich sind.
Anbei ein Schnipsel Code, den ich schnell zusammengehustet habe:
procedure TForm1.Button1Click(Sender: TObject); var bmp: TBitmap; DeskDC: HDC; h,w: integer;
RMid, GMid, BMid: integer; R,G,B: integer; Pixel: TColor;
Tick: Longint;
TickShot: LongInt; TickScan: LongInt; begin Tick:=GetTickCount; RMid:=0; GMid:=0; BMid:=0; //Screenshot-Empfänger erzeugen bmp:=TBitmap.Create; bmp.Height:=Screen.Height; bmp.Width:=Screen.Width; bmp.PixelFormat:=pf32Bit; //DC auf den Desktop besorgen DeskDC:=GetWindowDC(GetDesktopWindow); //Screenshot ziehen BitBlt(bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, DeskDC, 0, 0, SRCCOPY); //DC wieder hergeben ReleaseDC(GetDesktopWindow,DeskDC); TickShot:=GetTickCount; //Bild scannen - die wahrscheinlich langsamste Methode der Welt :-) for h:=0 to bmp.Height do begin for w:=0 to bmp.Width do begin Pixel:=bmp.Canvas.Pixels[h,w]; R:=Pixel and $0000FF; G:=(Pixel AND $00FF00) shr 8; B:=(Pixel AND $FF0000) shr 16; RMid:=RMid+R div 2; GMid:=GMid+G div 2; BMid:=BMid+B div 2; end; end; TickScan:=GetTickCount; Pixel:=RGB(RMid,GMid,BMid); Panel1.Color:=Pixel;
bmp.Free;
TickShot:=TickShot-Tick; TickScan:=TickScan-Tick-TickShot; ShowMessage(Format('Shot: %d, Scan: %d',[TickShot,TickScan])); end;
|
|
« Letzte Änderung: November 10, 2005, 15:12:40 von OlafSt »
|
Gespeichert
|
Erstens: Lies was da steht. Zweitens: Denk drüber nach. Drittens: Dann erst fragen
|
|
|
nuss
Stichsägenquäler

Karma: +0/-0
Offline
Geschlecht: 
Beiträge: 51

Casemodding braucht keinen Grund
|
mhhz joa schon klar...aber des abilight soll doch sowieso ned so schnell die farbe wechseln weil dann haste ja ne art stroboskob und das ist ja ned sehr beruhigend....
also ich ziehe eine hardware lösung auch vor!
ich frag mal unsere verstrahlten et lehrer^^
|
|
|
Gespeichert
|
|
|
|
|
|
turborunner
Lötkolbenfreak

Karma: +2/-0
Offline
Geschlecht: 
Beiträge: 172
Yeeehhhaaa !
|
bei einer reinen Softwarelösung stellt sich mir die Frage wie man den Bildschirminhalt ermittelt bei Fullscreen DirectX Anwendungen / Spielen. Bekommt man da per software vernünftige ergebnisse (und die nötige rechenzeit). Bin da etwas unbewandert aber lasse mich gerne positiv überraschen ;-)
Ich habe mal ein Bischen zur Struktur/Stäre/Modulation des VGa Signals gegooglet und möchte folgenden Denkanstoß geben: Das Signal hat 0,7 Volt und wenn man annimmt, dass dunkle Bereiche des Bildes mit weniger und helle mit mehr Spannung gekennzeichnet sind müsste man mit einer Integrator Schaltung mit Operationsverstärker aus dem Signal ein Mittelwert bilden können. Mit dieser Mittelwertspannung über ne PWM die LED´s (oder was auch immer) ansteuern und fertig ist das Ambilight... (theoretisch ;-))
|
|
|
Gespeichert
|
|
|
|
Seiten: 1 [2] 3 4
|
|
|
|
|