Imported OBJ seems to be ignoring some maps when shaders are applied
I found a model I liked on SketchFab that was in OBJ format, and after some googling came across this tutorial for defining surfaces using the Geometry Editor tool within Daz Studio, which I figured would be easier than learning how to use Blender or another program.
Anyway, once I'd set up the surfaces, applied various shaders, and did a render, I discovered that some of the maps seem to be being ignored. Specifically the bump, normal and emissive maps aren't working seemingly at all, and I think it's also ignoring top coats - possibly other aspects of the shaders aren't working as intended either but it's difficult to tell.
All I can think is that it might possibly be an issue with the UV's of the original model which is somewhat beyond my ability to address at this point. As it stands I can't get the render looking as good as I want it to because it's ignoring those maps. I figured I'd post here in case anyone could provide a fix, or at least point me in the direction of what needs to be done to get it working properly - as I say, the only thing that comes to mind is the UV's not being as they should, but I'm fairly inexperienced in 3D work outside of Daz Studio so there may be something I'm missing.
Appreciative of any help anyone can give!
Comments
After loading the maps, did you set the slider beside them to 1.0? And for the emissive map, did you increase the lumens high enough, to something like 10,000?
Yeah, the maps are all set to 1.0 or greater and the emissive is set high enough. They're just not showing up in the render for some reason.
I always do my UV-ing in Blender, so if it's still an issue, that's what I'd recommend.
The UV is all I can think might be wrong, but it's not something I've ever set up before so I wouldn't know where to start. Seems like that might be the culprit, I was holding out hope that there might be an easier fix though :/
Well, you could always post a screenshot of the object's UV layout from within Daz Studio here, and we could take a look at it. Without pictures, there's only so much we can diagnose.
Out of curiosity, what base shader is applied to the surfaces that are being ignored? Go to the Surfaces pane, select that surface, and see what's listed at the top: "Shader: ____". If you're rendering in Iray, that will almost always say "Iray Uber", aside from a few PAs who make completely custom shaders. For 3Delight, there are more different options you're likely to see, and I'm very inexperienced with 3DL and can't give you much guidance there. If you're applying a shader preset, it might not apply the actual shader, so if the 3DL base shader was applied on import, the shader preset may plug the maps into more or less the right places, but it won't switch it to Iray.
Maybe instead of linking the tutorial, just link the thing from sketchfab and show your surfaces set up andwith the texture maps added...
Do you really have to "set up surfaces"? Seems like youre adding a random step here for no reason. It shouldnt be a whole pipeline to add a simple obj to your scene from sketchfab. should take like 1 minute.
well also hard to tell from our end without a pic...
Yeah or you screwed up the surfaces in your first step of "setting up surfaces". For it to work in sketchfab, it should have appropriate UV's, otherwise how else is Sketchfab be rendering it?
All the shaders are Iray Uber. And yeah, rendering in Iray, forgot to mention that but I assumed it was the default these days.
There's no need to be rude about it. If you've imported models before, you'd know that typically importing an OBJ gives only one surface of the entire model called "default" which is obviously not useful if it's something you want to have more than one texture. Only if it's something very simple that would be entirely one material does this work. As the tutorial says, you can use the Geometry Editor tool to select and assign various polys of the model to their own surfaces, which is what I did. Another forum thread suggested that sometimes OBJ's have surfaces set up already and you have to enable them in the Tool Options pane, but this wasn't the case with this particular model.
I don't know if it's allowed to link to the model anyway because although it's not exactly explicit, it's marked as NSFW on Sketchfab. Will delete the link if it's not permitted: https://sketchfab.com/3d-models/mechdragon-v1-b1b88e3222d14097862d29e8524ce626
The surfaces are not set up in any unusual or different way to countless other pictures I've rendered with no issue, and I can't exactly make screenshots of 40+ different sets of parameters. I've attached a render of the model which as you can see is not showing bump/normal on any surface (when almost all of them should have one or the other if not both), and only the surfaces that are purely emissive (i.e. do not have an emissive texture map) are working. Surfaces with top coat are also not rendering as they should. I also screenshotted the parameters of a couple of the surfaces but they're all basically set up in the same way, just standard Iray Uber shaders, nothing out of the ordinary.
The model doesn't come with any textures, nor is it shown with any textures in the Sketchfab render. I didn't do anything TO the surfaces, I just selected the appropriate regions of the model with the Geometry Editor and assigned them to different surfaces so I was able to use more than one texture/shader on the entire model. Unless that somehow breaks things, which seems unlikely, I can't see how that would have affected anything.
After going digging to find how to view this, it seems like the model doesn't HAVE a UV layout. Looking at it in UV View just gives a blank white square, and with it being an OBJ there's no other nodes I can select. If this is why the shaders aren't working, I guess I'm going to have to either give up on this project or try and figure out how to do UV mapping in Blender or something.
I don't think it would explain ALL the problems you're having. Emission, for example, shouldn't be dependent on UV mapping.
I wouldnt have made such an irrelevant suggestion if i had laid eyes on the model you were actually referring to. you mentioned "maps" in your original post so i just assumed the model came with texture maps (as most do). sue me.
That model definitely does not have a UV. (In Sketchfab, you can view UVs in model inspector - attached)
Your emissions work in your screenshot... but yes, your textures wont work because there is no UV. You can quickly make a UV by going to Blender and just smart-projecting a UV.
takes like 1 minute but wont be pretty.
Then you can export that as an obj, then in Daz studio you can load the obj as a UV onto your model (which you already split surfaces for so you dont have to repeat that step). Then in surfaces, select the new UV you just loaded
Now we're getting somewhere :) I'm really not familiar with Sketchfab or indeed most 3D work outside of Daz Studio and I realise I have a lot to learn, it's just frustrating when everything seems right but there's something outside my knowledge that isn't working.
I'll see if I can find a tutorial on smart projecting a UV in Blender, it's not something I've ever had to do before so I'm not familiar with the method - getting some hits on google for that at least. I also have no idea how to load an OBJ as a UV on the model in Daz Studio and I'm having less luck googling that - can you point me in the right direction for how to do that?
I just wanted to try something a bit outside of the usual, see if I could turn a plain model into something cool-looking with all the different shaders I have in DS. Honestly if I'd known it was going to be so much hassle I probably would have just done a "normal" render, but maybe this will eventually come out looking cool :P
you can spend a long time on UV mapping. The quick/dirty approach would be
In Daz, you can load UV by selecting your item in scene and then Load UV Set from the hamburger menu (attached)
Maybe worth mentioning, this approach to UV mapping will probably mean shaders will look like crap (because it could cause the seams to become very noticeable, depending how the UV gets projected)
I tried that out, followed the steps exactly, and Daz Studio threw an error saying "The UV map selected was invalid".
Suspect I'm going to have to give up on this project for now, I have no idea what I've done wrong and if it's going to look crap anyway with the smart UV then it might not be worth persevering with.
Appreciate the advice though, maybe I'll come back to it another time.
If you go to the Sketchfab page and click "More Model Information", it clearly says it has no UV layers, so . . . caveat emptor.
That model is probably meant for 3D printing, in which case the end user would paint the colors on.
That said, UV mapping in Blender isn't that hard, once you know your way around the UI.
You basically ctrl-click to select a line of vertices/edges, hit "U", and then "Mark Seam". A red line will appear to show the seam you made. Keep doing that until your model is fully marked out. Then hit "A" to select everything, hit "U", and then "Unwrap".
This is the best (free) tutorial for Blender newbies I've come across:
Blender 2.8 for Beginners - Making a 3D Lightsaber - User Interface (1/5) - YouTube