text:
Shadow Catcher + Free Style External Contour
I want to have External Contour outlined from my scene, except for the ground, which is a shadow catcher.
How can I achieve this?
Here is the problem:

Because of the ground, the bottom contour of the cubes are not draw. How can I fix this?

Limit strokes per group and exclude the shadow catcher

It works for other types of edge selection. It doesn't work for External Contour :(


text:
Corrupt faces when extruding cylinder
So, I created a cylinder and extruded one of its ends a couple of times in one direction (right in image 1). Works fine. But when I extrude the other end in the other direction, the faces become "corrupt" (see the part to the left in image 1). I see no logic in this, and since I am following a very basic tutorial, I understand that this is not expected behaviour. Note in image 2 that the problem part is kind of darker in wireframe shading.
Can someone give me a clue? Many thanks.

It looks like these are faces that overlap

it seems you have overlaping faces on the left size. so maybe, you have extruded 2 rings together.
You have 220 vertices but only 9 rings... that doesn't match. And also you have 40 vertices selected.

Many thanks! Did I mention I am a newbie? ;-)

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

authors: Настя Бочарова

sort: votes


text:
How to delete an action?
I try to delete Action.005 permanently.

But I don't know how. If I click on the X

then it is still in the list.

I already researched without success, I even managed to loose all my animations by attempting to apply a fix, so I want to be cautious now... How can I do this?

I finally found the solution in this answer: https://blender.stackexchange.com/a/88385/19208

Now It does not even work after applying the solution from the link above... seems like a bug

Did you try pressing Shift+X instead of X? Then reloading the file.

Can you provide an example .blend file? Using the example in the link above, I was able to delete an action.

i had similar problem once, i remember i had to delete actions in NLA editor

Probably best way is change Outliner into Blender File mode, right click on action and click delete.

Still very useful in 2021! :) They could've made that a little bit easier...

The button for selecting the mode seems to not be available anymore in Blender 2.92.x

Still relevant in 2024, Blender 4.0.2
For beginners (like me) who aren't aware, the outline in the default layout is the list of objects in the top-right. You change the mode by opening the Display Mode drop-down (look at tooltips) and selecting Blender File.

This is still the way to go if you want to remove an action from a file (in both cache and NLA) permanently in 2024 with both Blender 4.X and 3.X. Any other methods mentioned in the other answers only remove a reference/state/NLA or doesn't work anymore. For example, if you export your file for Godot, this is how you clean up your file to remove any trashed animations before exporting.

To remove an action you need to disable Fake user option with F button and then click X button. After that you will see no active action in action editor (That will have only one button to create new action + New). Clicking on button that opens list of actions you will see action that you removed with 0 at the beginning of this name (like 0 MyUselessAction). It means that has 0 references on it. Saving your scene and loading it again will remove that dangling reference from .blend file

Shift-click on the X, save, and reload/re-open the file. The action should be gone. (This incidentally should work with practically any data block.)

If you want to Remove It Completely you could just use this code:
import bpy
name = "MyAction"

bpy.data.actions.remove(bpy.data.actions[name])

Just Paste It in The Text Editor, replace MyAction with The name of your action in the second line and Press Run Script or Alt+P.
Keep in mind You should not be able to undo after using this techinque, so be careful.

You have two options. One is to go to the NLA Editor and remove the action by pressing the delete button on the selected action (you might need to click the drop down button on the parent animation). The second option is to go to the Hiercy(objects panel) and select your object with the animation, click the plus icon to the left of the animations sub menu and right click on the action you want to remove, then you can see a delete option, follow by clicking it and it should be removed. If you find your action only listed in the NLA Sheets menu, then you can only use the first option.
There is a similar question here:Can not delete actions in action editor even with Shift + x

In Blender 2.8

In the Actions Editor, Shift + Left Mouse click  on the 'x' button (next to the shield icon or even next to it), all the actions-data will be cleared from the file.
Go to Outliner menu (the one on the top right corner in animations tab) and click on the display mode button (left to the search bar), it will show a drop - down menu and click on Blender File option, now you can see actions. Right-Click on the specific action which you want to delete and press delete. It's permanently gone!

Go to the "Nonlinear Animation" window and remove anything unnecessary, then save your file and reopen it with Blender.

Select your action in the Action Editor, then unfold Armature > Animation and right in the Animation tab there will be your action. Now just  RMB > Delete

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Extend submenus
I know that I can extend menus with modifications of:
def menu_draw(self, context):
    self.layout.operator(myOperatorClass.bl_idname)

bpy.types.INFO_MT_file.append(menu_draw)

which would add an item to the File menu. Question is, how do I add items to submenus? For example, how would I add an item to File > Export?
I tried bpy.types.INFO_MT_file.Export.append(menu_draw), it does not work.

You were close!
A good way to find this kind of stuff is to open the source of any of the addons that add themselves to the export submenu. For our purposes you could look at the DXF exporter script.
from the __init__.py file in scripts/addons/io_export_dxf
bpy.types.INFO_MT_file_export.append(menu_func)

This information is available as a template too from:
Text Editor -> Templates -> Python -> Operator File Export
Clicking the menu item will add and show operator_file_export.py in the Text Editor.


text:
Prevent (accidental) deletion of object
Is there a way to "lock" an object so that it can't be deleted without unlocking it? Kind of like the option often present on digital cameras.
If not, any other way of preventing the user from deleting an object?
Also, this is for an addon, so no problem with script-based answers as a last resort.

You can override the delete function to achieve this :

add protected boolean property for the object type
set this property to true to prevent the object from deletion
the new delete function will only delete unprotected objects

this is the new delete operator no other changes are needed just include it in your addon and it will override the default delete function :
import bpy
from bpy.props import BoolProperty

bpy.types.Object.protected = BoolProperty(name = 'protected', default = False)
def main(context):
    for obj in context.selected_objects:
        if not obj.protected :
            bpy.context.scene.objects.unlink(obj)
            bpy.data.objects.remove(obj)
        else :
            print(obj.name +' is protected')

class delete_override(bpy.types.Operator):
    """delete unprotected objects"""
    bl_idname = "object.delete"
    bl_label = "Object Delete Operator"

    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    def execute(self, context):
        main(context)
        return {'FINISHED'}

def register():
    bpy.utils.register_class(delete_override)

def unregister():
    bpy.utils.unregister_class(delete_override)

if __name__ == "__main__":
    register()

However, after reading the code a few times, would you mind explaining how it works? I can't seem to find where and how you override the default deletion operator...

they have the same Id name bl_idname = "object.delete" so when you register it  the old definition gets overwritten by this one

I know this is old question but - how to get the "OK?" prompt from the original delete operator?

@spacer for those reading this in >2.8, you can use: def invoke(self, context, event):         return context.window_manager.invoke_confirm(self, event)

ok the script above is very interesting.
this is not overriding the operator context but replacing it. I'm not 100% sure about interactions but for example you have anymore the register menu (F9)
where you can set options like confirm and use global there > bpy.ops.object.delete(use_global=False, confirm=False)
so I wrote an addon using the normal delete with an override and a new key ctrl+del (ctrl+suppr azerty)
import bpy
from bpy.props import BoolProperty

bl_info = {
    "name": "protected_delete_addon",
    "author": "1C0D",
    "version": (0, 0, 1),
    "blender": (2, 80, 0),
    "location": "property>object>visibility",
    "description": "protect from deleting with a key ctrl+del",
    "category": "Object",
}

bpy.types.Object.protected_delete = BoolProperty(
name = 'protected_delete',
default =False,
description='to apply to several obj from active-> right clic on checkbox > copy to selected',
)

class Delete_Override(bpy.types.Operator):
    """delete unprotected objects"""
    bl_idname = "object.delete_mod"
    bl_label = "Object Delete dd Operator"
    bl_options = {'REGISTER', 'UNDO'}

    @classmethod
    def poll(cls, context):
        return context.mode=='OBJECT'

    def execute(self, context):

        override = bpy.context.copy()
        selected=bpy.context.selected_objects
#we override the context with a comprehensive list taking into account the property
        override['selected_objects'] = [obj for obj in selected if not obj.protected_delete]
        bpy.ops.object.delete(override)

        return {'FINISHED'}

# a select operator to find back in a scene what object are protected
class Delete_Override_Property_Select_Toggle(bpy.types.Operator):
        bl_idname = "object.del_override_toggle"
        bl_label = "Object Delete Operator"
        bl_options = {'REGISTER', 'UNDO'}
        bl_description= "to select all propected objects"

        def execute(self, context):

            bpy.ops.object.select_all(action='DESELECT')
            for obj in bpy.context.scene.objects:
                if obj.protected_delete:
                        obj.select_set(True)
                        context.view_layer.objects.active=obj

            return {'FINISHED'}

def draw_delete_override(self, context):
    layout = self.layout
#based on the code in visibility panel (checkbox with name after)
    layout.use_property_split = True
    flow = layout.grid_flow(row_major=False, columns=0, even_columns=True, even_rows=False, align=False)

    obj = context.object
    col = flow.column()
    col.prop(obj, "protected_delete", text="protected_delete") ##property
    row=layout.row()
    row.label(text='select all protected_delete') ##select by property
    row.operator("object.del_override_toggle", text="",icon='ARROW_LEFTRIGHT')

addon_keymaps = []
def register():
    #Class
    bpy.utils.register_class(Delete_Override_Property_Select_Toggle)
    bpy.types.OBJECT_PT_visibility.append(draw_delete_override)
    bpy.utils.register_class(Delete_Override)

    #key
    wm = bpy.context.window_manager
    km = wm.keyconfigs.addon.keymaps.new(name = 'Object Mode')
    kmi = km.keymap_items.new('object.delete_mod', 'DEL', 'PRESS',ctrl=True)
    addon_keymaps.append((km, kmi))

def unregister():

    #key
    for km, kmi in addon_keymaps:
        km.keymap_items.remove(kmi)
    addon_keymaps.clear()
    #class
    bpy.utils.unregister_class(Delete_Override_Property_Select_Toggle)
    bpy.utils.unregister_class(Delete_Override)
    bpy.types.OBJECT_PT_visibility.remove(draw_delete_override)

if __name__ == "__main__":
    register()


