DialogBox (slider) with Modal Execution I would like to create a dialog box with a slider in Blender that changes orthographic scale of the camera when the slider is changed. My first problem is to call a popup and the modal operator at the same time. Currently Blender crashes every time I run the code. The second problem is that LEFTMOUSE is not quite right, rather let go of the leftmouse. Is there a command here too?

import bpy

class my_text_Class(bpy.types.Operator):
    bl_idname = "dialog.box"
    bl_label = "To start marker detection, click: OK (no input) Start = 10"
    user_iput: bpy.props.FloatProperty(name = "Change Camera Size to:")
    # bl_options = {'REGISTER', 'INTERNAL'}

    def __init__(self):
        print("Start")

    def __del__(self):
        print("End")

    def execute(self, context):
        if self.user_iput == "0":
            marker_detection()
        else:
            try:
                bpy.context.object.data.ortho_scale = self.user_iput
            except ValueError:
                print("Wrong input! Only floats are allowed as input Parameter!!")
                bpy.ops.dialog.box("INVOKE_DEFAULT")
        return {'FINISHED'}

    def modal(self, context, event):
        if event.type == 'LEFTMOUSE':  # Apply
            bpy.context.object.data.ortho_scale = self.user_input
        elif event.type == 'RIGHTMOUSE':  # Confirm
            return {'FINISHED'}
        return {'RUNNING_MODAL'}

    def invoke(self, context, event):
        context.window_manager.modal_handler_add(self)
        {'RUNNING_MODAL'}
        return context.window_manager.invoke_props_dialog(self)

if __name__ == "__main__":
    bpy.utils.register_class(my_text_Class)
    bpy.ops.dialog.box('INVOKE_DEFAULT')

