[Projekt] Mein STL-Viewer

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Krishty »

Naja; es sind fünf Minuten pro Woche. Und sie haben den süßen Beigeschmack, es endlich geschafft zu haben. Das Ritual macht mir Spaß.

Oder meinst du den Upload zu den AV-Vendors? Avast hat dummerweise diese Woche erst sein Web-Interface für False Positives komplett auf den Kopf gestellt :( Man kann auch via E-Mail schicken, aber ich hatte – kein Witz! – AV-Labore, deren Provider meine Mails als „verdächtig“ eingestuft und den Empfang verweigert haben.

Das kann man sich gar nicht ausdenken. Man geht durch die 10-Punkte-Anleitung, wie man die Viren zippen und verschlüsseln soll und welches exakte Wording die E-Mail haben soll (ja, echt!) und an welche Adresse des Labors sie gehen muss und zurück kommt „Empfang verweigert; von unserer Firewall als potentielle Schadsoftware eingestuft.“ Und da oben in der Ecke ist die versteckte Webcam und die ganze Welt lacht sich über mich kaputt.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4254
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] Mein STL-Viewer

Beitrag von Chromanoid »

Oder meinst du den Upload zu den AV-Vendors?
Ja, das meinte ich. Das wäre wahrscheinlich sogar ein gutes Geschäftsmodell, wenn alle so verdächtig kleine und effiziente Programme schreiben würden wie Du :) Also für 5 EUR pro Jahr (?) ein automatisches Verteilen der Software an alle (Anti-)Virenhersteller...
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Krishty »

… oder direkt für 100 € ein Zertifikat kaufen, das einmal den AV-Herstellern mitteilen (fast jeder von denen bietet eine Premium-Mitgliedschaft für Whitelisting via Zertifikat an; die sind quasi die Wegelagerer des 21. Jahrhunderts) und von dem zusätzlichen Vertrauen der Kunden in die signierte EXE profitieren.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4254
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] Mein STL-Viewer

Beitrag von Chromanoid »

fast jeder von denen bietet eine Premium-Mitgliedschaft für Whitelisting via Zertifikat an; die sind quasi die Wegelagerer des 21. Jahrhunderts
WTF Schweinehunde. Wieder was gelernt.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Tiles »

Ja, das ist ne üble Nummer mit den zertifizierten Installern. Ohne Zertifikat meckert ja auch schon Windows beim installieren über nen Installer rum.

Ich bin ja nach wie vor der Meinung dass es da was kostenloses geben müsste. Wie wird man denn überhaupt Zertifikatshändler? Sollte da nicht bei der Free Software Foundation was zu kriegen sein? Ich überlege mir ja echt die mal anzuschreiben.
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4254
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] Mein STL-Viewer

Beitrag von Chromanoid »

Das Problem ist, dass man ja eigentlich eine Identifizierung machen muss. Sonst nützt einem ein Zertifikat als Konsument herzlich wenig. Man will ja zumindest sicher wissen, dass man die Person, die die Software verteilt, rechtlich belangen kann. Und das geht i.d.R. nicht kostenfrei. Let's Encrypt macht das ja im Web einfach über die Domäne, was bei Software ja nicht ausreicht - da will man ja eine Person hinter wissen. @Krishty kannst den Kram ja selbst verschieben, wenn es Dich nervt.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Krishty »

Chromanoid hat geschrieben:
fast jeder von denen bietet eine Premium-Mitgliedschaft für Whitelisting via Zertifikat an; die sind quasi die Wegelagerer des 21. Jahrhunderts
WTF Schweinehunde. Wieder was gelernt.
Kurze Klarstellung: In den meisten Fällen scheint das kostenlos zu sein. Trotzdem, WTF. Ich wollte fefes niedrige Meinung über Antivirensoftware nie teilen, aber seit ich den Viewer veröffentlicht habe, ist meine Erfahrung zu 100 %, dass es Bullshitsoftware ist.

Diskutiert ruhig weiter.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Tiles »

Tl'dr: Antivirensoftware ist Malware! Period! Bullshitsoftware triffts aber auch ^^

