@musashidan Regarding the bevel shader, it's pretty tight on the model itself. If I wanted exaggerated super soft edges how far can the bevel shader go on a complex piece of geo? Also thanks for your youtube series on going from max>blender its quite helpful.
@tynew yes, I wanted this model with more realistic, sharper bevels for portfolio renders. The bevel shader roundness can be pushed as far as a regular sub-d bake.
I want to move over to blender since I have no real reason to stick with maya anymore. Your experiment here is really convincing me to give it a go. My only concern is that I need to do animations sometimes too.
Maya is really good at animations but I can say that blender is really nice at it too. Using it for all my needs and as musashidan said: if there is really something you are missing there is probably an addon available for this. So I can absolutely recommend Blender in terms of animation
Faces that have normals facing the correct way get screwed up on import to UE4. What is going on?
I don't work with U4 but recall I had problems with using "mirror global" and local commands in Blender 2.5 . Mirrored object looks just fine in Blender but export goes always with flipped normals. Other 3d soft do it too sometimes.
So a good habit is to mirror anything on sub-object/mesh level.
Is it possible to call the knife tool via python? I'm using the default line from the docs (bpy.ops.mesh.knife_tool(use_occlude_geometry=True, only_selected=False, wait_for_input=True)) without any luck.
I'm reading that it's not possible to edit the mesh using it, but I'm not looking to edit the mesh - can I simply call the tool somehow?
@Justo Lot of these are context sensitive in blender so you can't call them from the python interpreter but can only call them when 3d view is active.
The following works for me: I put it in a pie menu and run the following commands. bpy.ops.mesh.knife_tool("INVOKE_DEFAULT") for legacy knife tool "INVOKE_DEFAULT" is default i think for blender operation calling, hence the name I think it might even work just as bpy.ops.mesh.knife_tool() but im not sure
bpy.ops.wm.tool_set_by_id(name='builtin.knife') for fancy 2.8 left mouse button tool
Well that's...interesting. Using the "INVOKE_DEFAULT" made the script work. All I'm doing is that if I have a mesh selected in object mode, switch it to edit mode and call the tool. It's...frustrating thinking how I could know about this one, since in the same docs there are only three parameters displayed and yours isn't there. In any case, thanks for the help M00k
but can only call them when 3d view is active.
Right, that's what I was reading on that other page. The term 3D view refers to whenever the viewport window is active, right?
@Justo the 3D viewport is what blender refers to as "3D View". I am just stressing it this way because I am fairly sure that in some documentation parts every single window is a viewport.
@wilson66 I am not sure blender has something quite the same. My first instinct would be to look into the Shrinkwrap modifier.
Thanks, I will look into it. Doesn't seem like Blender can do the exact same though unfortunately.
Different question: is it somehow possible to model symmetrically in Blender? Meaning, if I e.g. insert an edge using the knife tool on one side of the object, it will automatically insert an edge on the other side?
I can of course delete one half of the object, apply a mirror modifier, and it will be mirrored to the other side. Thats not what I'm talking about though. What if I can't delete half the object, if the entire object needs to stay as is because the UV layout of the object needs to stay the same?
Has Blender added proper pinch functionality into the latest release? Something like in 3DS where it applies the loops to the selected edges and you can change the quantity of loops and pinch factor along multiple edges at the same time. It really is much quicker than the edge-offset method you currently have to use in Blender.
@MmAaXx , @another caveman : FWIW I was just recently wondering about the very same thing (wouldn't it be cool if there was a way to preserve/set all normals as custom at the time of splitting !) ; but then found out that there is a very good alternative available.
Basically all the functionality of the Data Transfer modifier is available as a one-click operator (searchbox for "transfer" and it's there). Meaning that there is no need to apply the modifier to multiple objects > manually selecting the source model to each > and manually applying the modifier. All that can be combined into one operation : select all the target objects first > select the source object last > run the operator. Of course it's not quite the same as splitting without affect normals in the first place but still achieves the same restult, and fast.
If anything I'd say that it is probably *more* usueful than an hypothetical advanced splitting operation without affecting normals, as it allows to edit things very smoothly after the fact - and editing normals after the fact is usually the one annoying bottleneck.
Although it only works for transforming existing vertices and not for adding new ones
Thats what I need though. Add geometry symmetrically. And I think that any good modeling software should be able to do that, suprised Blender can't do it. I am aware, obviously, that Blender can move vertices around symmetrically.
I will look into the Textools addon, thanks. Doesn't seem to work with 2.8...
Although it only works for transforming existing vertices and not for adding new ones
Thats what I need though. Add geometry symmetrically. And I think that any good modeling software should be able to do that, suprised Blender can't do it. I am aware, obviously, that Blender can move vertices around symmetrically.
I will look into the Textools addon, thanks. Doesn't seem to work with 2.8...
This is incorrect the mirror modifier works live and can be viewed while working.
Although it only works for transforming existing vertices and not for adding new ones
Thats what I need though. Add geometry symmetrically. And I think that any good modeling software should be able to do that, suprised Blender can't do it. I am aware, obviously, that Blender can move vertices around symmetrically.
I will look into the Textools addon, thanks. Doesn't seem to work with 2.8...
This is incorrect the mirror modifier works live and can be viewed while working.
Granted it isn't like Maya's symmetry but rather 3DS Max's
If I understood correclty, he is looking for a solution that keeps unique UVs while working symetrically.
@zachagreg@Prime8 He is looking for a way to do symmetric operations on a non-symmetric mesh.
@wilson66 In my experience Sculpt mode can do that, but there is no way to do that in mesh editing currently.
Granted, this could be included for projection-based operators, that do not work directly on existing vertices, but base Blender can't do that as far as I know.
@MmAaXx , @another caveman : FWIW I was just recently wondering about the very same thing (wouldn't it be cool if there was a way to preserve/set all normals as custom at the time of splitting !) ; but then found out that there is a very good alternative available.
Basically all the functionality of the Data Transfer modifier is available as a one-click operator (searchbox for "transfer" and it's there). Meaning that there is no need to apply the modifier to multiple objects > manually selecting the source model to each > and manually applying the modifier. All that can be combined into one operation : select all the target objects first > select the source object last > run the operator. Of course it's not quite the same as splitting without affect normals in the first place but still achieves the same restult, and fast.
If anything I'd say that it is probably *more* usueful than an hypothetical advanced splitting operation without affecting normals, as it allows to edit things very smoothly after the fact - and editing normals after the fact is usually the one annoying bottleneck.
Is there some way to define a procedurally generated weight map for the displace modifier?
I can use a vertex group to define which vertices the displace modifier actually affects. It either affects a vertex in that group with 100%, or it doesn't effect it at all if the vertex isn't in the group.
But what if I need to displace the object more gradually? Affect those vertices e.g. with 100%, the others with 50%, 40%, 30%? Can the displace modifier use a procedural weight map, or do I need to create a texture image for this?
Is there some way to define a procedurally generated weight map for the displace modifier?
I can use a vertex group to define which vertices the displace modifier actually affects. It either affects a vertex in that group with 100%, or it doesn't effect it at all if the vertex isn't in the group.
But what if I need to displace the object more gradually? Affect those vertices e.g. with 100%, the others with 50%, 40%, 30%? Can the displace modifier use a procedural weight map, or do I need to create a texture image for this?
I'm not sure if I understand correctly what you want to achieve. The weight of each vertex controls the strength of the modifier, if you set the weight to 10%, it will only be influences by 10%. I don't think there is a way to set the vertex weight procedurally, instead you will have to assign or paint them.
Edit: You can feed a procedural texture into a vertex edit modifier before the displacement modifier, though it is a bit tricky to find working values.
Hi all - Does anyone know of a clever way (hidden menu ? Addon ?) to have a much clearer showcase of all textures available in a scene ? Ideally with much bigger previews, and without having it contained in a popup menu that instantly disappears. Basically something that would look and operate similarly to the browser to select an external texture file.
The issue is the same in 2.7x and 2.8x - the thumbnails in the selector popup are just soooo tiny ! It's useful for quickly selecting a texture that one knows about already of course, but this is a real pain for browsing/searching without a point of entry.
I semi-regularly need to re-export a texture of unknown name used in a scene/packed in a .Blend, and these microscopic thumbnails make it a real pain. And of course the fact that the only way to show bigger images is to select them one by one is a drag.
TLDR : I just want a big list/grid with big thumbnails At the very least as big as the sculpting brush previews in 2.7x
Any thoughts ? FWIW the only workaround I know is to select an object with the desired texture on it and enable texture paint, as that brings it in the image viewer. Only solves part of the issue though.
@Cirno Oh wow this is excellent !! Great work on this, this is pretty much exactly what I was hoping to find and for both 2.78 and 2.8 too - just perfect Thanks !
@f1r3w4rr10r : This simple asset manager seems pretty cool on paper but I found it to be a bit confusing/unclear, at least in its present iteration. Thanks for the suggestion though, will keep my eyes on it.
I'm trying to recreate this OSL node setup from Max in Blender. I've loaded the OSL script in Blender, but it doesn't work and I'd rather not use OSL anyway as it doesn't support GPU.
Basically, I have 2 displacement maps: 1 baked from Zbrush with a 0 mid-point, and the other is a 3-channel RGB map that I painted in Mari with a mid-point of 0.5.
I need to average the sum of the 2 maps and normalise the scalar mid-point as floats(32-bit disp maps) I'm doing this in Max with a PlusMinus node. Here's the graph from Max and the codes below.
shader plusMinusAverage [[ string help = “The Plus Minus Average utility node allows you find the sum, difference or average of a set of input attributes. It has three parts — two or more input attributes, an operator that you apply to the attributes, and an output attribute that holds the result of the operation.”, string label= “plusMinusAverage (color)”, string category = “Math\Color” ]] ( int Operation = 0 [[ string widget=“mapper”, string help = “Operation controls the mathematical operation done by this node. It has four possible values. No operation: The first input is copied to the output. All other inputs are ignored. Sum: All of the inputs are added together, and the output is set to their sum. Subtract: The output is set to the first input, minus all the other inputs. Average: The output is set to the sum of all the inputs, divided by the number of inputs.”, string options=“No:0|Sum:1|Subtract:2|Average:3”, int editable=0 ]], int NumOfInput = 1 [[ string label = “Number of Input”, int min = 1, int max = 4]], float input_3D_0 = 0.0 [[ string label = “input 3D[0]” ]], float input_3D_1 = 0.0 [[ string label = “input 3D[1]” ]], float input_3D_2 = 0.0 [[ string label = “input 3D[2]” ]], float input_3D_3 = 0.0 [[ string label = “input 3D[3]” ]], output float Out = 0.0, ) { if (Operation == 0) { Out = input_3D_0; } if (Operation == 1) { Out = input_3D_0 + input_3D_1 + input_3D_2 + input_3D_3; } if (Operation == 2) { Out = (input_3D_0 - input_3D_1 - input_3D_2 - input_3D_3); } if (Operation == 3) { Out = (input_3D_0 + input_3D_1 + input_3D_2 + input_3D_3)/NumOfInput; } }
EDIT: solved by NudelZ on the BA forums. Here's the solution for posterity and anyone else interested:
Still finding my way around Blender. I can't seem to find any AA filters, coming from V-Ray I'm expecting to see a few, i.e. Quadratic, Mitchell-Natravali, etc.... I did see in the 2.79 docs (https://docs.blender.org/manual/en/2.79/render/blender_render/settings/antialiasing.html) that they were available for that version - did they remove the AA filters in 2.8?
Really stupid, quick question: I accidentally pressed some shortcut in combination with some pen movement, and now the area encircled in red is scaled down really small. What do I need to do to scale this back up?
Hey @musashidan, I saw some tutorials about baking the edge shader and they all used the edge split modifier to ''fix'' the shading before baking, this works fine on blender, but when you export to other softwares you will get the usual artifacts cuz of avaraging normals without uv break.
So i am wondering, did you break the uv's for pretty much every tiny details for the gun you made?
Question to you all - does anyone know of a reliable way (as in : you tested it yourself) to get .blend files thumbnails to show a scene preview in windows files explorer ? I've definitely had that in the past around an early 2.7 version but I can't seem to get it to work now.
Of course I do *not* mean the thumbnails inside the Blender File Open/Save As windows, as these work just fine.
"Solutions" posted online mostly point to running blender.exe -r to register the extension but if I am not mistaken this is completely unrelated to the thumbnails themselves. Found a post mentioning duplicating a registry key and placing it at a location that the installer missed but that didn't do it either.
Note that I personally run the non-installer version of Blender but I've of course ran the installer in order to get this to work, but to no result. I suspect that one old installer in particular might do the trick ?
If possible I'd like it to not mess up or change the double click association (currently have it setup to 2.81, but might need to change it to 2.78 on a per-project basis) but I suspect this part is easy to tweak.
@Udjani I mostly just did classic UV/shading splits. Edge Split mod isn't needed, but can improve normals in some circumstances. If you use it you can just delete the mod after bake/before export.
@musashidan So you would have to cut every small pieces in their own island? Like in this exemple, i would have to cut every face in order to bake it and not get any artifact.
On a normal workflow i would be able to get away with something like this, which would save some vertex and texture space.
Sorry for my low iq, i am having a hard time understanding this bevel shader :~
@Udjani The problem is, that when you "fix" your normals, you are creating custom normals. Any normal map you bake will be based on those. So that means that wherever you export the mesh to, you have to take care that those custom normals are preserved.
Two side notes: I prefer using the bevel modifier in contrast to the shader. It usually gives a better result and more control. The second is that there is no requirement for split edges to be UV seams as well. You can just split edges wherever you want.
@f1r3w4rr10r See my weapon on the last page, almost 100 parts all baked in Blender with Bevel Shader and moved to Substance for final normal detailing. No custom normals to worry about on any of the pieces. Just remove the Edge Split(if it had one) and export with smoothing groups. Allow Substance/mikkT to build the tangents/bi-normalsNo problems at all. No high polys to worry about. Wysiwyg final in-game mesh from the beginning. Easy.
@Udjani The thing with this workflow is that you're not relying on the highpoly to smooth your shading, that's taken care of as you model. Once you know good triangle mesh topology/surface shading techniques then it's straightforward. You don't necessarily have to split smoothing/UVs because MikkT can still take care of smoothing across angles as usual.
Another thing you can do is add a sub-surf set to simple and keep creases to achieve smooth surface shading with sharp angles to drive the Bevel Shader. Although this is going back to highpolys, which I'm hoping to always avoid with this workflow.
Replies
Regarding the bevel shader, it's pretty tight on the model itself. If I wanted exaggerated super soft edges how far can the bevel shader go on a complex piece of geo? Also thanks for your youtube series on going from max>blender its quite helpful.
So I can absolutely recommend Blender in terms of animation
-> https://www.youtube.com/watch?v=Ykn1W54u_p4
bpy.ops.mesh.
knife_tool
(use_occlude_geometry=True, only_selected=False, wait_for_input=True)) without any luck.I'm reading that it's not possible to edit the mesh using it, but I'm not looking to edit the mesh - can I simply call the tool somehow?
Lot of these are context sensitive in blender so you can't call them from the python interpreter but can only call them when 3d view is active.
The following works for me:
I put it in a pie menu and run the following commands.
bpy.ops.mesh.knife_tool("INVOKE_DEFAULT") for legacy knife tool
"INVOKE_DEFAULT" is default i think for blender operation calling, hence the name
I think it might even work just as bpy.ops.mesh.knife_tool() but im not sure
bpy.ops.wm.tool_set_by_id(name='builtin.knife') for fancy 2.8 left mouse button tool
Well that's...interesting. Using the "INVOKE_DEFAULT" made the script work. All I'm doing is that if I have a mesh selected in object mode, switch it to edit mode and call the tool. It's...frustrating thinking how I could know about this one, since in the same docs there are only three parameters displayed and yours isn't there. In any case, thanks for the help M00k
Different question: is it somehow possible to model symmetrically in Blender? Meaning, if I e.g. insert an edge using the knife tool on one side of the object, it will automatically insert an edge on the other side?
I can of course delete one half of the object, apply a mirror modifier, and it will be mirrored to the other side. Thats not what I'm talking about though. What if I can't delete half the object, if the entire object needs to stay as is because the UV layout of the object needs to stay the same?
I'd read a breakdown of that gun!
Basically all the functionality of the Data Transfer modifier is available as a one-click operator (searchbox for "transfer" and it's there). Meaning that there is no need to apply the modifier to multiple objects > manually selecting the source model to each > and manually applying the modifier. All that can be combined into one operation : select all the target objects first > select the source object last > run the operator. Of course it's not quite the same as splitting without affect normals in the first place but still achieves the same restult, and fast.
https://www.youtube.com/watch?v=K6bPzpj_r4c
If anything I'd say that it is probably *more* usueful than an hypothetical advanced splitting operation without affecting normals, as it allows to edit things very smoothly after the fact - and editing normals after the fact is usually the one annoying bottleneck.
I will look into the Textools addon, thanks. Doesn't seem to work with 2.8...
This will do for me indeed. thanks.
I can use a vertex group to define which vertices the displace modifier actually affects. It either affects a vertex in that group with 100%, or it doesn't effect it at all if the vertex isn't in the group.
But what if I need to displace the object more gradually? Affect those vertices e.g. with 100%, the others with 50%, 40%, 30%? Can the displace modifier use a procedural weight map, or do I need to create a texture image for this?
The weight of each vertex controls the strength of the modifier, if you set the weight to 10%, it will only be influences by 10%.
I don't think there is a way to set the vertex weight procedurally, instead you will have to assign or paint them.
Edit: You can feed a procedural texture into a vertex edit modifier before the displacement modifier, though it is a bit tricky to find working values.
Does anyone know of a clever way (hidden menu ? Addon ?) to have a much clearer showcase of all textures available in a scene ? Ideally with much bigger previews, and without having it contained in a popup menu that instantly disappears. Basically something that would look and operate similarly to the browser to select an external texture file.
The issue is the same in 2.7x and 2.8x - the thumbnails in the selector popup are just soooo tiny ! It's useful for quickly selecting a texture that one knows about already of course, but this is a real pain for browsing/searching without a point of entry.
I semi-regularly need to re-export a texture of unknown name used in a scene/packed in a .Blend, and these microscopic thumbnails make it a real pain. And of course the fact that the only way to show bigger images is to select them one by one is a drag.
TLDR : I just want a big list/grid with big thumbnails At the very least as big as the sculpting brush previews in 2.7x
Any thoughts ? FWIW the only workaround I know is to select an object with the desired texture on it and enable texture paint, as that brings it in the image viewer. Only solves part of the issue though.
@f1r3w4rr10r : This simple asset manager seems pretty cool on paper but I found it to be a bit confusing/unclear, at least in its present iteration. Thanks for the suggestion though, will keep my eyes on it.
Made by:
https://www.artstation.com/pandrodor
Basically, I have 2 displacement maps: 1 baked from Zbrush with a 0 mid-point, and the other is a 3-channel RGB map that I painted in Mari with a mid-point of 0.5.
I need to average the sum of the 2 maps and normalise the scalar mid-point as floats(32-bit disp maps) I'm doing this in Max with a PlusMinus node. Here's the graph from Max and the codes below.
// Adds (and optionaly scales) two colors
// ColorAdd.osl, by Zap Andersson
// Modified: 2018-02-08
// Copyright 2018 Autodesk Inc, All rights reserved. This file is licensed under Apache 2.0 license
// https://github.com/ADN-DevTech/3dsMax-OSL-Shaders/blob/master/LICENSE.txt
shader plusMinusAverage
[[ string help = “The Plus Minus Average utility node allows you find the sum, difference or average of a set of input attributes. It has three parts — two or more input attributes, an operator that you apply to the attributes, and an output attribute that holds the result of the operation.”,
string label= “plusMinusAverage (color)”,
string category = “Math\Color” ]]
(
int Operation = 0
[[ string widget=“mapper”,
string help = “Operation controls the mathematical operation done by this node. It has four possible values. No operation: The first input is copied to the output. All other inputs are ignored. Sum: All of the inputs are added together, and the output is set to their sum. Subtract: The output is set to the first input, minus all the other inputs. Average: The output is set to the sum of all the inputs, divided by the number of inputs.”,
string options=“No:0|Sum:1|Subtract:2|Average:3”,
int editable=0 ]],
int NumOfInput = 1 [[ string label = “Number of Input”,
int min = 1,
int max = 4]],
float input_3D_0 = 0.0 [[ string label = “input 3D[0]” ]],
float input_3D_1 = 0.0 [[ string label = “input 3D[1]” ]],
float input_3D_2 = 0.0 [[ string label = “input 3D[2]” ]],
float input_3D_3 = 0.0 [[ string label = “input 3D[3]” ]],
output float Out = 0.0,
)
{
if (Operation == 0) {
Out = input_3D_0;
}
if (Operation == 1) {
Out = input_3D_0 + input_3D_1 + input_3D_2 + input_3D_3;
}
if (Operation == 2) {
Out = (input_3D_0 - input_3D_1 - input_3D_2 - input_3D_3);
}
if (Operation == 3) {
Out = (input_3D_0 + input_3D_1 + input_3D_2 + input_3D_3)/NumOfInput;
}
}
EDIT: solved by NudelZ on the BA forums. Here's the solution for posterity and anyone else interested:
Midlevel group node
So i am wondering, did you break the uv's for pretty much every tiny details for the gun you made?
Of course I do *not* mean the thumbnails inside the Blender File Open/Save As windows, as these work just fine.
"Solutions" posted online mostly point to running blender.exe -r to register the extension but if I am not mistaken this is completely unrelated to the thumbnails themselves. Found a post mentioning duplicating a registry key and placing it at a location that the installer missed but that didn't do it either.
Note that I personally run the non-installer version of Blender but I've of course ran the installer in order to get this to work, but to no result. I suspect that one old installer in particular might do the trick ?
If possible I'd like it to not mess up or change the double click association (currently have it setup to 2.81, but might need to change it to 2.78 on a per-project basis) but I suspect this part is easy to tweak.
On a normal workflow i would be able to get away with something like this, which would save some vertex and texture space.
Sorry for my low iq, i am having a hard time understanding this bevel shader :~
But you can't split the edges/shading without having a uv seam, you will get artifcats when baking it.
@Udjani The thing with this workflow is that you're not relying on the highpoly to smooth your shading, that's taken care of as you model. Once you know good triangle mesh topology/surface shading techniques then it's straightforward. You don't necessarily have to split smoothing/UVs because MikkT can still take care of smoothing across angles as usual.
Another thing you can do is add a sub-surf set to simple and keep creases to achieve smooth surface shading with sharp angles to drive the Bevel Shader. Although this is going back to highpolys, which I'm hoping to always avoid with this workflow.