Full examples at the bottom! (There's one for the "restarting" workaround and one for the "suspending" workaround)

Lets start with the second part:

'LEFTMOUSE' is correct, as that is your key. To check wether or not it is pressed, test for event.value.

if event.type == 'LEFTMOUSE':    # the KEY is left mouse
    if event.value == 'PRESS':   # the ACTION is pressed
        pass
    if event.value == 'RELEASE': # the ACTION is released
        bpy.context.object.data.ortho_scale = self.user_input

Now to the real meat: your first problem!

About the Problem:

This is a known bug. Sadly it's not dokumented.

The popup does a modal execution inside itself. The problem arises from the popup and the normal modal execution fighting for the modal execution (on the same running instance). After one of them finishes, it closes the operator on the other one. The second one therefore will take a nosedive.

This problem was pointed out by domlysz on blenderartists. They fixed it in 2016 (see task T48196) but it somehow reappeared later on.

Solution:

The correct solution would be calling window_manager.modal_handler_remove and temporarily remove the operator. OR to repatch blender. However modal_handler_remove doesn't exist, and patching ... someday.

So, lets get to the work-arounds: First consider if you need a set number of Interface-Popups or an undefined number of them. If e.g. you want one thing, have a popup, then do another thing and be done, you might want to use a bpy.types.Macro.
Macros are an undocumented feature of blender. They are basically operators, that allow you to chain other operators in a certain order of execution. If you do extrude-and-move and press escape, the (instantanious) extrusion is still there, just the movement was cancelled. You can read more at this question. Your workflow would be:

Create a (modal) startup operator
Create a popup operator
...
Create a operator for final stuff
Create a macro to run the operators above

A different workaround would be, to stop the modal operator and use a second operator for the popup: Finish the modal operator and start the popup-operator. The popups execute in turn restarts the modal operator.

Step-by-step:

Do some modal interaction.
Event "show some popup" happens:

Start popup, push props to popup and close modal.
Do some interface stuff, changing props.
Start modal, push props to modal, close popup.

Continue with your modal actions.

Notes:

While domlysz called the popup-operator inside the __del__ function, it seems to work fine from within modal. Just be sure to return {'FINISHED'} or {'CANCELLED'} straight after calling the popup.
If they exist, a modal operator will run __init__ before invoke and __del__ after finishing/cancelling.
Cancelling either the popup, or the modal operator will both stop your interaction.

Here's an enhanced example. The mixin simplifys transfering the properties (usefull for larger sets of properties). The double-asterisk unrolls a dict into variable assignements.:

import bpy

class ModalPopup_Props: # mixin to use in the modal and the popup
    myBool   = bpy.props.BoolProperty()
    myInt    = bpy.props.IntProperty()
    myString = bpy.props.StringProperty()
    __ModalPopupProps = ["myBool", "myInt", "myString"]
    def _props_as_dict(self):
        return {prop: getattr(self, prop) for prop in self.__ModalPopupProps}

class ModalPopup_Popup(bpy.types.Operator, ModalPopup_Props):
    """This will be callable from the search"""
    bl_idname = "test.popup"
    bl_label = "ModalPopup Popup"

    def invoke(self, context, event):
        return context.window_manager.invoke_props_dialog(self)

    def execute(self, context):
        bpy.ops.test.modal('INVOKE_DEFAULT', **self._props_as_dict())
        return {'FINISHED'}

class ModalPopup_Modal(bpy.types.Operator, ModalPopup_Props):
    bl_idname = "test.modal"
    bl_label = "ModalPopup Modal"
    bl_options = {'INTERNAL'} # Internal removes this from the searchbar

    def execute(self, context):
        context.window_manager.modal_handler_add(self)
        return {'RUNNING_MODAL'}

    def modal(self, context, event):
        # some dummy event. let's print the props.
        if event.type == 'LEFTMOUSE':
            if event.value == 'RELEASE':
                print(self._props_as_dict())

        # open the popup
        if event.type == 'SPACE':
            bpy.ops.test.popup('INVOKE_DEFAULT', **self._props_as_dict())
            return {'CANCELLED'} # or return {'FINISHED'}

        # cancel modal execution
        if event.type in {'ESC'}:
            return {'CANCELLED'}

        return {'PASS_THROUGH'} # (or use {'RUNNING_MODAL'} to block stuff)

def register():
    bpy.utils.register_class(ModalPopup_Popup)
    bpy.utils.register_class(ModalPopup_Modal)

def unregister():
    bpy.utils.unregister_class(ModalPopup_Modal)
    bpy.utils.unregister_class(ModalPopup_Popup)

if __name__ == "__main__":
    register()

Finally, one might think of suspending and updating the original modal operator.
Indeed this is possible using WinMan (the window-manager) as storage. However not by storing the operator in WinMan (blender would crash). Instead we use WinMan as a dead-drop for our passed values. The modal operator listens in, clears the dead-drop and resumes work. Note that if we fail to provide data, we'll be stuck in suspension, and depending on our type of suspension, blender will freeze. So in the popup we need cancel to provide an empty dict. The modal operator will update (nothing) from the empty dict, clear out the dead-drop and resume its work. Note that in this case, cancelling the popup will not cancel the modal operator (you might have the same buttons for it though, doing it in series). Try that by escaping the popup with rightklick vs escape.

Full example:

import bpy

class ModalPopup_Props: # mixin to use in the modal and the popup
    myBool   = bpy.props.BoolProperty()
    myInt    = bpy.props.IntProperty()
    myString = bpy.props.StringProperty()
    __ModalPopupProps = ["myBool", "myInt", "myString"]
    def _props_as_dict(self):
        return {prop: getattr(self, prop) for prop in self.__ModalPopupProps}

class ModalPopup_Popup(bpy.types.Operator, ModalPopup_Props):
    """This will be callable from the search"""
    bl_idname = "test.popup"
    bl_label = "ModalPopup Popup"

    def invoke(self, context, event):
        return context.window_manager.invoke_props_dialog(self)

    # this is run on cancellation.
    def cancel(self, context):
        if 'ModalPopup' in context.window_manager: # there's a running instance
            # we MUST(!!) provide data to the dead-drop or we'll be stuck forever
            #    so we just give it an empty dict. The modal operator resumes
            context.window_manager['ModalPopup'] = {}

    def execute(self, context): # start the modal op
        if 'ModalPopup' in context.window_manager: # lets see if there's a running instance
            # we cannot get the running instance directly, so we'll dead-drop the data
            context.window_manager['ModalPopup'] = self._props_as_dict()
        else: # no running instance? start one.
            bpy.ops.test.modal('INVOKE_DEFAULT', **self._props_as_dict())
        return {'FINISHED'}

class ModalPopup_Modal(bpy.types.Operator, ModalPopup_Props):
    bl_idname = "test.modal"
    bl_label = "ModalPopup Modal"
    bl_options = {'INTERNAL'} # Internal removes this from the searchbar

    def execute(self, context):
        print("Modal operator has been started")
        context.window_manager.modal_handler_add(self)
        return {'RUNNING_MODAL'}

    def modal(self, context, event):
        # Listening to the dead-drop. This MUST stay on top AND return
        # {'RUNNING_MODAL'} or {'PASS_THROUGH'} to "suspend" the operator.
        if 'ModalPopup' in context.window_manager:
            # get the dead-drop from our popup
            if context.window_manager['ModalPopup'] != "SUSPENDED":
                print("resuming Modal")
                for k,v in context.window_manager['ModalPopup'].items():
                    setattr(self, k, v) # read in our data
                del context.window_manager['ModalPopup'] # clear off the dead-drop
            else:
                print("Passing by, saying hi.")
            return {'RUNNING_MODAL'}

        # some dummy event. let's print the props.
        if event.type == 'LEFTMOUSE':
            if event.value == 'RELEASE':
                print(self._props_as_dict())

        # open the popup
        if event.type == 'SPACE':
            print("suspending Modal")
            context.window_manager['ModalPopup'] = "SUSPENDED" # setup deaddrop
            bpy.ops.test.popup('INVOKE_DEFAULT', **self._props_as_dict())
            return {'RUNNING_MODAL'}# otherwise space would call the searchmenue too.

        # cancel modal execution
        if event.type in {'ESC'}:
            return {'CANCELLED'}

        return {'PASS_THROUGH'} # (or use {'RUNNING_MODAL'} to block stuff)

def register():
    bpy.utils.register_class(ModalPopup_Popup)
    bpy.utils.register_class(ModalPopup_Modal)

def unregister():
    bpy.utils.unregister_class(ModalPopup_Modal)
    bpy.utils.unregister_class(ModalPopup_Popup)

if __name__ == "__main__":
    register()


Applying Edge Split Creates Double Vertices Whenever I apply the Edge Split modifier to any object within a .blend, it creates double vertices. This issue follows the model regardless of which version and format (.3ds, .dae, .obj) it is exported to. (I tested with a 2.71 Nightly, 2.72b, and a 2.73 nightly)

Have any of you had this problem before and if so, how can it be fixed?

This is exactly what edge split does, by definition.
Splitting one edge into two edges at the same location will make double vertices.


How to fix surface is not flat? I try Blender first time. there a problem. Surface is not flat. Please view attached file for more details.

https://1drv.ms/u/s!AuAcyL2kNiCPg7Z-0B-W61UGxhWk6Q?e=rk2ILF

Hide the bottom face and you'll see that you've got inner faces (a ring that goes all around), it messes up the faces normals, so delete them. Also flip the normals and delete the vertices that are almost overlapping.


When posing a rigged mesh I get really weird results So I am new to blender and I followed this tutorial to rig my arms model:
https://www.youtube.com/watch?v=R0xkPLAhFrY&list=PLKklF7YNi0lOM0C8r_L3JN3oTC6AY9iFE

After I parent my mesh with automatic weights and start rotating the lower arm, the hand mesh gets dislocated. Obviously, that's not what I want my arms to do, so my question is: how do I stop the hands from extruding?

I think, that it's somehow related to the way I modeled the arms or/and the way the rigging is done.

By the way, here's the tutorial I followed to draw the arms:
https://www.youtube.com/watch?v=Dm23eX8S3sQ&list=PLKklF7YNi0lOM0C8r_L3JN3oTC6AY9iFE

Here is my file:
https://we.tl/t-SwMYNsKu5x

The tutorial guy uses an older blender version, maybe that's the problem.

Thanks in advance

Go into weight paint mode on the object and select your "hand.L" vertex group. You'll see that the vertex group for hand.L is partially assigned on the geometry of the lower left arm. Remove that area from your vertex group. In the image below, that red on the lower arm before the wrist shouldn't be there for the hand.L group.

https://docs.blender.org/manual/en/latest/sculpt_paint/weight_paint/introduction.html

See how I have the upperArm.l group selected and lowerArm.l part of the mesh is light blue, that means weight for the upper arm is still assigned to the mesh for the lower arm.

Select the verts for lower arm and hand, with the upperArm.l group select, assign a weight of 0 to those verts for the upperArm.l group. That fixes the issue.


why left mouse select doesn't work When i chose to have left mouse as my select function it should work yet it doesn't it just rotates the camera around the right mouse select works fine but why doesn't the left one?

If you do have this issue go to your user preferences and change your camera controls mine was interfering with the left click select so I set it back to the normal middle mouse click


How to individually scale more than one face? I hope the images explain what I want to do, because English is not my language.

Here I have more images:

Activate the Pivot Point > Individual Origins option on the horizontal menu bar of your 3D view.

On your screenshot, the Median Point was the Pivot Point option selected, which means that the scale will take the median point between all your selected faces into account. Individual Origins will only take into account the center of each face or group of adjacent faces. And so on, if you select 3D Cursor, it will be the pivot point of your operation...


why do not have a " export uv layout option" when I unwrap a mesh I can't export it like the tutorials say. when I go to uv menu and look for the export uv layout.  that is supposes to be in top of show hide option is not there. is something i am doing wrong or is just blender?

If "Export UV Layout" menu is not available, check if the addon is enabled:

In "File" -> "User Preferences...",
In Tab "Add-ons",
Select the "Import-Export" category,
Check that "Import-Export: UV Layout" is enabled,
If not, enable it by checking the corresponding box (be sure to save your change by clicking "Save User Settings" button

Normally, the option is now available in the UVs menu.


Save a mesh posed with armature I have a mesh parented to an armature with animation. I wonder how I can export the mesh from blender at any pose I want, and if there is an option to save these poses in my blend project so that I can save the mesh deformations at certain poses and then delete the armature. If anyone could please advise.

To store reusable poses you can use pose library this would still require a rig to restore.

When you export to e.g. to a .obj-file you could store the mesh in different fixed poses without the armatures.


How to render the black lines at the edges of an object? How to render an image like this with black lines ?

Image taken from the following faceboock page: https://www.facebook.com/glenyrenner/posts/1308258389303606?pnref=story

It is called Freestyle Line style

Add a base color and in the Render -> Freestyle (tick mark)

If you want to change the color of the stroke (line)
Under Render Layer -> Freestyle Line style -> color -> Base color (change the color from black to any color)

Hit F12 to render after finishing the render wait a second to complete the Freestyle Line style render and you can see a outline of the color.


B-Bone not displaying as box but instead displaying as sticks I'm having a bit of difficulty with armature displays.

I've selected B-Bone as the display which I know is supposed to make bones look like boxes but instead they're appearing very thin like the stick display. I thought it was because I somehow accidentally re-sized the thickness of the bones so I tried tampering with it with ctrl + alt + s and such but that didn't seem to work. Here's an image of how it looks.

If I could get any sort of help that would be great! Thank you all in advance.

[edit]

here's the .blend file

ctrl alt S works, it's just that your bones are very very thin, so scale several times.


Where to find custom created Grease P. Brushes? (2.80) Where to find custom created Grease P. Brushes? (2.80)
So, I’m pretty sure I created a couple custom brushes, but I don’t see how to go to them now :(

Thanks guys

Thank you for trying Yash, but I can tell you were only guessing. Why? Because both guesses are wrong. And because I found where it really is.

This is how it is really done:

It's easy to overlook because the icons representing the brushes look the same, and have almost the same name. Although the complete name of the last brush is "Draw Pencil.001" but it would only show in the upper left corner of the image above, where it says "Draw Pencil" now.


Un-weighted painted vertices moving with bone I am trying to rig my model and need to weight paint the bones to the proper body parts. I chose to parent my model to the rig using empty groups, but after adding weight paint to, for example, the leg, this occurs: https://gyazo.com/7a71be9641c3366da4dde5027e725459 .

Could this be because I haven't finished weighting all of the bones? Why is this occurring and how do I fix it? I apologize if this has already been asked.

Try checking to see if any child bones (bones which move when you move the "parent" bone) of the bone you are moving have weight on the problem area.


Issue with bending mesh by using armature I'm a very new in Blender.
I'm modifying Universal studion template from this tutorial:
https://www.youtube.com/watch?v=MzzKW8qAkRE
I have a Mesh in the shape of the "O" letter. It looks perfect by it self.

But if it is connected to the Armature some bends appears on the letter surface:

I've tried to play with some mesh modifiers. But no luck - just messing the model.
I guess it might be something with surface properties but I'm not sure which one.

Would you please be able to help me to figure out what is causing the issue?

So let's say you want the letter to be deformed. In that case you can parent With Automatic Weight, your topology is good so it is supposed to get nicely deformed by several bones, so you don't have to reparent.
There are 2 main problems in your current file though:

The Subdivision Surface modifier was above the Armature. Put it below:

Your bones kept bending badly. So at first I tried to give some corrections in Weight Paint mode but wth? it didn't fix it. Actually it's because even though your bones are displayed as Octahedral you've segmented them (which you can only see if you display your bones as B-Bones), and you've only segmented twice the second bone, the one that mainly controls the letter. 2 is not enough, it will break the shape, so increase the value and it will work fine:


Fluid Animation have dragged me through blood and sweat I've been trying to animate fluid simulation from past 3 days, and i've failed. Sometimes inflow object didn't emit fluid, tho it was set correctly, sometimes fluid was  c o m p l e t y  ignoring my collision object. But today miracle happened and everything is working as expected, my particles instead of something that represent uv sphere are 2D squares(??) despite the resolution is set to 128.
Also my cup is dripping a bit (no it ain't bruised). I encountered Xylvier's guide (Jesus what a good man) I am trying to fill a bottle with Liquid that did not help me tho.

My beautiful squares:

And link to download whole project:
My Project on Google-Drive

Edit, now when i created new folder to export my blender file, squares transformed to giant uv balls.

Also, i don't know why it is laggy.
Every form of help really appreciated.

Solution for Particle size:

Go in the domain cube and select the particle system that is generated in there (Liquid needs to be active in the domain for the particle system to show up!).
Find the Viewport Display Panel and change the Size to 0.001m instead of the 0.01m it was.

There seems to be something that sets the particle size back to 0.01m everytime. Did not happen in a new scene, but i do not know what settings or buttons where pressed in the run of creating the entire scene.

Solution for the cup:

Create a duplicate of the cup, you can call it "Simcup".
Remove all but the inner walls, also the subdivision surface modifier can be set to 2 for both, render and view. It's also a good idea to make the Simcup a child of the original cup, so it sticks to it.
Add a solidify modifier and set the thickness to 0.015m

To have the simcup not disturb the render and or viewport, go in the Object Properties and there to the Visibility and deactivate the "Show in Render", then in the Viewport Display deactivate "Shadow" and set Display As to "Bounds"

Now remove the Fluid simulation from the cup. The simcup on the other hand keeps it, as it was copied when you duplicated it.
The Sampling Substeps seem to be a good value with 5 and the Surface Thickness worked well with 0.01

Suggestion for the inflow:
The cylinder was to big and caused the cup to always be flooded and overfilled.
Adjusting it down a bit and reducing the time the inflow is open helps a lot.

And finally the domain, aside the fact that it can be scaled down (in edit mode please), you can change settings and try on Replay mode, for that it's best to set the time on 1 and then deactivate and reactivate the Fluid modifier visibility, seems to be a lot better then deleting the cache every time. Learned something new here too :)

One setting to consider is the Diffusion, where you can use the preset water.

After clicking on the "Water" entry you have to move your mouse out of the popup.
Also, make sure to set the Real World Size value to the right size.(I scaled the cube down and used the longest side Z)

If you want to start the liquid inflow at a certain time, you can save yourself a lot cache by starting the simulation at that time, though the keys for the inflow you had already set, i started at 1 for convenience while testing.

So try and test around until you are happy and once it's looking fine, you can increase the resolution for more details if needed, then switch the "Domain Cache" Type to Final and press Bake All.

Updated with little explanation:
The Domain in regards to liquid simulations takes the place of the liquid itself, but only for the time it is simulated as mesh. So if the simulation is running from frame 1 to 100 you must expect the domain cube to show up again from frame 101 onward. That problem can usually be solved by giving the simulation a bit more time to settle and then exchanging a still of the simulations last frame with the domain. The Object used for the inflow can be set invisible after the simulation is baked in mesh as the liquid will take it's place, except in case that the inflow is hidden anyway, like in a pipe or such.

Here two visual motivations:

Happy Blending


Matching Verts in 2 axis quickly I have deleted some faces and I wanted to create a new set of faces that run straight from some verts or lines. I have my side view here:

I have circled only 3 of the 10 verts thats I want to match up and then create faces using all my verts. Is there a way to get my verts to match up in the Z and Y axis but avoid the X axis quickly? Right now I work flow is this: Grab the vert to match > set cursor to selected > grab vert to move > scale vert in Z and Y to 0 > repeat x 10.

Is there an easier way to do this?

This was easier then I was making it. Don't create a line in the back. Just take the front verts and extrude them.


boolean not working (did remove doubles and flipped normals...) I've ran into an boolean problem, and even after trying several solution found online, I cant get it to work.

I've made some letters converted them to mesh, duplicated them, made those duplicates thinner and now want to cut  these from the thicker ones.

On two letters (S,E) it works. But the "T" doesn't.
I transformed both T-meshes to quads, removed doubles and flipped normals, but still its not working.

I've uploaded the file, and would be glad if someone could explain to me, how to fix that.:
http://www.lyzarr.com/stuff/help.blend

thanks

your "carving" T shape has some mesh issue: here in face select mode I circled something surely wrong...  (front and back of the shape)

it should be just that. no, wait also the base mesh has similar issues in the "T" mesh island... (front and back of the shape)


Cannot get noise free realistic render in blender cycles I am a beginner modeler, trying to get realistic result. I have tried my best but i cannot remove the white spots from my scene in cycles. Lighting is not looking realistic. Please help me how can i do that i have also attached link below.

download file here

1. Read: 7 Ways to Get Rid of Fireflies Once and For All

List of the techniques explained in the article:

Use Bigger Light Sources
Use Bigger Shadow Sizes
Use "Multiple Importance Sampling" for HDRs
Use 'Filter Glossy'
Check "No Caustics"
Use "Clamping"
More Samples

2. Read: Using Portals to Accelerate your Render Times

For an interior scene such as yours, Portals can make a big difference. Portals tell Blender to only channel the environment lighting through a specific area (like a window), which makes for faster, cleaner renders.

3. Learn about the new Denoising feature.

Grab the latest version of Blender (currently 2.79 Release Candidate 2). This includes the new Denoising feature, which works wonders. So after you have done Step 1 and optimized your settings, this is how you can really polish it all up.

※ Note that if Progressive Refine is enabled, Denoising options will be grayed out. Learn more


How do I cut up a 3D object into separate pieces I have here a 3D piece of glass which I need to smash in Unity. Is there an easy way of cutting it in Blender into separate pieces? As you can see I have started cutting on one side but can't separate with both sides of the cut having faces and when Unity doesn't see a face it leaves a blank space.

Cell Fracture AddOn: Cell Fracture AddOn.  I'm pretty sure this is in Blender by default, but you may need to enable it in the User Preferences, then select the object, then bring up the Toolbar on the left of the 3D Window that you have the object selected in by pressing T, select Tools/Edit pane, then select Cell Fracture.

Or Fracture Modifier build (not an AddOn or plug-in) from Dennis Fassbaenders web site: Fracture Modifier Blender Build.  Explore that site too see if it's what you need.

Or do it all manually for complete control.


How to update 2d-shader coordinates when camera moves I'm drawing some lines using a 2D_UNIFORM_COLOR shader based on object location. When I rotate my view, the lines update only when the rotation is done: I thought that I can just put a function that updates my coordinates in modal() but this didn't work. So I wonder if there's a way to update the regions while the view is rotated?

P.S. I realise that a 3d shader would work better for drawing axes, but axes here is just an example
My code:
import bpy
from mathutils import Vector
import bgl
import gpu
from gpu_extras.batch import batch_for_shader
from bpy_extras.view3d_utils import location_3d_to_region_2d

def draw_callback_px(self, context):

    # do I really have to create a separate shader for each line? Ugh

    shader_X = gpu.shader.from_builtin('2D_UNIFORM_COLOR')
    shader_Y = gpu.shader.from_builtin('2D_UNIFORM_COLOR')
    shader_Z = gpu.shader.from_builtin('2D_UNIFORM_COLOR')
    bgl.glEnable(bgl.GL_BLEND)
    bgl.glLineWidth(2)

    v_x = (self.axes[0] - self.ob_location).normalized()
    v_y = (self.axes[1] - self.ob_location).normalized()
    v_z = (self.axes[2] - self.ob_location).normalized()
    batch_X = batch_for_shader(shader_X, 'LINE_STRIP', {"pos": [self.ob_location, self.ob_location + v_x*100]})
    batch_Y = batch_for_shader(shader_Y, 'LINE_STRIP', {"pos": [self.ob_location, self.ob_location + v_y*100]})
    batch_Z = batch_for_shader(shader_Z, 'LINE_STRIP', {"pos": [self.ob_location, self.ob_location + v_z*100]})

    shader_X.bind()
    shader_X.uniform_float("color", (1, 0, 0, 0.2))
    batch_X.draw(shader_X)

    shader_Y.bind()
    shader_Y.uniform_float("color", (0, 1, 0, 0.2))
    batch_Y.draw(shader_Y)

    shader_Z.bind()
    shader_Z.uniform_float("color", (0, 0, 1, 0.2))
    batch_Z.draw(shader_Z)

    # restore opengl defaults
    bgl.glLineWidth(1)
    bgl.glDisable(bgl.GL_BLEND)

class ModalOperator(bpy.types.Operator):
    """Move an object with the mouse, example"""
    bl_idname = "object.modal_operator_test"
    bl_label = "Simple Modal Operator Test"

    def modal(self, context, event):
        context.area.tag_redraw()

        self.update_region(context, event)

        # Navigation
        if event.type in {'MIDDLEMOUSE', 'WHEELUPMOUSE', 'WHEELDOWNMOUSE'} or event.alt:
            return {'PASS_THROUGH'}

        elif event.type in {'RIGHTMOUSE', 'ESC'}:
            bpy.types.SpaceView3D.draw_handler_remove(self._handle, 'WINDOW')
            return {'CANCELLED'}

        return {'RUNNING_MODAL'}

    def invoke(self, context, event):
        self.ob = bpy.context.view_layer.objects.active
        if not self.ob:
            return {'CANCELLED'}
        self.update_region(context, event)

        args = (self, context)
        self._handle = bpy.types.SpaceView3D.draw_handler_add(draw_callback_px, args, 'WINDOW', 'POST_PIXEL')

        context.window_manager.modal_handler_add(self)
        return {'RUNNING_MODAL'}

    def update_region(self, context, event):
        self.region = context.region
        self.rv3d = context.space_data.region_3d
        self.ob_location = location_3d_to_region_2d(self.region, self.rv3d, self.ob.location, default=None)
        self.axes = [location_3d_to_region_2d(self.region, self.rv3d, self.ob.location + Vector((1,0,0)), default=None),
                     location_3d_to_region_2d(self.region, self.rv3d, self.ob.location + Vector((0,1,0)), default=None),
                     location_3d_to_region_2d(self.region, self.rv3d, self.ob.location + Vector((0,0,1)), default=None)]

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

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

if __name__ == "__main__":
    register()

Edit: as I wrote all that is below, I just realized the question was explicitly about 2D shader...
You just missed to call
self.update_region(context, None)

from inside the callback, which is itself called at each drawing.
Though, as it is the calculation is not correct. You should use object world matrix (see the previous answer).

Previous answer (I don't delete it as that could be useful):
As you want to move during the operator, you are in 3d, use:
gpu.shader.from_builtin('3D_UNIFORM_COLOR')

instead of:
gpu.shader.from_builtin('2D_UNIFORM_COLOR')

Also, in this case, use POST_VIEW, as indicated in the documentation.

draw_type (str) – Usually POST_PIXEL for 2D drawing and POST_VIEW for
3D drawing. In some cases PRE_VIEW can be used. BACKDROP can be used
for backdrops in the node editor.

self._handle = bpy.types.SpaceView3D.draw_handler_add(draw_callback_px, args, 'WINDOW', 'POST_VIEW')

One shader is needed.
You can start from object axis and convert them in world space:
def draw_callback_px(self, context):

    obj = context.active_object
    mat = obj.matrix_world

    shader = gpu.shader.from_builtin('3D_UNIFORM_COLOR')
    shader.bind()

    bgl.glEnable(bgl.GL_BLEND)
    bgl.glLineWidth(2)

    origin = mat @ Vector((0, 0, 0)) #Convert coordinates in world space
    x = mat @ Vector((2,0,0))
    y = mat @ Vector((0,2,0))
    z = mat @ Vector((0,0,2))
    batch_X = batch_for_shader(shader, 'LINES', {"pos": [origin, x]}, indices = ((0, 1),) )
    batch_Y = batch_for_shader(shader, 'LINES', {"pos": [origin, y]}, indices = ((0, 1),) )
    batch_Z = batch_for_shader(shader, 'LINES', {"pos": [origin, z]}, indices = ((0, 1),) )

    shader.uniform_float("color", (1, 0, 0, 0.2))
    batch_X.draw(shader)

    shader.uniform_float("color", (0, 1, 0, 0.2))
    batch_Y.draw(shader)

    shader.uniform_float("color", (0, 0, 1, 0.2))
    batch_Z.draw(shader)

    # restore opengl defaults
    bgl.glLineWidth(1)
    bgl.glDisable(bgl.GL_BLEND)


How can I copy the location and rotation of multiple bones of a skeleton and paste them to an identical skeleton? I need to change all the bone's location and rotation on the right skeleton to match with the left skeleton, but I'm hoping there's a better way than manually fixing each bone here. Thanks!

first select object which you want to be clone and then select the reference object and  use the script below:
import bpy

ref_ob = bpy.context.object
other_ob = [ob for ob in bpy.data.objects if ob.select_get()]
other_ob.remove(ref_ob)
other_ob = other_ob[0]

bpy.context.view_layer.objects.active = other_ob

bpy.ops.object.mode_set(mode='OBJECT')
for bone in ref_ob.pose.bones:
    if bone.name in other_ob.pose.bones:
        bpy.ops.object.mode_set(mode='POSE')
        other_ob.pose.bones[bone.name].matrix = bone.matrix
        bpy.ops.object.mode_set(mode='OBJECT')


Adding a random offset to drivers So I want to animate multiple "cables" (witch are curves), i want to animate the bevel start (or end) and add a random offset to this value. I could put some keyframes and offset them manually but i got a lot of curves.

Is there is a more efficient way to do it ?
Is it possible ?
Is it possible to create drivers for an object with pyton ?

I've made a blend file with my progress so far : curves+python blend file

Thanks for any help

Edit : I could create multiple cable object and add to each object a curve modifier (how to link it to one object ?)and offset them randomly (I know how to do it), and animate them.

Am using "Commotion Add-on" for random offset effects. That should be the best Add-on to handle that


Hide handles that belongs to non-selected vertices in the bezier curve editor I want to only see the handles for the vertex I have selected.

Can I do that?

I know how to hide all handles, but toggling them all the time is annoying.

As far as I know this isn't configurable at the moment.

One possible workaround is to tweak your current theme and dim the colors of unselected handles, or make them closer to say, the world color or viewport background, so they are less visible or intrusive, though they will still actually be visible and selectable.

It is only a workaround, and you have to manually tweak colors for every handle type manually, it would no longer really work once your background color changes, but if you always use the same theme or don't activate the World Background option often, this should not be a problem.


How can I distort a gradient along an axis? I would like to distort the gradient like the red lines in the image below:

You can use a Noise Textures Fac as input to the texture coordinates of the Gradient Texture to get some smooth random distortion:


when move my camera, it doesn't orbit like it should do when  move my camera, it doesn't orbit like it should do. Instead it moves like you move your head. Also, when i do ctrl alt numpad 0 (cmd alt numpad 0 on mac i assume) it doesn't snap the camera to the current view if i'm in view mode or camera mode.

To rotate the view around an object follow these steps:

ALT + MIDDLE CLICK on the object you want to rotate your view around
MIDDLE CLICK (keep pressed) and move the mouse to rotate the view

Please note that the viewport view is not the camera view (but you probably already know it)


Attach vertices of a mesh to another mesh's vertices I'm currently trying to put a cap at the end of a shirt sleeve to hide the inside (imagine the blue cube is the sleeve and the purple face is the cap):

The sleeve is cloth simulated and there seems to be no way to include the cap in the simulation without it participating in collisions (I don't want the cap to collide with objects). As such, I have to separate the cap from the sleeve. This presents a new problem because now the cap won't stay attached to the sleeve. I want to attach the vertices of the cap to those of the sleeve's so it moves along with the sleeve when it deforms, like this:

Is there a way to attach the vertices of one mesh to another mesh's vertices?

Actually, I ditched Hooks and used Armature approach due to easier maintenance. Result:

General idea, lower cube is parent, upper - child:

To do so, add Armature object and create bone in edit mode right at the desired point of a control/parent object.
Add new vertex group and name it after corresponding bone.
Add Child Of constraint to the bone and select parent object as target and vertex group for geometry control. Click Set Inverse to eliminate excessive offset.
For a child object (upper cube) also add vertex group with the same name but another vertex. Both objects in edit mode:

Final step - add Armature modifier to the child object and choose armature object.


Particle render: first frame has huge motion blur, other frames are fine I have a scene with motion blur enabled, and some particles emitted from a volume. The particles only move very slowly; they're basically static (no new particles over time).
I've baked everything, and when I render all the frames look fine except the first one, which has long motion-blur trails.
I use motion blur with 50% shutter and "centered on frame". If I switch to "starts on frame" everything is fine. Is this a bug, or am I doing things wrong?
Blender 2.91 nightly, but also happens on 2.83.
Test blendfile here. Load it, render frame 1, you'll see long motion blur trails. Render frame 2, it's OK. Then go back to frame 1, set Scene > Motion Blur > Position to Starts On Frame, and re-render frame 1: all OK!

Start to render from frame 2 and you are ok
(I can't find the "starts on frame" setting)
"Start on frame" means that the shutter opens at the start of the frame and closes after the % of 1 specified in the "shutter" attribute.
The problem is that there are no particles at Frame 1.. first emission particles show up at 1,00000001 frame.
that's why you have blur on first video frame.
Don't know why the first static render is ok.


Subdivision Mesh Color Editing vertices, faces and edges becomes difficult post subdivision. While I understand I can toggle off the subdivision during editing, it would be beneficial (to me) to be able to change the theme of the generated subdivision mesh as to decipher between it and the object's original mesh.
TL;DR: Is it possible to change the subdivision generated mesh color?

You can change "wire" or "wire edit" colors in the preferences:

To clarify, "wire edit" is the color for the editable part of the mesh.
For instance pink here (as this color does not or few overlap with others):


How to raycast a list of heights with ray cast I need to reproduce what the shrinkwrap modifier does but without creating geometry.

I have an xml containing a list of locations "Seat" (x,y,z) in world space and I need to loop through them projecting each one, (only in z axis) onto a mesh given by an object. Once they are projected I need to rewrite the xml with the new locations.

So, I'm struggling with the raycast, I manage to make it work but I really don't understand what I'm doing, let me show you what I have right now:

def conformHeight(tree, filename):

    for venue in tree:

        for Sector in venue.findall('Sector'):

            for Seat in Sector:

                # Get Position Data
                posX, posY, posZ = float(Seat.get('px')), float(Seat.get('py')), float(Seat.get('pz'))

                obj = bpy.context.object

                def ray_cast():
                    location = obj.ray_cast(posZ, (0.0, 0.0, 1.0))

                    return location

                loc = ray_cast()

                print(loc)

In the ray_cast() I'm not sure where to add the selected object over which I want to project the locations neither to get in return the hit locations.

I have searched all over the internet and all the info I find is very confusing as mostly refers to camera ray tracing.

How should the function be written?

Object.ray_cast takes three parameters: origin, direction and an optional maximum distance.

The parameters origin and direction should both be lists/tuples of length 3 or mathutils.Vector, e.g.

sol = obj.ray_cast((posX, posY, posZ), (0, 0, 1))
location = sol[1]

If you're not sure about whether the original surface is below or above the target, you might want to offset the origin in the function, e.g.

origin = Vector((posX, posY, posZ))
direction = Vector((0, 0, 1))
sol = obj.ray_cast(origin - direction * 100000, direction)
location = sol[1]

Additionally, you have to keep in mind that ray_cast uses local space coordinates. If your target mesh is translated or rotated, you have to convert origin and direction from world space to the target's coordinate system first, and maybe convert the result vector back to world space afterwards. Or you temporarily create a copy of the object with transformations applied so that world space and local space are the same and then cast with the temporary object.


Blender2.8 freezes when using smooth brush lastly I can't work properly, after few strokes with smooth brush blender just stops working for like 5-8s, it happens very often.

My specs:
System Windows10 64bit
16GB RAM
processor Intel core i7-8750H 2.20GHz
Graphic card GTX 1070

I usually work on like 1milion faces without dyntopo.
My pc can handle these models in edit mode, but smoothing in sculting mode is lagging, please I need help

Already tried:
Reinstalling Blender 2.8 to newest version,
Decimating my model to at least half polygons count,
Also for some reasons I can't open my model in 2.79 version, even without UI loaded.

I have the same issue but in multires. Using airbrush stroke method instead of space increased performance.


How to identify missing collections by Python? I found a solution to the library link through other question, but I haven't found a solution to the collection link yet, so I wrote this more specifically in this question.
If the name of the collection in the library changes, the blend file on the side you are referring to shows that the link is broken. When opening the file, the info editor informs you of the missing collection and you can also check the torn paper icon in the outline.
I want to identify these missing collections using Python. Is there an API related to missing collectoin?

Read from the original
For example sake have library "xxxx.blend", in it I have renamed a collection from "OLD" to "NEW", the previously linked collection "OLD" is in my blend but broken.
All the collection names in the library.
>>> lib = D.libraries['xxxx.blend']
>>> with D.libraries.load(lib.filepath) as (data_from, data_to):
...     data_from.collections[:]
...
['NEW']

All collection names in my blend linked from lib
>>> [c.name for c in D.collections if c.library is lib]
['OLD']

If it's the same collection, renaming and reloading does the trick.
>>> D.collections['OLD'].name = 'NEW'
>>> lib.reload()

.. or get rid of it
>>> D.collections.remove(D.collections['OLD'])

Careful note re above that linked collections can have the same name as an existing collection. So to use keying and be sure it is the one desired, add the filepath of the library
>>> D.collections.keys()
['NEW', 'NEW']

>>> D.collections['NEW', lib.filepath]
bpy.data.collections['NEW']

>>> D.collections['NEW', lib.filepath].library is lib
True

Use sets
For a more robust solution recommend using sets. Using example above compare the names in library
set(data_from.collections)

against
set(c.name for c in D.collections if c.library is lib)


Select all the faces with inverted normals I desperatly need to clean up some geometry that was previously moddeled in a CAD software. Is there a way to automatically select all the red parts so I can filp them?
Recalculating normals does not work and selecting all the faces with "L" will take forever since this is not the only object I have to clean up.

Edit: Select Similar -> Normal also does not work

If you select all and merge vertices by distance (alt + m) to avoid separate faces, you can then use Recalculate Normals function (shift + n outside, or shift + ctrl + n inside). If that does not work, it means there is simply no way for the algorithms to determine what the right direction might be - if for example you had a few separate planes in random orientations in the mesh of the object, there would be no way to determine what you want to consider the right direction for normals or even what would be consistent for all of the separate planes for your situation without you specifying that. In that case you need to manually select them and set the normals as you like.


Generating height map of group of objects I need to get a height map of many objects covering each other. It's exactly like the  Z-buffer. I need this to simulate a laser scanner output.

My scene looks like this:

I have seen some tutorials and understood I need to set texture to blend based on Z coordinate.  But I have not found a way, how to set the texture to all objects at once. I tried to use a group, but then I did not find any mapping by Z coordinate settings.

Could you please advice me? Is it even possible to get height map of bunch of objects? Is it possible to set texture to objects by python script? Some other ideas?

Set your camera above the objects looking straight down. In the Render Layers tab of the properties window make sure the Z pass is enabled.
The rest of the settings are just to speed up the rendering. I used a plain emission shader as the override material. I set the samples to 1, turned off the denoising and the "Use" options: "Use Environment," "Use AO," and "Use Hair."

Now If you look at the rendered depth pass it will look all white. However all the data is there. (A 32bit exr would show you it in other programs.)

In the compositer drop a Normalize node between the Render Layers Depth output and a viewer node to see what is really there.

Little side note. Notice the banding on the cube in this gif. That is why you should save the depth map using a high bit depth. If you use a normal 8 bit image it will not be able to store all the information and you will end up with stepped ridges instead of a smooth gradient along the different heights.


How to use transmissive voxels with color gradients? I'm still learning blender, and I had some idea to implement, but I'm unsure whether this is possible at all: Visualizing 3D colorspaces.
I did some Internet searches for examples, but could not find one, so here it goes:

Assuming I want to model the standard RGB cube, I could use a plain cube and generate the surface texture with some external program, and then apply the texture.
That would look OK from the outside, but actually I want to "slice" the color-space to find colored voxels inside.
Obviously the cube created that way will be "empty" inside.

So the questions are:

Is it possible to generate colored voxels in Blender as some gradient, interpolating colors (similar to PostScript's L3 Shading)?
If it's not possible to create in Blender, what is a preferable simple import format to create the colored voxels in Blender?
How can a "slice through" the color-space with an animation?
Did someone create typical color-spaces models in Blender already? If you have no idea what I mean, you might look at Example of a cut through a color-space

While waiting for an answer I created a template surface texture for an RGB-Cube for illustration.  Feel free to print, cut an glue ;-)

I want a "solid" cube with colored voxels inside, however, however.

You don't need volumetric shading to do this -  you just need to return where surfaces intersect a 3D texture space.

To make a solid color cube:

The Geometry node returns the 3D coordinates of the point being shaded in World space, measured in Blender units from World 0,0,0. As a first shot, all we have to do is plug the X, Y and Z values straight into the R,G and B values of the color of a diffuse shader. (The elements cast automatically from position XYZ to color RGB in the range 0 - 1, and clamp outside the range.)
But it would be nice to have  our X, Y and Z  measured from the origin of the cube, not the world, whatever translation, scale or rotation the cube is subjected to. The Vector Transform derives the (cube) object space coordinate from the world space coordinate, so you can move the cube around, and the color sticks to it. (The cube was made 1x1x1, with its origin at its minimum XYZ, when untransformed.)
The Math > Power nodes roughly map the linear coordinates to sRGB to display OK with my color management settings. 0 and 1 remain where they were, the curve between them is altered.. (gamma correction).
Cycles bounces light around the scene from one surface to another. Scattering of color between faces wasn't helpful, so the Light Path and Mix nodes make the material black, as far as the diffuse bounces are concerned (but not to the camera).

This shows the color cube with a Boolean modifier .. another (unrendered) cutting cube is taking a chunk out of it. You may see artifacts from the Boolean in the preview, but they don't appear in the final render.

A 'Voxel' representation ..

An applied array , 10x10x10, of small cubes in a 1x1x1 volume, whose origin is at minimum X,Y,Z.
Most of the details as above, but this time, to get per-voxel-cube  shading, using an Object Info node, which can return the world coordinates, not of the shading point, but of the origin of the currently shaded object. When that is plugged into RGB, each voxel-cube  is colored with the XYZ of its origin.
I can't think of a brief, general, way to measure those locations in another object's space. So as it stands, this one is sensitive to being moved about. You could obviously tweak by hand to deal with changing scale, other transformations, but.., I'll be posting this as a question myself. Suggestions welcome in the comments.


Cylinder Texture weird distortion I'm having issues with a texture map that I've created for the purpose of a cork. I'm pretty confident I did my nodes correctly, but my biggest problem is this isn't a big item and I don't really want to uv unwrap something that is going to be the size of a quarter. Any tips on why I'm getting distortion on the top of my cylinder ?

Smart UV unwrap might work, but this is how I would do it.

make a seam with Ctrl+E along one of the edges of the cylinder.
Select the circle edges with Alt+click (m1 or m2, however you have it set).  Mark that as a seam with Ctrl+E.
Select everything (if your cork is a separate object from the bottle).  Press U to unwrap.  You should get a rectangle and circle in the UV editor, position these how you want.

As a side note, it looks like you have a lot of fireflies.  You may want to follow this article: https://www.blenderguru.com/articles/7-ways-get-rid-fireflies.  In short, use a larger light source and use multiple importance sampling (properties/world/settings).


Assign camera to renderlayer Is there a workaround to assign a camera to a renderlayer?

I have multiple renderlayers (each with a different part of the scene). I would like to combine them into a single rendered multilayer exr. But I want to render each layer with a specific camera assign to the respective part of the scene.

I all else fails I will write a script to loop through the layers, activate a camera, render the image, save it and at the end combine the layers via the compositor. Or does a builtin method exist already?

I'm using Blender Internal with freestlyle and transparency.

Related: multiple camera renders into multiple images

As far as I know there can only be one active camera per scene
But you can make different scenes, each one with it's active camera and its own render layers..

To save resources, make a new scene linking data, then select an other camera as the active one for the new scene.

Mix both scenes in the compositor.


Are the technical details of Filmic available? I hope this question is acceptable here. I'm impressed by the results of Filmic in Blender, and I would like to do something similar in my own code, which is for processing photographs and doesn't use Blender. (My code is likely to be released as an open source project eventually.)

Because of this, I'm wondering if it's possible to learn the details of what Filmic does, in a form that would make it possible to re-implement it. Presumably that's possible by reading the source code, but that's a huge amount of work, and if the technical specifications are written up anywhere it would be very helpful to know them.

Alternatively (this might be wishful thinking), is it possible somehow to access Filmic's colour transforms from within a Python script, without working inside Blender? Then I could just use it directly instead of reimplementing it. Essentially what I want to do is take photographs, do the inverse of what Filmic does (i.e. convert them from pixel values to intensities of light), then process them in the light intensity space, then do what Filmic does to render them back as photographs with a realistic film response.

Blender is a package of view transforms created to convert Scene-Referred image data into Display-Referred values, using a large dynamic range and de-saturating the highlights so that they resemble images created on a film camera.

Refer to: Render with a wider dynamic range in cycles to produce photorealistic looking images

Blender's Color management is implemented through OpenColorIO (https://opencolorio.org/). That might be the place to start a journey that will take you down the rabbit hole of color.

The file with the rules used for color managenment can be found in
/blender/(blender version)/datafiles/colormanagement/config.ocio.

The definitions and stanzas on such config.ocio file are written to be interpreted by OCIO and determine how data is transformed, and if LUTs are used.

LUTs used for transformations are contained in the luts and views sub-folders within the color management folder.

How to make 3D LUTs and use them in Blender?

To use filmic, you would need an app that is OCIO aware. (Nuke, Mari, AffinityPhoto, Krita and others already use it, so there might be no need to re-invent the wheel).

Image data must first be converted to use Rec709/sRGB primaries, transformed to linear values, and then scaled to be real scene-referred data (or at least to fall within the range used by filmic).

If the image is generated on a camera, the de-saturation and conversion to display referred might have already taken place, so there might be nothing to be gained by using filmic, even when shooting raw. Filmic was intended for CG rendered imagery. It was meant to overcome the limitations of using sRGB transforms and to solve the non-existing cross-talk between color channels during rendering. Camera sensors and filters work in a completely different way to create images. The filters over the sensor, that define color, allow for some overlap of different frequencies, making the color saturation at the bright parts of the image more "film like".

Other kinds of transformations might be more useful than "filmic" for in-camera generated images .


Rigify rig can't move my mesh only rotate 2.79a For some reason I am unable to move certain parts of my mesh with the rig.

This is the default pose and it appears as everything is good.

However, when I try to move the arms or legs I am unable to do so. Example below:

I can still use the ball joints to rotate along the arms and move the fingers, head, torso like so though:

Your rig has two way of moving arms and legs: IK and FK; you can choose the behaviour using the IK/FK slider on the N properties panel.

In your case Ik is selected and you are trying to move the arm with the FK controllers, which are disabled.


Texturing: Adding black lines from geometry First time posting on the Blender stackexchange!
My question is regarding the black outlines on this wall:

Basically I'm trying to recreate something similar to the image in cycles (different materials assigned to geometry) and I wonder what would be a good technique for that. What I do now is assign a different color material for each of the panels on the wall (basically every colorful panel is a face of the wall mesh). A few ideas I have:

Adding additional loop cuts where the outline is and assigning a new black material to them.
Modeling the outlines separately as a plane and adding using shrink-wrap to stick them to the wall.
Using a mix shader and a mask with straight lines to determine where in each material the black line should be applied.

Basically my question boils down to: Can you somehow realistically blend between differerent materials on the same mesh, if they're right next to each other in cycles?
Any other ideas for this are welcome!
Thanks in advance!

I would just make a material with one section to handle the setting of the colors (I used a SeparateXYZ on the X followed by a ColorRamp), and then another section to make the "Trim" by using a Brick Texture with pure white fill-colors and a pure black mortar. Multiply the two together to copy the black from the trim onto the colors:


How do I make multiple things in the background the "ground and have them as "shadow catchers" I am building a scene with multiple planes in the background because I want to have the multiple planes working as shadow catchers except, when I put them in the background, they don't behave as shadow catchers because blender renders them out (in the background composite node) and, I don't have a texture on any one of them. How do I make them behave as such? Only the original "Ground" plane behaves that way.

You have different options.
Do activate shadow catcher in EACH of the object properties like this in CYCLES:

If you're on EEVEE, setup the shadow catcher MATERIAL to assign to all the objects you want to catch the shadow on, like this:

Alternatively, you can use holdouts to separate what you need but (trimming) the pixels to later compose. Activate the HOLDOUT option in the filter selection, and activate it at COLLECTION level for all your grouped (collection) elements.


How to complete this hole with the grid around it? Is it possible to fill this hole with a grid?

I tried with Grid Fill

With F fill (but no grid)

First start by making the hole match up with the underlying grid. In my case I Filled the two faces on each side, then deleted the one in the corner.

Now it is a simple matter of using the Bridge Edge Loops operator. Select the vertices along the two long edges, but not the corner vertices. Like this:

Run Bridge Edge Loops, either from the 3D view header Mesh > Edges > Bridge Edge Loops, or from the specials menu W Bridge Edge Loops. Wait! Before doing anything else open up the operator history (bottom part of the tool shelf or press F6). Change the Number of Cuts to match the topology (in my case it was three), and set the Interpolation to Blend Surface.

Ah that's looking better.

Last thing to do is fill the remaining holes. That is easily done in one step. Just select the edges (like I show in the image below) and run Bridge Edge Loops again.


How to copy animations to a rig with different bones? I've been creating small animations with a certain model for a while now but recently someone was nice enough to redo the rig and make it better. It's the same model with mostly the same weights and such except with more control bones and different names for the original bones.

I heard it was possible to copy animations from one rig to another if they had the same bones, my new rig is different from the original but is there still a way to copy animations from my old rig to the new one, any way at all?

Delete the bones from the model you want to duplicate your animated bones to. Then copy and paste the bones from the original armature and move it into the model. Then do the ctrl p and combine the two. After that if you play the animation you will see if it rotates that the rotation is much more major the farther away it is from the original armature not only will you need to delete the rotation but also the position. For it will move exactly in the spot of the original armature. The only thing that would work is scale keyframes. The others would simply not work when copied. The only possible way I believe is if you could re-calculate the x and y position to make it from go to x 30 to + 30 x. If that makes sense.


Weight painting in a fully established material So today I am working on a landscape that I will eventually animate in 4K, therefore I want to create a lot of detail.

I want to start painting in some nice detail near the river ( highlighted in red ) first.

I have some simple river rock textures and some grass textures like below.

So my question is:
 - Is there a simple way to paint several fully realized textures ( with colors and normals ) on to a singular plane?

Can't seem to figure it out and I have been at it all morning.

Thank you everyone!!!

Consider a mix shader node in your shader nodes where you can change the contribution of each texture. A texture can determine the contribution pixel by pixel.  Two standard standard textures linked to Two BSDF shaders linked to a mixed shader.  The relative contributions are mixed in a ratio specified by a hand painted texture.  Image above.

Texture slot in Texture Paint. UV Map. You can paint the grayscale image in either area when set up correctly.  My machine is currently having problems. Final Render Seems accurate. You may need to save your image edits frequently.

A render. Checkerboard texture wrapped around torus and musgrave texture visible in areas determined by the manually paint grayscale image.

You can paint a gray scale image to hold the contribution from a texture information.  You can also paint with a stencil in texture painting.

Attempt to accomplish a simple case first ... base color first .. then the texture color ... the value connected for the contribution is a gray scaled painted with texture paint.  Make the texture and nodes first then your texture painting work will be realtime live ... assuming enough gpu cpu compute power.

Please inspect and improve.  Currently I cannot get interactive updates on my machine.  Perhaps someone will comment on that.


How to turn off screencast mouse highlighter? I tried the Screencast function, and now this thing wont go away!! :((

Hit the dismiss button, labelled "Capture",  to the right of the render engine select box.


Why is my characters hand spinning in a circle? I am using Blender 2.8. I have been trying to make a character I just rigged dab (because it is a simple movement), but early in the video my character's hand spins 360 degrees along the Y-Axis in the frames between my two keyframes. I have tried rotating the final position 360 degrees in all directions, but the hand is still spinning in a circle. Why, and what could I do to prevent this? Here is the render. It is a short video, so I couldn't attach it to this post. Thanks for your help!

Edit:
Here is the *.blend file.

This is a very common error/mistake in the animation part of the blender. I am pretty sure that you have a keyframe with a value like '24' right next to another keyframe with a value of '384' (or some values like that). The keyframes are so close to each other and so different, that when they are played, they make the hand move super fast that way.
To fix this, I would delete the keyframes and remake them with smaller values.


Donut Icing doesn't seem to clip correctly I've been following the Blender Beginner Tutorial, but when I've reached the donut icing, there are weird darker pixels on it. Putting the Clip Start lower as he did in the tutorial only seems to make it worse, putting it higher only makes it limitedly better.

Scale the icing to be larger. If you used the solidify modifier, it's now intersecting with the donut. Or move the icing up. Or the solidify modifier wasn't 'thick' enough and it's intersecting with itself.


White background with filmic blender When I tried rendering the scene with white background in filmic blender, I'm getting grey coloured background. But I'm able to achieve this with standard colour management options.

P.s: I have edited light source to match the filmic blender.

Filmic blender uses  a different scale than sRGB, it is designed for a much wider dynamic range, so to get white it is necessary to increase the intensity of the light for that background.
The standard sRGB transform will display "white" when the scene values reach a value of 1

Using the filmic blender transforms, you need a much higher value. "White" is at a value of 16.19.

To visualize how the scene referred values are being mapped using the filmic blender you can use the false colour view transform.
To understand what filmic blender does and how it maps the scene's values to the displayed image please read the following link: Render with a wider dynamic range in cycles to produce photorealistic looking images
and https://github.com/sobotka/filmic-blender


How do I straighten out my loop cuts? In the image below all of my loop cut vertices are off track from each other. From a front ortho view they are placed very messy on the faces and are out of line with each other. How do I make them more in line with each other like the above loop cuts?

What I'm understanding is that you'd like to bring the vertices of the back face of your object to be directly behind the corresponding vertices of the front face, down global Y (since you are in Front view)

If the back faces are the same shape as your front faces, and shifted, (not rotated) with respect to the front faces, you can set your snap to Active and Vertex, select all the vertices you want to move, making a convenient vertex the last selected (and therefore active) and GShift
Y the vertices, snapping the active vertex to its counterpart in XZ.

If not, another possible move -

Select the back vertices, and (without Automatic Merge switched on)   G G slide them down their edges until they meet their front partners. (You may have to do this in more than one bite). Then  GY them to your required depth.

Or.. it may be more economical to delete the back faces, and make a brand new  extrusion in Y (EY).

It's possible that the result is not the one you're looking for..


Linking render visibility to viewport visibility in 2.81? While there may be cases when you want to render objects other than the ones you see in the editor, you more often need to prevent such difference and have in the render exactly the objects visible in the editor.

Is it possible to lock (meaning keep them in sync) visibility in render to visibility in viewport, so that you get what you see and don't need to search objects one by one to ensure you'll render all and only the objects currently in the editor?

Said otherwise how to keep in sync any pair of icons, at object level, at collection level, and whatever other levels if I forgot some. In sync meaning when one changes the other changes too, as if there was only one icon. In more conventional GUI, this lock is usually represented by a chain link icon:

Question for Blender 2.8.

By the way I don't understand why the active camera view doesn't show objects with render = visible, and rather show objects with viewport = visible. Camera views are supposed to be the ones which are rendered. So there is no way to preview what will be rendered.

I found half of the answer to this problem here:
Why are there non-visible objects in my final render?

You may paste the following code line to the Python Console (at the
bottom of the Scripting view) and hit return, to make the render
visibility match the viewport visibility automatically:
for ob in bpy.context.scene.objects: ob.hide_render = ob.hide

As someone pointed out, in blender 2.8+ you need to adapt the code to:
for ob in bpy.context.scene.objects: ob.hide_render = ob.hide_get()

This will only do it once though and not permanently link the two. If someone knows how to adapt this to link them continuously, that would be great!
EDIT:
I wrote a short add-on that syncs the render ports with the current view ports through the click of a button in the collections panel. You need to click every time you want to synchronise.

Installation
If you are interested, you can download the add-on here:
https://github.com/Nayunis/Blender/blob/master/sync_render_with_view.zip
Just copy the unpacked folder into the blender add-ons folder (something like C:\Program Files\Blender Foundation\Blender 2.83\2.83\scripts\addons)
Then you can activate the add-on within blender via:
Edit > Preferences > Add-Ons (in the left menu) and search for "Sync Render with Viewport" and tick the little box to activate it. Now the button should be there.


How to display render stamp outside the frame? How would it be possible to have the render stamp information displayed outside the frame and also how to customize their font, opacity and position like so?:

(Click the image for larger version)

Custom Render Stamp

(Click the image for larger version)
Based on this answer by Campbell Barton, I made a small very crappy script to put the render stamp outside the rendered frame by using the render border.
It sure could be improved by a million percent, but for my petty purposes it's good enough.
(Although, all improvement suggestions are of course full-heartedly welcomed!)

Installation

Download the Script and open it in the text editor
Adjust the settings to your liking
Press Run Script
Enable the Register option in the text editor (so it runs automatically)

Usage

Define the Monitor Aspect ratio in the script's settings. The script expands the frame vertically until the defined aspect ratio is met.

For example, if the Monitor Aspect setting in the script is set to 16:9, a 2048x858 (2.39:1) sized camera frame gets expanded (not stretched) vertically to 2048x1152 (16:9).
In other words, stuff gets added to the top and the bottom of the frame.

Define the Frame Resolution in the script's settings. The script resizes the render border accordingly.

For example, if the Frame Resolution is set to 2048x858, only that sized border render will be rendered out of the full 2048x1152 frame. The rest will be seen as black (or transparent) along with the stamp information.
In other words, the same amount of stuff gets removed from the top and the bottom of the frame and the stamp gets added.

If you change the percent value of the render resolution, run the script again in order to make the stamp's font size to adjust nicely to the correct size.

Download: custom_render_stamp.py

##############################################################
#                                                            #
#                   CUSTOM RENDER STAMP                      #
#                                                            #
##############################################################
#                                                            #
#                        Settings                            #
#                        --------                            #

# Define names to the render stamp:
Animator = 'Pedro'
Compositor = 'Fabio'

# Define the name of the scene:
Scene_Name = 'Scene'

# Define render frame resolution (without the stamp sections):
Frame_Resolution_X = 2048
Frame_Resolution_Y = 858

# Define desired full frame aspect ratio (stamp section size):
Monitor_Aspect_X = 16
Monitor_Aspect_Y = 9

##############################################################
#                                                            #
#                         Script                             #
#                         ------                             #

resx = Frame_Resolution_X
resy = Frame_Resolution_Y
aspx = Monitor_Aspect_X
aspy = Monitor_Aspect_Y

# For example 2048x858's height inside 1920x1080 (= 804)
#~ aspx / resx * resy

# For example 1920x1080's upper stamp section height (= 138)
#~ (aspy - aspx / resx * resy) / 2

# For example 2048x1152's upper stamp section height (= 147)
Stamp_Height = resx / aspx * (aspy - aspx / resx * resy) / 2

# Full frame height (= 1152)
Full_Frame_Height = resy + 2 * Stamp_Height

# Render Stamp:
import bpy
import socket

# Uncomment to automatically use the name of the current scene:
# Scene_Name = bpy.context.scene.name

def stamp_set(scene):

    render = scene.render
    Render_Percent = render.resolution_percentage
    is_cycles = (render.engine == 'CYCLES')

    render.use_stamp_note = True
    render.stamp_note_text = (
        "Samples: {samples}  |  "
        "Aperture Radius: {aperture:.4f}  |  "
        "Blender {ver} {branch} {hash}  |  "
        "Resolution: {res_x} x {res_y}  |  "
        "Animator: {anim}  |  "
        "Compositor: {comp}  |  "
        "Rendernode: {hostname}"
    ).format(
        samples=scene.cycles.samples if is_cycles else render.antialiasing_samples,
        aperture=scene.camera.data.cycles.aperture_size if is_cycles else "NONE",
        ver=bpy.app.version_string,
        branch=bpy.app.build_branch,
        hash=bpy.app.build_hash,
        res_x=int(render.resolution_x * Render_Percent / 100),
        res_y=int(render.resolution_y * (1 - Stamp_Height * 2 / Full_Frame_Height) * Render_Percent / 100),
        hostname=socket.gethostname(),
        anim=Animator,
        comp=Compositor,
        )

bpy.app.handlers.render_pre.append(stamp_set)

# Set Render Resolution Width:
bpy.data.scenes[Scene_Name].render.resolution_x = Frame_Resolution_X

# Use Render Border:
bpy.data.scenes[Scene_Name].render.use_border = True

# Render Stamp font size:
bpy.data.scenes[Scene_Name].render.stamp_font_size = 18 * bpy.data.scenes[Scene_Name].render.resolution_percentage / 100

# Set Render Borders:
bpy.data.scenes[Scene_Name].render.resolution_y = Full_Frame_Height
bpy.data.scenes[Scene_Name].render.border_min_y = Stamp_Height / Full_Frame_Height
bpy.data.scenes[Scene_Name].render.border_max_y = 1 - Stamp_Height / Full_Frame_Height


Exporting 3D models for dynamic texture changes on web We have received a few blender models which we want to make configurable by our users on the web. What is the best way to export the 3D model for this kind of operations? We were thinking the best way would be to export the textures for each part of the model separately and then apply them on the model as the user selects the materials, but we're not sure if that's possible.

The reasoning behind this is that the models have too many combinations which would be hard to export as a whole UV map for the model for each and every one. Also, the content is meant to be used on the web and a whole new UV map has approx. 5MB, whereas the part of the texture for e.g. sofa's legs is significantly smaller.

User would start with the default combination (default materials) and should be able to select the material on various separate parts of the model (example: wooden legs, red seat, etc.). After that, user can choose to open the configured model in AR View.

For all of this we're using the <model-viewer> web component by Google if that's any help. Thank you in advance.

The most popular format for web atm is GLTF, there is a Blender Addon for that.
Ofc. you cannot unwrap some vertices and ignore the rest, if you want separate UV Maps, you need separate objects (not files). Having an atlassed texture is always more perfomant than using multiple ones, not sure if that's an option in this case though.
It's probably easiest to separate the parts into different objects, use different materials on each part and set their textures individually.  if your UV Layout alone is 5MB, consider decimating your objects either manually or by using the decimate modifier.


The easiest way to move an object to 3D cursor What's the easiest way to move an object to the 3D cursor? The easiest way I know of is copying and pasting the coordinates in the right menu of the viewport. Is there an easier way to do it?

Select the object and then bring up the Snap-To menu with Shift+S and then choose “Selection to cursor”.

As mentioned by @JoanCharmant, Blender version 2.8+ allows you to right-click in the viewport to get a context menu that provides an easy way to get to the 'Snap' options instead of requiring the use of a keyboard shortcut. This option wasn't present at the time this answer was originally written.


How to add detailed engravings onto a curved surface in Blender for 3D-printing? In Blender I have a curved surface, only quads. Now I want to "engrave" the surface. See picture as example, but only with curved surface of object instead of flat.

Good example of how it should look printed

How to cut this out off the object?

What did not work:

boolean in various combinations. Tried making curves with triangle profile, putting them on a lattice for deforming them to shape and shrinkwrapping the lattice onto my object. Then booleaned curve with object and tried to delete all excessive faces.
Lots of ugly triangles.
Making only the outline of my desired engraving and knife projecting it. Then, having the outlines, extruding them into the object and tried scaling them. While this somehow seems to work a little better, I still have very ugly tris for subsurf and complex shapes do not really scale or offset well.
Trying to sculpt with Dyntopo enabled. Maybe there would be a way with a certain sculpt tool, but Dyntopo makes ugly geometry, too...

What do? Do I have to remodel the whole object and manually building all the complex engraving? Thanks for your time in advance.

Edit: I want to 3D-print this, so bumpmaps are not an option here.
Also please note that the engraving has to be CUT OUT of the object, not a curve put on. If by any means I could export my object into another freeware program or use another program altogether to more easily get the desired results, please let me know.

You could try and model it with Bezier Curve objects combined with a Shrink Wrap modifier.
Just model use a any bezier curve object, define any desired section and use it as bevel object.

Apply a Shrink Wrap modifier to the curve, but the important part is to activate the option Apply this and all preceding deformation modifiers on splines’ points rather than on filled curve/surface.

This will make it so the bezier control points are wrapped to the surface, rather than the final beveled geometry, so that the curve can be beveled live, but its thickness and shape is kept.

Then adjust and model as desired, you can use curve radius to make certain parts thicker or thinner.


Blender Python: Custom Enum Flags I've been trying to set up some custom enum flags. In my situation, there are two variables that I want to share the same enum type setup. So I would like the flags to be interchangeable between them. This is how I currently have it set up. For some reason, the controls do not show up when I draw them after moving the items into their own definition. They seemed to be fine when they defined their own items. Can anyone see where I'm doing this wrong? Or does a UI element just fail to draw when it uses "external" enum items?

def FBXG_Mode(self,context):
    items=[ ('GA', "Asset", "Game Asset"),
            ('LP', "Low", "Low Poly"),
            ('HP', "High", "High Poly"),
            ]
    return items

bpy.types.collection.FBXGSpawner : EnumProperty(
    name="File Spawners",
    options={'ENUM_FLAG'},
    items=FBXG_Mode,
    description="Info",
    )

bpy.types.object.FBXGBlocker : EnumProperty(
    name="Object Blockers",
    options={'ENUM_FLAG'},
    items=FBXG_Mode,
    description="Info",
    )

The reason my enums were not showing up was due to me changing my property definitions to use the ':' operator instead of '=', such as..

bpy.types.collection.FBXGSpawner : EnumProperty(

instead of..

bpy.types.collection.FBXGSpawner = EnumProperty(

I read that we are supposed to use the ':' operator in Blender 2.8+. If this is the case, maybe someone can help point out what else I may have done wrong to prevent properties from drawing. One of my simple drawing functions..

# draw object settings
def draw(self, contex):
    aobject = bpy.context.object
    layout = self.layout
    box = layout.box()
    con = box.row()
    con.prop(aobject, "MergeWith")

If anyone knows the reason they were not rendering, post and I will accept it as the answer. Thanks!

Edit: After playing around with the code, I believe this is (at least close) to the correct way to set up a custom enum:

class FBXG_MappingPanel(bpy.types.Panel):

    # define enum flags
    EnumTypes=[ ('GA', "Asset", "tooltip"),
                ('LP', "Low", "tooltip"),
                ('HP', "High", "tooltip"),
                ]

    # define enum variable
    EnumVariable= bpy.props.EnumProperty(
        name="Title",
        options={'ENUM_FLAG'},
        items=EnumTypes,
        description="tooltip",
        )

    # define drawing section
    def draw(self, context):

        # draw
        layout = self.layout
        row = layout.row()
        row.prop_enum(self, "EnumVariable", 'GA', text='Asset')
        row.prop_enum(self, "EnumVariable", 'LP', text='Low')
        row.prop_enum(self, "EnumVariable", 'HP', text='High')

The biggest mistake I made was not realizing that you need an individual prop_enum() call for each individual flag allowed to be selected. I was trying to use it as a single call. If anyone notices any issues here, that would be appreciated. Also, if anyone can help newcomers understand what the number property is intended for and what purpose it serves, that would also be great. Thanks!


Is there a way to automatically cut everything away outside of an object? I'm pretty new to Blender and I'm stuck right now.

I created a complex 3D Structure with another program and imported the STL file. Now I need to "cut" this object into a cylindrical form. The object needs to be placed in a pipe after 3D printing. The boolean modifier does'nt seem to be the right option. I have tried to invert the difference operation by using a hollow cylindrical mesh but it didn't work. Does anyone have an idea how this is possible?

From what I understand (?) I would do it that way (I tried with intersect with no success)


Practicality of fade-in/out transforms in Blender My knowledge for doing fade-in/fade-out transforms in Blender's Video Sequence Editor is based on the answer to the following question:

https://blender.stackexchange.com/a/2104/6335

What is described is a multi-step process which struck me as rather cumbersome for a simple transformation such as a fade-out to black (add a color strip, add a cross-effect, etc).  Is this how power-users do this activity in Blender?  Or do they use a plug-in that I may not be aware of?  Or, is it just the case that Blender is really not used for such simple transforms and instead, some other tool (such as After Effects) is used?

Blender is plenty powerful in other tasks, and I am not knocking Blender's overall capabilities. Rather, I would like to know the usage in real-world workflows for this specific, rather rudimentary task.  (Even in Microsoft's brain-dead Movie Maker, what is involved is more straightforward.)

(I am reminded of the various attachments you can get for KitchenAid.  Yes, it is possible to juice with a KitchenAid, but why? It is not what is was built for in the first place.)

The vse is quite powerful but you need to realise that it is media agnostic.  That is any track can accommodate any media. Because audio can be next to or above video you cannot easily add an effect at an edit point. And because there are effectively infinite vertical tracks you need to tell blender which media strips need to be used for an effect.

That is why you must first select the strips to effect then add an effect. If you want to fade from many mixed clips to black for example you would simply key frame the opacity of the top most in coming black strip.


How do I get the current directory without an open file? I've done a lot of searches but unless I'm missing something obvious (and I may be) I don't see any answers that don't involve already having a Blender file open (and I understand how to do that).

What I'd like to do is in my script be able to access the current directory that Blender opens up to load in Blender files.  BEFORE any file is loaded.  Because that default directory is where I want to store a config file to read parameters for my script (which can be run even if they don't have opened a Blender file).

Does that make sense?  I can force a directory, of course, but I'd rather say to folks "just put the config in your default Blender directory" and then be able to find that file there.

All the answers seem to require first a file, like these:

bpy.path.abspath("//my/file.txt")
bpy.path.abspath("//my\\file.txt")  # on Windows, with backslash escaped
bpy.path.abspath(r"//my\file.txt")  # on Windows, using python raw string
bpy.path.abspath("//../file.txt")  # to go back a directory

but I don't have a file.  (And using the "//" alone gives me an error, although using two back slashes just gives me a single "\" as the result, which is NOT the current directory).

This seems stupidly simple but I'm feeling really dumb.

print(bpy.utils.resource_path('LOCAL'))   #Gives the default file locaton
print(bpy.utils.resource_path('USER'))    #Gives the blender installation location

You can use this as reference to go to other directories.


How to fix ugly lines in my mesh? I would like my mesh to achieve similar shape (helmet) like this:

The mesh:

I know my mesh is far away from look like what I want, but I'm kinda newbie so I'm trying the best with what I got.

Without subsurf (just for let you know how it looks without it):

Base mesh with subsurf:

How can I get rid of those weird and ugly lines or achieve similar form?

Thank you for helping guys!, got something similar @Manu Järvinen , @Leander, @miceterminator

EDIT: haha, Leander beat me to it by 3 minutes with the same kind of answer :)

For the reference image type of helmet (a stretched sphere) I definitely would start with a cube that has Subsurf modifier applied:

After that, just add a new Subsurf modifier to it and it's smooth as silk and still quite easily editable:


How to trigger the 3D transformation widget with G, R or S When I press G, R or S to move, rotate or scale an object, Blender starts transforming the object based on the current mouse pointer location. But I don't want to jump into the translation right away. Instead I want the 3D Widget to appear, and I want to use the handles in the 3D Widget to transform the object.

Is there any setting in blender to make it happen?

I am using Blender 2.8

First, delete the existing G/R/S bindings by going to Preferences > Keymap > 3D View > 3D View (Global), and scroll down until you find them. Click the "x" button to remove them.

Next, create the new bindings by right click the widget tools in the side panel toolbar, and select "assign shortcut". Then type the key you want the new shortcut to be for that tool.

Unfortunately, you will need to do this seperately for each mode, such as edit/object/pose modes. And edit mode will need to be done for each object type, edit mode shortcuts for meshes are not the same as for curves or metaballs.

Finally, to make these changes apply to all scenes from now on, bring preferences up again and click "Save Preferences"


How would I create a dent on a car from a falling object? Details in body message I'm trying to create the effect of dents being created on a vehicle (or any simple mesh to be honest) by dropping an object onto it. That's not quite my end goal, I'm really just trying to find out how to leave dented impressions on a mesh.
I was told this could be accomplished through giving the mesh (a low poly car in this case) softbody physics but none of my tinkering seems to be working. The ball either bounces off harmlessly or the car "sinks into the floor" like in the pictures I'm sharing.
I've been messing around with this for hours and in various combinations, so I must be missing something. I just want to be able to dent the mesh as if it were a sturdy plastic. Any help / insight would be greatly appreciated.

Showing off the car settings a bit.

More car settings. Plus showing what happens mid-simulation.

And then the plane settings.
Again, thank you for your time and consideration.

If you go in the object data properties , the triangle with 3 dots , you'll find a setting known as shape key , so you can create 2 shape keys , one will be the Undented shape and another will be the dented shape , you can sculpt or manually move vertices o make the dented shape and then you can keyframe the value below it to the frame when your object descends.


How do I get the glass material to stop weirdly showing the object inside the glass? Under the Cycles Render, I inserted a pyramid with the emission material attached to it and it is inside the octagonal shape glass. When I am rendering the scene, the pyramid weirdly is being displayed as seen in the image and this appears to be happening on the edges of the shape. How do I fix this?

The problem you are having is that if you set no thickness to the glass then your object becomes a solid piece of glass:

If you give the glass some thickness (in this example I used a solidify modifier) then it will behave like an object that has glass panes, but is empty inside.

But the problem is not solved, because the default glass shader has problems dealing with direct light going through it.

Using the tricky glass shader detailed in this post: How to illuminate the darkness inside glass objects in Cycles? will give you more realistic results.


Don't move all of the faces Hey

I only want the face between the red lines in the picture to be adjusted, so that the edges, here marked red, end up where the blue drawn lines are.
Moving the selected face with G did not give me the wanted result.

Here I first extruded the face (selected in the first picture) with E (instead of moving it), but I don't want those edges which I marked blue.

Thanks so much for your help

Perhaps you are trying to extrude the face? This can be done by pressing E with the face selected.

To delete those added lines, there are two ways to go about doing so.

Method 1) In edit mode, press 2 to enter edge select mode. Select the unwanted edges, press X and select Dissolve Edges.

Method 2) In edit mode, press 3 to enter face select mode. Select the faces you want to join together, press F and those faces should be joined together.


Dynamic proportional edit connected to an object? Is there a method or modifier that would allow me to dynamically create an effect on a mesh similar to the proportional edit, that would accept a magnitude, position and directional vector by using empty arrow object? I want to have multiple arrows on and around the object and animate them, then bake that into key-framed animation.

Two possibilities (at least) : hook modifier and vertex weight proximity + shrinkwrap.
And an edit using dynamic paint (following the comments).

Hook modifier :

The setting is the following :

The hook modifier is defined for the plane, and an empty is use as a hook. You can tune the falloff and the proximity. You must define a vertex group (assign the wanted vertices to it).

Vertex weight proximity and shrink wrap :

This can be a more dynamic solution.

First add a vertex weight proximity modifier. That will assign to the vertex group a value depending on the distance to the empty.
Then add a skrinkwrap (targeting to another plane) and using this vertex group.

You need to define another plane to skrinkwrap to (this plane is placed near to the surface... not visible here as it is in wire display mode).

A third solution using dynamic paint :

The object is in wireframe here to allow to see the moving object (here spheres replace that was empties previously).

The principle is the same, as before but the weights of the vertex group are given using dynamic paint.

Configuration for the spheres used as brushes : here 'proximity' is used (other options available) and you have also some option for the falloff.

Configuration for the grid : we are painting on 'weights' on the vertex group.

And as before the grid has a shrinkwrap using the same vertex group :

Updated blend file :


Objects rotate strangely when entire mesh is rotated When I rotate my model, or even part of the model, each object in the mesh rotates by itself.
It's like each object has it's own origin (even in the same part of mesh)
I tried setting object's parents, but that didn't work. I tried applying all modifiers, that didn't change anything. I tried changing all of the objects' origin point to 0,0,0. And that didn't work either. This still persists after joining all of the meshes together. Can anyone help?

Change the pivot center of rotation to be Median point as shown below:


How can I add a nose to this head without messing its shape? I am modelling a robot head that looks like this:

The shape was obtained by using very few faces starting with a square.

Now I would like to add a nose to the robot that would look more or less like this:

But instead of this screenshot which was obtained by adding a second triangle shape onto the head, I would like to model it from the head's mesh.

Here's the head in edit mode:

If I add vertical or horizontal loop cuts, the base shape of the head becomes larger where the loop cuts are added. I would like to extrude a face outwards where the middle of the face is, but there is no face there, and I only know how to add one by adding loop cuts.

It is important for me not to lose the almost spherical curvature of the chin and sides and top of the head... And obviously I would like not to apply the Sub Surf modifier because I am trying to keep the model light and easy to edit...

Your mesh is so "Low Poly" that every nev vertex will interact with the subsurf algorithm, modifying the overall shape; but you need some extra vertices for the nose; so the solution is: RETOPOlogizing.
Create a new object (I.E. a plane), set all the little buttons circled in red and start moving and extruding vertices: every time you move a vertex it will snap onto the surface underneath. So you will be able to put how many vertices you want, exactly where you want, without modifying your shape. Useful also for good deformation topology, if intended to be animated.


Blender Character Modeling and Gravity Working through some modeling courses for Blender and had a couple of questions. Still fairly new and not sure on terminology (hence my trouble googling this) so forgive me if these are already asked and answered...

1: In character modeling, I see some models with their arms straight out from the body at a 90 degree angle while others have the arms angled what seems closer to around 35-45 degrees. I was wondering what the difference was in respect to modeling and rigging and such?

2: When I'm drawing the model sheets for characters, I was curious about whether or not I should "draw" gravity's effects on them. Specifically the arms again. If the model's arms are spread away from the body, I'm used to having the sleeves drape according to gravity but it seems this isn't going to translate to the model once I get rigging and the sleeves will look off. I'm thinking that I should either draw the sleeves as if gravity isn't a factor, or draw them as if the arms will be at the character's sides?

Thanks!

Modeling a character with its arms by its side can cause issues at two stages. While modeling or sculpting having two disconnected parts together can make selecting and moving each part separately harder. Then while rigging the character, it can make it harder to specify which parts follow each bone.

Whether you model a character with arms straight out or half way down is mostly a matter of taste, each helps the modeling/rigging process. Some people suggest the more relaxed pose is better as the mesh is closer to the normal position so there is less stretching around the shoulder.

As for drawing a modeling sheet, draw them in the position to be modeled. It's not uncommon to have the side view of a character with the arms moved to the side to keep the drawing clearer to read. You may be interested in this CGCookie tutorial on drawing a modeling sheet


my material or shader Node on the top right bar is gone how do i get it back? Hi i'm still new to blender and with it's new update things are a little confusing. The little round orange node is gone and I don't know what I did to loose it or how to get it back. I believe it's called the shader or material node. It was there a moment ago but I must've done something to it. Help???

The tabs in the properties window depend on the selected object, to see the materials tab you need to select some object that can have materials applied to it.