Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

09.12.2013, 17:47

3D-Grafik von Directx auf Drucker ausgeben

Hallo,

ich habe DX11 Juni 2010 und Ms Visual Studio 2010 Express. + Vista.
Wie kann ich die 3D-Objekte so rendern, wie ich es auf den Bildschirm sehe, aber auf den Drucker schicken mit dessen 300 dpi (oder mehr), ohne daß es dort pixelich wirkt?

nofi

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

2

09.12.2013, 19:17

Ich würde es mit einem entsprechend hochaufgelösten Rendertarget probieren. Du musst die gerenderte Szene dann ja eh zur CPU kopieren um sie zu drucken.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

10.12.2013, 00:29

Die wahrscheinlich einfachste Methode:
1. Benötigte Pixelgröße des Bilds berechnen (Wie groß soll das Bild auf Papier werden? Wie viel DPI?)
2. Screenshot in der berechneten Größe erzeugen und als Datei speichern
3. DPI-Wert der Bilddatei ändern (je nach Dateiformat sollte es reichen, gezielt ein paar Bytes zu verändern)
4. Mittels ShellExecute und "print" das Bild ausdrucken

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

4

10.12.2013, 13:27

Die Methode ist aber höchst unsauber. Da ich annehme, dass es nicht ein "Ausprobieren und Wegschmeißen" Programm sein soll, das druckt, würde ich drigend davon abraten, eine Bastelllösung zu verwenden die irgendwie über die Festplatte mit temporären Dateien läuft, im Header rumpfuscht und dann andere Programme für das Drucken startet. Nebenbei sollte die "gescheite" Lösung kaum aufwendiger sein:
Im Prinzip musst du halt in eine Textur(?) hineinrendern, dass die gewünschte große Auflösung hat. Wie das aber auf DirectX11 genau funktioniert, kann ich dir leider nicht sagen. Aber das sollte in deinen Dx Buch oder Tutorial irgendwo stehen.
Danach musst du die Daten von der Grafikkarte zur CPU zurückholen und dann an die Druck-API schicken.
"Windows API Drucken" sollte in der Suchmaschine deiner Wahl genug Ergebnisse liefern. Zum Beispiel: http://www.michael-puff.de/Programmierun…l/Drucken.shtml
Im Prinzip musst du die Daten nur zum Drucker kopieren.

Werbeanzeige