[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:

[Projekt] Mein STL-Viewer

Beitrag von Krishty »

Frohe Weihnachtszeit!

Ich hatte dieses Jahr berufsbedingt mit STL-Dateien zu tun. Für nicht-Maker: Das ist ein antikes Dateiformat, das in den 80ern für Stereolithografiemaschinen entwickelt wurde und sich in den 2010ern zum Standarformat für 3D-Druck entwickelt hat.

Die üblichen Programme, um STLs zu laden (Meshlab etc.) sind höllisch langsam und zäh. Außerdem muss ich ganze Ordner sichten, und kann dann nicht jede Datei einzeln via Datei → Öffnen lokalisieren.

Also habe ich mir einen eigenen Viewer geschrieben.
  • öffnet selbst riesige Dateien in Nullkommanix
  • man kann ganze Verzeichnisse durchgehen, ähnlich der Windows-Fotogallerie durch linke/rechte Pfeiltaste (ZFX-Diskussion & Quelltext)
Weil ich nicht mag, wenn was auf meiner Platte vergammelt, habe ich das Ergebnis auf meiner Website bereitgestellt.
inaction.png
(Quelle des Modells)

Das wäre nicht von mir, wenn die Performance nicht der absolute Kracher wäre. Daher keine Verschwendung, kein Schickimicki. Ein Diagramm sagt mehr als tausend Worte:

Bild

(Details zum Benchmark gibt’s auf der Download-Seite unter „Testdetails“)

Aber auch sonst ist es Overengineering pur. Ich habe mir mehrere Hunderttausend STLs von thingiverse heruntergeladen und erreiche über 99,9 % Kompatibilität – mehr als jedes andere Programm. Multi-Objekt, mit oder ohne Farbe, Kommas statt Punkte in Zahlen, Syntax kaputt, egal. Ich lade alles.

Ein weiteres Problem mit STL ist, dass Programme gern Y als Hoch-Achse nehmen, obwohl es eigentlich Z sein sollte. Oder Meter/Zentimeter/Zoll schreiben, wenn es Milimeter sein sollten. Ich habe anhand des riesigen Datensatzes Heuristiken entwickelt, die über 85 % richtig vorhersagen, wie eine Datei orientiert ist, und sie entsprechend anzeigen. Auch da bin ich allen anderen Programmen weit voraus.

Ich hatte es vor einem Monat online gestellt, und das Feedback zu den ersten beiden Versionen war ziemlich gut. Gestern habe ich die dritte Version fertiggemacht und mir gedacht, die kann ich dann auch direkt hier präsentieren, falls wir Windows-User mit 3D-Druckern haben :)

Einziges Problem sind Antivirenprogramme. Und ich sage euch, das ist so ein riesen Scheiß, dass ich einen eigenen Thread dafür anfangen werde. Jedenfalls: Wenn euch ein Antivirenprogramm vor meinem Viewer warnt, ignoriert das.

… und demnächt gebe ich dann ein paar Anekdoten aus der Entwicklung zum Besten.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
marcgfx
Establishment
Beiträge: 2050
Registriert: 18.10.2010, 23:26

Re: [Projekt] Mein STL-Viewer

Beitrag von marcgfx »

18 mal schneller als Rang 2 ist beachtlich. Hast du erwartet, dass du so viel schneller sein kannst als alle anderen, oder bist du selber etwas schockiert? Mit antiken Formaten kennst du dich ja aus, hatte das Format vielleicht sogar einen cleveren Hintergedanken den alle anderen Viewer einfach ignoriert haben?

Der Name ist auch absolut geil :)
joggel

Re: [Projekt] Mein STL-Viewer

Beitrag von joggel »

Allein wegen dem Namen mag ich es schon <3

Aber die Ladegeschwindigkeit scheint ja wirklich beeindruckend zu sein im Vergleich zu den anderen!!
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 »

Was den Namen betrifft: Tja, lasst das mal den Papa machen. Der Papa macht das gut! ;)
marcgfx hat geschrieben:18 mal schneller als Rang 2 ist beachtlich. Hast du erwartet, dass du so viel schneller sein kannst als alle anderen, oder bist du selber etwas schockiert? Mit antiken Formaten kennst du dich ja aus, hatte das Format vielleicht sogar einen cleveren Hintergedanken den alle anderen Viewer einfach ignoriert haben?
Um eines direkt klarzustellen: Das ist die Zeit vom Doppelklick auf die Datei, bis die UI reagiert. Also der Programmstart mitgezählt. Wenn das Programm bereits auf ist, sind die anderen gut doppelt so schnell wie vorher. Aber das hilft dem User ja auch nicht …

Bin eher schockiert. Ich weiß nicht, was die anderen Programme mit der CPU machen. Ich hatte vor Jahren schon gejammert, dass Assimp 15× schneller wird, wenn man die Speicherverwaltung überarbeitet. Wahrscheinlich ist es sowas und dann nochmal weniger Abstraktionsschichten (ich mappe die Dateien, statt sie gepuffert zu lesen, usw).

Der Benchmark stammt von binär-STLs (die sind im Grunde ein Array von structs). Mein Vorsprung ist bei ASCII-STLs (Koordinaten als Text) noch deutlicher, weil mein Parsing-Code optimiert ist (bis zur Branch Prediction, wenn Leerzeichen öfter als Tabs vorkommen). Wenn man einfach C++’ iostreams oder C’s scanf() benutzt, um Koordinaten zu parsen, kackt man gegen sowas episch ab. C# muss ich wohl nicht erst erwähnen …

Was den Speicher angeht, ist das Bild im Task Manager übrigens noch heftiger: Der zählt standardmäßig keinen GPU-Speicher und keine Memory Mapped Files mit. Wenn bei anderen Programmen 300 MB angezeigt werden, sind es bei mir … 15. In den Benchmarks habe ich deshalb Peak Working Set genommen; das ist ja auch was man spürt, wenn der RAM knapp wird.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von xq »

Sehr geil! Startet auch unter Linux64/Wine problemlos und lädt die Files echt flott. Gute Arbeit!

Finde auch deine Website sehr angenehm, so ohne Kekse oder Werbung :)
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
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 »

Voll cool. Jetzt müsste ich mir nur noch eine stl-Datei-Bibliothek zulegen :D. BTW Papa ist auch im Englischen eine Koseform von Vater. Die Anmerkung ist auf der Webseite also evt. nicht nötig.

PS habe gesehen du hast ein bisschen Werbung gemacht. Evt. wäre https://news.ycombinator.com/news (insbesondere mit Hinweis auf die Performance und die Optimierung, da laufen meinem Eindruck nach viele rum, die das aus Prinzip gut finden, auch wenn sie keine Stl Dateien brauchen) und https://lobste.rs interessant. Bei letzterem fehlt mir leider ein Account und das ist nur mit Einladung. Vielleicht kannst du ja auch eine kleine englische Zusammenfassung schreiben, wie es dir gelungen ist, das so schnell zu kriegen. Das finden ja nicht nur wir hier geil.
Benutzeravatar
Tiles
Establishment
Beiträge: 1990
Registriert: 11.01.2003, 13:21
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Tiles »

Cooles Ding!

Bist du schon in Verhandlungen das in Assimp einzubaun? ^^
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 »