Naja, einen Virenscanner brauchst du. Aber die Dinger wie Kaspersky, Avira oder Avast sind ja keine Virenscanner mehr. Sondern üble Systembremsen mit immer noch mehr Sinnlos Features die dem User Sicherheit vorgaukeln sollen. Die graben sich tief ins System ein, greifen in den Standardeinstellungen lustig deine Daten ab, und legen es dir im Namen der Sicherheit stellenweise bis zur Unbenutzbarkeit lahm. Und die kostenlosen Varianten blenden dir dafür auch noch Werbung ein.

Und weil das ein Businessmodell ist muss so eine Antivirensoftware natürlich Erfolge vorweisen. Das geht meist auf Kosten von Fehlalarmen, und klemmt dann eben so Leute wie uns von der Userschaft ab. Und deswegen haben die auch gar kein grosses Interesse wirklich alle Fehlalarme abzuschaffen. Weil ja jeder Alarm dem User zeigt wie oh so wichtig und unverzichtbar die Antivirensoftware ist.

Für mich waren die Antivirendinger in dem Moment gestorben als Avira mir ohne Nachfrage* Teile der Ask Toolbar auf mein System gepackt haben. Eine Antivirensoftware die offen mit dem Feind zusammenarbeitet, ich mein, wie offensichtlich kann es denn noch sein? Das zeigt dir auch gleich wo die Reise schon seit Jahren hingeht. Und das nicht nur bei Avira.

*Die (Insert Schimpfwort hier) haben das hinterher natürlich geleugnet. Aber es gab bei der Umstellung damals tatsächlich eine Weile keinerlei Nachfrage ob man das als User wirklich zulassen will. Das hat bei Altkunden wie mir einfach die Virendatenbank und das Programm aktualisiert und den Mist gleich noch mit runtegeladen. Und selbst mit einem Zulassen Dialog ist das mit der Ask Toolbar einfach eine bodenlose Frechheit.

Sorry fürs ranten ^^
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Tiles »

Hab mal die FSFE bezüglich kostenlosen Zertifikaten angeschrieben. Mal sehn was die meinen, und ob ich überhaupt Antwort bekomme :)
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Krishty »

Oh toll. Avast hat den False Positive automatisch behoben, aber AVG …
  • User bekommt Virusmeldung und macht Screenshot
  • ich melde es AVG durch deren Webformular, in dem ich auch meine Datei hochlade
  • drei Tage vergehen
  • eine E-Mail kommt: ich soll eine weitere Kopie meiner Datei auf deren FTP-Server hochladen; und danach den FTP-Link und Screenshots vom AVG-Produkt und der Datenbankversion via E-Mail an sie zurücksenden
  • also gebe ich das an den armen User weiter (der jetzt einen Datenbankscreenshot machen soll, obwohl er nur am SA kurz mein Programm testen wollte) und springe durch die FTP-Reifen und mache die Mail fertig (um die 15 Schritte, weil alles bestimmte Namen und Betreffs haben muss und so)
  • wieder 30 Minuten meines Lebens futtsch für so einen Dreck
  • das ist bereits das dritte Mal mit AVG

Bild

Ich lese da nur „Wir beschützen dich vor der furchtbaren, SCHRECKLICHEN, LEBENSGEFÄHRLICHEN Welt da draußen. Gut, dass du uns Geld gegeben hast!

Jetzt sag dem Sack von der Webseite, dass wir dich nicht durchlassen, bevor er uns 10 E-Mails geschrieben hat oder uns auch Geld gibt.”



Übrigens wird der Build von heute Nacht nicht von AVG erkannt. Aber wieder von Webroot (die einzigen, deren False Positive Reporting NOCH nervenaufreibender ist). Also vom Regen in die Traufe. lol fml
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Schrompf »

Das Bild lädt nicht. Ansonsten: es ist gruselig, hier von Deinen Erfahrungen zu lesen. Ich hatte ja schon immer keine hohe Meinung von Antiviren-Programmen, aber langsam degeneriert die Branche echt zu Wegelagerern.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Krishty »

Jau. Ich habe gestern eine Mail von AVG erhalten, dass mein Installer nicht erfolgreich auf deren FTP hochgeladen wurde und dass sie ihn deshalb nicht analysieren können. Wenn ich den Upload erneut versuche, bekomme ich die Meldung, dass ich keine existente Datei überschreiben darf – die Datei ist also da.

