Shader Rotator (Commercial)
V3Digitimes
Posts: 3,132
https://www.daz3d.com/shader-rotator
Shader Rotator is a tool allowing you to rotate any shader of your scene by 90, 180 or 270 degrees, in a single click. For any questions, feel free to post here, or directly via MP! Thank you!
Tips:
if a shader is using LIE, the scene must be saved before you launch the rotator. This forces Daz Studio to "preconvert" the LIE to a png image in the temp which can be rotated.
Shader Rotator main 00.jpg
1000 x 1300 - 670K
Shader Rotator popup 01.jpg
1300 x 1000 - 517K
Shader Rotator popup 04.jpg
1300 x 1000 - 628K
Post edited by V3Digitimes on
Comments
Just to be clear, this rotates all maps?
Yes, all the maps of the SELECTED surfaces, except ".tga" format which is not supported (I have hope to understand and patch this format one day, but it is rarely used).
And if you don't want to rotate all maps,the documentation shows you how do do that very easily.
Glad to see you continue with the new items.
Why is only 90, 180 or 270 degrees? I would like to see more freedom in using different angles.
If you want to be compatible with any existing shader (3Delight, Iray Uber, any shader mixer shader, any existing mapped shader etc, etc), then you have to limit to 90, 180, 270. It comes from the fact that new images are obtained using LIE rotations above original images (which are made transparent for layer 0), and that LIE rotations are limited to these angles. (Then images are saved as images and replace the LIE)
I've been developping for a while another product (for now called "Xtreme Reshade for Iray Uber"), which will be limited to Iray Uber and Iray Renders, BUT where you will have TONS of possibilities (not only unlimited rotations, but much more potential than you can imagine!). The drawbacks being that you cannot preview result in viewport (forced to be in render or NVIDIA IRay preview), and that of course (well I did not test but this is very likely) it will not be compatible with Filament. This should come this year. This will be shader specific and render engine specific.
On the contrary, this Shader Rotator is limited to multiples of 90 degrees rotations but completely compatible with any render engine and any (mapped) shader!
This looks extremely useful! Definitely be nabbing this when I get paid - thanks!
Thanks a lot for the explanation, V3Digitimes.
I have had no idea about such repercussions and how the other things will be affected in Daz Studio, just by choosing the other angles.
Looking forward to "Xtreme Reshade for Iray Uber", though.
@Artini: Welcome. Yes, for Xtreme Reshade, the scripts (to choose the best shader depending on the initial shader) and 7or 8 shaders are over (depending on metallicity, what type of SSS, etc, etc, it requires one different starting shader), but they must be beta tested, thumbs and doc must be made, and promos too... So I don't know how long it will take (depending on beta test too). Shader Rotator is really complementary to this, since it has absolutely no limitations (except in the angles, whereas Xtreme Reshade is "Iray Uber Base" shader and Iray Render limited) this is why I wanted two different projects.
@Thyranq: Thanks a lot! I hope you'll like it.
That is definitely something which should be mentioned on the product page.
From the current description I had assumed that was yet another nice utility for Iray users only. If it works for other engines too it's way more interesting.
@Leana : you're absolutely right, I should have mentioned this! I had thought about it as a good information when I made the product, but totally forgot it when I wrote the product description!
Edit: I confirm here, the rotation is independant of the shader or render engine used. The script looks what property is mapped, and when it is, rotates the maps, save them, reapply the rotated maps. The only constraints allow you to cover 99% of what's existing for Daz and are : 1. the shader must be mapped based (on the contrary of my "touch of dirt" product which is procedurally based), 2. the maps must be squared (or the rotation does not end well), 3. the images must not be ".tga" images. But you can have 3Delight shaders, custom shader mixer shaders, custom "whatever" shaders, it does not matter for the script. If a property is mapped on the selected surface, then the map is rotated :)
Apologies for going off topic, but since you're here:
I know it just came out, but is it possible to update your Wet And Tanned Skins Shader to include the new Genesis 8.1 model as a figure it can be applied to? Or, would you have to make a new shader for it?
Wet and Tanned for Genesis 8.1 will require a new shader. The UV set is not the same, the base shader is absolutely not the same. The whole principte has to be reviewed, an update will not be enough. The product is planned this year, but I prefer to wait to have more 8.1 characters to be sure that what I develop will be robust (will work on the largest number of 8.1 figures).
Thanks for the reply! Looks like I'll be sticking with Genesis 8 until that happens.
worked beautifully in my first test .. rotated mapps saved in folder I specified.
---
not certain exactly how you code this but
you have to have read the duf fie (in the case of the one I used the bump did not have a matching name so that means you got it out of the duf, right?)
your code must read and access
diff map.jpg, bump map.jpg
within your script can you also make a copy of the duf and rename it currentName_R90.duf
then find and replace all the diffmap.jpg with diifmap_R90.jpg etc for all the maps you rotated
save the r90.duf in the dsf folder the jps in the texture folder and the take the original duf icon rotate it 90 rename that png to currentName_R90.png
I did put the _R90 in the wrong place should be at end to maintain the placement
---
and I now have the new rotated shader as a duf file ready to access directly from the same location
---
-I can do it manually in that I just took the two rotated maps put them with the other jpgs .. opened the duf with notepad saved it has samename_R90.duf .. did the global changes on the maps and saved it and then opened the ping in photoshop, rotated in 90 and then saved it has sameName_R90.png
---
but I bet the computer oould do it a lot faster.
Hi, that's one of the questions I asked to myself when I began this, batch or not batch?
After thinking about it, I finally decided not to batch, for several reasons. 1. the usage. Most of the time, people will need it to turn one or two shaders in there scenes. So I supposed they would use it WHEN they needed it, and not prepare tons of shaders sets that they might not need. If they wanted to keep the rotated shader for a later use, they just had to make "file/save as/ shader preset", which also has the benefit to allow you to save only the properties you want (all, base color only, etc), and the rotation is visible on the thumb (even if less nice than a rendered thumb). Well my guess was that it was not useful to turn ALL the shaders you own "just in case". It's better to do it "when it is necessary", and this also because of point 2 coming just after. 2. the size on the computer. If people batch process all the shader sets, it doubles the amount of the image maps of shaders on the computer. And our hard drives are already well filled with all the content we have. 3. the limitation to shaders. I did not want the product to be limited to shaders. In many "non shader" products (props, environments), people use seamless maps on their surfaces. Those can be rotated to, and saved as shaders too. 4. The price. Creating a batch of this would have taken more time, resulting in a more expensive product for users. With the Covid (&economical) Crisis being here or not far, I did not want this. Somehow limits this to the essential and not the "luxury" part of it to maintain price as low as possible.
Well there might be other reasons that I forgot but these were the main reasons why I decided not to batch finally. The question is are you sure you have to batch all your shader sets, or don't you prefer to rotate a shader only when you need it?
Of course I can consider a batch system if there is enough requests for this, but I'm honestly not convinced that it is really useful in the real usage of shaders.
After further consideration, I have bought it, anyway.
There are not so much tools for changing the shaders, so I will try this solution.
Thank you! Don't worry Xtreme Reshade is not far in my "next projects" list, but in the meantime there are all the products updates for Genesis 8.1 which also must be implemented and which are going to eat my time...
That will be awesome, if you could update your products to support Genesis 8.1
Thanks for considering that.
You're welcome,
yes updating everything which can/needs to be is the goal. Most products can rely on an update. Only one or a few will require a complete new development (for instance "wet and tanned pbr skin")... 8.1 is going to keep me busy for a while.
Hi. Thanks for all your work. The rotator works fine with simple textures, but with complex textures, e.g. glossy silk patterns, I find that it doesn't handle glossy and topcoat maps right. Those maps are lost and the result is unfortunate glaring effects.
SOLVED: See below.
are those maps rotated in the final folder?
if not, can you tell me what are the formats of the maps? (jpg, png? other formats?). We tested a huge amount of shaders and never saw any issue except the tga not being converted. If it is another issue, I will see how to solve this and submit an update. Can you tell me the exact name of the product for which is does not work?
One more thing, if I remember well you have to save your scene before you apply the shader rotator if the shader is using LIE, because if some maps are LIE this is the only way to have them seen as the png in the tmp before rotation can be applied.
Since I don't know if I'll have an answer concerning the product in cause, if anyone has a similar trouble (our any trouble), please PM me the name of the product so that I can see if the answer can be found in a simple advice, or if it requires an update for a very specific case of figure. I'm confident.
The shader in question was one of Atenais' Snake Prints from Rendo store. She seems to use all .pngs for her texture files. Not a LIE. I have a few of her texture collections. I didn't save anything to a folder. I was just trying out the Rotator on a pair of pants with the Atenais texture patern 'SNKT011 that I applied. If you need any other specific info, let me know.
https://www.renderosity.com/rr/mod/bcs/daz-iray---snake-prints/137596/
I'm gonna buy it to see what is wrong with it. Can you PM me the exact link to the product, because I saw several ones (and I want to make sure to buy the right product).
I edited my post with the link. If not there it's Rendo product #137596. Sorry you have to buy it.
I just tested and it rotates perfectly well for me. I make a video so that we can be sure we speak about the same shader. Wait a few minutes for the Youtube download.
Here is the link: https://youtu.be/6NTbqz-hLFg
Do we speak about the same shader?
Can you try the same settings as I do in my video (even if I tested several settings each time it works)?
edit: by "same settings" I mean you are not forced to use the same path as I do, as long as you choose an existing destination path using the top button.
Let me know if you are sill having the issue after using the same interface settings as the ones used in my video.
A picture of what happened to me is attached.
It's perhaps that I only did the rotation with the pants on the figure and didn't save the new file. This seemed logical to me because I didn't want/need a permanent file for the new map and only wanted the effect for the particular image I was working on, so the resulting glossy and topcoat imput went blank.. I repeated it again with the same result. Then I tried your way with saving to a folder and it worked fine. I interpreted the directions on the script page as optional, and that was incorrect. Now I'm very sorry for your trouble.
OK, I understand. Maybe I should have been more clear that the creation of a destination folder was obligatory (at least a temporary destination folder if you want to keep a light hard drive). I think it's in the documentation, but today nobody reads documentations.
I was astonished that someone found a not working shader because tons of shaders were tested. So, at the end, I'm happy to see that it was not a script issue, it was just that you don't want to obey a machine (and this is good somehow).
But I understand, my hard drives were full too when I created this product. What you have to do when you don't want a permanent file, for just a "one shot render" is to do exactly what I did in my video (the name of my folder "VARIOUS TESTS A JETER" means "VARIOUS TESTS TO DELETE"). You create a folder on your hard drive, and you set the path to this folder. You rotate, you render, and when you don't need the texture any more, you delete the folder (after you close DS). But then, for the scene file, the images will not be found any more. In this case, you can eventually reload your initial shader so that you don't open a scene with missing images messages.
So let's see the two positive points. Your problem is solved :) I have a new shader set :). Can you indicate in the first post you made "Solved", so that people read the following posts if they have the same issue? Thank you!!!
Thanks, again. Yes, at my age I tend to just glance at and not read instructions that much anymore. Looking forward to all the great Daz products you will no doubt have in the future. As for obeying machines, I know computers are stupid (garbage in, garbage out), but if you don't do exactly what they expect, then you can get messed up. And I messed up.