Where to change the "Default" material... To my defaults
The default material is bugging the hell out of me. I don't NEED to setup materials for everything I am trying to play with, nor do I want to HAVE TO... Just to get it to look semi-normal.
The defaults that DAZ has, are horrible for anything.
Model-type (Plastic)
100% Diffuse (Pure white)
100% Glossy (Redundant to diffusing) {0% reflection (Seriously, non-reflective gloss with 100% diffuse... = elmers-glue)}
100% Specular (Pure mid-grey)
Smooth (on) {Okay, I get that...)
89.90-deg Smooth-Angle (Seriously, not 90? or 89.99) {More than 45 is unnatural, especially for non-human structures}
So... How do I change these values. I could not find the file in the "My library" area and I am not seeing a setting to "Edit defaults", or "Save as defaults".
I found a file in "Runtime/Shader Presets/DS Defaults"... The file for "Default" points to "Default"...
The file for "Plastic", the default one it uses... has reference to paths that don't exist in "Runtime", or in "Program Files"...
"material_library" : [
{
"id" : "Default",
"extra" : [
{
"type" : "studio/material/daz_shader",
"definition" : "support/DAZ/shaderDefinitions/surface/dzplasticDef.dsa"
Adding that a "Windows file Search" for the file "dzplasticDef.dsa" turns-up no matches to any file... on any of my drives... or within any Zip-files (Zip-folders as windows sees them.)
Is this another folder with stuff that points to nothing? (This is another example of why paths should never be hard-coded into files. Daz should know where it's own supporting files are, or be able to identify them if NOT where expected. However, this one just doesn't exist anywhere, at all. I doubt the other file-paths and files within the files here, in this folder, exist either. Might explain the odd default settings, but I doubt that.)
Comments
About the only way I know of would be to manually edit the shader definition files...and then, they'd be overwritten every update, unless steps are taken to preserve the edited versions.
And the definitions files are in the Studio executable location (Program Files or Program Files (x86) depending on whether you have 32 or 64 bit Studio installed), so it is likely NOT to be a Studio problem/fault you can't find them on a Windows search...most likely, since those are 'protected' locations Windows IS NOT letting search those folders.
Something along these lines...
Program Files (x86)\DAZ 3D\DAZStudio4\scripts\support\DAZ\shaderDefinitions\surface
for a path.
I can live with that... I can lock the files from updates...
But I am not finding any shader files listed here... they just don't exist... The files, the paths... all non-existent. One file points to another, which points to ???? missing files.
"Studio", that is the old DAZ file core... right... so these files have been "missing" since Daz 2.x
You can't, as far as I know, chenge the defaults - what you can do is set one surface as you want it and save as a Shader Preset, then if you right-click on the Shader Preset in the content pane you can Create Custom Action, which will add it to the Scripts menu for quick access. On loading/creating an untextured item apply that shader from the Scripts menu, holding down cmd(Mac)/ctrl(Win) and in the option dialogue that opens set Surfaces to All so you don't have to fiddle selecting all of the surfaces in the Surface pane.
Richard, the defaults are defined in the Def file...so editing the values there will change them, for everything.
Done it enough on self created shaders...
Thanks rich... another ten step workaround... xD
I am trying to avoid all of this... kind-of the purpose of defaults... to default to something desired... by the user, or provided when the user has no idea what defaults they want.
Found the file "dzplasticDEF.dsa"... Has nothing of use inside, the actual materials do but not that one, which is the "deafult" all objects load with... Found it where you said... but in "Program Files" (The 64-bit version)
The value in the files are NOT what is loaded into the default values... Not on my machine.
oProperty = addColorProperty( sPropertyGroup, "Diffuse Color", "Diffuse Color", "Cs", new Color( 180, 180, 180 ), undefined, true, false, "DiffuseColorMap", undefined );
Diffuse on default is 255.255.255... so this isn't being loaded.
oProperty = addColorProperty( sPropertyGroup, "Specular Color", "Specular Color", "SpecularColor", new Color( 255, 255, 255 ), undefined, true, false, "SpecularColorMap", undefined );
Specular is 153.153.153... Same file, same setup... same values not being loaded...
The rest are all specific "materials", not the "default" material... (Surface)
The values in there, seem more realistic than what I see on "Default Surface"...
I have to look into this further, both suggestions... But I was trying to avoid having to do this to every surface on every imported object that has no actual "Material" setup yet, just to render it as something other than grey elmers-glue.
Tracing exactly WHICH of the def files needs to be edited...not very much fun.
It is doable, but when I've done it, with self created shaders, it was pretty easy because file A-B-C definitely correspond to files a-b-c and no having to hunt down several.
If you are importing items, then it is probably easier to create a customized preset, like Richard was talking about and apply that before saving/rendering the imported item.
As I said, hold downcmd/ctrl and you will need to do nothing more than select the item - to be precise
1. Select item
2. Scripts>My Default Material (or whatever you called it) with the cmd/ctrl key held down.
3. Click Seelcted next to Surfaces in the dialogue
4. Select All from the pop-up list
5. Click Accept.
Adding that these values in "Default" are part of the "Lighting model", of the default texture, which limits or expands the properties for the various material settings.
- Plastic
- Metal
- Skin
- Glossy (Plastic)
- Matte
- Glossy (Metallic)
The numbers are the same, no matter which one is selected... so something in DAZ is failing. It is defaulting to "Null" or "Undefined", which seems to be "Hard coded", or not coded at all... But it is not actually loading anything that changes any values when you select any of the "Lighting models". It just takes some settings away or adds some new ones, in some cases... But it should be changing the values too, where no settings are added or removed, to simulate the "surface selected".
I am quite sure that "Glossy plastic" and "Plastic" would not have the same preset default values. Namely "Gloss 100%" on both of them.
Guess this is a technical bug that needs resolution before anything could possibly work. Since it is failing to load its own values, it can't load ours, if they existed anywhere.
Which is odd, because for nondefault shaders it does work as expected...
The Lighting Model is not meant to change values - it is swapping in different specular and SSS code (strictly, I believe, it is switching to a different shader - the code for each of which used to be included with the scripting kit, with stand-alone compiled shaders available as freebies - but the diffrences, as far as I am aware, are limited to the specular and SSS areas; the cartoon mode render setting also swaps the shader code out for a toon version, which is why the switch affects only the Default DAZ Shader). The lighting model used not to change the available parameters, that is a recent development.
Because those files and data actually exists... and are linked correctly. I am going to try editing the paths after work... so they point directly to THAT folder... see if they suddenly start working... if they do, I will just return the path to the way it was, and duplicate the file I want, making the path it THINKS it is in, and my file should be safe.. it can't delete what it doesn't know exists... even if it is its own file that should exist, but doesn't.
I don't really care about the default that gets loaded, when something is freshly imported (if it doesn't have anything assigned...sometimes the mtl file DOES work), because it isn't going to last all that long, anyway. But if it is actually defaulting to something other than the defaults in the def files, that could explain some oddities when working with new shader files.
Now, if it isn't loading the default values from the def files, the only place it will be pulling them from is the actual, hard coded default values in the compiled shader file (the sdl file...), which, since the only version for the default shaders is the compiled file, would mean that it is NOT changeable.
So... it changes something that has no actual representation... Got that... (Makes no sense, as it should be changing the "gloss". So, non-glossy plastic is just not actually glossy when you have 100% gloss, and glossy is actually glossy or 200% glossy?)
Doesn't help with the actual "default material"... Which, I assume then, that the "Lighting model" value will also be changed by the material, once one exists... other than the non-existant default.
It said plastic, and that was the "default"... So the default "material", which should be setting-up the lighting-mode, should be plastic too, and it is not. I just pointed-out that the values for "Plastic" are not here... The values for "glossy plastic", should be loading with the lighting-mode, and metalic... as there is no other way to select "Materials".
This happens with textured things too.. they all load with these horrible values, but with textures added. Why plastic is a default for a program designed around "human models", I will never know, but that explains the horrible plastic look of all the old models.
I have a shiny quarter, (100% gloss), for anyone who can figure-out how to make it so the "Default" surface/material can be setup to "My desired defaults", without having to click anything. Just load-up the model, and they are "defaulted" to your defaults, as expected.
Glossiness is a setting that cotnrols the size of the highlights, Specular Strength controls how strong/opaque they are, Lighting model changes (among other things) how they interact with the Diffuse colour and how their intensity falls off. "Plastic", "Metallic" etc. do not limit the values that can be assigned.
Why don't you save a copy of your model with the surfaces as you want them? Save as a Scene Subset and then it can be merged into any scene.
Like I said, if it isn't picking the default values it loads from the def files, it is using the default values in the compiled shader file (the sdl), which cannot be changed.
A material preset, shader preset and saved materials on an asset file (prop/figure)...completely setup materials, supercede the default 'unset' values anyway, so once everything is set up and properly saved it shouldn't matter any longer.
I think you will find that setting is hard coded into the import setup.
If making primitives counts as importing...because the same settings are used on the primitives, too.
Seriously, I don't know if the primitives are procedurally generated or count as imports.
But in any case, if it isn't pulling the default values from a def file, it is hard coded somewhere...doesn't really matter where, does it?
I hate admitting defeat... (Insert childish pouting and crying here)
Thanks everyone... again... again...
Looking into Rich's idea about importing, and the other idea about exporting or saving as Daz stuff... (I know that will work, but it is a constant REDO process, while editing in external programs.)
If it, for some reason, saves this extra info for the MTL, I may be able to write a quick program to slap "My defaults", to the MTL files before importing. That isn't much of a bother, as I can have it auto-append to every file in a folder. At-least it will only be a one-step process.
This is just ONE of the objects I am using... (Still playing with geometry and detail, but, test-rendering in Daz, to ensure things are seen correctly.)
Ship: Old war frigate, updated and converted into a mini cruise-ship, for private use. Loosely based off the "USS. Constitution ship.", but bigger... The ungifted bigger brother, intended to be sold to the British navy, but pirates stole it. (There is an irony within the story, the novel.)
https://en.wikipedia.org/wiki/USS_Constitution
Areas: Sun-Deck, Top-deck, Mid-deck, Main-deck, Lower-deck, Storage-Deck, Keel
The Sun-deck is where the life-boats are. The Top-deck contains about 20 rooms, laundry-room, medical bay and the control-tower. The mid-deck contains about 40 rooms, the pool, the hot-tub, showers, bathrooms, cafeteria. The main deck is on the mid-deck, but it is the central component with two shops, 17 tables, 50 bench-seats, 6 trash-cans, 6 look-out glasses, 4 power-blocks. The lower deck contains another 30 rooms, the cafe, the casino, the lounge, the strip-club, the movie theater (which is under the sun-deck at the nose of the boat.) the back-stage, the film-room, a private lounge. The storage deck contains the upper engine-area, crews quarters, various storage locations. The keel contains the lower engine area and more storage and ballasts.
Not including any of the rooms contents, which are now being broken-up into isolated scenes, as well as the inner floors. (Obviously not seen, but built within the ship to ensure reality of them "fitting into real space".) Everything in there, except the outline of the blue person, is all original. The blue person is the sketchup-person that comes with the default empty scene. She, however, will not be part of my visual-novel game. She is just there for scale, while I rig the cameras and lighting.
It is for a visual novel. You traverse the locations as pre-set camera angles, within the story. Sort-of free-roaming, but limited by the story-line. Not an actual 3D place to walk around though. I may upgrade it to VRML panoramic views, to save some storage space and work-flow. Plus, it's a little cooler to be able to spin the view around 360, or have the camera turn to look at aomeone arriving from off-camera.
All with default plastic, 100% gloss, 100% diffuse white, 100% specular grey, 0% reflection. xD
My settings are more like this... 94% diffuse (whatever the object color is), 15% glossy, 6% specular white, 2% reflection white.
I did find a way to group them so I can bang-out the initial slider settings for the whole thing as one solid object, but that is annoying to have to keep doing, for a test-render.
This is what I get trying to do 100 things at once, alone... I need more arms and heads and computers and time!
Attached is a tiny fraction of the things I am fighting with, at the moment. (The ship, The pool area mid-deck, assorted junk, transparent view.)