Crash180 Posted yesterday at 05:28 AM Share Posted yesterday at 05:28 AM I understand this is a pathing issue where Blender can't find the materials but I have noticed from importing a variety of nif's that the texture and material paths vary. The ones that import with visible textures use a relative path while the ones that appear black use an absolute path. Also in Nifskope the visible ones have a BSShaderTextureSet which is absent from the black ones. I tried recreating this path and placing the necessary materials and textures there but it did not work. So I have a couple questions. Is there a way to make the absolute path work like I tried? Each layer of the imported models have their own .mat file. If I link the associated .dds file under Base Color->Image Texture in the materials properties it all looks good. Is this a working solution or a problem waiting to happen? Link to comment Share on other sites More sharing options...
RoNin1971 Posted 20 hours ago Share Posted 20 hours ago I bet you are using pynifly. As nice as it is to have, it comes with flaws & a stubborn author. 1. It only looks at the texture set, ignoring the material. 2. it expects the textures\blah\blah.dds files to be relative to the path of the mesh, truncated at .\Data\ 3. it does not check if the texture is actually there, nor does it use the path set for textures in blender. Note: Only opaque textures turn black, anything with transparency turn completely invisible. I reported all of this long ago and told author the textures fail frequently, especially as I keep my own nifs separate while working on them, but still use vanilla materials & textures. But that's where textures should/must be according to the author. Afaik, a full path doesn't work any better. It cuts everything before & up to the \Data\ and replaces it with the one from the mesh. The game-engine does a similar thing. (Some vanilla nifs contain full paths and they still work, although the path does not exist) Re-linking the right dds files is a "working solution" within blender, BUT keep in mind that although the materials are not used/displayed it does store them on import and re-adds them on export. Changing the texture this way will be a "problem waiting to happen" as you will get to see the textures from the material everywhere, instead of the one you added to the texture set. I usually import a nif after making sure a material is present, preferably, and a texture set to correspond with it (mandatory). (which both is not always the case) In case of sets, I now put them inside my exported data folder (on a separate drive, not under fallout install) I import one. Make sure the textures are ok and rename the .mat to match the texture name. Then import the rest and set the texture .mats to the same ones. So they all use the same .mat for the same texture. Saves a lot of copies & clutter. Change one and you change all. Otherwise you'll have a truckload of *.mat.001 to *.mat.999. Sometimes (especially on individual nifs) I just replace the material node for a correct one using Nifskope afterwards. Keep in mind that nifskope, CK & the game will all ignore any textureset unless no material is set. This is the 'reverse' of what you get in Blender! Edit: BTW do not copy/paste but create duplicates. When you copy a mesh blender will also copy the material & texture. Leaving you with long lists of copies. When using duplicate, it uses the same as original. Saving you from the clutter. Link to comment Share on other sites More sharing options...
Crash180 Posted 1 hour ago Author Share Posted 1 hour ago The internet told me the black textures were from missing links hence my "working solution". I would open the Nif, identify the BGSM file, open that, see what texture it was using and then relink that in Blender. I wasn't sure about this as a solution so I decided to ask. The one model I did do this way looked good in game so maybe I was lucky. I am currently working only with vanilla items and I can find the materials and texture sets for the meshes in their appropriate place under /Data in the files I extracted. So while I think I understand the workflow you described I still don't understand how to get the textures to show in Blender. If the source Nif looks good, the materials and texture sets are accounted for and where Pynifly thinks they should be then it should work.? That's why I thought the absolute path was causing the problem because it was looking in a place where the files did not exist. Kind of like Nifskope showing pink textures when it can't find them. Also in Blender all the visible textures have a .dds file in the materials property palette for each component layer while the black textures lacked a .dds file. This is where my logic is stuck at. Feel free to knock it loose. Looks like I did do a copy/paste once instead of a dupe but easily fixable. Thanks for that tip. Link to comment Share on other sites More sharing options...
Recommended Posts