Seite 2 von 2 « Erste 12
Ergebnis 21 bis 32 von 32
  1. #21 Zitieren
    Knight Avatar von GenerationLost
    Registriert seit
    Apr 2009
    Ort
    Whereabouts Unknown
    Beiträge
    1.773
    Vielen Dank fürs Nachsehen und es stimmt, es liegt tatsächlich an den Texturen! Nur warum, das kann ich nicht wirklich erkennen.
    Ich habe einfach mal einen alten Workaround angewendet, der öfter mal solche Probleme gelöst hat:

    1. Die DDS mit GIMP als PNG exportiert
    2. Die PNG in MS Paint geöfnet und einfach nochmal überspeichert
    3. Dann die PNG mit GIMP wieder als DDS exportiert und siehe da, jetzt klappt's!

    Offensichtlicher Nachteil: Ist ziemlich aufwendig bei vielen Dateien.
    Fun Fact: Es funktioniert tatsächlich nur, wenn ich mit MS Paint die PNG überschreibe. Exportiere ich nur mit GIMP als PNG und importiere sie gleich wieder in GIMP und exportiere sie dann als DDS klappt es nicht.

    Zitat Zitat von Pherim Beitrag anzeigen
    Über Smooth Shading und Duplicate Vertices werde ich dann morgen was schreiben. So sieht man nämlich noch jedes einzelne Polygon.
    Danke dir, bin gespannt.
    GenerationLost ist offline
  2. #22 Zitieren
    Ehrengarde Avatar von Pherim
    Registriert seit
    Sep 2003
    Beiträge
    2.231
    Sehr merkwürdig... kann ich mir jetzt so auch nicht erklären. Aber hauptsache es klappt jetzt.
    Pherim ist offline
  3. #23 Zitieren
    Ehrengarde Avatar von Pherim
    Registriert seit
    Sep 2003
    Beiträge
    2.231
    OK, dann mal ein paar Worte zum Smooth Shading.

    Wie du ja erkennen kannst, ist momentan noch jedes einzelne Polygon als einzelnes, flaches Dreieck zu erkennen. Das sieht aber nicht nur überall da unschön aus, wo man eigentlich sanfte Übegänge haben möchte, zum Beispiel bei Hügeln im Boden, sondern erzeugt auch zahlreiche überflüssige Vertices (das sind die "Eckpunkte", aber wenn du dich mit Blender ein bisschen auskennst, weißt du das sicherlich) im Modell, was die Dateigröße erhöht. Das liegt daran, dass bei Flat Shading jedes Dreieck drei eigene Vertices hat, während sich Dreiecke mit Smooth Shading (also weichen Übergängen an den Kanten) diese teilen können und daher insgesamt weniger benötigt werden. Das funktioniert folgendermaßen: Jedes Vertex hat eine "Ausrichtung" (Vertex Normal bzw Vertexnormale auf Deutsch), die bestimmt, wie der Teil des Objekts, zu dem es gehört, auf Licht reagiert. Bei Flat Shading sind alle Vertex Normals exakt gleich ausgerichtet wie das Dreieck zu dem sie gehören, und die Beleuchtung ("Shading") ist über die gesamte Fläche des Dreiecks gleich. Bei Smooth Shading wird quasi ein Mittelwert aus den Vertex Normals aneinander angrenzender Dreiecke berechnet, was für sanfte Übergänge sorgt. Da alle Vertices zwischen zwei oder mehreren Dreiecken nun die gleiche Ausrichtung haben, können diese zu einem einzelnen kombiniert werden, das sich alle teilen. Ich hoffe, es wurde einigermaßen klar, was ich meine, es ist ein bisschen schwierig, sowas auf deutsch zu erklären, finde ich, da ich in solchen Zusammenhängen die englischen Begriffe gewohnt bin... hier ist aber eine ausführliche Erklärung auf englisch: https://www.scratchapixel.com/lesson...hading-normals

    Es ist aber nicht so wichtig, wie es genau funktioniert, wichtig ist dass der Unterschied zwischen Flat und Smooth Shading klar wird und die Rolle, die doppelte Vertices dabei spielen. In dem konkreten Fall hier gäbe es im Grunde zwei Möglichkeiten, das Problem zu lösen: In NifSkope und in Blender.

    NifSkope hat eine Funktion, mit der die Vertex Normals geglättet werden können, und eine andere, um danach doppelte Vertices zu entfernen (Beide können durch Rechtsklick auf eine NiTriShape unter "Mesh" gefunden werden: "Smooth Normals" und "Remove Duplicate Vertices"). Dabei kann eingestellt werden, bis zu welchem Winkel zwischen zwei Dreiecken man einen sanften Übergang möchte, voreingestellt sind 60°, was in der Regel ein ganz guter Wert ist. Bei zu niedrigen Werten könnten manche Übergänge nicht geglättet werden, die man gerne haben würde, bei zu hohen kann es wiederum zu Problemen mit der Beleuchtung kommen. Werte über 90° sind meistens nicht zu empfehlen, außer in bestimmten Fällen. Das Problem ist allerdings, dass NifSkope nicht alle Kanten korrekt glättet und damit nicht alle doppelten Vertices erwischt. Wenn man "Smooth Normals" anwendet und danach "Remove Duplicate Vertices" werden zwar je nach Mesh eine ganze Menge entfernt, aber wenn man beide Schritte (mit den selben Einstellungen) wiederholt, wird wieder eine (kleinere) Menge Vertices entfernt, und das müsste man im Grunde so lange machen, bis keine weiteren entfernten Vertices mehr gemeldet werden. Bei der Menge an NiTriShapes, die dein Modell hat, würde das wohl sehr lange dauern, also machen wir es besser bereits in Blender.

    Das ist bei so einem komplexen Mesh natürlich so eine Sache... aber ich würde es folgendermaßen machen.
    Zuerst alles zu einem Objekt verbinden, dann im Edit Mode alles markieren und "W" drücken, dann "Remove Doubles" auswählen. Dadurch werden die Normals zwischen ALLEN vertices geglättet und überflüssige Vertices entfernt, wodurch alle Kanten weiche Übergänge bekommen. Ohne Texturen wird das noch deutlicher sichtbar als mit, aber es ist nicht ideal, da es wie gesagt bei zu großen Winkeln nicht zu empfehlen ist.
    Also in den Object Mode wechseln und einen "Edge Split"-Modifier hinzufügen. Dieser macht im Grunde das gleiche wie "Smooth Normals" in NifSkope, nur umgekehrt: Anstatt die Vertex bis zu einem bestimmten Winkel zu glätten, werden alle Kanten über einem bestimmten Winkel wieder "geschärft". Dieser Winkel ist standardmäßig auf 30° eingestellt, aber du solltest selbst austesten, was für dieses Modell am besten ist... 60° könnte für manche Teile (Dächer zum Beispiel) ein bisschen viel sein, 45° wäre vielleicht ein guter Mittelweg. Wenn du damit zufrieden bist, wie die Kanten aussehen (also welche geglättet sind und welche nicht), muss der Modifier vermutlich angewandt werden (Apply), da das sonst nicht korrekt exportiert wird. Wenn du manche Kanten trotz niedrigerem Winkel nicht geglättet haben möchtest, aber den Winkel insgesamt nicht herunterstellen möchtest, kannst du diese noch manuell als "scharf" markieren. Dazu im Edit Mode die gewünschten Kanten (Edges) auswählen und Strg-E drücken, dann "Mark Sharp" auswählen. Wenn du angezeigt haben möchtest, welche Edges so markiert sind (etwa weil du sie wieder ändern möchtest), musst du im Edit Mode bei "Mesh Tools More" "Draw Sharp" aktivieren.
    Nachdem alle Kanten so sind, wie du sie haben möchtest und der Modifier angewandt wurde, das Modell exportieren. Da du es am Anfang zu einem Mesh verbunden hast, wird es beim Export natürlich wieder nach Materialien aufgeteilt. Aber wenn beim Export "Smoothen Inter-Object Seams" aktiv ist, werden sogar gegebenenfalls Kanten zwischen Polygonen mit verschiedenen Materialien geglättet, obwohl sie verschiedenen NiTriShapes angehören. Das exportierte Mesh sollte dann deutlich kleiner sein als zuvor, da es wie gesagt viel weniger Vertices enthält.

    Ok, ich hoffe mal, das war jetzt nicht zu kompliziert und verwirrend. Wenn du Probleme hast, einfach fragen.
    Pherim ist offline
  4. #24 Zitieren
    Knight Avatar von GenerationLost
    Registriert seit
    Apr 2009
    Ort
    Whereabouts Unknown
    Beiträge
    1.773
    Ich denke, die Theorie hab ich soweit schon verstanden, danke dafür!

    Zur Praxis habe ich mich an verschiedenen Schritten versucht, allesamt nur mit Blender.
    Das Problem, wenn ich alles zu einem Objekt zusammenfüge, ist, dass zuerst in Blender die verschiedenen Materialien auf ein einziges reduziert werden, sprich alles nimmt das zuletzt angewählte Material an. Nach dem Export habe ich dann ingame das gleiche Ergebnis, trotz eigentlich unterschiedlicher Materialien. Der Export hängt sich übrigens nicht komplett auf, wenn ich das Mesh als ganzes Objekt exportiere, es dauert nur eine Weile und reagiert deswegen nicht mehr, man muss also nur etwas Geduld haben. Nach dem Export jedenfalls, werden in Blender die unterschiedlichen Materialien wieder korrekt dargestellt, jedoch sind einige Polys plötzlich vermurkst, z.B. verschoben, geflippt, oder gestreckt.

    Was in meinem Fall also "sicherer" ist, ist nur die Stellen im Mesh zusammenzufügen, die geglättet werden sollen, also Natürliches wie Böden und manche Dächer, die mir zu uneben erscheinen.

    Jedenfalls habe ich auch alles nach deiner Beschreibung angewendet und ich merke den deutlichen Unterschied. Und wieder was dazu gelernt! Bei Gothic war das alles noch nicht nötig.

    Auf jeden Fall hat soweit alles geklappt, vielen Dank dafür!


    Jetzt gibt es zunächst nur noch ein Geheimnis zu ergründen. Wie sieht es mit Transparenzen aus? Ein paar Materialien wie z.B. die Palisade haben einen Alphakanal mit Transparenz, welche auch in Blender korrekt dargestellt wird (bei den Textureigenschaften "UseAlpha" aktiv), nur in Morrowind wird die Transparenz schwarz dargestellt...

    EDIT: Ich habe mir dazu mal den Netchbullen in NifSkope angesehen, da besteht die Bauchmasse ja aus einem halbtransparenten Material. Da ist unter der Texture ein Alpha von 0,76 gesetzt, die Textur selbst ist opak.
    Ich will jetzt aber nur den Teil der Textur transparent darstellen, der auch selbst transparent ist, nicht die ganze. Bei den Blättern der Bäume ist mir in NifSkope jetzt auch nichts bzgl. des Materials aufgefallen.
    GenerationLost ist offline Geändert von GenerationLost (14.09.2017 um 18:58 Uhr)
  5. #25 Zitieren
    Ehrengarde Avatar von Pherim
    Registriert seit
    Sep 2003
    Beiträge
    2.231
    Gut wenn es geklappt hat!

    Zitat Zitat von GenerationLost Beitrag anzeigen
    Jetzt gibt es zunächst nur noch ein Geheimnis zu ergründen. Wie sieht es mit Transparenzen aus? Ein paar Materialien wie z.B. die Palisade haben einen Alphakanal mit Transparenz, welche auch in Blender korrekt dargestellt wird (bei den Textureigenschaften "UseAlpha" aktiv), nur in Morrowind wird die Transparenz schwarz dargestellt...
    Also was immer geht ist im Nachhinein eine NiAlphaProperty in NifSkope an die entsprechende NiTriShape anzuhängen. Und so hab ich das bisher auch immer gemacht ehrlich gesagt. In Blender hab ich das noch gar nicht versucht, aber versuch mal im Material-Menü unter Render Pipeline "ZTransp" einzustellen und bei MapTo "Alpha". Das sind jedenfalls die deutlichsten Unterschiede, die ich zwischen Materialien mit und ohne Transparenz bei importierten Meshes finden konnte. Allerdings weiß ich nicht, wie man dann die Art der Transparenz bestimmt, also "Alpha Blending" (Teiltransparenz und sanfte Übergänge möglich, aber performance-intensiv und problematisch wenn sich mehrere transparente Flächen überlappen) und "Alpha Testing" (1bit-Alpha, also entweder komplett durchsichtige oder transparente Pixel). Bei den Palisaden gehe ich mal davon aus, dass Alpha Testing ausreichend ist. Füge also eine NiAlphaProperty zu der entsprechenden NiTriShape hinzu. Standardmäßig wird Alpha Blending aktiv sein, also sollten wir das ändern. Mit Rechtsklick auf die NiAlphaProperty das "Flags"-Menü öffnen. Dort den Haken bei "Alpha Blending" wegmachen und bei "Alpha Testing Setzen". Außerdem muss "Alpha Test Function" auf "Greater" gestellt werden und du musst einen "Threshold" eingeben, der bestimmt wie transparent ein Pixel in der Textur mindestens sein muss, um als komplett transparent dargestellt zu werden (Alpha Blending übernimmt logischerweise die Transparenzwerte aus der Textur selbst, aber wie gesagt, das ist nicht zu empfehlen, wenn es nicht wirklich nötig ist, dass etwas nur teilweise durchsichtig ist). Es gibt insgesamt 256 Transparenzwerte (0=Komplett Transparent, 255=Komplett durchsichtig), und wenn die Textur selbst da schon sehr klare Abgrenzungen hat (also keine oder kaum teilweise transparente Pixel) ist es relativ egal, was du eingibst und kannst einen Mittelwert wie 128 nehmen, aber da kannst du ja selbst ausprobieren, was am besten aussieht.
    Pherim ist offline
  6. #26 Zitieren
    Knight Avatar von GenerationLost
    Registriert seit
    Apr 2009
    Ort
    Whereabouts Unknown
    Beiträge
    1.773
    Alpha Testing Greater or Equal 255 liefert bei mir die besten Ergebnisse. Hab es eben ganz schnell mit NifSkope gemacht, werds aber morgen der Vollständigkeit halber auf jeden Fall auch mit Blender versuchen.

    Meinen besten Dank an dich, du hast mich bisher einen großen Schritt weitergebracht!
    GenerationLost ist offline
  7. #27 Zitieren
    Ehrengarde Avatar von Pherim
    Registriert seit
    Sep 2003
    Beiträge
    2.231
    Hm, "Greater or Equal" 255 macht die Kanten bei mir extrem "pixelig", wenn ich es bei verschiedenen Meshes einstelle, jedenfalls in NifSkope, mit niedrigeren Thresholds sind sie deutlich glatter... aber wie es dir am besten gefällt.
    Pherim ist offline
  8. #28 Zitieren
    Knight Avatar von GenerationLost
    Registriert seit
    Apr 2009
    Ort
    Whereabouts Unknown
    Beiträge
    1.773
    Hm, ja du hast recht. Auf den ersten Blick in NifSkope war es ganz okay, aber jetzt im ingame Test sehe ich es auch.
    Mit Blender klappt es übrigens, wie du gesagt hast, auch mit "ZTransp" und "MapTo Alpha". Dabei muss bei "Material" der Wert "Alpha" auf 0 gesetzt werden. Bei "MapTo" kann man dann mit dem "Var-Slider" generell die Opazität bestimmen, was aber nicht nötig ist, bei Texturen die bereits Transparenz enthalten. Bei dem "Netch-Jelly" z.B. wäre das aber, denke ich, sinnvoll.
    Bzgl. der Methode sieht es übrigens danach aus, dass Blender auch standardmäßig "Alpha Blending" verwendet.
    GenerationLost ist offline
  9. #29 Zitieren
    Abenteurer Avatar von Drachenspieler
    Registriert seit
    Oct 2016
    Ort
    München
    Beiträge
    55
    Guten Morgen. Ich habe Blender 2.79. Kann ich da auch ein Objekt in eine nif Datei exportieren und wenn ja WIE?
    Bitte um Hilfe. Gruß
    Drachenspieler ist offline
  10. #30 Zitieren
    Knight Avatar von GenerationLost
    Registriert seit
    Apr 2009
    Ort
    Whereabouts Unknown
    Beiträge
    1.773
    Zum Exportieren ins NIF-Format solltest du zu Blender 2.4x zurückgreifen, dafür gibt es noch Exportscripts.
    Diese findest du hier:

    http://niftools.sourceforge.net/wiki/Blender

    Da steht auch nochmal alles dabei, was du brauchst. Funktioniert mit Morrowind und Oblivion NIFs und auch vielen anderen.

    Der Link zu den NIF-Scripts aus dem Wiki verweist dich auf Version 2.6, dort einfach etwas nach unten scrollen und dir Version 2.5.9 holen.

    Damit kannst du dann unter Blender 2.4x dein Objekt auswählen und über "File->Export->NetImmerse/Gamebryo" NIFs exportieren. Dabei nicht vergessen das passende Spiel im Exporter auszuwählen.
    GenerationLost ist offline
  11. #31 Zitieren
    Ortega1302 ist offline
  12. #32 Zitieren
    Knight Avatar von GenerationLost
    Registriert seit
    Apr 2009
    Ort
    Whereabouts Unknown
    Beiträge
    1.773
    Hätte ich das mal früher gewusst. Sehr praktisch, danke dir!
    GenerationLost ist offline
Seite 2 von 2 « Erste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •