[2D] Objekte erscheinen im Spiel viel zu dunkel

Cheecat

Hausvetter
Also, ich hab etliche neue Statics für eine Höhle erstellt und in Spiel gebracht. Das Problem ist, sie sind schwarz, allerdings sieht man bei den durch die Normal Map erzeugten Strukturen die durch Lichter verursachten Glanzlichter. Lass ich die Normal Map weg, sind die Objekte völlig schwarz und reagieren weder auf das (wenn auch sehr minimale) Ambiente-Light, noch auf andere Lichtquellen.

Screen ingame bei weitreichendem Lichtzauber:


Vergleich dazu im CS mit eingeschaltetem Bright Light:


Im CS mit Beleuchtung durch eine Lichtquelle:


Die Textur ist eine veränderte Originaltextur, die ansonsten völlig korrekt angezeigt wird, und auch ingame normalerweise sehr hell ist. Eigentlich gehört diese nicht auf die Objekte, sondern ist dort nur testweise drauf, um auszuschließen, dass der Fehler in meiner Textur und/oder Normal Map liegt. Das Problem tritt also mit unterschiedlichen Texturen und Normal Maps auf.

Das Problem scheint irgendwo am Mesh zu liegen, aber ich wüsste nicht wo.

Screenshot eines der Objekte in Nifskope:


Andere Original-Objekte haben noch eine NiVertexColorProperty mit den Standardwerten. Lt. Nifskope kann die aber fehlen, dann nimmt Oblivion die Standardwerte.

Ansonsten ist dort noch NiBinaryExtraData vorhanden, bei mir aber nicht. Allerdings auf diesem Bild aus diesem Tutorial auch nicht zu sehen.

Hat jemand eine Ahnung woran das mit dieser schwarzen Farbe liegt, bzw. was der Fehler ist?
 
Ich meine das Problem liegt an den Mipmaps. Wir hatten hier vor kurzem einen Thread mit dem gleichen Problem. Hier ;)
 
Zuletzt bearbeitet:
Nein, die Mipmaps sind es nicht. Die Textur hat Mipmaps (und die eigentliche Textur für die Objekte auch) und wird auf einem umtexturierten Originalmesh korrekt angezeigt. Hab ich aber oben schon geschrieben.

Wie gesagt: diese weiße Textur hat nur einen neuen Namen bekommen (gestein.dds bzw. gestein_n.dds für die Normal Map) und wurde ohne Änderungen an der Textur selbst auf die Meshes neuen Meshes gelegt.

.Edit:
Zum Block niBinaryExtraData: ich hab jetzt herausgefunden, wie man den einfügt bzw. erzeugt und mit den richtigen Daten füllen lässt*. Scheint auch ein wichtiger Block zu sein. Allerdings behebt dessen Existenz das Problem nicht. Also heißt es weiter suchen.

*
Mesh> Update Tangent Space - Updates or creates a niBinaryExtraData block, attached to the selected shape. (selecting it will render the vert normals, useful for troubleshooting any bad normals you may have) This step is needed for any model also using a normal map. It provides the base of which the normal map will make its adjustments. Tangent space is a little beyond my ability to speak math well, sorry.
Quelle: hier

.Edit 2:
Also, inzwischen hab ich:
- als Texturpfad textures\dungeons\caves\cave08.dds genommen, das ist eine Originaltextur und die muss sich Oblivion aus der BSA holen, weil davon keine Kopie außerhalb existiert: immernoch schwarz mit Glanzlichtern
- NiVertexColorProperty hinzugefügt und auf die Werte aus einem Original Static gesetzt
- NiMaterialProperty gelöscht und neu erstellt. Testweise eine blaue Emissive Color ingestelle: ist sichtbar. Die testweise auf Rot eingestellte Specular Color nicht. Werte dann auf Ambient und Diffuse: weiß und Specular und Emissive: schwarz gestellt.
- Aus dem NiTriShape mit Mesh -> Strippify ein NiTriStrips gemacht.

alles ohne Erfolg

.Edit 3: Ich hab den Fehler gefunden!
Und zwar: ich hab in den Block Details von NiTriStripsData den Punkt Normals ausgeklappt und feststellen müssen, dass dort alle die Koordinaten X 0.0 Y 0.0 Z 0.0 hatten. Ein Rechtsklick auf NiTriStrips und dann Mesh -> Face Normals brachte das in Ordnung. Nun stehen bei Normals die korrekten Koordinaten dafür drin und im Spiel ist das Mesh nichts mehr schwarz.