MasterQ32 hat geschrieben:Sehr geil! Startet auch unter Linux64/Wine problemlos und lädt die Files echt flott. Gute Arbeit!
Sehr gut zu wissen; war mir nicht klar. Ich schreib’s auf die Seite; danke dafür!
Finde auch deine Website sehr angenehm, so ohne Kekse oder Werbung :)
… stilecht in Notepad entwickelt ;)
Chromanoid hat geschrieben:BTW Papa ist auch im Englischen eine Koseform von Vater. Die Anmerkung ist auf der Webseite also evt. nicht nötig.
Ja, aber die englische Seite wird ja z.B. auch von Brasilianern usw. angesurft. Also lieber erklären :) Die Hauptseite ist auch eher dazu da, dass die sehen, dass der Viewer kein Scam ist.
Chromanoid hat geschrieben:PS habe gesehen du hast ein bisschen Werbung gemacht. Evt. wäre https://news.ycombinator.com/news (insbesondere mit Hinweis auf die Performance und die Optimierung, da laufen meinem Eindruck nach viele rum, die das aus Prinzip gut finden, auch wenn sie keine Stl Dateien brauchen) und https://lobste.rs interessant. Bei letzterem fehlt mir leider ein Account und das ist nur mit Einladung. Vielleicht kannst du ja auch eine kleine englische Zusammenfassung schreiben, wie es dir gelungen ist, das so schnell zu kriegen. Das finden ja nicht nur wir hier geil.
Ja, dazu vielleicht ein paar Anmerkungen:
  • Quasi jedes größere Antivirenprogramm stuft mich als Virus/Trojaner ein.
  • Ich habe gemerkt, dass das die größte Bremse bei der Verteilung ist und Leute extrem abschreckt.
  • Die Antivirenprogramme basieren ihre Meinung u.A. darauf, wie oft sie die Datei auf Kundenrechnern entdecken. Seltene Datei -> Virus (insbesondere SmartScreen, also Windows 10s eingebauter Filter, funktioniert so).
  • Wenn ich eine getestete und stabile Version habe, schicke ich die also erstmal an alle Antivirenhersteller zum Whitelisting. Ein schöner Nachmittag Arbeit.
  • Dann warte ich eine Woche, bis ich whitelisted bin und die Updates verteilt sind. Musste ich gestern knicken, weil ich dann die Weihnachtszeit (viele Leute zu Hause mit viel Zeit) verpassen würde.
  • Dann gehe ich in Maker-Foren und kündige es da an. Das reicht für 2, 3 Downloads pro Forum. Die beschweren sich dann alle, dass Windows 10 mich blockiert und ich finde noch 3, 4 Firewall-Produkte, die meine Seite gesperrt haben.
  • Wenn das halbwegs funktioniert, gehe ich auf Reddit. Das bringt 200, 300 Besucher. (Gestern abend getan.)
  • Nach Reddit ist die Datei verbreitet genug, dass sie allgemein nicht mehr so oft als Virus erkannt wird. (Aber genug für rund eine Support-Anfrage am Tag, *seufz*) Dann probiere ich deine Links aus.
  • Wenn ich das früher mache, werde ich direkt wegen Malware-Verbreitung gesperrt. War ein großes Problem in China.
Du merkst, dass der ganze Release-Zyklus um scheiß Antivirensoftware baut, und darauf gehe ich demnächst in einem eigenen Artikel ein …
Tiles hat geschrieben:Bist du schon in Verhandlungen das in Assimp einzubaun? ^^
Ich habe denen schon länger meine Heuristik geschickt und meine Performance-Kommentare sind ja auch öffentlich; alles andere ist deren Sache ;)
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 »

Oh ja, die vermalledeiten Antivirenquälgeister. Wer kennt diese Pest nicht ... -.-
Wenn das halbwegs funktioniert, gehe ich auf Reddit. Das bringt 200, 300 Besucher. (Gestern abend getan.)
Reddit ist für mich immer noch ein grosses Rätsel. Irgendwas mache ich da immer falsch ^^

Ich habe mal probiert Bforartists da unterzubringen. Die eine Community hat das gleich mal als Spam gesperrt, die andere hat mich an die Advertising Abteilung weiterverwiesen ...
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 »

In meinen Posts stand explizit, dass
  • ich das selber geschrieben habe
  • es nicht-kommerziell ist
  • es mir nützlich war „und hey, vielleicht hilft es euch ja dann auch!“
Auch das wurde sofort wegen Spam gesperrt, aber als am nächsten Tag die Besucherzahlen explodierten, habe ich gesehen, dass mich ein freundlicher Moderator freigeschaltet und für die falsche Spam-Klassifizierung entschuldigt hat.

Das kommt aber sicher auch auf die Community an – Maker sind wohl recht bunt und offen; bei Grafik-Artists weiß ich, dass sie oft penetrant ihre Regeln verteidigen …
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 »

@Krishty Das mit den Virenscannern ist ja nervig. Ich finde Dein Vorgehen da sehr sinnvoll. Ich muss zugeben, dass ich auch recht skeptisch bei der Dateigröße wäre. Gruselig, dass es schon so weit gekommen ist. Vielleicht kannst Du ja eine DLL draus machen, die von einer .Net-Anwendung gestartet wird :D.

@Reddit ich erzähle euch da vielleicht nichts neues, es gibt teilweise extra subreddits, um eigene Projekte vorzustellen. Das ist halt immer so eine Sache, weil die etwas beliebteren Kanäle sicher ziemlich mit Werbung bombardiert werden. Es gibt ja auch immer sehr merkwürdige Versuche von irgendwelchen Firmen und Einzelpersonen, mit "Schaut mal was ich hier entdeckt habe"-Posts Traffic zu erschleichen. Manchmal schreiben die dann aus Versehen mit dem gleichen Account im Kommentar-Bereich weiter, so a'la "Developer here: Cool that you like our product. AMA" So ehrlich und authentisch wie möglich sein, ist wohl das beste. Oder bei Krishty könnte ich mir auch gut einen Artikel a'la "How I made the fastest STL Viewer ever." :)
Benutzeravatar
starcow
Establishment
Beiträge: 523
Registriert: 23.04.2003, 17:42
Echter Name: Mischa Schaub
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von starcow »

Grandios! Ich liebe solche Programme! Wäre zuschön, wenn mehr der Developern nach diesen Maximen arbeiten würden. :)
Du hast nicht zufällig vor, einen solchen Viewer für OBJ-Dateien zu programmieren? Der wäre bim mir per sofort im regen Gebrauch. :>

LG starcow
Freelancer 3D- und 2D-Grafik
mischaschaub.com
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 »

starcow hat geschrieben:Du hast nicht zufällig vor, einen solchen Viewer für OBJ-Dateien zu programmieren? Der wäre bim mir per sofort im regen Gebrauch. :>
Ich habe einen für VRML (noch nicht release-bereit, aber funktioniert). OBJ ist seit letztem Sommer geplant, aber … die liebe Zeit :(
Chromanoid hat geschrieben:@Reddit ich erzähle euch da vielleicht nichts neues, es gibt teilweise extra subreddits, um eigene Projekte vorzustellen. Das ist halt immer so eine Sache, weil die etwas beliebteren Kanäle sicher ziemlich mit Werbung bombardiert werden.
Wo wir gerade dabei sind: Ich habe zwar über 300-Reddit-Views, aber keine 50 Besucher. (Etwa so viele, wie ZFX nach Abzug der Bots angespült hat – zeigt, wie viele Lurker wir haben!) Das liegt wahrscheinlich daran, dass ich es diesmal (versehentlich) als Text reingestellt habe statt als Link (dann gibt es kein Vorschaubild, nur öde Wall of Text). Zum Vergleich: mein Link-Post von vor einigen Monaten hat bis heute 380 Views, davon fast 300 Besucher. Tja, verkackt. Nächstes Mal besser machen.
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 »

Notiz: In Papa’s Best STL Viewer wird das Mausrad benutzt, um an das Modell heran- oder davon wegzuzoomen. Direkt beim ersten Release hat sich herausgestellt, dass die Drehrichtung des Mausrads ein Streitpunkt ist.

Es ist wohl so, dass viele Programme näher rangehen, wenn das Rad nach oben gedreht wird (Google, Autodesk). Und viele andere gehen in dem Fall vom Modell weg. Auch die Kommentatoren waren da zerstritten.

Der erste Hotfix war also, dass man die Zoom-Richtung umkehren kann.
  • optional, um bisherige User nicht zur Umgewöhnung zu zwingen
  • mit Speichern in die Registry, eben weil es um Gewohnheit geht und man die Einstellung nur einmal im Leben treffen will
Ich kannte das Problem schon von der Arbeit (auch da wird regelmäßig gestritten, ob Mausrad nach oben nun näher rangeht oder weiter weg) und denke, dass Programme da immer einstellbar sein sollten, weil es bei sehr geringen Kosten der Usability einen großen Nutzen erweist.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von xq »

Ich kannte das Problem schon von der Arbeit (auch da wird regelmäßig gestritten, ob Mausrad nach oben nun näher rangeht oder weiter weg) und denke, dass Programme da immer einstellbar sein sollten, weil es bei sehr geringen Kosten der Usability einen großen Nutzen erweist.
Word! Das gleiche gilt ja auch für die generelle Scrollrichtung in Browsern, Code Editoren, ...
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
NytroX
Establishment
Beiträge: 358
Registriert: 03.10.2003, 12:47

Re: [Projekt] Mein STL-Viewer

Beitrag von NytroX »

Wow, stimmt. Ist mir noch nie so wirklich aufgefallen!
Das Scrollrad ist eigentlich total "falschrum" in meinem Browser; ist wohl echt Gewöhnungssache.
Eine Option fürs Vertauschen zu haben ist wirklich was Wert, das muss ich bei meiner nächsten GUI unbedingt auch beachten und einbauen.

Und +1 für deine Homepage, keine Cookies, keine Werbung, kein Mist, aber trotzdem SSL; genau alles richtig gemacht.

STL geht glaube ich auch in Assimp; ist das deine Implementierung? (oder wird deine Arbeit da mit einfließen?)
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 »

Ich kannte das Problem schon von der Arbeit (auch da wird regelmäßig gestritten, ob Mausrad nach oben nun näher rangeht oder weiter weg) und denke, dass Programme da immer einstellbar sein sollten, weil es bei sehr geringen Kosten der Usability einen großen Nutzen erweist.
MasterQ32 hat geschrieben:Word! Das gleiche gilt ja auch für die generelle Scrollrichtung in Browsern, Code Editoren, ...
NytroX hat geschrieben:Wow, stimmt. Ist mir noch nie so wirklich aufgefallen!
Das Scrollrad ist eigentlich total "falschrum" in meinem Browser; ist wohl echt Gewöhnungssache.
Eine Option fürs Vertauschen zu haben ist wirklich was Wert, das muss ich bei meiner nächsten GUI unbedingt auch beachten und einbauen.
Bei 2D-Scrolling in Browser & Co. bekommen die Anwendungen ihre Scrollwerte von der Win32-API. Dort werden sie mit User-Einstellungen vorgekaut. (Ebenso werden ja die Maustasten vorgekaut, falls der User Windows auf Linkshänder eingestellt hat.) Möglicherweise könnt ihr ja was an den Einstellungen drehen, ein Minus davorsetzen oder so. HKCU\Control Panel\Desktop\WheelScrollLines sieht vielversprechend aus, aber YMMV. Falls ihr das weiter besprechen möchtet, können wir einen Thread dafür eröffnen!
NytroX hat geschrieben:Und +1 für deine Homepage, keine Cookies, keine Werbung, kein Mist, aber trotzdem SSL; genau alles richtig gemacht.
Noch einige Fakten dazu:
  • Ich habe null Erfahrung mit der Wartung von Webservern, darum läuft der Server mit Standardeinstellungen von 1&1 und dem gammel-Gratis-Zertifikat, von dem Chrome mich warnt, dass sie es irgendwann 2018 nicht mehr akzeptieren.
  • Cookies und Werbung gibt es nicht; ich habe aber gesehen, dass der Server irgendwo IPs loggt (wahrscheinlich, um Besucher zu zählen).
  • Ich wollte mich mal einarbeiten und den abspecken, aber bisher hatte ich keine Zeit und die Seite ist noch schnell genug.
  • 1&1 hatte in dem Angebot irgendwas von Besuchern pro Minute geschrieben, das ich nicht verstanden habe. Sowas wie „Server hat 500 MB [von was?!], das reicht für 10 Besucher pro Minute“. Bandbreite ist allerdings unbegrenzt. Falls ihr wisst, was das beudetet, oder mal eine Fehlermeldung seht – sagt es mir bitte.
  • In diesem Monat lande ich wohl bei etwa 200 MB Traffic für rund 1000 Besucher. Das passt dazu, dass HTML+Beschreibung+Viewer etwas über 200 KiB groß sind. Bezahlen tue ich dafür 4,99.
NytroX hat geschrieben:STL geht glaube ich auch in Assimp; ist das deine Implementierung? (oder wird deine Arbeit da mit einfließen?)
Schon oben beantwortet:
Krishty hat geschrieben:
Tiles hat geschrieben:Bist du schon in Verhandlungen das in Assimp einzubaun? ^^
Ich habe denen schon länger meine Heuristik geschickt und meine Performance-Kommentare sind ja auch öffentlich; alles andere ist deren Sache ;)
Ich hatte mal in einer Phase aktiv bei Assimp mitgeholfen, aber aktuell finde ich dafür keine Zeit und fürchte auch, dass mein Code nicht tauglich ist, von anderen gewartet zu werden (keine Standardbibliothek/Exceptions/RAII).
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 »

Sooo, nächste Geschichte:

Setups ohne Feedback sind schlecht. In der ersten Version habe ich ein sehr leichtes Setup ausgeliefert, ohne Dialoge:
  • Benutzer startet Setup
  • Benutzer wird nach Admin-Rechten gefragt
  • Fortschrittsbalken taucht für eine Sekunde auf dem Bildschirm auf
  • Setup schließt sich (bei Erfolg) oder zeigt eine Fehlermeldung (bei Problemen)
Das war offensichtlich zu wenig, denn mehrere Benutzer haben gedacht, das Setup wäre einfach abgestürzt.

Ich habe dann versucht, einen Abschlussdialog einzubauen. In Wix geht das aber nicht so einfach; wenn man den Dialog nicht komplett selber als DLL programmieren möchte, muss man sich für ein Setup-Template entscheiden. Das kleinste Template mit Abschlussdialog ist das, das auch eine Lizenz beim Start anzeigt.

Nun ist mein Setup 200 KiB groß statt 70, und zeigt am Anfang die Lizenz an, obwohl ich das eigentlich gar nicht möchte. Aber die Benutzer sind zufrieden. (Ich kann das völlig nachvollziehen; ich bin nur sauer, dass Wix keine Setup-Templates ohne Bloat anbietet.)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Helmut
Establishment
Beiträge: 237
Registriert: 11.07.2002, 15:49
Wohnort: Bonn
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von Helmut »

Also als ich mal einen Installer mit WIX gemacht habe, habe ich wirklich sehr sehr lange gebraucht, um einigermaßen alles ans Laufen zu kriegen. Aber der Abschlussdialog war nicht das Problem (eher die Checkbox, um das Programm optional direkt zu starten).
Hier ist der relevante Code dazu, falls dir das hilft:

Code: Alles auswählen

    <UIRef Id="WixUI_Minimal" />
<!--    <UIRef Id="WixUI_ErrorProgressText" /> -->
    <Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="The gadgets have been successfully installed. To add a gadget, simply right-click on the desktop and select Gadgets." />
    <Property Id="WIXUI_EXITDIALOGOPTIONALTEXT2" Value="You can also download gadgets from the internet and run them (.gadget extension). But make sure you trust the source, as they can contain viruses or trojans." />

    <CustomAction Id="LaunchApplication" FileKey="_8GadgetPack.exe" ExeCommand="-firstrun" Execute="immediate" Impersonate="yes" Return="asyncNoWait" />
    <UI>
      <Publish Dialog="ExitDialog" Control="Finish" Order="1" Event="DoAction" Value="LaunchApplication">LAUNCHAPPONEXIT</Publish>
    </UI>
Psycho
Establishment
Beiträge: 156
Registriert: 16.09.2002, 14:23

Re: [Projekt] Mein STL-Viewer

Beitrag von Psycho »

Gut gemacht Krishty!

Hast Du Überlegungen, den Quelltext ebenfalls zu veröffentlichen?
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 »

Klar – wer interessiert ist, kann sich melden und kriegt eine PM :)
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von xq »

Noch zwei Verbesserungsvorschläge:

- Kann man sich die aktuelle Modellgröße in Polygonen anzeigen lassen?
- Es wäre praktisch, mehrere Modelle laden zu können und somit als einen Merge anzeigen zu lassen
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
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 »

Das mit dem Merge ist eine gute Idee; sowas schwebt mir auch schon länger im Kopf rum – Dual Extruders (also zwei verschiedenfarbige Plastikstränge für zweifarbige Drucke) werden immer häufiger, und die Daten liegen dann meist als zwei STLs vor. Die gemeinsam anzuzeigen wäre toll.

Das mit der Anzahl der Polygone ist IMHO Feature Creep – hat auf den Druck oder die Gültigkeit der Datei keinen nennenswerten Einfluss.

Als nächstes kommt erstmal eine Drahtgitteransicht (habe schon eine Testversion online; Links via PM).
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von kimmi »

Beeindruckende Ladezeit, Kompliment von mir! Ich würde auch gerne mehr deiner Tipps bei assimp mit einfließen lassen, aber dafür bräuchte ich dringendst einen Tag mit 36 Stunden. Nebst Kindern und Job bleibt nicht immer die Zeit, die man benötigt, um all sowas hinzukriegen. Schade eigentlich. Um so schöner zu sehen, wie cool dein Tool performed!

Gruß Kimmi
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [Projekt] Mein STL-Viewer

Beitrag von kimmi »

Das ist wirklich schnell!
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 »

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.)
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 »

Krishty hat geschrieben:
Ich kannte das Problem schon von der Arbeit (auch da wird regelmäßig gestritten, ob Mausrad nach oben nun näher rangeht oder weiter weg) und denke, dass Programme da immer einstellbar sein sollten, weil es bei sehr geringen Kosten der Usability einen großen Nutzen erweist.
MasterQ32 hat geschrieben:Word! Das gleiche gilt ja auch für die generelle Scrollrichtung in Browsern, Code Editoren, ...
NytroX hat geschrieben:Wow, stimmt. Ist mir noch nie so wirklich aufgefallen!
Das Scrollrad ist eigentlich total "falschrum" in meinem Browser; ist wohl echt Gewöhnungssache.
Eine Option fürs Vertauschen zu haben ist wirklich was Wert, das muss ich bei meiner nächsten GUI unbedingt auch beachten und einbauen.
Bei 2D-Scrolling in Browser & Co. bekommen die Anwendungen ihre Scrollwerte von der Win32-API. Dort werden sie mit User-Einstellungen vorgekaut. (Ebenso werden ja die Maustasten vorgekaut, falls der User Windows auf Linkshänder eingestellt hat.) Möglicherweise könnt ihr ja was an den Einstellungen drehen, ein Minus davorsetzen oder so. HKCU\Control Panel\Desktop\WheelScrollLines sieht vielversprechend aus, aber YMMV. Falls ihr das weiter besprechen möchtet, können wir einen Thread dafür eröffnen!
Scheißdreck. Ich habe den Schlüssel von 3 auf -3 gesetzt und nach dem Neustart gemerkt, dass mein Mausrad gar nicht mehr funktioniert. Also lasst die Finger davon. Vielleicht lieber was hooken …
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 »

Helmut hat geschrieben:Also als ich mal einen Installer mit WIX gemacht habe, habe ich wirklich sehr sehr lange gebraucht, um einigermaßen alles ans Laufen zu kriegen. Aber der Abschlussdialog war nicht das Problem (eher die Checkbox, um das Programm optional direkt zu starten).
Hier ist der relevante Code dazu, falls dir das hilft:

Code: Alles auswählen

    <UIRef Id="WixUI_Minimal" />
<!--    <UIRef Id="WixUI_ErrorProgressText" /> -->
    <Property Id="WIXUI_EXITDIALOGOPTIONALTEXT" Value="The gadgets have been successfully installed. To add a gadget, simply right-click on the desktop and select Gadgets." />
    <Property Id="WIXUI_EXITDIALOGOPTIONALTEXT2" Value="You can also download gadgets from the internet and run them (.gadget extension). But make sure you trust the source, as they can contain viruses or trojans." />

    <CustomAction Id="LaunchApplication" FileKey="_8GadgetPack.exe" ExeCommand="-firstrun" Execute="immediate" Impersonate="yes" Return="asyncNoWait" />
    <UI>
      <Publish Dialog="ExitDialog" Control="Finish" Order="1" Event="DoAction" Value="LaunchApplication">LAUNCHAPPONEXIT</Publish>
    </UI>
Danke, Helmut! Ich bin endlich dazu gekommen, das auszuprobieren – und es geht nicht :( Ich habe es auch mit kleinen Änderungen nicht ans Laufen gekriegt, aber mittlerweile gibt es offizielle Dokumentation und mit deren Beispiel-Code funktioniert es endlich. Ist natürlich wieder hässlich und unter aller Sau, aber WiX eben …
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 »

Okay, eine aktualisierte Version ist raus: https://papas-best.com/stlviewer_de
solid outline.png
  • kann Dateien nun auch als Wireframe oder als Solid Outline anzeigen (F5, F6, F7 oder über das View-Menü)
  • Namen in ASCII-STLs sind nicht mehr vertauscht
  • Farben in Meshmixer-STLs sind nicht mehr vertauscht
  • ASCII-STLs ohne endsolid-Schlüsselwort laden jetzt
  • Setup startet das Programm auf Wunsch direkt
  • drei Crashes behoben (ich habe ein Audit der Laderoutinen und großer Teile der UI gemacht – einige Teile stehen aber noch aus; ich werde sicher noch ein halbes Dutzend Lücken finden)
Noch was für die Entwickler:

Meine 32-Bit-Version wird nun kaum noch als Virus eingeschätzt (auf Virustotal nur noch von drei aus 67 Programmen). Dafür wird die 64-Bit-Version erstmals als Virus eingeschätzt – ausgerechnet von Avast und AVG mit großer Verbreitung (die schon ein Dutzend False Positive Reports von mir haben). Das wird mir mindestens zehn Anfragen besorgter User bescheren. Antivirenprogramme sind ein Scheiß ohnegleichen; der Schrott gehört schlicht verboten.

(In meiner TODO für Release stehen als Schritte vor dem Upload https://www.avast.com/false-positive-file-form.php und https://www.avg.com/submit-sample , SO HÄUFIG passiert das. Ich vermute auch, dass beide die selbe Engine nutzen.)

Falls ihr sonst noch Patzer findet, lasst es mich wissen …
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 »

Danke für die interessanten Infos! Schon mal überlegt den Upload zu automatisieren? :/ Boah da ist ja nen Captcha... Das würde mich total mürbe machen.
Antworten