text:
How to represent Box2D joints
Back-story: I'm using blender as a level editor for a game I'm making, this means I write an addon in Python to export the relevant data in my format, and manipulate the blender interface to add options I need. Fixtures and Bodies (basically shapes) are easy to represent with 2D meshes, and I use Properties to add my specific options. Whenever I can, I exploit existing blender options (like the rigid body stuff) instead of adding my own. I am no avid blender user otherwise, so I guess that makes me a noob vs all everyday users.
[TL;DR: just read from here...]
What blender object resembles/represents Box2D Joints the best? And if none is perfect, what can I start with and how do I modify it to suit my needs?
I need it to have:

Two "object properties" (references to other existing objects) which will represent which two bodies to connect. In Box2D these are called BodyA and BodyB.
Two "point/vector" properties. These would represent what specific points on the two bodies to link together. Box2D name: AnchorA and AnchorB

What would also be nice:

Have it visualize the joint between the two anchor points, if it draws a line or something that'd be great.
Really nice if it actually restricted the objects to, say, a certain distance away from each other when I move them.

[...to here]
Then, I'm sure I could add more specific properties like joint type, break strength, etc. myself through Python Property registration.
Note: I am a programmer; I'm not afraid to code.
Oh, and before you mention it: I have seen "rigid body constraints", but among other things they don't satisfy condition 2. I've also found them generally messy and hard to understand (if the constraint is already applied to a body, what does it need two parent properties for?) I'm assuming a lot of this is because they are focused towards 3D not 2D, but am open for suggestions if someone still sees an opportunity there.

I would draw them with custom opengl overlay over viewport with bgl module and keep the custom objects with custom everything under scene static collection property. This would allow for total control and customization. You could represent these with line mesh objects with hooks on ends or bones with some constaraints but imho this clutters scene and is not that well customizable.

@Jerryno Could you link to some documentation on the things you take up? Had no idea about bgl, that seems awesome!

Sure check out: http://blender.stackexchange.com/questions/21463/draw-points-on-screen-with-bgl-python or check the Screencast Keys addon code. The only limitation is that the opengl draw loop needs to run and is managed inside a modal operator, which blocks for example the F8 addons reload etc. But other than that should be fine. You can draw inside 3d space with POST_VIEW tag or in 2d with POST_PIXEL.

Yeah, the screencast leys source should have what I need, thanks! Any idea on how to go about the "object references"?

Yeah this is a bummer in blender. It references everything by names. So simply store the names of objects. If user renames the object you are screwed unless you implement some watchdog: http://blender.stackexchange.com/questions/19668/execute-a-python-function-whenever-the-user-interacts-with-the-program/19669#19669 and adjust the reference accordingly. You can handle object deletion etc. also very elegantly like this. Other option is to assign some random hash property for objects, store it, and search for that if object name not found.

Okay, was kind of expecting that from reading some other answers. Last question (And man you should patch this all up into an answer because this is what's working for me), anything for the "vector properties"? I know I could just make three Float properties and use those, but I've seen "location" settings in many of the built-in menus, so I think there is something built-in already, but it's not one of the basic property types.

try bpy.props.FloatVectorProperty() it has default dimension of 3 but can be customized: http://www.blender.org/api/blender_python_api_2_67_1/bpy.props.html Yea I guess its not good to leave it all in comments, ill write the answer with some examples.

Storing the data in collection property:
import bpy

# specify the data structure - each item will be group of properties:
class Box2DJoint(bpy.types.PropertyGroup):
    # name = bpy.props.StringProperty()
    body_a = bpy.props.StringProperty()    # reference object name
    body_b = bpy.props.StringProperty()    # reference object name
    anchor_a = bpy.props.FloatVectorProperty()
    anchor_b = bpy.props.FloatVectorProperty()

# store them under scene:
bpy.utils.register_module(__name__)
bpy.types.Scene.box_2d_joints = bpy.props.CollectionProperty(type=Box2DJoint)

# populate like so:
new_joint = bpy.context.scene.box_2d_joints.add()
new_joint.name = "silly_box_joint"
new_joint.body_a = 'Some_object_name'
# ...etc.

# remove with index:
id = bpy.context.scene.box_2d_joints.find("silly_box_joint")
bpy.context.scene.box_2d_joints.remove(id)

The advantage of the data storage like this is you can also display it in UI lists which is nice: Populate a list with custom property dictionary data
If the user renames objects in blender or deletes them, the references must be adjusted: Execute a python function whenever the user interacts with the program. This offers the most flexibility, the code can catch almost anything. The handicap is that the frame change handler runs all the time.
Other approach would be to give objects some random hash which is stored with object name and searched for when the object is not found. Here is how to set it up for objects:
import bpy
import string
import random

def random_id(length = 12):
    return "".join([random.choice(string.ascii_uppercase) for i in range(length)])

bpy.types.Object.hash = bpy.props.StringProperty()
bpy.context.object.hash = random_id()

To check if object name exists:
if bpy.data.objects.get("FooBar") is not None:
    # do something with bpy.data.objects['FooBar']
else:
    # deal with it
    # look through all objects for hash and if found update name reference
    # if hash not found object is deleted or a ninja

Use bgl module to display such custom objects in view-port: Draw points on screen with bgl? (python)
The drawing code runs inside modal operator and has access to bpy.context, you can draw points, lines, triangles etc. in 3d float coords (init with 'POST_VIEW' tag) or in 2d pixel coords (init with 'POST_PIXEL'). BGL Wrapper Reference. The BLF module can be used to draw text. There are python templates in text editor for this.
Keeping this simple is good because drawing with python is not very fast. Too many draw-calls and Blender view-port fps will suffer.

Hi again, I'm in the process of implementing all this but I encountered a problem: when using the modal operator, the interface is blocked; I cannot zoom, pan, or perform any other tasks. I'd like those lines to be drawn all the time when a box2dJoint exists, but obviously I have to be able to do ohter things too. How do I drawstuff non-blockingly?

@Ludwik Have the modal loop return {'PASS_THROUGH'} instead of {RUNNING_MODAL}. That way the event catched by the modal operator will be also passed to blender.


text:
Weird default GUI layout
When I go to User preferences > Add-ons > Install From File, the default layout is laid out in such a way that one of the panes overlaps the others while having loads of empty space.

Aside from this being a weird default layout, how do I change it?
(I always need to access the stuff under System there, and it's getting really tedious to pull that thing down every time.).

No worries, I know python. But would you care to point me to the specific source file?

The one you are opening... Or have I misunderstood you? Are not installing an add-on whose interface you wish to alter?

Um, no, this isn't about the specific addons I'm installing, but the window in which I install them. When I press "user preferences", this little window opens, and when I go to Add-ons and press the install from file button there, I get what's shown in the image.

this might be more suitable as a bug report to the bugtracker then

If you're referring to the panels on the left side, you can left-click the border and drag to resize the panels.

@TheMinecraftMan757 Oh yes, sure I can, but when I open the window hte next time they will be this way again. And I open that window a lot. So I need a way to have them in an acceptable postion by default.

@Ludwik ah. I wish that could be controlled.

@Ludwik I seem to be having the same problem now days. I wonder if it is a 1.74 thing.

Possible; I have .74 myself and don't remember seeeing this before.


text:
How to animate cubes coming out of a mesh - like fire?
Ok, I dont know how to describe this other than a low poly fire sort of deal - imagine this

but animated, so with a particle system of the cubes constantly separating/floating out of the big mesh: https://www.youtube.com/watch?v=ypRlkByjSbA
Normally what I would do is just animate like 3 cubes as separate objects moving in a loop "out" of the base object, but I have a transparent material and need to make it look like parts of the base are ripping away:

How can I do this? Im in cycles

Related https://blender.stackexchange.com/questions/112746/atmospheric-trail/112753#112753

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Cycles - how to do mist AND emission glare?
I cant even get mist to work in compositing, and my attempts having glare as well as mist are failing- despite following tutorials exactly I just get a render that is all one color, instead of mist/glare. Setup is:

Sorry for low quality, snapshots currently broken here. What do I need to change - my mist pass depth is set correctly for my scene.

Just to verify that the mist pass is as it should be, does it look correct if you plug the mist pass straight into the viewer node?

it dos but there is no mist - just the image


text:
Magenta fog makes objects in foreground green tinted?
Ok, there some color dichotomy thing happening probably but Im having an issue where applying a magenta fog in cycles:

Creates the desired fog, but makes dark objects in foreground greenish.Dark black especially.
Ive played w numbers repeatedly but cant get this to stop. What is causing this/can I get JUST the fog without the green tint?

Is it possible for you to add a screenshot showing the problem as well?

You're using some tricky compositing nodes here. A lot of compositor workflow uses "blending styles" (see the Mix RGB node dropdown for a complete list). Some styles have a procedural approach that creates extremely strange hue shifts and color distortion if you don't know what you're dealing with.
Since you're getting an unexpected green cast / hue-shift, it might be the Glare node to blame. It's really not designed for this kind of colored fog. You'd be better off either compositing in a discrete comp. app or using a custom node setup (e.g. Z-depth or fog render layer mask + Mix RGB > Hue). With your current setup, you'll have all sorts of unexpected visual results.


text:
Why is this glass getting blown out?
Ok I have a lot of glass in my scene but these shards I have on the floor, regardless of denoising settings or otherwise, that do not appear clear but rather get blown out into white.

Denoise settings, yet they are still grainy and blown out:

The other glass, like on the eyes, are clean and have reflections. Whats wrong here?

Issue is this happened with no denoise at all

Could the normals be facing the wrong way? If you Recalculate Normals it might fix the issue.


text:
How to rotate just bottom half of model? With shapekeys?
Ok Ive made a paceman ghost and am trying to do what they did in Wreck it Ralph, with bottom half circling while top stays still:https://youtu.be/HgoUIvnDLGc
I think I need shapekeys, but if I just rotate bottom half I get:

Separating the bottom half due to the transparent material gets:

Is this possible?


text:
How to bevel a right-angle edge?
I'm trying to make this tv frame beveled but I don't know how to make it with proper topology.  How can I fix this?  Thanks
This is the area:

As you can see, the bevel effect doesn't align in the corner properly and creates all these folding and overlapping vertices:

I've attached the .blend

according to your images, by blender's term that's not exactly beveling. It's more like you are trying to subdivide. Also when I look at your file I see some of the corners have been subdivided, you certainly can't apply modifiers on such inconsistency. Try model them back to right angle and apply subdivide modifiers.

@SVAFnemesis sorry for the late reply...It turns out there was a weird issue with the vertices in the example I posted.  All other corners of the tv frame beveled nicely.  Basically I had to join each edge of the bevel (in this case 7 vertices) with the corner.  It definitely did not look like beveling in the example I posted though, I agree.  Hope that makes sense


text:
Bend a plane into a television screen using curves?
Is it possible to turn a plane into a convex shape using the curve modifier?  I want to shape it to look like a vintage television screen.  I tried to do this but it just made it look like a crumpled piece of paper.
The reason I want to use the modifier rather than a curved mesh is because I want to use video as a texture (thus the single face of the plane).
Thanks!

Why not use a simple deform modifier?

Related: https://blender.stackexchange.com/questions/79210/distort-plane-by-multiple-curves

Deform modifier might work...I'll try that!

@PaulGonet unfortunately I can't subdivide as I need a single face to apply the video as a texture.  Unless there's a work around?

The plane can't be bent as long as it's single quad or whatever but one face. Either it's subdivided plane (quads preferably) and can be bent with any tool you can imagine or it's a flat polygon.

@MrZak ah OK.  I'll have to try to fake the texture behind the screen then.

Also, you don't need to fake anything, making the plane subdivided doesn't invalidate having a video (or anything else) as texture, you can unwrap the plane before subdividing and apply the texture, or you can map the texture correctly afterwards, either way will work.

Ohhh right!  Sorry I don't know what I was thinking...that's totally true


text:
Why are my faces warped?
I'm having a weird issue with these faces.  In the first example, I used the boolean modifier to cut a hole, and as you can see the faces around the knob have this warped/sunken look:

In this second example, I extruded a face and the same result happened:

Does anyone know what's going on here?

The weird shading is due to the bad topology (you should change the edgeflows in some places and get rid of n-gons, otherwise the subsurf won't work properly). I'll try to help you with this. Meanwhile take a look at this http://topologyguides.com/

Click on the mesh and go to vertex tab and click auto smooth

Sorry for the late reply...thanks it definitely straightens out the faces, but gets rid of the smoothness.  Even if I adjust the auto smooth angle it ends up distorting the mesh when it becomes smooth again.


text:
Gun shooting repeatedly in cycles?
I've been trying to find a tutorial for how to animate bullets firing successively (including shells ejecting) but all the tutorials seem to be in the game engine.  Is there a way to do this in cycles?
Thanks

Short answer: yes.
Your best bet is to start by creating an animation for firing once.
Then for things like the muzzle flash you can loop that animation (either using multiple strips in the NLA, or a cycles modifier on the fcurves of its animation).
For the bullets, you probably want multiple objects in case multiple bullets are in-camera.  They can share an animation that is shifted in time using NLA strips.
The casings will be similar to the bullet: having multiple objects that share an animation using NLA strips displaced in time.
(edit:)
Keyframing the hide_render property (the camera icon in the outliner) is a popular technique for making something appear/disappear (bullets, shell casings, although you could also conceal them inside the gun's polygons where the camera can't see them)

Thanks!  But how would you make animations for multiple objects (i.e. bullets)?  Would it be hiding several duplicates and keyframing their animations and appearances?  Sorry I'm pretty new to animation and have never used the NLA editor.

Yeah, the NLA editor can confuse first-time users.  I wrote https://docs.google.com/document/d/1WrrdFpZ-VC7taxu4iD3hZIowYvyM953iZpBwkZ78PgA/edit , but you probably want to find a google video that explains the basics first.


text:
Rigging a curve non destructively
I'm using a curve with the curve modifier and array modifier to make a hose.  However, I want to be able to animate the hose easily without keyframing all the parts of the curve. I've heard people here say you can rig an object by converting the curve to a mesh but then my curve modifier wouldn't work if I tried that. Basically, I'm wondering if there is a way to animate something like my hose with modifiers not applied, in a simple way.  Hopefully this make sense.
Thanks!

You could use hooks to points and curve handles. Then you can parent the hooks to a rig or bone

Armature in Pose Mode. You can add a Spline IK Constraint.  Your question would be clearer with some screen captures.

Sorry for the late response...I've been trying understand rigging lol.  Are there any good beginner tutorials on how to do what you guys are describing?


text:
How to uniformly use a texture without uv unwrapping?
I'm trying to use a nylon texture on a cushion-like object and when I unwrap it, it warps the texture.  Is there a way to have the nylon work in a naturally procedural fashion that doesn't warp around corners and crevices?
Here's what it looks like without the material:

Here's with the material:

This is my node setup for the material:

Eventually, I would like to be able to make straps like this:

Either properly unwrap your object so there is no warping, or use procedural texture coordinates like Object or Generated

Ah yes!  Generated did the trick.  So amazingly simple.  Thanks


text:
How to tie a deforming knot with a curve?
I'm trying to make a knot that deforms realistically using a beveled curve. It should look something like this:

This is what I have so far, and these are my curve settings:

How could I achieve this using the curve and avoiding converting to a mesh?
Thanks!

You can adjust the radius to shrink the bevel at a point but to deform the surface so it looks like it is scrunched up will have to be done with a mesh.

Ah I figured thanks.  Is there a way you would suggest for modeling once it's been converted to mesh?


text:
Using displace modifier to model a circuit board
Is it possible to model something as complex as a circuit board using the displace modifier?  I've been working with the settings but can't get it right.  I've UV mapped the image over my mesh and used several subdivisions.  If anyone could show me step by step or point me to a tutorial, that would be awesome.
Here's the image I am trying to model:

what do you wish to model: just the board or electronic component also? displace can just create different heights  on a surface... like mountains, or grooves... how can displace be applied here?

everything....the grooves, chips, holes

You'll need to provide modifier with accurate displace map where every detail has its own color - chip tp have almost white for extrusion, its details a bit less white to make them extruded less, grooves almost dark to make them intruded.. to make such a color map essentially. And with that even done you won't really get high precision - displace only pushes polygons up and down. It doesn't care about the topology which might become a mess in that case. And amount of subdivisions should be pretty high. So this method seems comfortable but maybe isn't.

Short answer: You totally can. Long Answer: You can but it would be a waste of resources. You will need both an incredibly subdivided mesh for this to look  anywhere near presentable, and you will need a large image texture to hold enough detail for all the components to appear well defined. Both of which could be a lot better employed and obtain a better result more efficiently and with a lot less resources with a proper modelling technique.

Difficulties using displacement: obtaining the good colors from the original image, bridges (how to make transistors or other similar parts), a lot of subdivisions needed, hard to tune the heights, IMO and as said by @DuarteFarrajotaRamos, modeling will be better, faster and more accurate

also holes, resistors, capacitors...I think those are impossible...

Thanks for the tips everyone...I think I should have clarified that super detail isn't important but I do want it to look convincingly 3 dimensional...would bump help to create that effect? Also, if I did want to go the modeling direction, would extruding the chips and resistors be enough with a texture node to do the rest?  It seems like musgrave is doing a good job on the fine grooves so far.


text:
How to make realistic old cabin walls?
I'm trying to make a really rustic, non-uniform looking wood panel cabin.  The problem is all the textures I'm finding are too perfect.
Here's a sample render of what I have made so far:

But what I'm really looking for is a way to make this:

Would each panel have to be modeled individually and with a variety of textures?
Thanks

you could model just 3 different planks, then link-duplicate and rotate them so that you don't create any repetitive pattern

Yes that worked well thanks.  Also, I found that if I random selected vertices and did random proportional scaling, it made the planks a lot more rough and real looking.

it really depends on if you need to make close-ups, otherwise you can keep a very low-poly mesh and rather play with bump or normal maps that you create from your texture, it can be very efficient

I honestly think your problem is more with the lighting than the texturing. I would firstly utilize an HDRI if you aren't already, then increase the intensity of the sun, and given that it's a forest I think a little bit of volumetric fog w/ light shafts will go a long way.

Try this tutorial, hope you have success https://youtu.be/DcfPH4psKX4


text:
Virtual prototyping with Blender?
I'm currently designing furniture in Blender and was wondering if anyone has ever used Blender for virtual testing?  Specifically, if Blender has tools to ensure that parts will fit, structural testing, etc.
Thanks

Blender has a the Rigid Body World, there are various addons like archimesh for aranging scene. You can measure everything in floating point precision. You should seek another software for structural testing though since most tools/addons in that direction aren't physically based and mainly a close approximation which looks good (e.g. the fracture addon).

Yes I love archimesh.  It's great for making scenes to put my pieces in and speeding up more mundane modeling like windows and doors.  But yes, apart from rigid bodies I think I will need to look to another program for structural testing.


text:
Using a 30fps video in a 24fps animation?
I have a strange situation where I made an animation with a lot of precisely placed sound clips and couldn't figure out why my image texture (with video) and it's audio weren't in sync or playing the whole video in general from start to end.  Then I realized it was 30 frames per second.  Now when I change the original animation which is 24 fps to 30fps, the image texture video plays properly but everything else is completely out of sync.  Is there a way to fix this without having to redo my entire animation's audio in order to get it to accommodate the video texture?
Thanks

@cegaton doesn't that slow down or speed up the overall animation though?  I don't want to have it appear in slow or fast motion.

Unfortunately it didn't work with the slowing down.  I couldn't figure out the fraction of new and old time remapping.  However, maybe not the best solution but I ended up converting the video used for video texture from 30 to 24 using VLC media player.  That seems to have worked.


text:
How to achieve anime style action lines in cycles?
I'm trying to achieve an effect similar to this which I found in a tutorial on how to make anime action lines, but unfortunately it was in blender render and I couldn't figure out how to replicate the effects in cycles:

This is basically what I was able to achieve using compositing, freestyle, and the displacement modifier on a cone staring head on:

This is what it looks like with the empty affecting the cone with the displacement modifier:

Here are the material nodes:

As you can see from my version, it doesn't have a genuine action look to it...is it possible to achieve this with my current setup?
Thanks

You mention Cycles in the title but proceed to tag compositor and freestyle. How are you really looking to achieve this?

I'm not sure what the discrepancy is...I'm using the compositor and freestyle lines in cycles.  The tutorial I was watching on youtube was in internal and used a lot of nodes that aren't available in cycles.

Could you expand on what you mean by "genuine action look"? Do you want to get darker streaks like in the first example? The bright spot in the center? Or..? Perhaps an animated example of what you are going for would help

@gandalf3 Yes I'm basically going for the look of the first image...I want to have thicker, more comic book style lines with a bright centre.  But I do want to have a glow effect like the .GIF I posted of my version if that's possible...

@lakerice I had a go at making this effect with just material nodes, but I don't have time to polish up an answer atm. Here's the file anyway, is that something closer to what you're looking for?

@gandalf3   Yes that's exactly what I was going for!  Thanks!  I'm studying your node setup...what's the basic workflow/principles?  If you have to time I'd love to understand them.


text:
How do I find the controls after adding in an object?
Where else can I find this after adding in an object?

when you add an object in the 3d-view, the creation variables (which you are searching for) are still accessable and editing them can be done. After any modification in the 3d-view (such as selecting another object) the creation variables can no longer be accessed, you have commited to the creation values. Use regular editing for changing the mesh, or create a new object until you're satisfied.


text:
How to align vertices 100% accurately?
So there's a problem I'm facing every time I work with mirror modifier. When I'm shaping only half of the mesh I have troubles aligning vertices that must have '0' local coordinates.
The issue is when I'm selecting more than 1 vertex and set it coordinates to 0 here.

I get random values for each single vertex. Like this.

And so I have to set each vertex to '0' manually.

Related: http://blender.stackexchange.com/q/140/599

This is likely because the vertices are not aligned. The transform panel shows the median location of all selected vertices; setting it to 0 will move the whole selection as a unit:

To align the vertices, scale them (S) to 0 along the axis you which them to be aligned along. So for the X axis, S X 0:


text:
Network Render appears to only use one slave at a time
Blender 2.76rc3, I setup a single master, 6 slaves and one client. The processing properly distributed jobs across the slaves, however only one task is active at a time. When one slave completes another usually gets the next chunk. So there are never more than one active slave processing the task. Is it possible to have all slaves active processing portions of the render job? I may have missed something in the configuration or setup? Thank you.


text:
Why does my animation render in black?
My animation keeps rendering in black, how do I fix it?:
Here's the file if you want to edit it. http://www.pasteall.org/blend/38570

You need a lamp for this

Yes, you need include a light.

You need a lamp in your scene. This can be done with ShiftA and click on lamp


text:
Particles not loading
For some reason the particles I have applied will not render.

I'll be uploading the file soon

Here's the file http://blender.stackexchange.com/questions/45239/particles-not-loading

Alright, I solved it. Cycles can't handle Halo. I need to switch to a Object render rather than a Halo render.


text:
particle modifier with emission
I wanted to make a grassfield and made some objects in a group which are emitted in the scene. I added an displacement modifier on the objects so that they look different depending on their global location.
But when the grass objects are emitted the displacement modifier is applied before and isn't changing with position in the viewport or the render.
I checked https://www.blender.org/manual/physics/particles/emission.html out but it didn't change anything.
This is also an overall question because it seems to me that modifiers are always applied before emitting. How can i workaround that? (other than copying that object as often as its rendered..)

The modifiers applied to object will affect to that object, but it will not affect on the way this object is spread by particle system. So Displace modifier will change the geometry of your grass pieces. To change how grass is looking I'd say you should tweak hair with using tools from Particle Edit mode.

You may just have to approximate it by emitting from a group, which are the same mesh in different positions so that the modifiers apply as desired. This will randomize a lot of it quite nicely.

thank you for mentioning the edit mode MrZak , but I am emitting grassobjects, like little bushes and  wanted to have it more random..
@NᴏᴠɪᴄᴇIɴDɪsɢᴜɪsᴇ could you please explain this further? It looks odd if I click emit whole group.

Select the Random option, and it will select one random mesh from the group for each particle


text:
how to adapt a box to an object with a python script?
First I create a bouding box around an object with this script :
selected = bpy.context.selected_objects
for obj in selected:
    #ensure origin is centered on bounding box center
    bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='BOUNDS')
    #create a cube for the bounding box
    bpy.ops.mesh.primitive_cube_add()
    #our new cube is now the active object, so we can keep track of it in a variable:
    bound_box = bpy.context.active_object
    #copy transforms
    bound_box.dimensions = obj.dimensions
    bound_box.location = obj.location
    bound_box.rotation_euler = obj.rotation_euler

Then I resize the box like I wish :
bpy.ops.transform.resize(value=(1.4,1.4,3.5))

This is my result :

After that I want to resize only the highest face of the box so that it arrive 5 mm above the object, like this :

I already know this script to select the highest face of the bouding box :
object = bpy.data.objects['Cube']
object.select = True
me = bpy.context.object.data
bm = bmesh.new()
bm.from_mesh(me)
for face in bm.faces:
    center = face.calc_center_median()
    if center.z >= 1:
        face.select_set(True)
bm.to_mesh(me)
bm.free()

I equally know how to get the highest point of the object :
max = -9999
for i in obj.data.vertices :
    if i.co[2] > max :
        max_ind = i.index
        max  = i.co[2]

But I don't know how to position the highest plan of the box 5 mm above the highest point of the object ?

If you want to use the bmesh module for this operation, you need to get the top face's vertices (you can't move faces and edges directly, but their verts; it's as simple as face.verts). Then translate the vertices, either by individually changing their .co.z value or by using bmesh.ops.translate(). The latter will be relative to the vertices' current locations.

I found how to move the highest plan of the bounding box and position it correctly above the object :
activeob = bpy.context.selected_objects
cube = activeob[0]
bpy.context.scene.objects.active = bpy.data.objects[cube.name]
bpy.ops.object.mode_set(mode='EDIT')
mesh = bmesh.from_edit_mesh(cube.data)
ob = bpy.data.objects[cube.name]
matrix = ob.matrix_world
for v in mesh.verts:
    if v.select:
        v.co = v.co*matrix
        v.co.z += 20
        matrix_inv = matrix.inverted()
        v.co = matrix_inv*v.co


text:
Blender 2.73a won't start
Downloaded the newest version, 2.73a, twice.  Each time the download seems to go well, but when i start the program it opens only for a second then closes.  It does this repeatedly.  Using Win8.1.  Had no trouble with v2.72, i used it from when it first appeared until yesterday.
Anyone know what my problem is and how to fix it?
..thanks,
gmo

I know of at least one person who only managed to get 2.7x series working after updating graphics card drivers. This isn't mentioned in the proposed duplicate thread.


text:
I want Glass to be transparent where nothing exists
So I am making something for a video overlay. It should be semi-transparent to allow some of the video to be seen through it.
This was not a problem at first. The item was a glass ellipsoid with text (opaque) and other objects (opaque) in front of it which casts shadows and reflections. Using glossy surface and playing with roughness and also adding a transparent shader (mixed shader) did the trick.
Now the project includes putting something opaque behind the glass which should be diffracted through it.
Transparent shader does not diffract what is behind it. The glass shader does but once it is introduced, I lose all transparency in the glass.
Adding a mixed-shader with transparency gives a diffracted and non-diffracted view of behind. Adding a mixed-shader with holdout makes the ellipsoid and its diffractions semi-transparent, even so the opaque object is now semi-transparent (though the glass). Also tried refraction shader. Same issue as glass.
What I am trying to do is make anywhere where no light hits the glass (environment transmissions/reflections, refractions) are all transparent but opaque objects in front and behind the glass are still opaque.
Blender 2.73a, Cycles. Nodes.

Screenshots please?

One way you could do this is by using a sort of "greenscreen".

Add a big sphere which encloses the entire scene, and give it a material which will only be visible when seen directly through a transmissive material. Also disable visibility for unwanted ray types:

Put the sphere on it's own layer (I put it on layer 2), and create a second renderlayer which excludes it:

The first renderlayer is identical except for the Exclude setting.
Use the compositor to turn the green channel of one renderlayer into the alpha channel of the other:

If there is already red green and blue in your scene, you could try using the compositor to turn the difference between the two renders into transparency:

However you may need to tweak things to get it to work as desired.

This seems to be exactly what I need but the level of the transparency is so weak (but there and appears to be just what I am looking for).
How do I control the level of the transparency? (I have been trying for an hour with no luck yet).
Nevermind. Intensity of the emmission of the outer sphere.
THIS IS PERFECT!!! (Yes, I was shouting... in excitement).
Thanks.

@Logics The method I used convert the green to alpha was a bit flawed (it was too dim as you noticed and it got some alpha in the wrong places, if you look at the bottom right corner of my previous example image). I've found a much better way now (updating answer). Increasing the intensity of the greenscreen will work, but it's a bit of a workaround.

Actually, your first method is better and I will tell you why.:
My sphere (or ellipsoid) was to be blue. The scene was lighted by two lights, one green and the other magenta (producing white light on rough surfaces but green/magenta reflections on glossy surfaces).
With the blue ellipsoid and the green environment, I got no transparencies. With the environment white, everything turned out perfect.
I did not try your second method but it appears from following the logic that it is indeed a true "greenscreen" method which would affect green objects'and blue glass, etc.

@Logics Good point, I've added both methods to my answer


text:
post processing edge
new to blender,checking edge in post processing shows up characters wireframe while rendering,like the toon effect,but not the wireframe,what am I supposed to do(blender 2.76),normal render(without edge works fine)

Turn down the Threshold. Edge looks for edges based on z-depth. Threshold changes the limit for this. If threshold is high, or your model is low poly, it will get too many edges.


text:
blender only scales 1 block
well when I want to scale my object properly it will just always increase by 1 standard so when I need to scale something by like 0.873 I'm not able to do that also I can only rotate like 45grades each time any knows how to fix this?

possibly related to http://blender.stackexchange.com/questions/2834/cursor-is-set-to-move-by-increments-how-to-reset-to-normal and you can scale, move, rotate exactly in this way: after entering mode, eg scale, enter the amount,  so "0.873" to scale to. or rotate  and then "12.5" to rotate 12.5°

You probably enabled the 'snap during transform' option (clicked the 'magnet' icon at the bottom bar of the 3D window).


text:
Animate a pin pushed out of a wall
The scenario is quite simple: a pin (cylinder) sticks in a thin wall (cube with a cutout hole for the pin, done by boolean modyfier). This pin will be hit by a hammer (cube) and should then move according to physics in the way hitted and by gravity. Therefore I make the pin a rigid body, active and dynamic, right? But now the problem: to let the pin stick in the wall (until hit by the hammer) I make the wall a rigid body too. But whatever options I tried until now, pin an wall "jump away" from each other as soon as the simulation starts or the pin falls through the wall. What to do, so that the pin is not affected by the wall (except that it is carried by the wall)?

PS: The possible answer: keep the nail "not dynamic" until it is hit by the hammer. But even then the nails direction of movement is not the desired on (out of the wall in the direction of the movement of the hammer), instead the "interaction" with the wall then let the nail fly away in a wrong direction (and the wall too).

if you can attach an example .blend (blend-exchange or pasteall or else). It could also be the shape type (bounds) and the two being too near (collision margin also counts)

Sometimes scaling the whole thing up in size will give you more reliable behavior with collision physics. Remember to Apply Scale.


text:
How to set the display device to None in a python script?
I want to set the display device in Blender 2.69 to 'None' rather than 'sRGB' using a python script.
I have tried the following:
bpy.data.scenes[0].display_settings.display_device = 'None'
and
bpy.data.scenes[0].display_device = 'None'
The first one gave this error:

TypeError: bpy_struct: item.attr = val: enum "None" not found in ('sRGB')

and the second one gave this error:

AttributeError: 'Scene' object has no attribute 'display_device'

Any idea what I'm doing wrong?

Works in 2.76b...

Unfortunately, switching the Blender version is currently not an option :(

Can't reproduce it - also works in 2.69 linux (http://download.blender.org/release/Blender2.69/)

@poor: It was some corruption in the installation files I think, so removing Blender then installing it again solved the issue... Thanks for your care! :)

You are welcome, but then we should close it.

I'm voting to close this question as off-topic because the issue is not reproducible.

what do u mean? how to close it?

oh, I see, should I delete the question?

I'd recommend leaving the question as it is, others will close it for you. Might be a good idea to start with the tour: http://blender.stackexchange.com/tour. Anyway, enjoy blender.se!


text:
UV unwrap each face of an object via python script
I have an object with several faces, and I want to loop over the faces, adjust the view for each differently and then UV unwrap the face from the chosen view.
I managed to do it using Blender GUI but how can I automate it via a python script?
This is the code I was trying with... I keep getting either a context error or an error saying that BMFace has been removed :s
import bpy, bmesh
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.select_all(action='DESELECT')
bm = bmesh.from_edit_mesh(bpy.data.objects['my_obj'].data)
for face in bm.faces:
    face.select = True
    if [...] : # Condition chosen to know which face this is
        q = Quaternion([...]) # Set desired corresponding view for this face
    for area in bpy.context.screen.areas:
        if area.type == 'VIEW_3D':
            break
    for region in area.regions:
        if region.type == 'WINDOW':
            break
    space = area.spaces[0]
    context = bpy.context.copy()
    context['area'] = area
    context['region'] = region
    context['space_data'] = space
    r3d = space.region_3d
    r3d.view_perspective = 'ORTHO'
    r3d.view_rotation = q

    for window in bpy.context.window_manager.windows:
        screen = window.screen
        for area in screen.areas:
            if area.type == 'VIEW_3D':
                for space in area.spaces:
                    if space.type == 'VIEW_3D':
                        for region in area.regions:
                            if region.type == 'WINDOW':
                                override = {'window': window, 'screen': screen, 'area': area, 'region': region}
                                bpy.ops.uv.project_from_view(override, orthographic=False, correct_aspect=True, clip_to_bounds=False, scale_to_bounds=True)
    face.select = False

Please help!

Manipulating UV coordinates in python is usually done via the bmesh interface.
I include an example from barber-pole.py
def spiralUVs(mesh, xPlus):
    # add a UV layer called "spiral" and make it slanted.
    mesh.uv_textures.new("spiral")
    bm = bmesh.new()
    bm.from_mesh(mesh)

    bm.faces.ensure_lookup_table()

    uv_layer = bm.loops.layers.uv[0]

    nFaces = len(bm.faces)
    for fi in range(nFaces):
        x0 = fi*2/nFaces
        x1 = (fi+1)*2/nFaces
        bm.faces[fi].loops[0][uv_layer].uv = (x0, 0)
        bm.faces[fi].loops[1][uv_layer].uv = (x1, 0)
        bm.faces[fi].loops[2][uv_layer].uv = (xPlus+x1, 1)
        bm.faces[fi].loops[3][uv_layer].uv = (xPlus+x0, 1)
    bm.to_mesh(mesh)

Some other examples that set UV texture coordinates include

http://web.purplefrog.com/~thoth/blender/python-cookbook/expand-uv-to-fit.html
http://web.purplefrog.com/~thoth/blender/python-cookbook/uv-from-geometry-cubic.html
http://web.purplefrog.com/~thoth/blender/python-cookbook/meshFromBathymetry.html
http://web.purplefrog.com/~thoth/blender/python-cookbook/thicken-texture.html

Thanks a lot! I just got rid of this project_from_view function and set the values of the uv coordinates directly as desired :)

For Blender 2.8 mesh.uv_textures.new("spiral") becomes mesh.uv_layers.new(name="spiral")

You could try to create an operator that is executed in the correct context, then you don't need to search for the right one.
Something like this:
import bpy
import mathutils

def main(context):
    # Your code without context searching
    bpy.ops.uv.project_from_view()
    context.space_data.region_3d.view_rotation = mathutils.Quaternion((1,1,1))

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"

    @classmethod
    def poll(cls, context):
        return context.mode == 'EDIT_MESH'

    def execute(self, context):
        main(context)
        return {'FINISHED'}

def register():
    bpy.utils.register_class(SimpleOperator)

def unregister():
    bpy.utils.unregister_class(SimpleOperator)

if __name__ == "__main__":
    register()

You can then execute the operator in your 3d-window (Space -> Simple Object Operator).

I am not used to bpy operators, but I don't see how this operator manages to be called in the correct context. Note that I need the whole thing to be fully automated in my case... no GUI at all.

@Beginner any update if it worked for you without GUI using this?

This is not a script, but it may get what you want.
Select all faces (a) then unwrap (u). In the unwrap menu, select 'reset'. This will make every face fill up the whole uv grid. Each face will be a square, and fit your texture.
Hope this helps.

Thanks for the advice :) but it is not applicable in my case

Thanks very useful


text:
What advantages in using progressive rendering?
I'm using CPU rendering, I've heard somewhere that progressive rendering is faster than non progressive, so I checked it in the render panel, I also increased the Tiles size to 256 for both, my question is, is it really faster, because it looks slower than non progressive with 32 for Tiles size.Also one of the advantages I heard about is that if you feel that the render is clear enough, you can just cancel and save the image "talking about rendering stills". But what if I'm using Composite? I'm mixing a white color with Mist, and mixing that with the rendered image, since this will be calculated after the render is done, will composite still happen if I cancel the render?  I know this looks like many questions, but it's not, the main question is: Why and when to use progressive rendering?

The compositor can use any image or image sequence from the hard disk or facsimile thereof.  If you save the image manually you can specify in the compositor as an input.  This is a comment in regard to stopping the render.

As a matter of fact, progressive rendering is often slower than tiled rendering, assuming you have an optimal tile size for your scene/hardware. The only advantage is as you say; you can let it render until you deem it noiseless enough.

Thank you, then I guess they meant by faster, that you can stop the render process and save the image. Is this the only advantage?

Progressive render is always slower than a properly configured non-progressive render.
You use progressive rendering if you don't know how many samples to use. For example, you might use progressive on your initial render to get a feel for how many samples will look good, or to extrapolate how long a given number of samples might take. You might also use progressive if you have a specific amount of time to render, but don't know how many samples you can get done in that amount of time.
You might also use progressive if you don't know how much time you'll have to render the image. For example, if you have a SUPER complex scene and you know you're going to be out of town for a few days, you might start the progressive render, set it for umpteen-billion samples, and just let it go until you get back... whenever that is. That way, you're rendering the WHOLE time (it doesn't stop too soon with too few samples), but you also have a FULL image whenever you decide to stop (without having to wait for the last tile... or two... or more, to finish).
http://www.blenderguru.com/articles/4-easy-ways-to-speed-up-cycles/
look to 3. point
With CPU you should use a small tile size it will be faster.
With GPU you should use a big tile size.

Progressive rendering will make a tile as big as your image -> render time will be long
Composite could be done if you simply take a image (use openexr format if you use passes)  as input

I take it as a given that the chart is a single sample.  It also shows the general trend of various tile sizes for CPU vs GPU, which is helpful.  Plus the given link leads to the following caveat: "I conducted some studies using this scene, and came to these results..."


text:
How to manipulate Gradient Shader
Being kind of new to Blender, Shaders are still kind of a mystery for me, I tried adding a Gradient Shader to the Background in World, to my surprise, I couldn't find any sliders or colors! is there a way to change the default colors in Gradient shader?

The Gradient texture outputs a numerical value between 0 and 1.  You can create a color gradient from this by plugging the gradient texture into a Color Ramp node.

The Color Ramp takes a value between 0 and 1 (values outside this range are clamped) and outputs the color from the proper place along the set gradient.  A value of 0 will output the color on the far left, a value of 1 will output the color on the far right.
You can create a custom gradient by adding color swatches, Cycles interpolates the colors between each swatch.  Add a new color swatch by clicking the "+" button, select a swatch to change its color and position.

As a technical side note, the gradient node is actually a texture not a shader.  A shader is a set of instructions that tell Cycles how light interacts with the surface or volume of an object, a texture is an array of colors.

Thank you, actually Color Ramp in Blender is what I call Gradient in my terminology :) .. Any ways, so what the Gradient Texture is for? Hmm..

@Georges  You still need the gradient texture.  The gradient texture creates the black-to-white gradient (0-1 really) and the color ramp is what is used to map that to a specified color gradient.


text:
BPY how to detect what mode is the current mode in 3D View
I'm writing a script, trying to save the current mode that the active object is in, Object Mode or Edit Mode, in order to reset the object to that mode after running the script. The issue I'm facing is that it's a toggle, so is there a way to detect this mode and save it to a variable?

mode = context.active_object.mode

@batFINGER many thanks! could you put this in an answer?

To store the mode which the active object is in you can use:
current_mode = bpy.context.object.mode

to store the mode in the variable current_mode. In order to set that mode again use the following line:
bpy.ops.object.mode_set ( mode = current_mode )

@aliasguru Nice edit, thanks, how do you add this style if you don't mind me asking? I tried opening the source but couldn't get the html behind it.

to add a code block, simply add four spaces in front of each line. This will also trigger syntax highlighting for basic Python keywords. Add two asterisks each side around something that should be bold, and one each side around things that shall be italic.


text:
How to scale the rendered image in composition?
In order to get rid of noise, I'm rendering using 200% for render Resolution, 512 Render Samples, so I can decrease the size later in Photoshop by 50%, to make anti-aliasing, my question is: Is there a way to do that in Composite, so the final image will be scaled and anti-aliased?

Yes, Blender can scale in the compositor using the Scale nodes seen below. Pipe the image into a Scale node, then from the Scale node into a Composite output node. If you have "Compositing" checked on in the Rendering tab of the Properties pane, then each frame will be modified and then saved out as usual.

You can also use a File Output node to save out different files in addition to the final Composite, if you want.
Note that in Absolute Mode for the Scale node, you need to input the final image size you're after, not a ratio, so if you want a full HD, you should input 1920 for X, 1080 for Y.

I tried the Absolute Mode, the input in this mode should be the final size of them image that you want in pixels, for example: 1920 X 1080, uvsing 0.5X0.5 as in the image just ruined the image.

The Compositor

The Compositor can Scale, Offset and Clip.
Showing Images and Blender Textures ... Scaled and Offset. Viewers.
Split Viewer showing as a background.

A Blender World texture can be sampled in various way including no interpolation, or pixelated.  The Zero Saturation appears in the Compositor.  The non interpolated coarse sampling does not appear in the Compositor.  Coarse sampling pixelation produced by nodes in the Compositor.
Click image to see larger version.

This answer isn't very descriptive. Could you elaborate?


text:
How to scale properly HDRI image, to be used in ASC-CDL HDR render?
I've been test rendering lighting my scene using HDR images, trying to get the right value of light and shade from. The problem is, no matter what I do, I can't get the full spectrum in one image, meaning from red to violet. I've been using the Fake Colours Look in order to scale the HDRI with no luck, most of the values I'm getting in the rest of the image are Cyan, which is mid-range.On the other hand, when I make my own HDRIs in Blender, I'm getting acceptable results, with all the spectrum range showing in the Fake Colours Look! Is it a problem with the HDRI images I'm using, or is me not knowing how to scale the HDRimages properly?
The image below shows a render using strength value of 1.0 with Colour Balance Node set to ASC-CDL, values set to default, Offset:0.0, Power:1.0, Slope:1.0
The image below shows the same render using Colour Balance Node with extreme values, Offset: 0.01, Power: 2.0, Slope: 1.3, I cranked it up just to get some gradation in the image, as you can see, most of it is still Cyan "mid-range", couldn't get any near red values, which is why there are no highlights on the model, and the dark areas are spotty.
I made this render to explain the problem, no matter how much I crank up the strength value in the HDRI map, I'm not getting any highlights "red value in the Fake Colour Look" even where the sun is!! I tried so many HDRI images, I can't even remember how many, this one here is supposed to be one of the best HDRI images available.
Check the images below for the parameters I'm using for Colour Management and Compositor Colour Balance node.

I'm quoting here "
Clamps are dangerous creatures." @troy_s
The problem was that I had value in the clamp direct and indirect under Render>Sampling, so what happened is that Cycles was clamping all values above 1, while I was trying to get the sun brighter with no luck!! Lesson learned the hard way.
But wait, this is only part of the issue, this solved the high value absence puzzle, but not the absence of gradation.
Long Answer short, this is how it was solved, no need to say that the following parameters are obviously not a magic number to go with for every HDRI, since every HDRimage, good and bad ones, has it's own unique values and light conditions:
1- HDRI map strength: 18, yes I know it's crazy, but we're dealing with High Dynamic Range, we need a bed big enough for all the values of the HDRI to fit in. Just like the story, this is the Mushroom that made Alice grow to her size.
2- Slope value in Color Balance node in the compositor: 0.18, yes even more crazy, this is the mushroom that made Alice small enough to fit in the display reference door, remember that the mushroom made Alice shrink, proportionally, it didn't chop her off to pieces.
3- Power value in Color Balance node: 1.8, convex f-curve to distribute the values from high to low in a way that gives enough space for gradation.And here's the result.No LookFake Colors Look

Of course these values would work for this particular HDR image, not necessarily a rule, but as a rule of thumb, I guess I'll be using high value for HDR image, and crank it down using the slope value, and expand the curve using a power value higher than 1, in order to make a concave easing out curve.

Finally, I'm not a tech person, and I know my description above sounds funny, on the other hand, the values still need some tweaking because there are still some white spots, which refer to over exposed areas, but at least I'm very close to achieve a good result. If you check the answer in this link is way more descriptive of this case, and in much better way. Following the instructions in this link, 14.5 is more accurate range for a standard case, for a standard HDR image.  Furthermore, here are some experiments I did with other HDRimages:


text:
How can I add a custom button to a panel?
I have made a custom panel in Blender and I would like to have 3 buttons. Currently I've taken the render button and just copied and pasted that into my panel and changed the name of it just for a place holder. How can I make my own button, like how I would make my own checkbox etc. Also, it's currently one of these kinds of buttons:

How and also make it this kind of button:

see this question and answer: http://blender.stackexchange.com/questions/43593/how-to-display-enumproperty-control-like-radio-buttons-while-keeping-the-select

Panels can't have their own properties defined inside the Panel's class (by design), this means you must register properties either as part of the Scene or as part of the Object class, or as part of a higher level PropertyGroup. A group keeps your properties organized and avoids potential naming conflicts between other add-ons.
Here's a small snippet that creates a Panel, and registers a property group with as many properties as you might need. The update function called by the enum is where you could execute code.
This is one way to do that, scavenge what you need from this:
import bpy

def update_after_enum(self, context):
    print('self.my_enum ---->', self.my_enum)

class IgnitProperties(bpy.types.PropertyGroup):
    my_enum = bpy.props.EnumProperty(
        name = "My options",
        description = "My enum description",
        items = [
            ("Silver" , "Silver" , "Description..."),
            ("Gold", "Gold", "other description"),
            ("Space Grey", "Space Grey", "Some other description")
        ],
        update=update_after_enum
    )
    # my_string = bpy.props.StringProperty()
    # my_integer = bpy.props.IntProperty()

class IGLayoutDemoPanel(bpy.types.Panel):
    """Creates a Panel in the scene context of the properties editor"""
    bl_label = "IG Layout Demo"
    bl_idname = "SCENE_PT_layout"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "scene"

    def draw(self, context):
        layout = self.layout
        scene = context.scene
        row = layout.row()
        row.prop(scene.ignit_panel, "my_enum", expand=True)

def register():
    bpy.utils.register_module(__name__)
    bpy.types.Scene.ignit_panel = bpy.props.PointerProperty(type=IgnitProperties)

def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.Scene.ignit_panel

if __name__ == "__main__":
    register()

If you want bigger buttons a different approach is needed.

Wonderful answer! Are there any guidelines for the bl_idname of the Panel? The official documentation about bl_idname there reads a bit like an unfinished sentence and didn't really answer it for me.


text:
Assigning shortcut for Alt + Ctrl + C doesn't work
I use object_origin_set a lot, that's assigned to shortcut Shift + Ctrl+Alt + C , and since it's a 4 keys shortcut, I searched the object mode shortcuts on Blender Wiki and in the user settings, I found that Ctrl + Alt + C is not assigned, so I thought, well why don't I lose that extra Shift that causes my ring finger to stretch to un normal limits every time. Well it doesn't work, I tried Ctrl+Alt+A it worked, I'm curious, does anyone knows why is this specific shortcut not working?

⎈ Ctrl⎇ AltC isn't working as another shortcut is assigned to it and is used before the set origin shortcut - it will clear constraints, so you probably didn't notice anything happening.

If you untick the Clear Object Constraints shortcut you will be able to use ⎈ Ctrl⎇ AltC.
As shown above there are several groups that a shortcut may belong to, blender goes through each group and uses the first match found. Fairly sure the search order is the same as what is displayed in the input preferences. You can have some duplication as some groups will not match the current context, for example the clear Pose Constraints shortcut will not match unless you are posing an armature.

authors: Андрей Райнов


text:
Z depth pass in Cycles, rendering white
Using Cycles as a render engine, I assigned an empty as a camera Track To target, and as the focus target in Depth of Field, yet rendering the scene, the depth pass is rendering all white, as if there's no depth of field, while the combined pass is rendering just fine, am I doing something wrong?

@poor I thought that there's something wrong I'm doing, being a new user of Blender, I thought that simply checking the Z pass, should give the required result, I just wanted a simple way to do it without going to compositor and connect all the nodes "because I'm not an experienced user", but looks like the only way is doing it in the compositor!

Unfortunately not :/ For Z only you can duplicate the scene, enable the 'Z pass' and re-render the scene via Material Override. For a fast solution you could also try the 'mist pass': http://blender.stackexchange.com/a/6722/3710

No, you're not doing anything wrong.
The Z-Pass is one of just a few, when not even the only pass that doesn't have a range from 0 to 1. It goes from almost Zero to infinity. Every pixels gets assigned a value that shows how far away it is compared to the camera.
If a pixel is 75 Blender Units away it gets assigned the value of 75.
If you output the Z-Pass through the viewer it will only show values between 0 and 1. Everything above 1, which is probably everything in your scene, will be shown as white.
If you are using nodes like Z-Combine it will work perfectly fine.
For other compositing purposes you'll want to use the Map-Range node:

Input the Z-Pass into the "Value". Than change the "From max" value to the object furthest away from your camera. You'll see the effect by cranking up the value.
For visualisation purposes only I recommend the Normalize-Node:

This node will take all values and shrink them down to a range between 0 and 1.
For Still images this probably is the easiest way, for animations use the method shown above.

When you say nodes, do you mean in the compositor? I guess I should watch more tutorials about this subject, I still need to understand where to connect all these nodes, I'm still kind of new to Blender. Thank you for your answer.

The only thing I can't understand so far, is how can Cycles show the DOF effect very accurately in the Combined pass, and still needs so many operations to get the Z depth image.


text:
Rendering Environment pass without Combined pass in Cycles
Using Cycles,I have a scene with Volume Scatter shader connected to World Background and an HDR image connected to the surface, Rendering the scene while checking Environment pass is giving me a nice full black image "naturally" even with Transparency enabled in the the Render > Film, so far it's understood, so I'm planning to separate the procedure, making a render for the combined pass, then another for the Environment pass with the Background shaders disconnected in order to get the Alpha. The problem is Cycles re-renders the Combined pass in the second step, even by having it disabled in the Render Layers > Passes. How come? Why is Combined pass rendering while being unchecked? In case I'm not doing anything wrong, yet this is the way it is, is there a turn around?


text:
Blender 2.8, how to add a new shortcut
Question:
How to add shortcut to a button or create a new shortcut in User Preferences in Blender 2.8 ?
Problem:
I'm trying to assign Shift + F3 to switch the window space type, to what previously was Node Editor, now "Shader Editor".
Tried:

RMB click over the Shader Editor icon in the drop down menu at
the top left corner of the window. No add shortcut link there.
Main Menu, Edit > Preferences > Input
, Add New, rename to Cycle Space Type Set (following the naming convention of other shortcuts related to space types), Setting the shortcut to Shift+F3, RNA shows Disabled, the value is OperatorProperties and cannot find a way to change it.

It looks to me that it still needs to be implemented as is literally missing from the options even if you want to modify the existing one.
But for now you could do a quick addon, install it and use it as a shortcut.
if you use this script then the operator name is object.shading_workspace
don't know if there is a simpler way.
bl_info = {
    "name": "Shading Workspace",
    "author": "Your Name Here",
    "version": (1, 0),
    "blender": (2, 80, 0),
    "location": "",
    "description": "Shading Workspace",
    "warning": "",
    "wiki_url": "",
    "category": "",
}

import bpy

def main(context):
   for ob in context.scene.objects:
       print(ob)

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.shading_workspace"
    bl_label = "Shading Workspace"

    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    def execute(self, context):
        main(context)

        # this is the line you need
        bpy.context.window.workspace = bpy.data.workspaces["Shading"]

        return {'FINISHED'}

def register():
    bpy.utils.register_class(SimpleOperator)

def unregister():
    bpy.utils.unregister_class(SimpleOperator)

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.object.shading_workspace()


text:
Blender 2.9 scripting, how to get the name of the driven property
I'm trying to get the name of the property that's been affected by a driver for a certain object, what I did so far:
for d in bpy.context.object.animation_data.drivers:
    print(d.driver.id_data.name)

However, that's returning the name of the object, not the driven property. My question is, let's say there's a drive controlling the Z Scale, how do I get that information "Z Scale" or a similar equivalent, in scripting?

Related https://blender.stackexchange.com/questions/111662/select-or-find-everything-that-a-driver-is-driving

Thank you @batFINGER very helpful, as always

Cheers. Initially closed as  a dupe, ... changed mind after looking at answer script which will do nought if there are no variables, which is often the case with use_self or when using frame or other vars known to namespace.  Closing is no big deal tho, more in re to linking alike questions.

Totally agree, I believe answers to both questions are helpful

Use f_curve.data_pathand f_curve.array_index to get the property index in case of vectorized properties (like location, scale, etc.)
import bpy

if bpy.context.active_object and bpy.context.active_object.animation_data:
    for d in bpy.context.active_object.animation_data.drivers:
        print(bpy.context.active_object)
        print(f"Driven property : {d.data_path}")
        print(f"Property index : {d.array_index}")

Example :

Great answer, thank you


text:
Copy Output Properties settings among scenes
I have a file with about 40 scenes, now I need to change the output settings, the format resolution, the frame rate, the output format ... etc.
Is there a way to copy the Output Properties from one scene to another, or all other scenes? So I can only change the destination folder for each scene manually?
I tried Copy Render Settings add-on, I just couldn't use it, it's either not working, or I really don't get how it works.

This should copy pretty much all properties from the current scene render settings to all the other scenes in the file :
import bpy

render = bpy.context.scene.render

def copy_struct(source, target):
    if not source or not target:
        return
    for name, prop in source.bl_rna.properties.items():
        if name == "rna_type":
            continue
        try:
            setattr(target, name, getattr(source, name))
        except AttributeError:
            new_source = getattr(source, name)
            new_target = getattr(target, name)
            if hasattr(new_source, "bl_rna"):
                copy_struct(new_source, new_target)
        except TypeError:
            pass

for scene in bpy.data.scenes:
    if scene == bpy.context.scene:
        continue
    render_current = scene.render
    copy_struct(render, render_current)

I had a funky error with a stereoscopic property so you shouldn't use it if you're using stereoscopic camera in your scene.
I'd advise saving your file beforehand because this is a bulldozer approach and might break some settings... Prefer the other answer if you want more targeted properties to be copied over.

Thank you for your answer, this is exactly what I was looking for!

I extended the script to use each scene's name as the output file name, I posted the edited script as a separate answer below.

You can do this by simple script like this:
import bpy

current = bpy.context.scene

for s in bpy.data.scenes:
    s.render.filepath = current.render.filepath

If you run it from a text editor, it will copy the output path from the current scene to others.
render.filepath you can get by enabling developer extracts in user settings and then clicking on property that you want to copy and select in context menu "Copy data path". So, to copy frame rate get data path and add line like this with same indent:
for s in bpy.data.scenes:
    ...
    s.render.fps = current.render.fps

For this question, the accepted answer posted by Gorgious was exactly what I was looking for, however, later on, I extended the functionality of his script to use each scene's name as the output file name, rather than copying the file name of the current scene to all other scenes, if this is the case for you, use the edited script below:
import bpy
# importing os is part of the edited script
import os

render = bpy.context.scene.render

def copy_struct(source, target):
    if not source or not target:
        return
    for name, prop in source.bl_rna.properties.items():
        if name == "rna_type":
            continue
        try:
            setattr(target, name, getattr(source, name))
        except AttributeError:
            new_source = getattr(source, name)
            new_target = getattr(target, name)
            if hasattr(new_source, "bl_rna"):
                copy_struct(new_source, new_target)
        except TypeError:
            pass

for scene in bpy.data.scenes:
    if scene == bpy.context.scene:
        continue
    render_current = scene.render
    copy_struct(render, render_current)
    # The following lines are part of the edited script
    # Change .png in the third line below to the file type extension you're using
    scn_name = scene.name
    output_path = scene.render.filepath.rsplit("/", 1)[0]
    scene.render.filepath = os.path.join(output_path, scn_name + ".png")


text:
How can I change the snapping?
I put snapping on, but would like to snap objects with increments of .6 meters(60 cm). is there a way to change the snapping? I am working with lego bricks I brought in from Ldraw. Since ldraw automaticaly snaps to lego increments I need to change the snapping increments in blender.

The new "absolute" snapping mode in 2.76 should do the trick. Press n, look in Display, set the grid scale to what you need, and it'll snap to wherever the grid is.
Hope that helps!
http://oneminutevideotutorials.com/absolute-grid-snapping-in-blender-2-76/


text:
Combining low poly cone and disc
I have these two low poly objects (cone and disc) that I would like to combine into a single mesh while still maintaining somewhat low poly count and good topology. Is there a simple way to do this? If not, can you suggest a method to achieve this? Boolean union will create erratic polygon topology.

What would the disadvantages for you in keeping it as it is? You cannot perform cuts without increasing the polycount in this case. Could you be more precise about what your target is, a bit of background ?It would be easier to suggest you a modeling advices.

The best way is to use Boolean, then connect the vertices in order to get rid of the Ngons.

I for myself always try to connect objects in "a clean way" whenever possible but there are many cases where objects just won't fit in a way that justifies the effort for the sake of that rule.
While you can certainly split your geometry on both objects it's not the best thing to do here, because

you will increase your vertex count unnecessarily nonetheless
your topology won't get cleaner.

In the case of your model I'd just keep the objects as they are. If however you still want them to be connected I would rotate the disk so that the cone meets a flat part of the disk's edge and then rotate the cone so that the loop cut of the disk hits one of the cone's edges. It then should be at least a little easier to connect both pieces.


text:
Blender 2.8 translate vertex using scaling
In previous versions of Blender I could translate vertices to the same coordinate as the cursor by enabling cursor transform orientation, selecting vertex to move, pressing S to scale, type the coordinate I wanted to translate along (X, Y or Z) and typing 0. The vertex would move to the same coordinate of the cursor (zero scale relative to cursor). This feature doesn't seem to work in Blender 2.8, or is there a way to enable this?

There is no much difference here between 2.7x and 2.8x versions. What specific action causes difficulty?

As I asked before, scaling with cursor transformation doesn't move a vertex. It does in 2.7. It does not in 2.8.

Double check this. Scaling in 2.8x works similar to 2.7x:

if you still have problem with it, provide more information and screenshots.

It does not work for me. I have imported my configuration from blender 2.7. I must have something not configured.


text:
Does the Network Renderer addon support multiple render layers?
I have a blender scene that has multiple blender layers that I would like to render using the network renderer. Are the slaves able to render out all the render layers and return the composited image to the master, or will I have to go look at the code for the addon to see if I can make this happen?

I just ran into an issue where it wasn't doing as expected. Tracked down my problem and thought I'd pass it along, since I noticed you were asking about similar issue and didn't get an answer. Hope it helps. http://blender.stackexchange.com/questions/65409/network-render-addon-compositing-issue/65420#65420

@Tony Thanks for the reply. I'm sure that would have worked well, but we decided to build our own system for the time being since the network render addon seemed a bit buggy. I really appreciate the response though, means a lot.


text:
Getting the 0,0,0 point in the middle of the cameras view
I apologize if this isnt in the right section, but I figured there would be some scripting involved to do this process.
What I am looking to do is get the 0,0,0 point to the middle of the camera. I would like to be able to maintain the angle at which the scene is at and not rotate the camera, but instead just have it so the 0,0,0 point becomes the middle of the cameras view.

Lets say this is the view after orienting the camera, and the 0,0,0 point is to the right of center in the camera view

I would like to be able to maintain the rotation of the camera that has been made, but get the view to snap so the 0,0,0 point is in the middle of the cameras view

Although the Track To constraint will always put the origin in the middle of the camera view, they will change the rotation of the camera, as it will stay fixed in place.
To keep the rotation we have to find a new location for the camera, presumably only moving within the camera's xy-plane, where it's viewing direction (the camera's z-axis) goes through the origin. This is a simple line-plane intersection problem:
Where is the intersection of the line l that goes through point l_0 (0,0,0) and the current xy camera plane, defined by normal vector n and point p_0?
l and n are the camera's z-vector, and p_0 is the camera's location.
import bpy
from mathutils import Vector

# get camera object
camera = bpy.context.blend_data.objects["Camera"]
# get camera viewing vector, which is also the normal vector of the
# camera's xy plane
cmat = camera.matrix_world
camera_z = Vector([cmat[i][2] for i in range(3)])

# this is the new center of the camera view
l_0 = Vector((0,0,0))
l = camera_z
n = camera_z
p_0 = camera.location

new_loc = (p_0 - l_0).dot(n)/l.dot(n) * l + l_0

camera.location = new_loc

If I understand your question correctly you don't need scripting to achieve this.
-create an empty at 0,0,0 and add a trackTo  constraint to the camera with that empty as target.
This will keep the camera always pointing at the origin .
You might have to pay with settings on the trackTo constraint to get it right.
Does that help?


text:
How to change colors
I was trying my best to make in intro for my YouTube channel. I wanted to to some background color changes along with some text color changes in beat with the music. I can't for the life of me find a tutorial for it. Any links/ advice?

I'm not sure how much information you can get from an audio stream in Blender, but you'd almost certainly use Python to set vertex colors (though I could imagine a setup using Cycles).

Have a look at the Animation Nodes addon or search for bake sound to fcurve


text:
Changing view modes in the view port
I've seen people doing this in many tutorials but non of them explained how to do it, clicking  Z  opens selectable buttons in the viewport around the cursor, something similar to Maya menus, I tried to click and hold  Z  but it kept toggling Solid and Wireframe, is this an add-on?  Anybody knows what's called?

It's an addon, it's called Pie Menus. You can activate it from user preferences -> addons

authors: Павел Хитько


text:
How to copy material settings from one object to another
I have a huge amount of image planes, each has a different image linked to the base color, the texture applied is a png with alpha, in order to make the alpha work in EEVEE I need to change the material settings Blend Mode to Alpha Blend, and Shadow Mode to Alpha Hashed, by default both are set to Opaque.I changed this for one of the materials, but going through this manually for each image plane is not pratical, is there a way to copy the material settings only without having to copy the whole material?

generally the way to do it is to select all the object, go in the settings, select the setting you want, and alt enter, but it doesn't seem to work for the Blend mode...

Are you sure about this method, I tried it for the Specular and still doesn't work

Here's a little script for you. Just select all the planes and run the script. (It assumes that each plane has only 1 material)
import bpy

for obj in bpy.context.selected_objects:
    m = obj.data.materials[0]
    m.blend_method = 'BLEND'
    m.shadow_method = 'HASHED'

Great, many thanks


text:
Magnetic field direction
I need to know if you can create three magnetic fields with orthogonal directions to each other, meaning one having it's direction on the x axis , one on the y axis and one on the z axis, the only direction I've found in blender field options is the z direction, can you create magnetic fields with different directions from the  z axis in blender?

Does it help if you rotate the empties themselves which have those force fields assigned ?


text:
"X Location" f-curve name and buttons disappeared
I'm working on a blender file. Some time in the last days something changed. Under the active bone's tree in the F-Curve window there are the names and some buttons associated to the f-curves of the action affecting that bone. I have, for example, X Location, Y Location, Z Location (if I inserted location into a keyframe). The problem is, X Location no longer show its name. Neither can I lock or disable that precise f-curve. I can, however, edit the keyframes of that fcurve.
Here is an image illustrating what I mean. All bones in the armature are affected this way and don't show X Location name.

By the way, in the properties tab of the F-Curve view, when I select the X Location curve, it states correctly its data path (i.e.: pose.bones["toeCtrl_L"].location, RNA Array index 0).
Any cues about how to fix or avoid this?

I'm truly shocked. The issue solved itself when I started working in another action. I don't consider this a real solution, so I leave the question unanswered for the chance that someone who really knows what's going on appears.

This appears to be a bug and so should be reported to the bug tracker instead


text:
Why is my uv unwrap deformed?
I am working on mesh for a window opening, but when I unwrap the mesh it is terribly deformed. I started rebuilding it and unwrapping each piece to see how they look before joining them all together. So here is my problem:
(It wouldn't let me post the pictures individually so I combined them into one image.)

Why is it deformed when I unwrap it? What have I done wrong?

convert it to triangles and it will be fine, Blender has difficulties with Ngons. After the unwrap you can make it ngon again. It's stupid I know.

You are using "N-Gons" , An N-Gon is a face with more than 4 vertices. You need to convert these to Quads, Or Tris to get a proper Unwrap, You can do this by using the Knife tool, Or by deleting the N-Gon and Applying the faces again.


text:
Multiresolution subdivisions are creating curves down the middle of my model
I am currently doing some character modeling and I decided to add a multiresolution modifier to my model. However, when I add subdivisions to my model I get a bunch of curves down the middle of it. My model does not have any of these curves without the subdivisions from the multiresolution modifier.  Can someone please instruct me on how to fix this?

Looks like you have internal faces down the middle (probably left over from a mirror modifier). Delete all the faces that are inside of your guy, they are on the center, right where the crease is.
You can easily remove any interior faces.

Tab into edit mode, make sure no part of your mesh is selected.
From the 3D view header Select > Interior Faces.
Switch to wireframe with Z and if you have any faces selected press X > Faces.


text:
Save rendered image before compositing without re-rendering
I have rendered an image. It took a long time to render it.
I also have compositing nodes. For clarity let's call the image after rendering "image A", and the final image after compositing "image B". I would like to tweak the compositing nodes without re-rendering. Now I can do it, because Blender is still running, but if I close and start Blender, image A will disappear, and I have to render again.
So I would like to save Image A now (in openexr multilayer format, with all the render passes), so that the next time I can put it into an Image input node, and tweak the compositing nodes without re-rendering.
I can save image B from the UV/Image Editor with F3, but I found no way to save image A - although it is still in Blender now. How can I do it?

That should be easy.. Either mute the node tree / plug the output from the render layer into the Composite node or choose Render Layer in the layers section in the UV / Image Editor..

@MrZak Thank you, actually the answer is even simpler - see my answer. Sorry to bother.

OK, I found it in the meantime. The EXR file of image B actually also contains image A, I just have to switch the "Layer" in the Image input node. I hope in the future this question and answer will still help somebody.

Also note that this will be possible only if that image is actual EXR (and Multilayer also).


text:
Blender 3 disable render locally in a specific view layer
In the outliner, filters, there are two icons for viewport visibility, one of them (the eye symbol icon) disables the viewport visibility locally, meaning for the current view layer, without affecting the other view layers, the other icon (the monitor display symbol) disables the viewport visibility globally, meaning it will be disabled for all view layers.
However, for the render visibility, there's only the global option (the icon that looks like a camera), turning this on for an object, will hide it in render in all view layers, I can't find a way to turn the render off locally for a specific view layer.

I found eventually 2 ways to do so, both methods work on collections, not objects, so you need to put the objects to hide in render in a specific view layer in a collection:
First way (not recommended): while in the view layer you're targeting, right click the collection you want to hide in render, then choose Visibility > Hide in Render. I marked this method as not recommended, because it has no visual indication whatsoever in the UI !
If you use this method, and send the file to a coworker, or if you visit it later, there's no way to find out visually that this collection will not render in this view layer, the only way to check, is to right click every collection in the scene, and check the visibility sub-menu.
Second method: Which might be obvious for most, but it definitely wasn't for me, is the collection's checkbox, uncheck it and this collection will not show in render, the downside, is that this check box is a master switch, it will hide the collection in the viewport too, but at least it provides a visual indication that can be spotted easily.
I'm posting this question and answering it because I spent a good couple of hours trying to figure out a way to do this, call it a brain fart, may be, but there's definitely a UX/UI issue here that looks inconsistent in my opinion. So hopefully this will save some people's time.

Hi :). You got it right. The collection checkbox is meant exactly for this - removing from view layers

@JachymMichal however it has a problem, quoted  "toggling a collection on and off resets the visibility of ALL objects inside the collection. They don’t remember their state, which IMHO is a huge bug in the outliner, but that’s another topic."

https://devtalk.blender.org/t/amending-view-layers-to-track-local-render-visibility/11624/2

well, that seems intentional :). you need to 'disable' the objects using the 'screen icon' which remembers the state

The screen icon is labled "Disable in viewports"! Is it related to render?

No, it relates to viewport visibility, but it doesn't 'reset' when you switch collections on/off, unlike the 'eye' icon :)


text:
Certain faces refuse to be selected, yet others on the same object slect fine
Certain faces refuse to be selected (as the arrows points to), yet others on the same object select just fine as you can see by the one face on the bevel edge that is selected. What am I overlooking!?

Have you tried clicking on/near the center dot of the face?

Ahhh.. LOL That worked.

Due to the way Blender detects selection, for large faces you sometimes need to click on or near the selection dot in the middle of a face to select it.