Es ist wie in Asterix & Obelix, der Lauf durch die Bürokratie. Ich bin mir sicher, dass sie das tun, damit ich die Fresse halte und sie in Ruhe lasse. LOLFU. Einfach weiter nerven, niemals nachgeben.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Tiles »

Mein Beileid :/

Die FSFE hat sich übrigens nicht gemeldet.
Free Gamegraphics, Freeware Games https://www.reinerstilesets.de
Die deutsche 3D Community: https://www.3d-ring.de
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Krishty »

Sie haben mich wieder auf die automatische Seite verwiesen. Ganz großes Kino. Aber vielleicht kriege ich dann ja einen neuen Sachbearbeiter …

… seit gestern ist übrigens eine neue Version online. Die 32-Bit-Version wird von mehr Virenscannern bemängelt als vorher (5 statt 3); die 64-Bit-Version von weniger (0 statt 2). AVG und Avast sind diesmal nicht mehr dabei. Vielleicht hat das Meckern ja was gebracht …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Krishty »

3D-Druck ist ja noch weitgehend monochrom. Der Workaround sind Mehrfach-Extruder.

Dabei spuckt das Programm mehrere STLs aus – für jede Farbe eine. Man füttert jeden Druckkopf mit andersfarbigem Plastik, und jeder druckt dann die dazugehörige STL. Aber synchron, so dass ein solides Modell rauskommt (nichts zum Zusammenstecken).

Ein schönes Beispiel ist 2-color tree frog auf Thingiverse. Der eine Extruder greift sich diese Datei und wird mit grünem Plastik gefüttert:
Bild

Der andere schnappt sich diese und wird mit schwarzem Plastik gefüttert:
Bild

Heraus kommt dann das:
Bild

Der Umgang mit solchen Daten ist furchtbar nervig, weil man halt beide Dateien synchron bearbeiten muss.

Das war eine lange Einleitung … Mein Viewer kann jetzt bis zu vier Einzelteile importieren, überlagern, und jedem eine eigene Farbe zuweisen:


(Ist das hämisch, Tux in ein Windows-Programm zu laden? Aber es ist eben so ein schönes Modell! :P )
Untitled.png
Das ist noch nicht perfekt, aber ein erster Schritt. Ich möchte die UI gern einfacher bedienbar machen, aber dafür habe ich gerade einfach keine Zeit. Besser als nichts …

… jetzt werde ich das erstmal in ein paar Experten-Foren veröffentlichen und abwarten, was für Feedback ich bekomme. Falls es unnütz ist, fliegt’s halt wieder raus.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4838
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Schrompf »

Ich find's beeindruckend.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Psycho
Establishment
Beiträge: 156
Registriert: 16.09.2002, 14:23

Re: [Projekt] Mein STL-Viewer

Beitrag von Psycho »

Prima!
Warum die Begrenzung auf 4 Dateien?
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Krishty »

Psycho hat geschrieben:Warum die Begrenzung auf 4 Dateien?
Kurz gesagt: Weil’s noch im Prototypen-Stadium ist :D
  • Spart Code für Memory Allocation
  • Ich habe nicht den geringsten Plan, wie ich mehr als vier Schaltflächen zur Farbauswahl in der UI anordnen soll (ich kann ja schlecht hundert Buttons reinklatschen)
Ich spiele mit dem Gedanken, das Material im Tree View neben der Datei anzuzeigen. Damit wäre die Farbauswahl endlos skalierbar. Leider sind die Schaltflächen in Tree Views immer so winzig; das beeinträchtigt vielleicht die Handhabbarkeit … ich werde am Wochenende ein Bisschen testen.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4254
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] Mein STL-Viewer

Beitrag von Chromanoid »

Vielleicht ein Panel mit Farbtopf, Thumbnail und Baumansicht pro Datei?
[Add new file]
______________________
-frog01.stl--[Ø][-][X]
____________
|
| Thumbnail
|____________

[COLOR]

[o]File
|-[o]Object
______________________
-frog02.stl--[Ø][-][X]
____________
|
| Thumbnail
|____________

[COLOR]

[o]File
|-[o]Object
______________________
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Krishty »

Kleines Update: Ich zeichne nun Rückseiten von Polygonen. (Hier muss ich das zum Glück weniger ausführlich erklären als anderswo :D Ich muss das echt verpeilt haben; es gibt eigentlich keinen Grund, es nicht zu tun.)

Download wie immer unter https://papas-best.com/stlviewer_de

Virustotal sagt, dass mir dieses Mal alle Schlangenölprogramme außer Qihoo360 und Webroot aus dem Weg gehen. Trotzdem hat sich direkt jemand beschwert, dass Avira meckern würde. False Positive Report ist abgeschickt.

Kurze technische Erläuterung: Das große Problem bei doppelseitigem Zeichnen ist, dass man auf der Rückseite auch die Normale invertieren muss, sonst ist die Beleuchtung falsch. Zum Glück hat Direct3D bool SV_IsFrontFace als Pixel Shader-Parameter. Theoretisch müsste das zu einem Shift und einem XOR kompilieren. Praktisch muss ich das erst noch herausfinden. (Gibt es dafür gute Tools? Den AMD GPU Shader Analyzer hat man ja leider nicht fortgeführt. Mann war der gut für sowas …)

Chromanoid, dir zu antworten steht noch immer auf meiner TODO.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
lolumad
Beiträge: 10
Registriert: 11.07.2010, 20:30

Re: [Projekt] Mein STL-Viewer

Beitrag von lolumad »

Warum stellst du den Sourcecode nicht zur Verfügung? :shock:
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Krishty »

lolumad hat geschrieben:Warum stellst du den Sourcecode nicht zur Verfügung? :shock:
Tue ich doch:
Psycho hat geschrieben:Hast Du Überlegungen, den Quelltext ebenfalls zu veröffentlichen?
Krishty hat geschrieben:Klar – wer interessiert ist, kann sich melden und kriegt eine PM :)
Warum so? Weil’s Arbeit ist, so einfach ;)

Edit:
Gelöschte Datei
Erfordert Visual Studio 2017. Falls du die verteilte EXE 1:1 rekonstruieren möchtest, musst du zusätzlich dieses CFF-Explorer-Skript nutzen und die Systemuhr auf Sonntag, 17:58 zurückdrehen.
Zuletzt geändert von Krishty am 04.05.2018, 16:55, insgesamt 1-mal geändert.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Krishty »

MasterQ32 hat geschrieben:Sehr geil! Startet auch unter Linux64/Wine problemlos und lädt die Files echt flott.
Könntest du bitte nochmal die aktuelle Version testen? Jemand beschwert sich, dass sie auf seinem Linux/Wine nicht funktioniert … was hattest du denn genutzt – die portable Version oder den Installer?
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Biolunar
Establishment
Beiträge: 154
Registriert: 27.06.2005, 17:42
Alter Benutzername: dLoB

Re: [Projekt] Mein STL-Viewer

Beitrag von Biolunar »

Krishty hat geschrieben:
MasterQ32 hat geschrieben:Sehr geil! Startet auch unter Linux64/Wine problemlos und lädt die Files echt flott.
Könntest du bitte nochmal die aktuelle Version testen? Jemand beschwert sich, dass sie auf seinem Linux/Wine nicht funktioniert … was hattest du denn genutzt – die portable Version oder den Installer?
Ich habe die portablen x86_64 und die x86 mit den default Wine profilen für Win7 und Win10 getestet und konnte keine Probleme feststellen.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Krishty »

Super; ich danke dir vielmals dafür!
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Krishty »

Neue Version, aber ohne neue Features. Dafür umso mehr für ZFX – ich habe ein Bisschen Technische Schuld aufgeholt:


Versionierung überarbeitet

Ich wollte die Versionierung immer so einfach wie möglich halten, und habe sie deshalb im Quelltext mit __DATE__ und __TIME__ gemacht und im Setup von Hand. Das hat Nachteile:
  1. … „von Hand“.
  2. Builds sind nicht reproduzierbar, weil man immer mit anderem Datum kompiliert.
  3. __DATE__ und __TIME__ sind lokale Zeit statt UTC. Das ist recht verwirrend, vor allem mit dem Dateidatum.
  4. Ich möchte demnächst z.B. zwei Viewer in einem Setup kombinieren, und das geht damit nicht.
  5. Ich konnte bisher nur alle Projekte auf einmal deployen, nicht einzeln. Unsinn!
Also musste das mal ausgemistet werden.

Die Versionsnummern werden nun automatisch erzeugt, in UTC. Einfaches Batch-Skript. Die überflüssigen Nullen sind raus. (18.5.19 statt 18.05.19).

Ich habe gelernt, dass man WiX Umgebungsvariablen übergeben kann. Im Setup-Skript also SET WIX_PAPA_STLVIEWER_VERSION=… und im WiX-Skript Version='$(env.WIX_PAPA_STLTHUMBNAILS_VERSION)'. Nichts mehr händisch. Fuck yea.

Ich habe gelernt, dass man dem CFF Explorer Parameter für seine Skripte übergeben kann, indem man sie in die Kommandozeile hinter den Skriptnamen schreibt. Nun habe ich nur noch ein Skript zum Säubern aller EXEs/DLLs statt eines pro Datei. Fuck yea.


Neue WiX-Version.

WiX ist furchtbar zu nutzen, aber trotz allen Jammerns habe ich gerade keine Zeit, das Deployment auf was anderes umzusatteln. Also mache ich erstmal das Beste draus und halte es aktuell.

WiX hatte ein Sicherheitsproblem. Soweit ich das sehe, waren aber keine Setups betroffen, sondern nur Entwicklerrechner. Nagut. Neue Version, alles kompiliert noch, nichts ist größer geworden.


Neue Visual Studio-Version

Der Umstieg auf 2017.7 barg eine gute und eine schlechte Überraschung. Die gute war, dass Funktionsenden und if-Blöcke besser optimiert werden – solider Win in der Größe des Viewers.

Die schlechte war, dass eine Optimierung mit memcmp() weniger stark durchgeführt wird – solider Verlust in der Größe.

Unter’m Strich war der selbe Code fast ein KiB größer. Ich konnt’s aber mit anderen Änderungen ausbügeln:


Keine Microsoft-Header mehr

Ich habe noch an genau einer Stelle externe Header aus dem Windows SDK benutzt: Wenn ich benachbarte Dateien in einem Verzeichnis aufzähle, damit man mit den Pfeiltasten durchspringen kann.

Diesen Code wollte ich schon lange isolieren, aber es ist so eine richtig blöde Pfriemelarbeit. Ich nutze um die zehn COM-Interfaces der Windows-Shell, und muss jede einzelne Deklaration abkopieren, überarbeiten, und prüfen. Das hatte ich nun zwei Jahre vor mir hergeschoben. Hauptgrund: VARIANT. Guckt euch die Struktur an, sonst glaubt ihr es nicht. Die Kompatibilitäts-Workarounds. Die unions. Die structs mit und ohne Namen. Das nachzubauen war die Hölle.

Nun sind’s 1000 Zeilen eigener Code statt 300 Zeilen + Windows-, COM-, und Shell-Header. Die Kompilierzeit ist von „langsamste Datei des Projekts“ zu „nicht mehr messbar“ gesprungen.

Ich habe dabei gemerkt, dass ich einen String umständlich kopiert habe (StrRetToStr()), wo COM ihn direkt ausgeben kann (StrRetToBuf()). Ist nun etwas schneller, Fehlerbehandlung ist entfallen und der Viewer braucht einen COM-Import weniger. Größe geschrumpft.

An einer anderen Stelle hatte ich noch __uuidof() benutzt, statt händisch die UID der Schnittstelle anzugeben. Als ich das entfernt habe, ist die Größe geschrumpft. Ich hab’s nicht kontrolliert, aber Visual Studio scheint die UIDs nicht zu mergen, wenn sie durch Spracherweiterungen an COM-Deklarationen gebunden wurden. Wieder was gespart (und zusätzlich standardkonform geworden).

Dann habe ich von Hand Funktionen geinlinet, die nur einmal aufgerufen werden. Visual Studio sollte das seit 2017.6 angeblich von selber können, aber ich hab’s noch nie erlebt. Wieder 250 unnütze Bytes zurückgewonnen. Nun ist die neue Version kompakter als die vorherige.

Meine PDBs sind übrigens mit Verbannung der MS-Header satte 15 % kleiner geworden …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Jonathan
Establishment
Beiträge: 2352
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Jonathan »

Habs nur ganz kurz angesehen, aber da du nach Verbesserungsvorschlägen gefragt hast: Es gibt keine Drag'n'Drop Unterstützung? Mein normaler Workflow sieht so aus, dass ich ein Explorerfenster mit meinem Projekt offen haben, ein Programm über eine Verknüpfung zu starten und das Modell ins Fenster zu ziehen mache ich da wahnsinnig gerne, weil es viel schneller ist, als über den Öffnen-Dialog erst mühsam zum richtigen Ordner zu navigieren.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
antisteo
Establishment
Beiträge: 854
Registriert: 15.10.2010, 09:26
Wohnort: Dresdem

Re: [Projekt] Mein STL-Viewer

Beitrag von antisteo »

Krishty hat geschrieben:Ja; ich wurde gerade eben gefragt, noch andere Programme zu testen. Darunter fstl, den „fastest STL Viewer“. Der ist tatsächlich *viel* schneller als die anderen Programme (ich habe meine Seite entsprechend aktualisiert), braucht für Binärdateien aber noch fast doppelt so lang wie ich.

Für ASCII-Dateien braucht er sogar 10-Mal so lang. Da sind die meisten anderen Programme sowieso fast um den Faktor 100 langsamer als ich; aber das kann ich ja nicht hinschreiben, glaubt mir doch keiner …

Geschlagen werde ich im RAM-Verbrauch. Das liegt zum einen daran, dass ich Farben unterstütze (fstl & Co nicht) und zum anderen daran, dass ich die Normalenvektoren aus der Datei verwende, statt sie im Geometry Shader neu zu berechnen, weil ich halt zeigen möchte, wie die Datei ist statt wie sie sein sollte. (Das ist hoffentlich eine ausreichende Entschuldigung, aber ich schaue mal, ob ich’s irgendwann optimiert kriege.)
Hoffentlich bringst du bald einen eigenen Compiler heraus, der auch ohne manuelles Herumwurschteln "Aufgaben" in Maschinencode zu übersetzen kann, die nicht irgendwelchen strukturellen Overhead haben.
http://fedoraproject.org/ <-- freies Betriebssystem
http://launix.de <-- kompetente Firma
In allen Posts ist das imo und das afaik inbegriffen.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Krishty »

Jonathan hat geschrieben:Habs nur ganz kurz angesehen, aber da du nach Verbesserungsvorschlägen gefragt hast: Es gibt keine Drag'n'Drop Unterstützung? Mein normaler Workflow sieht so aus, dass ich ein Explorerfenster mit meinem Projekt offen haben, ein Programm über eine Verknüpfung zu starten und das Modell ins Fenster zu ziehen mache ich da wahnsinnig gerne, weil es viel schneller ist, als über den Öffnen-Dialog erst mühsam zum richtigen Ordner zu navigieren.
Verdammt, du hast recht. Ich bin normalerweise auch totaler Drag’n’Drop-Fan, aber die Abhängigkeitshölle (da hängen COM-Schnittstellen dran) war mir kurzfristig zu aufwendig zu wrappen und dann hab ich’s vergessen. Ist nun wieder auf der To-do.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Krishty »

Drag & Drop ist drin (erstmal nur für einzelne Dateien): https://papas-best.com/stlviewer_de
  • Die „neue“ Windows-NT-Schnittstelle (IDropTarget) ist wirklich höllisch kompliziert und unheimlich schwer nutzbar. Ich bin fast dran verzweifelt und nutze stattdessen …
  • … die alte Win-3.1-Schnittstelle (WM_DROPFILES). Ist viel einfacher und kompakter. Man kann halt nur nichts filtern, nicht den Cursor ändern, oder COM-Objekte wie Streams ablegen.
  • Das Feature ist mit 168 B zu buche geschlagen. Wenn ich statt dem WS_EX_ACCEPTFILES-Stil explizit DragAcceptFiles() aufrufen würde, wären es nochmal 36 B mehr – darum immer alles schön statisch in die Templates kompilieren!
Als weitere Verbesserung rotiert nun die Lichtquelle mit dem Betrachter mit; es gibt also keine schattigen Stellen mehr. (Der Wunsch kam via E-Mail.)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten