Toon posts:

Capturen van een "in-game" (active) window ?

Pagina: 1
Acties:

Onderwerpen


  • De_Bastaard
  • Registratie: Oktober 2001
  • Laatst online: 14:57

De_Bastaard

Bastaardicious - FinFleet

Topicstarter
Omdat het best lastig is om van een game als Diablo 3 een image te maken van bepaalde items (screenshot maken, openen, editten, saven), dacht ik dat het misschien leuk is om hier een tooltje voor te maken.

Het enige wat ik eigenlijk niet helemaal snap of uitkom, hoe capture ik een window dat in een game wordt weergegeven ? Voor Windows native windows is dit mogelijk, maar als je Diablo 3 als 'active' window gebruikt verwacht ik dat het hele spel gebruikt wordt in plaats van alleen het dialoog dat je te zien krijgt als je iets highlight.

Is dit überhaupt mogelijk? Ik kan er niet echt wat over vinden op stackoverflow e.d.

  • loewie1984
  • Registratie: Mei 2003
  • Laatst online: 14:57

loewie1984

music addict! pizza monster!!

Waarom gebruik je geen fraps? Of xfire ofzo die hebben ook screencapture functionality?

discogs


  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

Zowel fraps als xfire injecten hun eigen d3d dll in het process die alle d3d calls capturet en doorstuurt naar de reguliere d3d implementatie. Op dat moment is het een koud kunstje om voor elke Present() gewoon even de backbuffer te kopiëren.

You see, killbots have a preset kill limit. Knowing their weakness, I sent wave after wave of my own men at them until they reached their limit and shut down. Kif, show them the medal I won.


  • 8088
  • Registratie: December 2000
  • Niet online

8088

NaN

Do you seek to engage in or have you ever engaged in terrorist activities, espionage, sabotage, or genocide?


  • De_Bastaard
  • Registratie: Oktober 2001
  • Laatst online: 14:57

De_Bastaard

Bastaardicious - FinFleet

Topicstarter
Hmm ja ik denk dat dit nog iets te lastig is voor een 'novice' als mijzelf :-) Toch bedankt voor de info!

Edit, kleine vraag nog:

Is de backbuffer niet het hele game window ipv het venstertje in het game window dat ik wil hebben?

[Voor 39% gewijzigd door De_Bastaard op 08-08-2012 10:00]


  • Orwell
  • Registratie: December 2009
  • Laatst online: 13-03 16:47
De backbuffer is de frame die naar je scherm gestuurd wordt. Dat is dus voor fullscreen het gehele scherm, en voor windowed hangt het een beetje van je definitie af. Bij de backbuffer van een bepaald d3d-proces zit in ieder geval geen border, maar bij de backbuffer die Windows met Aero van je venster bijhoudt zit 'ie wel.

[Voor 69% gewijzigd door Orwell op 08-08-2012 10:07]


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 14:33

TheNephilim

Wtfuzzle

Zou je niet gewoon het hele scherm kunnen capturen en dan met software de te herkennen vensters eruit halen?

  • Garyu
  • Registratie: Mei 2003
  • Laatst online: 14:04
Camera naast je scherm en fotootje maken? ;)

  • Orwell
  • Registratie: December 2009
  • Laatst online: 13-03 16:47
Ja, maar dan moet je ervoor zorgen dat Windows geen backbuffers meer gebruikt, maar ouderwets alles direct naar het scherm toe schildert. Probeer eens (voor Windowed mode) Windows Aero uit te zetten en dan Alt+Printscreen te gebruiken.

Maar er zijn genoeg freeware printscreenprogramma's die backbuffers wel snappen, dus waarom probeer je die niet?

  • Hydra
  • Registratie: September 2000
  • Laatst online: 16-05 13:35
De_Bastaard schreef op maandag 06 augustus 2012 @ 19:17:

Is dit überhaupt mogelijk? Ik kan er niet echt wat over vinden op stackoverflow e.d.
Als ik het goed begrijp bedoel je met een window in-game zaken zoals je inventory. Deze kun je niet zomaar herkennen , die worden door het spel getekend. Wat je dus moet doen is het hele plaatje capturen en daar dan zelf uit zien te vogelen waar het inventory scherm staat.

https://niels.nu


  • .oisyn
  • Registratie: September 2000
  • Nu online

.oisyn

Moderator Devschuur® / Cryptocurrencies

Demotivational Speaker

Hydra schreef op woensdag 08 augustus 2012 @ 10:33:
[...]


Als ik het goed begrijp bedoel je met een window in-game zaken zoals je inventory. Deze kun je niet zomaar herkennen , die worden door het spel getekend.
Die teken-calls kun je wel onderscheppen en replayen op een eigen rendertarget zodat je louter die window overhoudt. Dit vereist natuurlijk wel enige in-depth kennis van Direct3D.

[Voor 7% gewijzigd door .oisyn op 08-08-2012 11:06]

You see, killbots have a preset kill limit. Knowing their weakness, I sent wave after wave of my own men at them until they reached their limit and shut down. Kif, show them the medal I won.


  • De_Bastaard
  • Registratie: Oktober 2001
  • Laatst online: 14:57

De_Bastaard

Bastaardicious - FinFleet

Topicstarter
Hydra, ik bedoel inderdaad dingen zoals het inventory.

Ik ga denk ik nu eens aan de slag met aForge, die kan simpele vormen herkennen en is gemaakt in C#. Als ik dat zo zou kunnen gebruiken dat alleen de vensters waarin een item wordt weergegeven captured, ben ik een blij man. Dat zou wel mogelijk moeten zijn door een redenatie te doen op basis van grootte van vormen.

  • bakakaizoku
  • Registratie: Januari 2002
  • Laatst online: 08-05 01:47
.oisyn schreef op woensdag 08 augustus 2012 @ 11:05:
[...]

Die teken-calls kun je wel onderscheppen en replayen op een eigen rendertarget zodat je louter die window overhoudt. Dit vereist natuurlijk wel enige in-depth kennis van Direct3D.
Anders zou je als omweg bijvoorbeeld een postprocessor kunnen schrijven die je Fraps screenshot directory in de gaten houdt en bij nieuwe screenshots bepaalde (vooraf bepaalde) coordinaten opslaat in een nieuwe file. Voordeel is dat je geen hooks in d3d hoeft te doen, nadeel is wel dat je de gewenste vensters altijd op eenzelfde plek moet laten staan/niet mogen veranderen van grootte.

PSN: bakakaizoku - WoW: Thiccblonde (GM of Phoenix Ascension) @ Twisting-Nether


  • Caelorum
  • Registratie: April 2005
  • Laatst online: 15:10
Als je dan toch aan het postprocessen bent kan je net zo goed wat beeldherkenning doen en zo die file croppen. Ik neem iig aan dat een venster qua looks niet zo snel zal veranderen in een spel en als het dat wel doen valt er nog wel omheen te werken.

  • SinergyX
  • Registratie: November 2001
  • Nu online

SinergyX

____(>^^(>0o)>____

Oude versie van Fraps kon een vast specifiek deel van je scherm laten capturen, weet niet of dit nog in de nieuwe versies ook nog kan. Inventory (ingame) op vaste plek zetten, screenshot, klaar.

Nog 1 keertje.. het is SinergyX, niet SynergyX
Im as excited to be here as a 42 gnome warlock who rolled on a green pair of cloth boots but was given a epic staff of uber awsome noob pwning by accident.


  • De_Bastaard
  • Registratie: Oktober 2001
  • Laatst online: 14:57

De_Bastaard

Bastaardicious - FinFleet

Topicstarter
Nou met die aFraps ben ik inmiddels al wat verder, en gaat best goed. Dat geometrie algoritme erachter en ColorFiltering werkt prima :-)

Ik denk dat ik deze code ga combineren met het croppen (dit zal wel in .net 4 zitten?), om zo een folder processor te maken.

Je hoeft dan alleen maar hele screenshots te maken die altijd in de Diablo 3 folder terecht komen, waarna de image processor de vierkantjes herkent en ze gaat croppen :-)

Ik ben geholpen!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 15:10
De_Bastaard schreef op woensdag 08 augustus 2012 @ 12:06:
[...] Ik denk dat ik deze code ga combineren met het croppen (dit zal wel in .net 4 zitten?), om zo een folder processor te maken. [...]
http://www.switchonthecod...ing-cropping-and-resizing :D Oh, wel ff met de opmerking dat dit dus niet met mono gaat draaien. Als je dat wilt zal je moeten uitwijken naar iets als GTK# en de imaging spul daarin.

[Voor 21% gewijzigd door Caelorum op 08-08-2012 12:38]


  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 13:49
Als alternatief voor het maken van screenshots kan je ook proberen de textures direct uit te lezen, Blizzard slaat alles op in MPQ bestanden. Iemand heeft zelfs al voor je uitgezocht hoe je alle gegevens van items kan vinden en de textures voor die items.

[Voor 14% gewijzigd door matthijsln op 08-08-2012 20:46]


  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 14:33

TheNephilim

Wtfuzzle

Maar dan heeft hij nog geen screenshot van de stats van een item en daar gaat het nu juist om.

Het gaat om dit soort dingen:


Uit het Diablo 3 trading topic geplukt.

  • Hydra
  • Registratie: September 2000
  • Laatst online: 16-05 13:35
.oisyn schreef op woensdag 08 augustus 2012 @ 11:05:
[...]

Die teken-calls kun je wel onderscheppen en replayen op een eigen rendertarget zodat je louter die window overhoudt. Dit vereist natuurlijk wel enige in-depth kennis van Direct3D.
Dan lijkt me botweg het hele scherm capturen en dan de 'forms' daarop herkennen een stuk simpeler eerlijk gezegd, maar ik weet dan, afgezien van wat probeersels, enorm weinig van DirectX. :)

offtopic:
Wel weer begonnen met iets in XNA maar dat is allemaal zo veel werk *zucht*

https://niels.nu


  • Caelorum
  • Registratie: April 2005
  • Laatst online: 15:10
Hydra schreef op donderdag 09 augustus 2012 @ 10:14:
[...]
offtopic:
Wel weer begonnen met iets in XNA maar dat is allemaal zo veel werk *zucht*
XNA is juist makkelijk omdat er al zoveel voor je is gedaan.

  • Hydra
  • Registratie: September 2000
  • Laatst online: 16-05 13:35
Caelorum schreef op donderdag 09 augustus 2012 @ 12:39:
XNA is juist makkelijk omdat er al zoveel voor je is gedaan.
Ja, en nog is het me te veel werk ;)

https://niels.nu

Pagina: 1



Nintendo Switch (OLED model) Apple iPhone SE (2022) LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S22 Garmin fēnix 7 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2022 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee