Assimp und AStyle?

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
CarstenF
Beiträge: 14
Registriert: 24.11.2010, 20:56
Kontaktdaten:

Assimp und AStyle?

Beitrag von CarstenF »

Guten Abend,

ich lese gerade im MD5 Loader Code von Assimp (später mehr dazu...), aber kurze Zwischenfrage:

Wie steht ihr dazu, den Assimp Code mal durch AStyle laufen zu lassen?

Das würde der Lesbarkeit imho sehr helfen, vorschlagsweise mit dieser .astylerc Konfigurations-Datei:

Code: Alles auswählen

# Don't keep backups of the original files (assuming that our source
# files are kept in a version control system like Subversion).
suffix=none

# Use the widespread Allman (or Ansi or BSD) style for best readibility,
# with default indentation (four spaces, indent=spaces=4).
style=allman

# Other options - see the AStyle docs for details.
indent-switches
indent-namespaces
indent-labels
indent-preprocessor
indent-col1-comments
max-instatement-indent=72
break-blocks
# pad-oper          # a+b becomes a + b
pad-header          # if(...) becomes if (...)
unpad-paren
keep-one-line-blocks
keep-one-line-statements
convert-tabs
align-pointer=type  # The * is a part of the type, not a part of the name.
# space-in-param-lists    # Unfortunately not (yet?) in AStyle, turn f(a,b,c) into f(a, b, c).
Falls positiv, wäre ich auch bereit, einen passenden Patch zu erstellen. :mrgreen:
Viele Grüße,
Carsten

Cafu - die open-source Spiele- und Grafik-Engine für multiplayer, cross-platform, real-time 3D Action
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von Aramis »

Hatte ich vor ca. einem Jahr auch mal vorgeschlagen – dann wegen ein paar Stellen verworfen, an denen AStyle die Formatierung eher versaut als verbessert hat. Wenn die aktuelle Version keine Probleme mehr macht, koennen wir das von mir aus gerne machen.

Schrompf, Kimmi, wie seht ihr das? ;-)
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von kimmi »

Von meiner Seite aus: her damit :).

Gute Idee...

Gruß Kimmi
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von Krishty »

Und ersetzt die 21 Vorkommnisse von „endianess“ endlich durch „endianness“ …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
Schrompf
Moderator
Beiträge: 4878
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von Schrompf »

Der Stil ist inkonsistent - das stimmt. Aber ist das denn für irgendjemanden relevant? Der Code ist trotzdem größtenteils gut lesbar, also was soll's.

Wenn es einen automatischen Umformatierer gäbe, der endlich der leidigen ungarischen Notation den Garaus machen würde, wäre ich sofort dabei :-) Ansonsten halte ich das für Verschwendung von Lebenszeit und Netzbandbreite.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
CarstenF
Beiträge: 14
Registriert: 24.11.2010, 20:56
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von CarstenF »

Schrompf hat geschrieben:Der Stil ist inkonsistent - das stimmt. Aber ist das denn für irgendjemanden relevant?
Das ist jetzt ein Scherz, oder?
Falls nicht: http://de.wikipedia.org/wiki/Programmierstil#Zweck
Der Code ist trotzdem größtenteils gut lesbar,
Naja...
Wenn es einen automatischen Umformatierer gäbe, der endlich der leidigen ungarischen Notation den Garaus machen würde, wäre ich sofort dabei :-)
Finde ich auch, also wenn der Member derzeit z.B. mTime ist, würde ich ihn ebenfalls umbenennen:
  • Time, falls der Member "public" ist,
  • m_Time (oder auch nur Time), wenn der Member "private" ist.
Überall einfach ein m voran zu stellen macht wenig Sinn, insb. wenn der Member hauptsächlich in der Form Objekt.Time verwandt wird.
Ansonsten halte ich das für Verschwendung von Lebenszeit und Netzbandbreite.
Die Netzbandbreite wird nur einmalig ver(sch)wendet und kostet ja eigentlich nichts, und was ist mit der Lebenszeit von all denjenigen, die jemals den Code lesen sollen??
Bessere Lesbarkeit amortisiert sich, und zwar sehr schnell!
Viele Grüße,
Carsten

Cafu - die open-source Spiele- und Grafik-Engine für multiplayer, cross-platform, real-time 3D Action
Benutzeravatar
Schrompf
Moderator
Beiträge: 4878
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von Schrompf »

CarstenF hat geschrieben:
Ansonsten halte ich das für Verschwendung von Lebenszeit und Netzbandbreite.
Die Netzbandbreite wird nur einmalig ver(sch)wendet und kostet ja eigentlich nichts, und was ist mit der Lebenszeit von all denjenigen, die jemals den Code lesen sollen??
Bessere Lesbarkeit amortisiert sich, und zwar sehr schnell!
Sag mal... Du redest mit jemandem, der damit nahezu täglich arbeitet. Willst etwa DU mir erklären, für wie sinnvoll ich das zu halten habe? Wenn Du nach Meinungen fragst, wirst Du damit leben müssen, Antworten zu bekommen.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
CarstenF
Beiträge: 14
Registriert: 24.11.2010, 20:56
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von CarstenF »

Möcht' mal gern wissen, was Dir für ne Laus über die Leber gelaufen ist... wollte weder Dich noch jemand sonst beleidigen.
Arbeiten tue ich übrigens auch quasi täglich [EDIT: mit Code aller Art], gerade deshalb habe ich das mit AStyle doch vorgeschlagen!

EDIT:
Habe oben zuerst was falsch gelesen, daher nochmal zur Klärung:
Wenn Du nur allein oder im kleinen Kreis damit arbeitest und keine "externen" Beiträge zu Assimp willst, ist das für mich kein Problem.
Sehr schade wäre das dann allerdings schon.
Viele Grüße,
Carsten

Cafu - die open-source Spiele- und Grafik-Engine für multiplayer, cross-platform, real-time 3D Action
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von Aramis »

Kein Grund sich aufzuregen. Was Thomas sagte, ist nur, dass er persoenlich keine Lust hat AStyle drueberlaufen zu lassen - nicht unbedingt, dass es ihn stoeren wuerde wenn es jemand anderes machte – jedenfalls hab ich das so interpretiert, ich mag mich irren.

Was mir allerdings unverstaendlich ist, ist eure Krise wegen der ungarischen Notation. Einige Stellen in Assimp nutzen Prefixe, ganz selten auch mal eine degenerierte ungarische Notation. Maschinell kann man das nicht beheben. Code lesen koennen wir alle. Darueber zu diskutieren ob es nun m_iTime oder m_Time oder m_time sein soll, sehe ich tatsaechlich als Lebenszeitverschwendung an. Ebenso wie ich auch nicht lange ueber einen Formatierungsstil fuer AStyle streiten wuerde.
CarstenF
Beiträge: 14
Registriert: 24.11.2010, 20:56
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von CarstenF »

Alexander, danke.

Ich möchte nochmal sagen, dass es mir sehr leid tut, wenn irgendwas falsch rüber kam.

Beim Lesen des Assimp Codes habe ich allerdings auch einige Ideen, was man verbessern könnte, und deswegen schreibe ich hier. Ich bin auch selbst bereit, diese Verbesserungen umzusetzen, falls sie auf Euer Einverständnis stoßen, aber dazu muss man ja erstmal fragen, wie es grundsätzlich aussieht.

Und es ist auch mein persönliches Ziel, niemals an etwas rumzumaulen, ohne zugleich sagen zu können, wie es besser gemacht werden kann - und im Fall von Assimp bin ich auch gerne derjenige, der die ggf. erforderliche, dazugehörige Arbeit machen würde (falls die Sache an sich, wie oben beschrieben, eurerseits auf positives Echo stößt).

Konkret:
Die ungarische Notation, genauso wie die Details der AStyle-Konfiguration, sind selbstverständlich nur Nebensachen. Die Konsistenz, die durch AStyle erreicht wird, ist viel wichtiger als die genaue Ausprägung der Details. Mein .astylerc war selbstverständlich wie dort schon geschrieben nur ein Vorschlag.
Viele Grüße,
Carsten

Cafu - die open-source Spiele- und Grafik-Engine für multiplayer, cross-platform, real-time 3D Action
Benutzeravatar
Schrompf
Moderator
Beiträge: 4878
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von Schrompf »

Bei mir gibt's da keine persönliche Laus auf der Leber. Ich habe nur angemessen reagiert auf Schreibweisen wie
Das ist jetzt ein Scherz, oder?
und
von all denjenigen, die jemals den Code lesen sollen??
Wenn Du das automatisierte Umformatieren für einen nennenswerten Beitrag hälst... na von mir aus. Als beruflicher Softwareentwickler ist man halt regelmäßig gezwungen, sich in komplett fremden Code einzulesen, der natürlich auch beliebigen Style-Konventionen folgt. Ich habe aber wohl unterschätzt, wieviel Gewöhnung dafür nötig ist, die natürlich weniger erfahrenen Leuten fehlt. Von daher: mach, was immer Dir hilft. Ich halte es aber auch weiterhin für verschwendeten Traffic.

Bye, Thomas
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
CarstenF
Beiträge: 14
Registriert: 24.11.2010, 20:56
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von CarstenF »

Schrompf hat geschrieben:Ich habe aber wohl unterschätzt, wieviel Gewöhnung dafür nötig ist, die natürlich weniger erfahrenen Leuten fehlt.
Aha, und demnach ist für Dich bestimmt selbst Linus Torwalds ein weniger erfahrener Programmierer, weil er Patches nur wegen inkonsistentem Stil nicht in den Kernel einbaut?
Hast Du http://de.wikipedia.org/wiki/Programmierstil#Zweck eigentlich mal gelesen?

Ich halte "automatisiertes Umformatieren" übrigens nicht für einen nennenswerten Beitrag, sondern für einen (trivialen) Anfang, der weitere Schritte spürbar vereinfacht hätte. So wie die Sache sich im Moment darstellt (schon bei den naheliegendsten Verbesserungen hakt es), haben darüber hinausgehende Dinge aber hier ohnehin keine Perspektive -- schade!
Ich werde meine Bandbreite und Lebenszeit daher lieber anderswo investieren (z.B. mit einem Fork, einem anderen Konverter, oder mit dem Selbstschreiben der drei, vier wichtigsten Formate komme ich sehr viel schneller ans Ziel), wünsche Dir aber weiterhin viel Spaß und Erfolg.
Viele Grüße,
Carsten

Cafu - die open-source Spiele- und Grafik-Engine für multiplayer, cross-platform, real-time 3D Action
Benutzeravatar
Schrompf
Moderator
Beiträge: 4878
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von Schrompf »

Hast Du eigentlich immer ein Problem mit fremden Meinungen?
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Tejio
Establishment
Beiträge: 107
Registriert: 11.11.2010, 11:33

Re: Assimp und AStyle?

Beitrag von Tejio »

@Offtopic: Verzeiht mir bitte die Einmischung, aber besteht die Möglichkeit, diesen Thread zu closen? Meiner Auffassung nach artet diese Diskussion allmählich aus und ich würde mich sehr darüber freuen, wenn man diese Diskussion auf eine PN-basierte Kommunikation zwischen Schrompf und CarstenF umstellen könnte. Es ist nur ein Vorschlag und wenn Bedarf besteht nach einer öffentlichen Diskussion zwischen den Beteiligten, so möge man diesen Beiträge bitte ignorieren.
Benutzeravatar
Krishty
Establishment
Beiträge: 8267
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von Krishty »

Tejio hat geschrieben:@Offtopic: Verzeiht mir bitte die Einmischung, aber besteht die Möglichkeit, diesen Thread zu closen?
Nein. Solange das hier eine Assimp-interne Diskussion (mit Carsten als Fragesteller) bleibt, ist das völlig in Ordnung. Das betrifft eben alle Assimp-Entwickler und wäre per PM wahnsinnig mühsam auszuhandeln; dafür ist ZFX u.a. da.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Tejio
Establishment
Beiträge: 107
Registriert: 11.11.2010, 11:33

Re: Assimp und AStyle?

Beitrag von Tejio »

Achso, okay. Dann bitte ich darum, meinen vorherigen Beitrag zu ignorieren. Ich hatte einen falschen Eindruck vom Verlauf dieser Diskussion.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4878
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von Schrompf »

Ok, das ist wohl zum Teil mein Fehler. Ich möchte mal wieder was zur Versachlichung der Diskussion beitragen.

1) Hintergründe

Nach meinem Wissen hatten wir uns im Vor-Assimp-Gründungsthread auf einen grob einheitlichen Stil geeinigt. "Nach meinem Wissen" deshalb, weil sich auch Erinnerungen im Laufe der Zeit verändern können und ich bislang nicht den Orginal-Beitrag von damals rausgesucht habe. Wär wohl mal ne Maßnahme.

Nach meinem Wissen hatten wir uns damals auf "{ auf eigene Zeile" und "Tabs zum Einrücken geeinigt". Ich habe mich eigentlich immer daran gehalten, auch wenn ich manchmal fehlformatiertes Zeug eingecheckt habe, weil ich mal wieder vergessen hatte, die IDE von Spaces auf Tabs umzustellen. Irgendwann fing Alex dann aber mit dem typischen Java-Style mit { auf der selben Zeile und eingerückten } an. Hat mich anfangs ein wenig verstimmt, aber ich habe das irgendwann halt als seinen Stil akzeptiert. Mich grummelt nur heute noch gelegentlich, wenn er existierenden Code in meinen Files (z.B. Collada oder XFile) umformatiert, aber das ist auch nicht wirklich ein Beinbruch. Bei Code Styles gibt es nicht wirklich ein Richtig oder Falsch, nur verschiedene Subjektivitäten.

So kam es jedenfalls nach meiner Ansicht zu dieser vielteiligen Code-Formatierung in Assimp. Und aus heutiger Sicht finde ich daran nichts Böses mehr. Zumal es damit ja auch Neu-Beiträgern die Freiheit gibt, ihren Code zu schrieben, wie sie es für richtig halten. Und ich habe mich (auch eine schwere Erkenntnis für mich) dazu entschieden, keinem mehr den Stil vorzuschreiben, primär weil ich es selbst auch nicht gern sehe, wenn man mir den Stil vorschreiben will. Wer mich bezahlt, darf das gern tun, alle anderen aber eher nicht. Ich habe es als sehr anmaßend empfunden, dass dann ausgerechnet ein Projektfremder versucht, den Code Style zu vereinheitlichen - egal, welche Vorgabe man wählt, es wird Unzufriedenheit geben. Und wir sind bislang nicht schlecht damit gefahren - ich würde Assimp im Vergleich zu anderen OpenSource-Projekten als ziemlich erfolgreich beschreiben.

Randbemerkung: meine Seitenhiebe auf die ungarische Notation sind bitte als scherzhafte Stichelei zu nehmen. Daher auch die Smileys.

2) Die Stiländerung:

Ich bin relativ sicher, dass AStyle einen Stil erzeugen kann, der mir behagt. Ich bin ebenso relativ sicher, dass wir keinen Stil finden, der allen aktiven Projektmitgliedern gefällt. Und es amüsiert mich, dass die dadurch entstehenden Diffs in den meisten Viewern gar nicht auftauchen dürften, weil ja nur Whitespace geändert wurde. Ich empfinde die Änderung also auch weiterhin als nutzarm, möchte aber NOCHMAL wiederholen, dass ihr gerne machen könnt, wie ihr wollt.

3) Die Diskussion:

Es ging hier um einen konkreten Vorschlag. Dass Du abweichende Meinungen nicht akzeptieren willst, finde ich ärgerlich. Dass Du bei einem 1:1-Streit das Feedback auf einen Vorschlag gleich auf alle potentiellen zukünftigen Beiträge erweitern willst, gefällt mir ebensowenig. Es ging hier um eine konkrete Sache - die automatisierte Umformatierung allen Codes. Dass andere Beiträge vielleicht willkommener sind, scheinst Du von vornherein auszuschließen. Es drängt sich mir also auch weiterhin der Eindruck auf, dass es Dir nicht um einen Änderungsvorschlag geht, sondern irgendwelche privaten Ziele verfolgt werden. Auch das gefällt mir nicht.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
CarstenF
Beiträge: 14
Registriert: 24.11.2010, 20:56
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von CarstenF »

Hallo Schrompf,

besten Dank für Deine ausführliche Antwort.

Ich möchte gerne versuchen, auch besser zu erklären, was mich motiviert und wie:

Als ich auf Assimp aufmerksam geworden bin, und begonnen habe es mir näher anzusehen, haben sich für mich zwei wichtige Ziele bzw. "Themen" abgezeichnet:

Zum einen habe ich ehrlich gesagt durchaus ein "privates" Ziel, nämlich Assimp in meiner eigenen Software möglichst optimal einzusetzen, um eine große Zahl an Formaten einfach und schnell laden zu können.

Zum anderen finde ich beim Lesen im Assimp Code (bisher zugegenermaßen hauptsächlich der MD5 Loader) einige Punkte, bei denen ich denke, "Hey, das hier könnte man so und so besser machen". D.h. ich bin/wäre gerne bereit, Assimp an sich mit zu verbessern - was natürlich zumindest teilweise auch ein wenig durch meine "privaten" Ziele mit gefärbt ist.

Dabei sind einige Dinge aber sicherlich auch von Anfang an kontrovers, insbesondere wenn sie z.B. die Kompatibilität mit Vorversionen brechen. Um ein Beispiel zu nennen, man könnte die C API von der C++ API entkoppeln, um später einmal einfacher die Klassen verändern zu können. Ist das nun ein privates Ziel von mir? Ich weiß es selbst nicht, wohl teils teils, denn es würde zukünftige Änderungen erleichtern (die dann vielleicht mehr meinen privaten Zielen entsprechen -- oder auch denen anderer User!).

Nun macht es aber wenig Sinn, wenn ich mich hier hinsetze, einfach einen Patch drauflos entwickele (z.B. die C und C++ APIs rückwarts-inkompatibel trenne), und sich hinterher herausstellt, dass ihr, d.h. diejenigen die den Patch anwenden und einchecken können, diesen Patch ablehnt, z.B. weil ihr die Rückwärts-Kompatibilität nicht opfern wollt, den C Usern die Änderungen nicht zumuten wollt, o.ä..

Für mich eine zentrale (Ziel-)Frage: Kann ich euch davon überzeugen, dass das MD5-artige Format "besser" ist? (Details siehe anderer Thread und Posts auf der Mailing-Liste)
Dabei könnte es natürlich durchaus passieren, dass das Gegenteil passiert, und jemand aufzeigen kann, dass ich etwas übersehen habe und im Irrtum bin - dann ziehe ich meinen Hut und erkenne meinen Irrtum an.

Aber Assimp auf MD5 Umzustellen wäre in jedem Fall eine Riesen-Arbeit, die nur gelingen kann, wenn alle das mit tragen. (Ich würde von der dazugehörigen Arbeit übernehmen soviel ich kann, aber offensichtlich klappt auch das besser, je mehr Leute mitmachen.)

Dieses "große" Ziel (das man durchaus wieder teilweise als mein Privatziel bezeichnen könnte, aber ich bin fest davon überzeugt, dass auch Assimp selbst und alle seine User genauso davon profitieren) steht aber logischweise ganz am Ende der Kette der dazu nötigen Änderungen und (technischen wie personellen) Voraussetzungen.
(Meine eigene Software baut bereits auf einer MD5-artigen Struktur auf und ich bin sehr zufrieden damit, insofern ist dieses Ziel für Assimp sogar nicht durch privates motiviert, sondern nur dadurch, dass dieses toll funktionierende Konzept Assimp noch besser machen könnte...)

Das mit AStyle war für mich (als Projektfremdem fällt einem ein unregelmäßiger Coding-Style nunmal viel schneller auf als einem der sich jeden Tag damit befasst...) ein Schritt, den ich, wenn es "mein" Code wäre, als erstes gemacht hätte, ganz einfach nur, um die weiteren Schritte zu erleichtern. Insofern bin ich nicht auf die genauen Stil-Regeln fixiert, aber ja, ein (irgendwie) konsistent formatierter Code würde mir bei allen weiteren Arbeitsschritten helfen. D.h. auch hier bekenne ich mich wieder zu einem gewissen Privatinteresse, aber auch hier denke und hoffe ich, dass das Projekt als ganzes (z.B. für den nächsten Projektfremden) profitiert.

Ich habe das mit AStyle zwar niemals als "Test" angelegt oder verstanden, aber dennoch muss ich mich ja fragen, ob es sich "lohnt", die privat motivierten aber hoffentlich für alle User und Devs nützlichen Verbesserungen auch dem offiziellen Projekt nahe zu bringen? Vieles (z.B. API-Änderungen...) geht nur, wenn die Projektgründer mitziehen. Oder gehen die Vorstellungen auseinander, werden die (zukünftigen, ggf. mühsam zu erstellenden) Patches eh nicht eingecheckt, und geht es ggf. einfacher und schneller, wenn ich eine andere Lösung suche?

Teilweise wäre sicherlich auch ein Mittelweg oder ein Vorab-Test möglich, z.B. über einen "unstable branch". Andere Dinge (z.B. das Umformatieren mit AStyle, dann versuchen andere Patches vom trunk zu mergen) sind so wohl eher schlecht umsetzbar.

Aktuell sitze ich nun leider noch mehr zwischen den Stühlen als zuvor:
Gestern habe ich die OBJ Spezifikation gelesen und einen komplett funktionsfähigen Loader dafür geschrieben und dafür weniger Zeit gebraucht als für dieses Posting (zugegebenermaßen beschränkt auf die sehr einfachen "f" Faces). Nun noch ein oder zwei weitere anwendungsübergreifende Formate, die auch Animationen können, und für meine eigene Software wäre die Welt schon in Ordnung...

[ PS: Abweichende Meinungen akzeptiere ich durchaus - auch wenn es zugegebenermaßen manchmal schwer fällt. Dabei hilft es allerdings sehr, wenn die andere Meinung mit Argumenten einherkommt - je bessere desto besser. :D Abweichende Meinungen, bei denen beispielsweise ein Verbesserungsvorschlag ohne nachvollziehbare Gründe abgelehnt wird, akzeptiere ich in der Tat eher selten. ;) ]

Soweit -- sorry dass es so lang geworden ist, ich hoffe, dass dennoch der springende Punkt rüberkommt. ;) :D
Viele Grüße,
Carsten

Cafu - die open-source Spiele- und Grafik-Engine für multiplayer, cross-platform, real-time 3D Action
Alexander Kornrumpf
Moderator
Beiträge: 2119
Registriert: 25.02.2009, 13:37

Re: Assimp und AStyle?

Beitrag von Alexander Kornrumpf »

Wenn ich mal als Unbeteiligter was dazu sagen darf, ich glaube von der Annahme etwas zu bauen was "möglichst vielen nutzt" muss man sich einfach mal verabschieden. Ich denke die Assimp Leute haben das gebaut, was sie sowieso selbst brauchten und das dann netterweise öffenlich gemacht. Wenn du etwas anderes brauchst, bleibt dir wohl nur es selbst zu implementieren. Anzunehmen dass die Entwickler das bestehende Projekt über den Haufen werfen und etwas für deine Bedürfnisse implementieren, allein aufgrund deiner Behauptung das sei ja für die ganze Welt unglaublich nützlich, ist ein wenig naiv, OpenSource hin oder her.
CarstenF
Beiträge: 14
Registriert: 24.11.2010, 20:56
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von CarstenF »

Alexander Kornrumpf hat geschrieben:Anzunehmen dass die Entwickler das bestehende Projekt über den Haufen werfen und etwas für deine Bedürfnisse implementieren, allein aufgrund deiner Behauptung das sei ja für die ganze Welt unglaublich nützlich, ist ein wenig naiv, OpenSource hin oder her.
Äh, also das habe ich auch weder gemeint noch gesagt:
Niemand soll meiner Behauptung einfach glauben. Stattdessen wäre es schön, wenn sich jemand meine Vorschläge ansehen und beurteilen würde!
Wie schon gesagt, ist es auch völlig ok, wenn ich dabei widerlegt werde - siehe oben.

Betrachte es mal so, mit Deinen eigenen Worten:
Alexander Kornrumpf hat geschrieben:Ich denke die Assimp Leute haben das gebaut, was sie sowieso selbst brauchten und das dann netterweise öffenlich gemacht.
Genau so ist es auch bei mir: Ich habe da einen Vorschlag bzw. Code, den ich selbst brauche bzw. selbst schon benutze. Den bin ich bereit, in Assimp einzubringen, auch wenn mir selbst das nicht unmittelbar was nützt.

Wenn dieser Vorschlag abgelehnt wird, entweder mit sachlichen Argumenten (das wäre toll, dann würde ich etwas dazulernen) oder meinetwegen auch ganz ohne (dann würde ich mich allerdings fragen, ob jemand wirklich mal drübergeschaut hat), dann ist das für mich auch kein Problem.
Viele Grüße,
Carsten

Cafu - die open-source Spiele- und Grafik-Engine für multiplayer, cross-platform, real-time 3D Action
waigie
Beiträge: 82
Registriert: 20.05.2009, 19:37

Re: Assimp und AStyle?

Beitrag von waigie »

Was ich jetzt wirklich nicht verstehe. Du hast Ideen die unter Umständen wirkliche Vorteile für Assimp beinhalten könnten, bzw. zumindest Dinge über die man sachlich diskutieren kann.

Aber das einzige mit was du hier an die Entwickler trittst ist ein neuer, einheitlicher Codestil. Jedoch ist Codestil etwas komplett subjektives. Jeder mag es anders, jeder macht es anders. Und wie Schrompf schon geschrieben hat zu einem Codestil zwingt mich nur einer und das ist mein Chef der mich dafür bezahlt etwas zu machen so wie er es möchte.
Also wenn die ein einheitlicher Codestil beim lesen hilft, denn nimm dir AStyle und formatiere den Code auf deinem Rechner wie du ihn magst. Damit ist dir geholfen. Wenn du magst stell deinen Formatter irgendwo online, so dass jeder der ihn mag ihn nutzen kann.
Das kostet dich kaum Zeit, jeden der es anwenden mag auch nicht aber es muss wegen einer Formatierungsfrage keine Diskussion vom Zaun gebrochen werden bei der man nie auf einen gemeinsamen Nenner kommen wird.

Also schreib deine wirklichen Ideen, die Assimp in irgendeiner Weise verändern, verbessern etc. Diskutiere über deine Ideen mit den Entwicklern und nicht darüber ob der Member jetzt einen schlechten Namen hat oder nicht.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von kimmi »

Erfahrung meinerseits zu Code-Formatierungen im allgemeinen: völlig Banane, solange man sich an ganz grobe Richtlinien hält. Schrompf findet die Idee mit dem Reformatieren nicht so toll und das ist IMHO auch sein gutes Recht. Ich würde dem Output des vorgeschlagenen Tools mal eine Chance einräumen, da ich wiederum gute Erfahrungen mit so etwas gemacht habe.
Warum man Schrompf nicht einfach seine Meinung zugesteht, verstehe ich gerade nicht so recht. Mir ging es bei meiner Zusage nur darum, den Code für andere lesbarer zu machen, falls dies wirklich ein Problem darstellt. Also kein Grund für so ein Drama. Durch Reformatierungen erhalten wir definitiv keine neuen Funktionen und dementsprechend ist die Streiterei / Diskussion ( man wird sehen, wie sich das entwickelt ) meiner Ansicht ziemliche Zeitverschwendung. Formatierung ist Geschmackssache.

Gruß Kimmi
Benutzeravatar
Schrompf
Moderator
Beiträge: 4878
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von Schrompf »

CarstenF hat geschrieben:Ich möchte gerne versuchen, auch besser zu erklären, was mich motiviert und wie:
Tut mir leid, die Antwort ist irgendwie bei mir untergegangen. Ich möchte mir ihr trotzdem, nun da ich sie bemerkt habe, detailliert widmen:

Bitte korrigiere mich, wenn ich Deine Vorhaben falsch verstanden habe oder falsch darstelle.

a) Assimp in Deiner Engine einsetzen

Ein verständliches Ziel, einige hundert andere Programmierer tun das ja auch schon. Assimp hat da eine Art Marktlücke getroffen, wenn ich das Feedback in den Internetforen recht verstehe.

b) das Datenmodell auf MD5-Strukturen umstellen

Als Grund gibst Du an, dass Du das Format für ebenso mächtig und dabei verständlicher hälst. Nunja, das ist Deine Meinung. Ich persönlich denke, dass gar keine so großen Unterschiede zum aktuellen Format bestehen. Immerhin lassen sich ja beide Formate ineinander umwandeln - der MD5-Loader tut ja genau das. Ich finde daher, dass - selbst wenn Du mit Deiner Meinung die Mehrheit der Nutzer vertreten solltest - die bestehenden Assimp-Datenstrukturen NICHT geändert werden. Das Umschreiben von 30+ Loadern und soundsovielen PostProcessingSteps ist das Eine. Das andere ist der Kompatibilitätsbruch zu all den bestehenden Nutzern und ihrem Glue Code. Die Vorteile des neuen Formats müssten gewaltig sein, um einen solchen Schritt zu rechtfertigen. Und das sind sie nicht.

c) das Datenmodell weg von POD und hin zu C++-Containern verändern

Nunja... das Datenmodell ist ein gelöstes Problem. Auch wenn es bisweilen mühselig ist, manuell die Arrays konstruieren zu müssen, ist doch der bestehende Code darauf ausgelegt und gut damit klargekommen. Man könnte mit C++-Containern an vielen Orten die eine oder andere Zeile Code sparen, müsste aber wieder alle Loader und all PPSs anpassen. Und das für ein im Grunde gelöstes Problem? Ich denke nicht. Auch wenn diese Änderung wahrscheinlich machbar wäre, ohne die externe Schnittstelle zu ändern. Schließlich könnte man jedes Datenarray intern ja als Container implementieren und die bisherige Zeiger/Count-Strukturen einfach darauf zeigen lassen. Das wäre auch Bedingung, damit all die Bindings zu anderen Programmiersprachen weiterhin funktionieren - die basieren aufgrund der portablen Natur reiner AnsiC-Funktionen meist darauf. Nur damit sich diese Änderung überhaupt lohnt, müsste man wie gesagt alle Loader und PPSs anpassen. Das halte ich in Anbetracht des doch reichlich diffus definierten Gewinns für fehlgeleitetes Engagement.

d) Die CodeStyle-Vereinheitlichung

Dazu wurde ja (inzwischen auch wieder sachlich :-)) genug diskutiert. Ich verstehe Dein Bedürfnis nach einheitlichem Stil - es macht das Lesen ein bisschen einfacher. Für private Zwecke der Lesbarkeit reicht es allerdings auch, das lokal auszuführen, wie Kimmi schon schrieb. Das Einchecken dieser Änderungen - nunja, das Thema hatten wir schon durchgekaut.

Nebenbemerkung: e) das Schreiben eigener Loader.

Das steht Dir natürlich frei. Es steht Dir sogar frei, Dir dazu beliebige Code-Teile aus Assimp zu nehmen - wir haben uns ja bewusst gegen die GPL und all ihre Einschränkungen entschieden. Ich möchte allerdings zu bedenken geben, dass das kein so einfacher Job wird, wie Du vielleicht denken magst. Allein das OBJ-Format hat in den letzten Jahren den einen oder anderen Grenzfall gehabt, der Detailkorrekturen am Code erfordert hat. Und das OBJ-Format ist eins der schlichtesten Formate. Formate, die Bone Animations unterstützen, gibt es nach meinem Wissen nur MD5, XFiles, Collada, (FBX), (Blender), evtl. 3ds? Den MD5-Loader hat Aramis geschrieben, dazu kann ich nichts sagen. XFile- und Collada-Loader stammen dagegen größtenteils von mir. Und die sind komplexe Biester, die auch heute noch regelmäßig Korrekturen und Zusatzcode brauchen, wenn mal wieder ein neuer Grenzfall zu behandeln oder um einen Bug eines seltenen Exporters drumrum zu bauen ist. Auch wenn Du den Code von Assimp nicht magst - Dein gutes Recht, nebenbei bemerkt - enthält er doch bereits enorm viel solchen Maintenance Code, den nachzumachen einer einzelnen Person schwerfallen wird.

Bye, Thomas
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
CarstenF
Beiträge: 14
Registriert: 24.11.2010, 20:56
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von CarstenF »

Hi Schrompf,
Schrompf hat geschrieben: b) das Datenmodell auf MD5-Strukturen umstellen

[...] Die Vorteile des neuen Formats müssten gewaltig sein, um einen solchen Schritt zu rechtfertigen. Und das sind sie nicht.

c) das Datenmodell weg von POD und hin zu C++-Containern verändern

[...] Und das für ein im Grunde gelöstes Problem? Ich denke nicht. [...]
Klare Aussagen, ok, danke. :)

Ein Detail möchte ich aber nochmal herausgreifen, zu MD5:
Immerhin lassen sich ja beide Formate ineinander umwandeln - der MD5-Loader tut ja genau das.
Soweit ich es sehe und verstehe, aber nur "verlustbehaftet". Siehe http://zfx.info/viewtopic.php?f=5&t=1263 für weiteres. Habe zwischenzeitlich auch von Aramis eine PM dazu erhalten, und denke dass wir uns in diesem Thread die techn. Details noch etwas weiter anschauen werden.
d) Die CodeStyle-Vereinheitlichung

Dazu wurde ja (inzwischen auch wieder sachlich :-)) genug diskutiert. Ich verstehe Dein Bedürfnis nach einheitlichem Stil - es macht das Lesen ein bisschen einfacher. Für private Zwecke der Lesbarkeit reicht es allerdings auch, das lokal auszuführen, wie Kimmi schon schrieb. Das Einchecken dieser Änderungen - nunja, das Thema hatten wir schon durchgekaut.
Das lokale Anwenden ist natürlich nicht das Problem, aber dann lokal eine weitere Änderung zu machen (z.B. ein kleines Feature, Bug-Fix, o.ä.) und dann einen Patch (mit TortoiseSVN oder svn diff o.ä.) daraus zu machen ist halt ziemlich schwierig, jedenfalls schwieriger, als wenn die Formatierung schon offiziell im Repository wäre. (Schwierig in dem Sinne, dass der Patch sowohl die Änderungen aus der lokalen Umformatierung als auch aus der eigentlichen Sache enthielte.)
Nebenbemerkung: e) das Schreiben eigener Loader.
Ja, ok, danke.

Im Moment übe ich mich darin, meinen eigenen Collada Loader auf Basis von Collada DOM fertig zu stellen.
(Nebenfrage: Warum benutzt Assimp eigentlich nicht Collada DOM (o. FCollada o.ä.)? Die Collada DOM Library ist natürlich ein dicker Brocken, aber es "ohne" zu machen stelle ich mir bemerkenswert schwierig vor - Hut ab!)
Danach werde ich mich auch gerne wieder Assimp zuwenden, z.B. im anderen Thread zu den MD5 Details.
Viele Grüße,
Carsten

Cafu - die open-source Spiele- und Grafik-Engine für multiplayer, cross-platform, real-time 3D Action
Benutzeravatar
Schrompf
Moderator
Beiträge: 4878
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von Schrompf »

Moin Carsten,
CarstenF hat geschrieben:
Schrompf hat geschrieben: b) das Datenmodell auf MD5-Strukturen umstellen

[...] Die Vorteile des neuen Formats müssten gewaltig sein, um einen solchen Schritt zu rechtfertigen. Und das sind sie nicht.

c) das Datenmodell weg von POD und hin zu C++-Containern verändern

[...] Und das für ein im Grunde gelöstes Problem? Ich denke nicht. [...]
Klare Aussagen, ok, danke. :)
Das waren allerdings nur meine persönlichen Ansichten. Da die anderen Gründerväter von Assimp sich zu dem Thema aber gar nicht geäußert haben, vermute ich, dass sie mir zustimmen.
Im Moment übe ich mich darin, meinen eigenen Collada Loader auf Basis von Collada DOM fertig zu stellen.
(Nebenfrage: Warum benutzt Assimp eigentlich nicht Collada DOM (o. FCollada o.ä.)? Die Collada DOM Library ist natürlich ein dicker Brocken, aber es "ohne" zu machen stelle ich mir bemerkenswert schwierig vor - Hut ab!)
Das lag an zwei Dingen. Zum einen habe ich ColladaDOM nie zum Bauen bekommen. Und zum anderen ist eine gewaltige Abhängigkeit. Wenn ich allein die Diskussion um unsere (inzwischen optionale, Danke an Aramis) Abhängigkeit von boost betrachte, wäre ColladaDOM wohl das Aus gewesen.

Und es hat natürlich den Vorteil, dass es einen ganzen Zacken schneller sein dürfte :-) Habe ich aber nie nachgemessen, kann also auch nur eine Unsinnsvermutung sein.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: Assimp und AStyle?

Beitrag von kimmi »

Ich muss mich wegen der wenigen Äußerungen meinerseits entschuldigen. Meine 2 1/2-Wochen alte Tochter hält mich gerade ganz gut auf Trapp. Von da aus: ich vertraue da auf Schrompf's Meinung, da er in diesem Bereich wesentlich mehr Erfahrung vorzuweisen hat als ich und in dem Bereich bisher einen guten Job gemacht hat.

Gruß Kimmi
Antworten