batch rendering multiple audio strip files I have some edited audio strips inside sequence editor and I want to batch render them because rendering them one by one will take an eternity.
so I thought of writing a simple add-one to do so and I mean what can go wrong!
this is a how my audio strips are

they each have at least one empty frame between them and the cuts with no empty frame are going to be one file. I decided to make those a meta strip since I use the Strip_jump command for setting render frames.
also if not obvious, its my first time writing scripts inside blender so yea
here is what I got so far:
import bpy
from bpy.types import Panel, Operator

    #make a panel in the sequence editor
class AUDIOSTRIPEXPORTER_PT_main_panel(Panel):
    bl_label = "Batch Audio Strip Exporter"
    bl_idname = "BATCH_PT_export_audio_strip"
    bl_space_type = 'SEQUENCE_EDITOR'
    bl_region_type = 'UI'
    bl_category = "Export"

    def draw(self, context):
        layout = self.layout

        layout = self.layout
        layout.use_property_split = True
        layout.use_property_decorate = False

        rd = context.scene.render
        ffmpeg = rd.ffmpeg

        layout.prop(rd, "filepath", text="")

        if ffmpeg.format != 'MP3':
            layout.prop(ffmpeg, "audio_codec", text="Audio Codec")

        if ffmpeg.audio_codec != 'NONE':
            layout.prop(ffmpeg, "audio_channels")
            layout.prop(ffmpeg, "audio_mixrate", text="Sample Rate")
            layout.prop(ffmpeg, "audio_bitrate")
            layout.prop(ffmpeg, "audio_volume", slider=True)

            layout.operator("audiostripexporter.strip_export")

class AUDIOSTRIPEXPORTER_OT_strip_export(Operator):
    bl_label = "Export"
    bl_idname = "audiostripexporter.strip_export"

    def execute(self, context):

        strip = bpy.ops.sequencer
        strip.strip_jump(next=True, center=False)
        bpy.ops.anim.start_frame_set()
        strip.strip_jump(next=True, center=False)
        bpy.ops.anim.end_frame_set()
        bpy.ops.sound.mixdown(filepath='filepath', codec='MP3')

        return {'FINISHED'}

classes = [AUDIOSTRIPEXPORTER_PT_main_panel, AUDIOSTRIPEXPORTER_OT_strip_export]

def register():
    for cls in classes:
        bpy.utils.register_class(cls)

def unregister():
    for cls in classes:
        bpy.utils.unregister_class(cls)

if __name__ == "__main__":
    register()

but ofc it doesn't work and gives me this error:
Error: Python: Traceback (most recent call last):
  File "\squencer_batch_audio_export.py", line 49, in execute
  File "C:\Program Files\Blender Foundation\Blender 2.92\2.92\scripts\modules\bpy\ops.py", line 132, in __call__
    ret = _op_call(self.idname_py(), None, kw)
RuntimeError: Error: The file couldn't be written with any installed writer.

so how should I go about fixing this error and the add-one?

well after a lot of testing I was able to do it and wrote something that does the trick for me
here is the code, it not perfect but it works :)
import bpy
import os

#set the directory to where the blend file is
basedir = os.path.dirname(bpy.data.filepath)
# if the blend file is not saved, operator wont be called
if not basedir:
    raise Exception("Blend file is not saved")

# the panel in the UI of sequence editor
class AUDIOSTRIPEXPORTER_PT_sequencer_panel(bpy.types.Panel):
    bl_label = "strip exporter"
    bl_idname = "EXPORT_PT_exporter_panel"
    bl_space_type = 'SEQUENCE_EDITOR'
    bl_region_type = 'UI'
    bl_category = "Export"

    def draw(self, context):
        layout = self.layout

        row = layout.row()
        rd = context.scene.render
        layout.label(text="Strip Exporter")
        row = layout.row()
        row.scale_y = 1.0
        row.operator("export.audio_strip_exporter_operator")

# the export operator
class AUDIOSTRIPEXPORTER_OT_sequencer_operator(bpy.types.Operator):
    """Exports all the strips separetly"""
    bl_idname = "export.audio_strip_exporter_operator"
    bl_label = "Simple Object Operator"

    def execute(self, context):
        layout = self.layout
        strip = bpy.ops.sequencer
        selection = bpy.context.selected_editable_sequences
        select_num = len(selection)
        bpy.ops.sequencer.select_all(action='DESELECT')
        number = 1

        for each_strip in selection:
            # name the file here, the code will add a number to each file like: FileName_001, FileName_002 ...
            name = "FileName_" + str(number)
            # joining the file name with the directory name for saving
            fn = os.path.join(basedir, name)

            bpy.ops.anim.start_frame_set()
            strip.strip_jump(next=True, center=False)
            bpy.ops.anim.end_frame_set()
            bpy.ops.sound.mixdown('INVOKE_DEFAULT', filepath=fn + ".mp3", container='MP3', codec='MP3')

            number = number + 1
            strip.strip_jump(next=True, center=False)
        return {'FINISHED'}

classes = [AUDIOSTRIPEXPORTER_PT_sequencer_panel, AUDIOSTRIPEXPORTER_OT_sequencer_operator]

def register():
    for cls in classes:
        bpy.utils.register_class(cls)

def unregister():
    for cls in classes:
        bpy.utils.unregister_class(cls)

if __name__ == "__main__":
    register()

now as I said its not perfect so you have to change stuff to fit your needs
and remember:

it renders the files to the folder where the blend file is
you need to put cursor at the beginning of the first strip
add at least a few empty frames between each strip
you have to change the export name in the code

thats all I think


Sample line graph plot - what is the XY axis represent? According to the manual, the "histogram" graph plot has the X axis represents values of pixel, from 0 to 1 (or 0 to 255), while the Y axis represents the number of pixels in that tonal range.

When I draw a "sample line" on my image, I got the graph plot that looks like it has the X axis represents the pixel point/position, while Y axis represents the brightness (luma) for each points.

There is no further explanation on the graph plot of sample line in the manual.Can someone clarify whether the XY axis for "sample line" graph plot mentioned above is correct or otherwise?

That plot you get is not an histogram. It is used for video analysis, it is called Waveform Monitor. And it is, as you correctly deduce, a plot of a spatial horizontal axis (pixel along the line), and a luminance vertical axis (brigthness for that pixel.

See the page as a reference: https://www.bhphotovideo.com/explora/video/tips-and-solutions/introduction-waveforms-scopes-and-exposure


Object material that is completely transparent, but occludes other objects I'm trying to overlay some animated 3D models over live action footage. Some of the models (I'll call them collection A) will appear behind objects that are in the footage. I also have matching models for the live action objects that will be in front (collection B) and they are already animated to move exactly like the live action versions. I hope I'm explaining that clearly.
My issue is that I want to only be able to see the live action footage of collection B. I want the collection B 3D models to be transparent, but still occlude collection A so that collection A appears behind the footage of collection B.
I'm not sure that there's actually a way to do this, even with custom material nodes. I've seen posts describing a way to do it with compositing, but I wasn't able to replicate it. I would very much appreciate any help.
I'm on version 2.9, with the eevee engine.
Unfortunately, I can't upload my actual .blend file or screenshots, since this is for work. But as an example, in the screenshot below, I'd like the cube to be completely transparent, and the desert to show through. But I want the piece of the sphere that is covered by the cube to also be transparent, and the desert to show through that as well.

Here is my current compositing setup:

I think what you want is a holdout shader.  A holdout shader is like a transparent emission shader: wherever it is, it writes transparency (alpha 0).  It still gets occluded itself.

With the use of a holdout shader, you can then alpha layer your footage that describes both background and foreground objects.
Holdout shaders work both in Eevee and Cycles.


Arrow animation in 2D I think I have understood the basic principles of animating an arrow traveling along a curve. My problem is that my arrow becomes twisted as it travels along the curve. What is it that I do wrong? Does it somehow has to do do with the fact that I'm working in 2D

If you want your arrow to grow along the curve:

Give your arrow an Array modifier, choose Fit Type > Fixed Count, and End Cap > arrow like you did.
Give your arrow a second modifier, a Curve modifier, and choose the Path as the Object.
Now increase the amount of Count of your Array, the arrow grows along the curve.
You can now insert keyframes so that at frame 1 of the timeline there is only one duplication and at frame X there is as many duplications as you want.
Note that, anyway, the arrow will be messed up at the U turn of the curve, as your arrow is not subdivide, is big, and the curve is sharp. If you don't want the front of your arrow to be deformed it should be a separate object and it should move along the curve (with the method explained below).

If you want your arrow to move along the curve:

You gave your arrow a Curve modifier while, for your purpose (follow a curve without deformation) you should have given it a Follow Path constraint.

Right now it is behaving like it is supposed to. You've given your arrow a Curve modifier, which means that it follows the curve you've chosen as Object and it deforms along this curve. As your arrow is big and doesn't have a high poly mesh, the deformation is a bit messy. Even with a high poly mesh it won't give anything great.

If you want your arrow to follow the curve without any deformation, you need to give it a Follow Path constraint:

Remove the Follow Path you gave to the curve (it is useless, the curve won't follow any path).
Delete the Curve modifier you gave to the arrow.
Delete the previous Follow Path you gave to the arrow and give it a new one.
In this modifier click on the Animate Path button, and enable the Follow Curve option. As Blender doesn't know how you want to orientate the arrow, try different Forward (X is the good one).
Now the arrow follows the curve without any deformation.

Now if you want to control the speed of the arrow along the curve:

Select the curve, open the Graph Editor window, on the left panel (Path > NurbsPath.001), unfold NurbsPath.001 and click on Evaluation Time. Open the right panel with N and click on the Modifiers tab. Delete the Generator modifier (X). You've delete the animation you've automatically generated when you created the Follow Path constraint you gave to the arrow, and the arrow doesn't move any more. You have to reprogram the animation.
In the Properties panel > Data > Path Animation, choose the amount of Frames you want. 100 by default is ok. It means you choose to segment your curve 100 times. The Evaluation Time will determine at what segment of your curve your arrow will be at the time you want. For example place your timeline cursor (green bar) at 1 and create a keyframe (i) on the Evaluation Time > 0.00. Now move your timeline cursor to 20, go back to the Evaluation Time, choose 50, and create a keyframe. Now from frame 1 to frame 20 the arrow moves from the beginning of the curve to its middle.
If you want the animation to be linear and not smooth as it is by default, in the Graph Editor, press t and choose Linear.


Why the color miss match Im with wip of Chick. Add hair particles and texture. The body and the wings particles and texture are same. Why the wing have little blackish color on it. Its not similar like body and head. Any suggestion or help. Thanks

The colors are the same on the whole body, but there are much more hairs on the wings, thats why it looks darker. Probably the vert density isn't even on the whole mesh and that causes the uneven hair count. Try to modifiy the advenced settings.


How to convert a single vertex into a plane within a mesh? I've seen two different videos where the user selected a single vertex and then expanded it into a 4 sided plane. This is a technique I've needed many times but I am not sure how that was accomplished.

This picture sort of demonstrates what I'm trying to reproduce.
before (left) and after (right)

Select the vertex and press CtrlShiftB that will bevel the vertex, creating a new face.
Do note that doing so will create Ngons in the surrounding faces.


What's the fastest way to change textures for 100 objects? I had to convert all my PNGs to JPGs, reason why now I need to switch to those new texture files.
Batch converting the image files was easy and fast. But how to do the next step in Blender now?

Thanks in advance guys

DPC

You can replace the filepaths using python and then reloading the images:

import bpy
for img in bpy.data.images:
    img.filepath = img.filepath.replace('.jpg', '.png')
    img.reload()


How to set dimensions of an object to default? I have added a cube to the center and then I changed dimensions of the cube in add cube option on left bottom.
After that I just get those dimensions as default after restart, reset settings and everything. I just can not change the dimensions to default default settings of blender(something in decimals).

You can simply RMB click and Reset to Default Value
Note:
To make new cubes come in that default size, you'll need to type it in manually.
Simply resetting to default value won't work (not sure why).


Using an object as a clipping mask for another object I want to use an object as a clipping mask for another object. So that the sound waves take on that wedge shape and can be animated as moving through the wedge shape, but of course you don't see the wedge, only the red sound waves.

I need this to be a node setup, probably with ID Masks, Object passes, etc. and not with a boolean modifier as those are unpredictable.

I've done a lot of research and gotten very close but still can't quite figure it out!

With a scene set up like your image, a wedge shape and the curve shape with an array modifier; I created the mask with the compositor.

I have a fully transparent material on the wedge, and the material pass set to 1 (object index pass would work here as well.) Do note that the wedge's top face has to be above the curve shape for the IndexOB or the IndexMA to give a usable mask.

In the compositor use the material, or object index pass as a mask by multiplying (a Mix node) it with the image's alpha (because the material index pass is set to one there is no need for a Id Mask node). Then take the black and white masked image from the mix node and use it as the image's alpha with a Set Alpha node.

Here is the result after using the IndexOB as a mask.


joining 2 parts without losing their textures I am new to blender, still learning.  its a long process
I have 2 complex pieces created, each with a UV-map and texture.
- if I "join" them the new piece has a single messed-up texture, 1 UV map
How can i get a new UM-Map that has the previous faces still correct ?

When you join two meshes together, your parent mesh will be the default material.

You need to create a second material for your second mesh and use the UV Map node under Input to tell it which UV to use.

It's a good idea you give each UV a name too.As you can see, whichever UV is highlighted is what you can see in the viewport. You can ignore that. It will render both.


Glossy Atoms using cycles I'm  new to blender and would like to reproduce the following image:

I'm currently trying to use "cycles" in blender 2.83 and was wondering which combination of "surface", "Roughness" and "IOR" would you recommend? The issue that I'm currently struggling with is the reflection, there is too much!- But I would like to make the atoms look very shiny as in the picture.
Currently I'm using:
Surface: Glossy BSDR
Roughness: 0.000

Thank you!

Another possible and slightly simpler node setup:


Python buttons not appearing in Blender I'm still very new to Blender, but I'm trying to get a custom menu up and running.
I followed the video tutorial on Blender Cookie and works great.

I'm trying to create a button that will move and object to the origin.

My code is as followed.

    row = layout.row()
    row.operator("transform.resize", text="Scale")
    row = layout.row()
    row.operator("context.active_object.location=(0,0,0)", text="Orgin")
    row = layout.row()
    row.operator("transform.translate(value=(0,0,0))", text="Orgin")

The "Scale" button works so I know something somewhat works. The other two buttons do not show up. I was trying to see what move commands work.

I tried the commands independently in the console and they work... just not in button form.

That's because context.active_object.location=(0,0,0) is not an operator. It's a statement.

You could define your own operator:

import bpy
def main(context):
    # This is what happens when your operator is invoked.
    context.active_object.location = (0, 0, 0)

class SnapToCenterOperator(bpy.types.Operator):
    """Snaps an object to the center."""
    bl_idname = "view3d.snap_to_center_operator"
    bl_label = "Snap Object to Center"

    @classmethod
    def poll(cls, context):
        # This is called to determine whether the operator can be invoked
        return context.active_object is not None

    def execute(self, context):
        # This invokes the operator and returns a state
        main(context)
        return {'FINISHED'}

def register():
    # If it's an addon, this is called when the addon is enabled
    bpy.utils.register_class(SnapToCenterOperator)
def unregister():
    # If it's an addon, this is called when the addon is disabled
    bpy.utils.unregister_class(SnapToCenterOperator)

if __name__ == "__main__":
    # We use this to register it in case we're running it manually
    # (which we are; click the "Run Script" button)
    register()

and then use

row.operator("view3d.snap_to_center", text="Origin")

to achieve the desired result.

NOTE: This is just an example on how to create your own operator. In this case you'll actually just want to use bpy.ops.object.location_clear, as such:

row.operator("object.location_clear", text="Origin")


Object disappears when trying to simulate Soft Body physics I  am trying to get my object to fall into the glass jar and bounce about. However, on the 20th baked frame my object disappears until the end of the simulation. I've taken a look at the dimensions of my object and it sky-rockets on the 20th frame, but I don't know why. And yes, all the vertices of the object are connected.

1st Image : Frame 1
2nd Image : Frame 19
3rd Image : Frame 20

Checked out the file and found the culprit : Cartman is the bugger.

Aside from some wrong normals, the biggest problem is overlapping geometry.

Very heavy/bad for simulations that base on calculations using the geometry data of an object.

Suggestions to fix the problem:

Retopologize the object, reducing the vertex count and at the same time leads to not only a cleaner mesh, but a faster simulation.
Fixing the geometry of the object to have no overlapping parts anymore. If possible reduction of vertices wherever possible.

While both will take time, i'd go with the first one, as it would be training, and in a way easier, as you work from outside and around. While the latter would take longer i believe alone due to the very tight geometry in the leg/feet (bottom) part.

Without cleaning the the object, i don't think you should try getting the soft-body simulation to work, as all the fine tuning to get the object react as should won't compensate for the underlying problem.

There is a 3rd option, in case you just want the figure to fall in the glass.
No deformation like soft-body possible, but bouncing would work.
Rigid Body Simulation, making the figure an active object and both glass objects passive (important to set all objects to "Mesh" shape), will at least give you the experience of an Erik Cartman falling in a glass-jar.


Simplify Dyntopo and it's methods Can someone please explain Dyntopo in Sculpting beacuse so far it's kinda hard to understand:
-Which Detail Refine Method to use and when
-Which Detail Type Method to use and when
-How many pixel details to put and when
Also,WHY to use that specific refine/type method in that specific situation
I did some research but I either couldn't find what I was looking for or even when I did I couldn't fully understand it

Hi eiipaw well the way to simplify why dynotopo is the way it's is all about the quality of the detail plus their is a limitation for what your current geometry can and cant do.

So without dynotopo you are just using the current geometry of your mesh and moving it around to create detail, this can cause serious artifacts and distortion if you plan on baking normals, Dynotopo for the contrary it adds small polygons by extraction or addition, so it adds more topology to your mesh instead of only moving it around.

That detail was done by dynameshing the anvil, I would have never being able to create that sharp detail without dynameshing, So i would said rule of thumb if your model is not that detail, and only moving around the geometry gets you the detail that you want; go for regular sculpting is easy and less taxing to your computer, but if you are doing like ultra detail crevices or damage with some grunge. Or a character with a lot of detail like a porous skin, go for dynamesh. You can also simulate detail by painting directly on a model. That's what blizzard does, although they use sculpting to bake on normals for specific things. Just look at blizzard atist portfolios sometimes they show you the maps that they used.

Finally remember that if you use sculpting detail on a mesh, think what is the purpose of your model, if your model is for games or animation you want to bake the normals (you dont want to have millions of polis on an engine or huge render times to render a scene). For the pixel size think about how close is that object or character in realation to the camera. And experiment experiment, Experiment!


Add a button to the timeline to jump Want to make a button in Blender which requires to jump in a specific frame and then again jump into another frame according to the requirement.

All you really need to do is change the current frame (via frame_set).

import bpy

C = bpy.context
jump = 5 #however many frames you want to jump
C.scene.frame_set(C.scene.frame_current + jump)

These few lines will move the playhead 5 frames ahead. That is all it takes to do that. To make the button takes a bit more python.

This script creates a property to store how many frames you want to jump. It creates an operator, which does nothing more then the script above. Finally it adds a button and number input to the header of the timeline.

import bpy

class FrameOperator(bpy.types.Operator):
    """Jumps from the curent frame the amount set in scene.frame_jump"""
    bl_idname = "frame.jump"
    bl_label = "Frame Jump Operator"

    bpy.types.Scene.frame_jump = bpy.props.IntProperty(name="Frame Jump Count", default=5, min=-499999, max=499999, description="Amount to jump from the current frame. Can be negative. Used in bpy.ops.frame.jump()")

    def execute(self, context):
        bpy.context.scene.frame_set(bpy.context.scene.frame_current + bpy.context.scene.frame_jump)
        return {'FINISHED'}

def draw_frame_jump(self, context):
    scene = context.scene
    layout = self.layout

    layout.prop(scene, "frame_jump", text="")
    if scene.frame_jump > 0:
        icon = "TRIA_RIGHT_BAR"
    else:
        icon = "TRIA_LEFT_BAR"
    layout.operator("frame.jump", text="Jump " + str(scene.frame_jump) + " Frames", icon=icon)

def register():
    bpy.types.TIME_HT_header.append(draw_frame_jump)
    bpy.utils.register_class(FrameOperator)

def unregister():
    # remove header menu
    bpy.types.INFO_HT_header.remove(draw_frame_jump)
    bpy.utils.unregister_class(FrameOperator)

if __name__ == "__main__":
    register()

A more detailed walk through of this script.
class FrameOperator this is where I'm defining the new operator. The doc string (first line triple quoted) is the tooltip. The bl_idname is how blender access it, in this case bpy.ops.frame.jump().

The bpy.types.Scene.frame_jump line is very important. This creates a new integer property, it is this property that hold the amount bpy.ops.frame.jump() will use to jump.
The execute function is what gets run when the bpy.ops.frame.jump() operator is called. It is in here that you can see the same code from the first script.

The draw_frame_jump function holds the code that will get added to the timeline header. First I add the property I created earlier layout.prop(scene, "frame_jump", text=""). The if statement is just changes the icon in the button. The layout.operator line adds the button to run the operator. Notice the first argument "frame.jump" is the same as defined in the bl_idname.

Now we get down to the register function. This simply adds the interface code to the timeline header TIME_HT_header.append(draw_frame_jump), and registers the frame.jump operator. (Without registering an operator you can not use it in blender.)

Then it is only a matter of adding the bl_info and you have a full blown addon.


How to make a waxy, deep-sea-fish material? I am trying to make a material for a sea monster that looks like a deep-sea creature. They have skin that seems slimy, waxy, and slightly translucent, as shown in these reference images:

My first thought was to use a translucent shader and mix it with some SSS to simulate the light bouncing underneath the skin, but that was a failure. I want to get some of that "nastiness" particularly visible in the second image, which I think would involve making an underlayer of pale transparent skin then blending a scaly layer on top.

Has anyone tried something like this before?

I had these eyeballs floating around, and I decided to try to make a deep sea fish material with them since the iris texture kind of somewhat a little bit resembles a deep sea fish's skin.  Anyway, here's what I got

Basically, I started out with an iris image texture (which you would substitute for a deep sea fish skin texture) and then I threw together some shaders that I thought looked good.  The main shader that you'll need to use is the Subsurface Scattering shader.  I also recommend checking out this awesome tutorial on all the others (well, including the Subserface one).

For the first fish, it looks like you would start out with a pretty basic texture which you'd have to paint or unwrap around the entire model.  Then you would set the color output of the texture node to the color input of the Subsurface Scattering.  That node will be your main node as there is a huge amount of subsurface scattering in the picture meaning a high "scale" and probably a large radius (especially for the red, 1st, channel).  You might also want to add in a translucent shader if it looks good.  It also seems that the chin has a different material.  It looks at least more diffuse if not a different texture altogether.

The second fish looks like it has a translucent blue texture masked over by a harder, glossy texture that looks like a broken layer of gold on the fish's skin.  I don't quite know how you would achieve that effect other than creating a shell mesh to cover the skin.  Maybe you could figure something out with texture paint of something (can you paint materials?  If so, that would work).

The main thing is having a good starting texture, having a general idea of what look you're trying to get, and experimenting with different shaders both alone adn mixed into the rest of the material to see how it contributes, whether good, bad, or not at all.


How does blender calculate poseBone.matrix? How does blender calculate a poseBone.matrix through the hierarchy chain?
A bone's final matrix is a transformation matrix which defines the bone in armature-space in the current pose (M1). I want to calculate this from other matrices, given a really simple armature with two bones, the second bone parented to the first.

armature = bpy.data.objects["Armature"]
M0 = armature.pose.bones[0].matrix       #final matrix for the first bone
M1 = armature.pose.bones[1].matrix       #final matrix for the second bone

A bone's bind-pose or rest-pose matrix is its transformation from the armature origin:

l0 = armature.data.bones[0].matrix_local

I can calculate the local rest matrix relative to the bone's parent:

l1 = armature.data.bones[1].matrix_local * l0.copy().inverted()

I can seem to calculate the final matrix of the first bone (M0) like this:

b0 = armature.pose.bones[0].matrix_basis    #local bone transform
l0*b0    #this equals M0

However, if I want to calculate the second bone's matrix, which is parented to the first, I can not get the same M1 matrix back while trying this:

b1 = armature.pose.bones[1].matrix_basis    #local bone transform
l0*b0*l1*b1    #I wanted to go through the parent chain like this but couldn't get back M1

However, the resulting matrix has the rotation part of M1, but the translation part is different.

The reason I want to do this to see how to do a bone hierarchy system for myself, but I seem to be missing something.

Look at this link. the difference between matrices is described here:
How can I manually calculate bpy.types.PoseBone.matrix using Blender's Python API?


Why don't particles move with my armature? Hey I'm new to Blender and I tried rigging a lion with rigify with a tutorial but somehow it moves really weird. The mesh of the lion in Pose Mode moves with the armature but somehow the particles/the material won't move with it. Do I have to connect something or what else could be the problem?

Okay so I found a solution and maybe another beginner will have the same problem so I'm going to explain what I did:
-> Go to your Modifier Properties and place your Armature above all Particle Settings you have so that it really affects all of them
-> Then check the box "Use Modifier Stack" (Particle Properties->Emission->Source) for all your particles.
Should work now!


Why is my model coming apart when posing its armature? Hi I am trying to animate a bird rig that I made but when I try to pose the armature the bird model comes apart, almost like the faces are moving independent of each other.

I am curious why or how this is happening. I actually like the effect of whatever has happened  and am hoping to possibly apply whatever is happening to some other models. But so far I've had no luck duplicating it

I tried adjusting the weights, but I'm not sure if I did it properly, most of the models I make only have to have their weights adjusted minimally.

Im preety sure your Bird's mesh doesnt have all the faces connected to each other. One way to clean this would be to select your bird and go into edit mode. Then, select all the faces by pressing A. After, press  the "Remove Doubles" button. It should connect all the faces together, if not most of them.


Tight grass procedural bump texture? I'm trying and failing to get a procedural texture to emulate this real life grass. The "grass" purchasable packs are not much use, as they're not so very tight cut as this is. It will be too big an area for actual hair modelling of the blades.
Anyone here a nodes whizz that can get close with bump and colour?

Ok, here is my attempt at a "tight grass green" shader. However, I worked on this for a while, before realizing that I should have looked at the reference photo more, because mine doesn't look as similar as I thought it did. Mine looks more "mossy". However, I'm not sure how much closer I could have gotten in the time I had even if I was trying to be more true-to-the-picture. The point of this is that I show how I would (start) going about making a shader of this sort.
Instead of uploading dozens of photos with lengthy descriptions, I will post my whole .blend file so you can see/play with it yourself. It is not perfect - obviously, it does not look exactly like the grass you showed in the picture - now that I think about it, no reputable golf course would allow their greens to fall into such a state of disrepair. The "wear and tear" can be fixed relatively easily I think by just adjusting the brightness of the colors.
Just a couple of things to note - There are 2 sets of musgrave textures in each group. The reason I do this is that musgrave is good at creating a fine grit, but it comes with the cost of large dark blobs among it. Fortunately, with a little tweaking, you can isolate those dark blotches and subtract them from the main image to leave just the grit. That's why I did that.
Secondly, the texture might not have as much relief (height) as you might want, however, the "tightness" of the height information is such that too strong a normal strength just makes things too noisy. I know this can be mitigated by isolating the texture that goes to the normal map and "blurring" it slightly, however I do not have unlimited time to play with it.
Lastly, because of this "noisy normal", this shader can be a bit of a performance hog. Again, this can be mitigated by the same method I mentioned above.
Have a look, play with the values, and I hope you at least find SOMETHING helpful.
The setup and the final product looks like this:

File is here -
Cheers


Stylus delay in Grease Pencil I am experiencing a problem with the Grease Pencil where there will be a delay between my stylus stroke and the stroke that is actually drawn in Blender. I would start to draw something with the Grease Pencil, but the stroke doesn't actually start until a little past my starting point. This is really annoying especially when trying to draw connecting lines because a small gap will be present between the two lines where the delay occurred.

How can I fix this problem? Thank you for your help!

Specs:

Lenovo Thinkpad Yoga 370
Blender 2.79b (also occurred with 2.8 Alpha)
Core i5
Intel Graphics 620

Problem appears to have been solved in Blender 2.81a. For people who come across this, update your Blender to 2.81a. If this doesn't work, try the solution mentioned in the comments.


New to texturing, my leather texture is see-through i have been playing around with leather textures and i decided to make a chair, this is a test render of it:

As you can see, the seat itself is transparent. I have read some answers on this type of issue, but they were not what i was looking for. I'm sure this has something to do about texturing.

Here is the node setup:

Green: COLOR TEXTURE
Red: DISPLACEMENT TEXTURE
Blue: NORMAL TEXTURE

You didn't pack your textures, we cant troubleshoot material problems without all the relevant textures.

Anyway this doesn't look like a texture problem, not even material related.

You have lots of duplicated geometry and overlapping vertex in your mesh, there are double faces everywhere in your seat, and your.

Enter Edit Mode in each of your meshes, select everything then press W > Remove Doubles.

Be sure to recalculate normals afterwards by selecting everything and pressing Ctrl+N


Non-manifold, bad contig Edges and Sharp Edges on simple basic geometry I have had issues trying to produce clean geometry for 3D printing for what is simple geometry. I check wether my mesh is clean or not using the 3D printing addon. Here is a step by step simple reproductible example starting with the defautl view to explain the non-manifold, bad contig Edges and Sharp Edges issues I have had and don’t understand :

From the default start:

I change units from meter to milimeter
I modify the view Clip start from 100mm to 0.1mm
I delete the default cube
I create a 10mm cube
I add a curve > Circle radius 3mm location X 0mm Y 0mm Z 20mm

I do a knife-project cut through

I select the two round faces in edit mode and press 2 to have all the
verticies of the two faces previously selected.
I then bridge edge   loop them
I select all the verticies of the top circle and make a face (F key), notice below the 48 non manifold edge already because of that face:

Maybe it is because the top round face makes a zero volume if that object was to be printed right now? So I do an extrude 10mm on the three “top faces” to produce the final piece, I should then have a fully solid perfectly printable piece but below are three screenshots of the issues this mesh has:

What did I do wrong for those issues to appear on such basic geometry ?

I had a similair issue, although the shape had no inside-outside errors, still it was solved by  :    reset vectors-  recalculate outside

I'm guesing that while editing normals can get distorted, not alike the shape you see.


viewer node doesn't show up (even though I enabled node wrangler and pressed shift+ctrl+LMB) I want to apply a texture to my object in the shader. I need to connect my texture node to the viewer node.

I have the node wrangler add-on enabled, but when I press Shift+Ctrl+LMB on the texture node nothing happens. The viewer node doesn't show up. Does someone have the same problem and know how to fix it?

Until you make it work, you can add the Viewer node manually :).

The Viewer node is just a renamed Emission node.
So you can add that, and it will have the same effect.


Using array and mirror for modeling Hi Blenderstack commun:)
Trying to create a certain pattern using Array modifier Mirror modifier and
like maybe a shrink wrap? I think?...
I'm trying to recreate the handle wrap without having to like sculpt it by hand:)

You first need to find the pattern, use a plane, rotate it 45°, squeeze it to make a lozenge, duplicate and mirror it on the X axis.

Then subdivide, extrude and begin to move the edges so that the array copies will fit. Give it a first Array modifier on the X axis, then a second Array on the Z axis. To make it turn around give it a Simple Deform modifier / Bend mode. Also give it a Subdivision Surface modifier. You can still modify the original mesh to give any correction. If the pattern is not supposed to rotate around a cylinder but around another shape, just give your object a Curve modifier with the good curve shape instead of a Simple Deform.


LoopTools Circle Bug I don't know how old is this bug, but it seems that the circle tool on LoopTools addon is giving weird results:

All vertices are coplanar and no transforms exist on the object. How is it possible that some selections turn into the same plane and others don't? (selecting one by one and applying the tool gives the same result)

So far as I understand, there are 5 possible reasons:

1.) LoopTool's Circle menu settings may be the culprit:

The settings used restrict it's alignment. Try other combinations.

2.) Duplicate vertexes and/or lines. LoopTool's tools depend on nearest-neighbor objects. This may indicate that the mesh needs cleaning.

3.) Multiple plugins may cause undesirable operation. Try removing other enabled plugins and try again.

4.) Possible driver conflict. Verify that the drivers your system is using is compatible and up-to-date. You might also need to use an older version of a compatible driver for stable operation.

5.) Faulty Blender - A fresh installation of Blender may be needed. Also verify the storage device you load it from is in good condition, and is properly connected.


Arrayed plane not following curve I have a Plane converted to a curve and I have another plane (with a bunch of loop cuts in it) that I'm trying to wrap around the curve. But when I apply the proper modifiers (as Ian Hubert did in this video: https://www.youtube.com/watch?v=eXldgzeuj1k ), it doesn't follow the curve. Why?
You can download the .blend file below.

You have to understand that the curve modifier displaces vertices depending on the relative distance to the origin of each object. Also, it is good practice to apply your scale when working with modifiers. If you don't, the values in the modifier won't reflect reality. It is also good to apply rotation when there is no benefit in having one, else you will have trouble tweaking axis rotations. Try to re-name your objects as you go so that they aren't confusing afterwards (eg a plane converted to a curve could be renamed curve-something)

Apply rotation to your mesh object (Object (top left of the viewport)> Apply > Location)
Apply scale to both your objects (Object > Apply > Scale)
Go into edit mode after selecting the curve and set the radius to 1 :

Set origin of the mesh object to the origin of the world (Object  > Origin > Origin to 3D Cursor)
Move the geometry back to the origin (in edit mode) like so :

Set relative Offset to x,0 y,1 z,0
Set the length to "Fit curve" so that your object will fit the length of the curve whatever its shape
Set the axis in the curve modifier to "-Y"

Final result :

You just have to move the handles of the curve object and the mesh object will follow along :


Modifiers can't be applied due to being deactivated running Blender 2.91.2 and am having two different blend files in which modifiers cannot be applied due to them being "disabled" and cannot be applied to Multi-User data. They work just fine, hell I even just created an array modifier and with the untouched, base settings the modifier is disabled. Am a bit PO right now because deadline is tomorrow. Any help is highly appreciated.

Have found the solution with help of someone else. There were old objects hidden that the newly created Array modifier somehow got connected to (??) I deleted those since I didn't use them anymore and now everything works fine.


Unable to render high definition image I am new to Blender and I am learning to render images in cycles.
Someone told me that higher sample amount will increase the quality of the render, but still, after 1600 samples, my rendered images are not in good quality.
Please help me to understand how I can render images in good quality.
I rendered this wall but when I zoom in it becomes blury

You are looking for a higher image resolution. The default resolution is 1920x1080, which means the image is 1920 pixels (little color blocks) sideways, and 1080 pixels up and down. Doubling each to get 3840x2160 will mean that what used to be one pixel will now be four (from 1x1 to 2x2).
Samples is how much data goes into one pixel. In Cycles, a sample is one ray trace from a pixel out backwards into the world, which will bounce uniformly on a shiny object but arbitrarily on a rough object. Too few samples makes rough things like stone look fuzzy, but things like polished metal generally look alright. More samples means more realistic renders, more computation time, and more desire to use GPU compute possibly .


How do I fix my models subsurf deformity? I have no idea what is wrong with my model after beveling the edges and using the subsurf modifier (not applied). For some reason the subsurf creates an odd deformity. I've located the source to a certain face shown below, however I do not know how to fix it.

The model without subsurf:

The model with subsurf:

The model with subsurf when the face the causes the problem is deleted:

As Georges said, your topology is not good, you have ngons and triangles. You need to rethink your topology with quads, sometimes triangles if it's really necessary. Here is a try that seems to works:


Camera Doesn't Follow Character So I'm working on a blender game and when I play the game it works but when I play it in camera mode it doesn't show anything. The camera is parented to the character but it doesn't work please tell me a way to fix this.

oops and please ignore the edits ive done i was keep posting the wrong .blend file

this one is the right one i promise

Put your camera in the same layer as your character (the hidden one), so it will be added when your character spawns.
In the camera, add an Always > AND > Scene (Set Camera), so the character camera will be set when it's added to the scene. The object field in the actuator should be kept empty to refer to self.

Fixed file:


How to make a take-off/landing for an airplane in BGE? It is possible to do a take-off/landing for an airplane in BGE using logic bricks?

I've done it but on the floor the plane is not limited in rotation.

For take-off I'm applying a rotation around X, but if it is stationary I'm still able to rotate it.
Can I limit the rotation to 25 degrees until it has some distance from the floor?

I've found out that it has to be rigid body.
Sitting on the "ground" the the rigid body is respecting the physics laws so it is loosing 2
DOF rotations.


Cycles Procedural Square using Polar Coordinates I'm using Blender 2.8 and trying to get a grasp on procedural textures.
For fun, I was following through the list here at https://thndl.com/square-shaped-shaders.html and now I'm stuck.

Equation I'm trying to reproduce:

 float a=atan(c.x,c.y);

 f=vec4(step(.5,cos( floor(a*.636+.5)* 1.57-a)*length(c.xy)))

Result = A Square

I have a feeling it has to do with the Polar Coordinates, but I'm not sure where considering I believe the math is correct everywhere else.

Can someone take a look and see where the mistake is and perhaps explain though it if possible?

Thanks!

Shader Node Setup:

(Length = sqrt(x^2 + y^2)

The Result:

I'm not sure what you've actually got wrong with your setup but I've tried to replicate it by entering your math into a Node Expressions expression (see https://baldingwizard.wixsite.com/blog/node-expressions) - which builds the nodes directly from the text.

This produces the following result :

The generated 'inner' nodes for the 'f' function are :

And here's the Blend file (Blender 2.8) for reference

EDIT: Actually, I think I've spotted the error. Your nodes actually perform the calculation :

f = cos(floor(a * 0.636+0.5)*(1.57-a)) * dist

ie, Instead of multiplying by 1.57 and then subtracting 'a', you're nodes subtract a from 1.57 and then multiply - note the brackets I added around '1.57-a'). Here's the amended (wrong) calculation, replicating your result :


How do you simulate an LCD projector where a lamp projects a patterned light onto a surface? (cycles)(cycles) I found an answer for Blender Internal engine at I want to make a projector show an image displayed on surfaces

But I want to accomplish something similar in Cycles.  I tried attaching a texture node to the lamp's node tree, but it seems the color pattern is based on the world coordinates and does not rotate with the spot lamp.

What is the correct node setup for a cycles lamp so that its texture rotates and moves with the lamp?

You can do this with a spotlight using the pretty much the same node setup as you have but with an additional mapping node to position the image.

You also need to be sure to set the spotlight light size to something small or your projected image will look blurry.

And the result.

Update:

Here's it working with your blend file, no settings changed:


Python- Adding menu button to add duplicate of active object at 3D cursor I'm attempting to learn Python, and figured the easiest way to learn would be by studying code snippets, and expanding from there. So to start with, I want to slightly modify the "ui_panel_simple" template so that instead of adding a primitive object at the 3D cursor, it will add a duplicate of the active object at the 3D cursor.

The full code is as follows:

import bpy

class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Add object duplicate"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

    def draw(self, context):
        layout = self.layout

        obj = context.object

        row = layout.row()
        row.label(text="Add duplicate", icon='OBJECT_DATA')

        row = layout.row()
        row.label(text="Active object is: " + obj.name)
        row = layout.row()
        row.prop(obj, "name")

        row = layout.row()
        row.operator("mesh.primitive_cube_add")

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

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

if __name__ == "__main__":
    register()

If I change row.operator("mesh.primitive_cube_add") to row.operator(bpy.ops.object.duplicate(), then I lose the newly added button in the custom panel. I can freely change 'cube" to any primitive object and all works as expected. What am I missing?

For UI layout layout.operator you only need the names after bpy.ops, in your case

        row.operator("object.duplicate")

Always check the system console for error messages if something isn't working

row.operator(bpy.ops.object.duplicate())

will write to system console

Traceback (most recent call last):
 File "/Text", line 32, in draw
 File "/home/batfinger/src/BlenderGIT/qtcreator_build/bin/2.77/scripts/modules/bpy/ops.py", line 189, in __call__
 ret = op_call(self.idname_py(), None, kw)
RuntimeError: Calling operator "bpy.ops.object.duplicate" error, can't modify blend data in this state (drawing/rendering)

If you don't want the panel to show when there is no active_object add a poll method

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

or not as the operator will display as disabled when there is no active object.


Select mirror: Could it add to the selection Is there any way to make "Select Mirror" add to the selection, rather than just drop the previously selected?

Open up the operator part of the Toolshelf Region or press F6. Then click on the Extend check box.


How to model tank treads? Now, I know the common method of using an array in conjunction with a curve modifier to get the desired result. But, I'm facing some issues.

(1) The tread segments do not go around the curve completely.

(2) The tread segments get distorted at places.

If I'm not being clear, this is my set up:

Edit: This is a screen shot of the problem. The blue highlight is where the  array is getting distorted. The red highlight is where the array is not following the curve.

Try setting the Relative Offset  Z value to zero.


How to add edge loops to a circle (triangle fan) If I have triangle fan that makes a circle, for example what you get when you Add->Circle, with fill type Triangle Fan, and I want to add more edge loops radially, what's the best way to do that?

I can sort of do this if I extrude the outer edge, then scale down the 'old' outer edge. Once I do this I can do loop cut like normal between the two but this modifies the original edge. I'd like to figure out a way to do this that doesn't touch the outer edges.

To add edge loops on a triangle fan, select all the faces of your circle, hit I button, adjust the distance of the loop with the mouse and repeat the operation with Shift+R until you have the number of loop cuts you want.


Blender 2.8 / Windows 10 / Python - import Module fails, pip install Module fails, pip install Wheel fails I need to use the VTK module in a python script inside Blender.  It seems that there is no Python 3.7 version of VTK for Intel chips (and B2.8 comes with P3.7) and so I'm now trying to figure out if I need to downgrade blender, python, both, or if some other (better) solution exists.

Running Windows 10 (sadly...certainly not by choice)

I'm not sure if the reinstall and admin rights are necessary for all cases but the following solved my problem:

Uninstall Blender and reinstall as Admin
In Blender Python shell run

import sys
sys.exec_prefix

Open Powershell as Admin
Go to directory listed by Blender Python shell
Ensure pip

.\bin\python.exe -m ensurepip

Install modules

.\Scripts\pip3.exe install vtk

Thanks to @rgj for troubleshooting and this blog for Blender/pip instructions


why is my image texture with texture not displaying properly? i am trying to render a one of the mesh primitives, specifically a cube, with an image texture that has texture paint on it.

i succeeded in rendering my cube with the image texture by checking 'face textures' in the found in the 'options' section of the 'materials' tab, but when i added my texture paint over the image Blender rendered a black cube.

why and how could this happen?

To make our life easy blender can remember an image that you choose in the UV/mage editor while uv unwrapping or that you create while texture painting and use it when drawing an object in the 3d viewport. This only happens in the viewport with the right settings but does not carry over into the final render, to use an image texture in the final render you need to setup your material properly.

Recent versions of blender added the ability to add images to paint onto, when using blender internal the texture is normally also created, in cycles when needed a material and/or an image texture node can be created but it doesn't get connected up, you need to do that yourself.

If using blender internal you need to ensure that the texture is added and setup to use the image. For cycles you need to ensure the image texture node is connected to the shader node that you want to use.


Is it possible to get the bounds of a compound object? I'm trying to avoid calculating this with python because that would be slow, processing the vertices of each recursive compound mesh.

So is there a way to gather the transformed bounds of a tree of compound meshes??

I'm trying to use it for post vertex transformation of the root object.

Using a wrapper class, it's possible to calculate the total bounds of all sub-objects in a somewhat efficient manner.
(Now there probably are better methods, but this is the best I could think of)

When the sub-objects are added to the root object, wrap their vertex proxies with this class and store them locally:

class VProxy (object):
    """Make vertex proxies a little more usable."""
    __slots__ = ['owner', 'mesh', 'proxy', 'XYZ', '__eq__', ]

    def __init__(this, owner, mesh, matid, vertid ):
        this.owner = owner # mesh object can't be accessed from the mesh proxy.
        this.mesh = mesh # mesh proxy
        this.proxy = proxy = mesh.getVertex( matid, vertid )

        # now for some hackery
        this.XYZ = proxy.XYZ # direct access to the updated Vector object.
        this.__eq__ = proxy.__eq__ # compared as the vertex proxy it holds. (speedy)

        # more magic can be added if needed.

    getXYZ = lambda this: this.owner.worldTransform * this.XYZ
    getXYZ.__doc__ = "Gets the position of this vertex in world coordinates."

And in the frame, simply retrieve that local store and calculate the bounds:

x,X, y,Y, z,Z = sum(map( minmax, zip(*(itrans*subProxy.getXYZ() for subProxy in subVerts)) ))

Beforehand:

minmax = lambda axis: [min(axis), max(axis)]

Where subVerts is of course the collection for a particular sub-object, and itrans is the inverse of the world transform matrix for our root object.

Now as for performance, since getXYZ is a lambda, it's faster than a basic function, but overall still slow...
The only speed we get comes from the optimised Vector and Matrix classes.


Can you use 1 python script for multiple GE scenes? I have 2 scenes, both with logic. I am trying to convert all my logic as certain logic bricks cause small delays. I noticed that if I use python scripts instead, I will end up still sending messages which will lead into small delays. Is it possible to have 1 python script in one scene that does funtions for 2 objects in 2 different scenes? In other words, I won't have to be sending messages between scenes to remove the delay. If so, how would I identify an object from a separate scene? Thanks.

Can you use 1 python script for multiple GE scenes?

Yes, you can.

This has nothing to do with messages, or delays. Python is executed by a Python controller. A Python controller gets executed (as each other controller) either once or never within a single logic frame.

Messages

Messages will be transferred after the logic bricks are executed but before the next frame starts. From perspective of logic - between the frames.

That is the reason why it takes exactly one frame between sending and receiving a message.

Effect:

When you perform operations while sending a message and operations when receiving this message ... you will notify a one frame delay.
If you do not want that, you should ensure all operations (except sending the message) react on the same event -> e.g receiving the message.

  ... how would I identify an object from a separate scene?

You can grab the scene and read the objects it has.


Getting raw data from object track I have a slow motion video of an object falling under gravity with an aproprete scale in the background. It was filmed from a tripod so there is no camera movement in any plane.

What I would like to do idealy is use blender's object tracker to produce graphs of the objects position over time. As I have a lot of clips to process and I don't care about the objects rotation I though of using just a single marker. I have already tracked it.

My question now is how do I get the tracking data to a format that can be imported into exel such as plain text numbers? I see a number of solving options such a planear track but they require more markers. Is there such an option like 2D solve?

You can use a Follow Track constraint to 'project' a single track onto an object.

track your point, you dont need to solve the camera.
make a plane, and position it perpendicular to the camera... how you want to set this up is up to you, but it will effect the numbers you get out at the end.
add the constraint to an object, i just used the default Cube, and refer to the image bellow on how i set it up.
in the viewport image, I have calculated the motion paths, and you can see the path of the track is on the plane.
click the Constraint to Fcurve button, and it will bake the constraint to XYZ values.
Edit: Some times this button doesn't work. An alternative is: Search->Bake Action
you can then write some python to convert your animation to CSV format.


Reading inputs from an xbox controller? I'm trying to read inputs from an XBox 360 controller in Blender 2.8 however my scripting knowledge is limited.

I think I would have to install this python module/library/whatever the heck its called https://pypi.org/project/inputs/ but unfortunately I have no idea how to do that and every tutorial/instructions I read on the subject might as well be written in hieroglyphs. I understand "installing with pip" is a thing and I think Blender 2.80 comes equipped with this tool but that doesn't mean much to me.

This doesn't seem like a difficult problem but installing python modules is above my head. If anyone could break the process down in layman's terms, I would be eternally grateful, or if there is another way of doing this that I'm not seeing please feel free to share.

The ultimate goal of this endeavor is to use the controller as an animator's tool, that is using the joysticks and buttons to perform actions in Blender. That part I'm confident I can wrap my head around it's just getting the actual inputs that's stumping me.

Assuming your are using Windows Platform:

Open your python bundled in Blender to enter a Python interactive console.

Type down following code one by one line (#line can be ignored):

import subprocess
import sys
# enable pip
subprocess.call([sys.executable, "-m", "ensurepip"])
# upgrade pip to latest version
subprocess.call([sys.executable, "-m", "pip", "install", "--upgrade", "pip"])
# install any package
subprocess.call([sys.executable, "-m", "pip", "install", "inputs"])


What does the Roughness setting on a diffuse shader do? What does the Roughness setting value in a Diffuse shader actually do?

The wiki says:

  Surface roughness; 0.0 gives standard Lambertian reflection, higher values activate the Oren-Nayar BSDF.

But what does this mean in terms of how rays are affected?

Roughness of 1:

Roughness of 0:

The results are different, but what are the technical differences of how these shaders are calculated?

Lambert discovered in 1760 "Lambert's cosine law", which says that the intensity of the diffusely reflecting light is proportional to the cosine of the angle between the direction of the incident light and the surface normal.

This, however, is inaccurate for several real-world objects with rough surfaces (for complicated reasons: masking, shadowing and interreflections). For example if the moon reflected the light in a Lambertian way, the moon's surface would be darker around the edges. Oren and Nayar created in 1993 the "Oren–Nayar reflectance model", which takes roughness into acount. The math is pretty complicated (you can check out the details at wikipedia...), but the important part is that there is a "roughness" parameter in the 0 - 1 range (which can be adjusted in the Blender node), and when the roughness is zero, then the Oren–Nayar reflectance becomes mathematically equivalent to the Lambertian reflectance.

It is completely normal that a diffuse sphere with roughness = 1 appears "shadeless" if it is illuminated with a light that is behind the camera - this is exactly what the moon looks like.

EDIT: The roughness of the "Diffuse BSDF" node is not the same as the roughness of the "Glossy BSDF" node, they should not have the same same value. (Physically bigger surface bumps/irregularities are needed for the diffuse roughness phenomenon than for the glossy roughness - while these bigger bumps are still smaller than the pixel size). Ideally you should have two different values/maps, but in practice most people either ignore the diffuse roughness, or use a multiplication factor. As this blog says:

  Diffuse roughness is now calculated as glossy roughness * 0.33 instead of using the glossy roughness directly. After actually reading some docs on Oren-Nayer shaders (how useful) I found that most real-world surfaces will not exhibit sigma values beyond 0.5, with most topping out around 0.3. This is something I probably should’ve remembered from my LuxBlend days… Anyway, I thought for awhile on the best way to handle diffuse roughness in Simple PBR. Using glossy roughness directly led to weird velvety-looks with roughness=1. I thought about disconnecting it, or locking it at a value, or exposing it as its own parameter. After awhile, I decided on using the glossy roughness * 0.33. It’s kind of arbitrary, but it gives a decent result in most cases without having to manually set it.

For an in-depth explanation see this video  (especially minutes 35-37): SIGGRAPH University - Introduction to "Physically Based Shading in Theory and Practice"


Live Audio-reaction to external input in Animation nodes? Is it possible to control animation nodes using live audio from external input such as soundcard? (eventually to be able even to perform live with blender)

There is no native support for live audio input. However, you may use a python module like python-sounddevice to get the input sound from a device and use the data inside of Animation Nodes. Consult the documentation to know how to use a python module like this in Animation Nodes.


Rotate a plane to align with the Ground, while using Vertices to determine its Rotation This is sort of an open ended question. I am trying to write a python script that rotates a plane to align with the ground. I have to use the plane itself instead of its origin point. I have accomplished one rotation in one direction so far using some trig stuff. But I think there has to be a better way to do this. Please let me know if you know of a solution other wise I'll just keep coding this one lol.
https://youtu.be/HHq-yMF397Q
basically what I've done is flatten it out like you would if you where looking at the scene from one direction and then just worked with the triangles. I figure if I just work my way around it (Z and Y directions next) I can eventually get it flat.

I will able to piece together a much more elegant solution, once I understood how matrixes work a little better. I'm still a little confused by this code but It does what it needs to.
https://www.youtube.com/watch?v=cWcAwfF6zgM
import bpy
from mathutils import Matrix, Vector

def scale_from_vector(v):
    mat = Matrix.Identity(4)
    for i in range(3):
        mat[i][i] = v[i]
    return mat

o2 = bpy.data.objects['Cubeface002']
face  = o2.data.polygons[0]

loc_dst, rot_dst, scale_dst = o2.matrix_world.decompose()

q = face.normal.rotation_difference((0, 0, 1))

o2.matrix_world = (
    Matrix.Translation(loc_dst) @
    q.to_matrix().to_4x4() @
    scale_from_vector(scale_dst)
)


Why does subsurf modifier cause weird deformation at the end of a cylinder? My problem is simple. I think that the strange deformations on the top are there because there are so many vertices in one face. How do I fix this while maintaining nice topology?

Although I triangulated the top polygon, the problem still persists.

Not to get too technical, this is because there is no supporting geometry at the edges where the vertices transition into the larger face (the ngon) and the subsurf modifier will stretch these (for lack of better words) giving the bumpy look.
Two simple fixes are:
Extrude and scale the top edge ring in more to the center
Just select the top ring, hit E and scale it in a bit to the center.

OR
Merge all the vertices on the top edge ring at the center
Select the top edge ring or the top face (the ngon) and hit AltP. You still need to add supporting geometry or the problem will persist. An edge loop near the top edge ring should suffice. It's a flat hard surface so merging to tris should be fine.


Why does the Multiresolution leave bumps in my mesh? So I am creating a model in blender 2.8 from this tutorial https://youtu.be/wdsY4BtlcpQ (in 2.7) and I just got to the part where he adds a multiresolution modifier to the model. When he adds the subdivisions, his model is smooth but mine has little bumps and a crease around the waist. (Picture 1)

When I subdivide further these bumps are more pronounced. After experimenting it looks like these vertices around this one loop are not moving at all when subdividing as if they're locked into place. I found this out by moving one of these vertices in edit mode (Picture 2) which changed the model drastically while other vertices would change the model only a little. (picture 3)

I already deleted the vertices and recreated them and that is why most of the waist is gone because this is my second time recreating the waist. Already checked for doubled vertices.

I also noticed this, when looking in xray mode there is a yellow outline that goes through this exact line of problematic vertices. (Picture 4)

Please let me know what I'm missing here. Really need some help with this one.
Thank you.

Figured it out. I just needed to recalculate normals. Had faces facing the wrong way.


How do i get sculpting mode back? First time using Blender. I've been sculpting for a while, but when I switched to the editing mode from the sculpting mode,  it doesn't show sculpting mode as an option anymore. How I get back to it? I mean, I don't have any tools to sculpt and the drop menu only shows Object mode and edit mode instead of various modes.

just click on object mode and go up to sculpt mode


Is it possible to replicate a location constraint in the BGE? I currently am trying to set bounds for my nav mesh using the location constraint. That would have worked perfectly, but of course constraints are not available in the game engine. Is it possible to replicate this functionality easily?

Constraints are available, as actuators, but seem to be working strangely.

The constraint clearly has an effect, but it's not the hard boundary I would expect. The cube is still falling at a slow speed.

The documentation for Location Constraint says:

  Limit the position of the Game Object within one World Axis direction. To limit movement within an area or volume, use two or three constraints.

It implies that this constraint should be a hard limit instead of a slow-down effect.

Maybe Blender is buggy, so I tried to make this simple constraint as a Python script.

import bge

controller = bge.logic.getCurrentController()
current_object = controller.owner

if current_object.worldPosition.z < 0.0:
    current_object.worldPosition.z = 0.0

But the effect was the same! It was still slowly slipping downwards.

I guess it's because of the ever increasing downward speed, which teleports the objects further and further from the boundary after the constraint teleports it back to the boundary. The constraint works, but because it's not the only effect on the object, it's looks like it fails strangely.

To fix that, I see two practical possibilities:

Nullify the velocity of the object. This has the effect of the boundary being "sticky", as it also nullifies movement parallel to the boundary. Adding current_object.setLinearVelocity((0.0, 0.0, 0.0)) to the above script has this effect.
Switch off or negate the force and associated momentum when the object is at the boundary. This requires knowing all forces that act on the object.

Extending the above script:

import bge

controller = bge.logic.getCurrentController()
current_object = controller.owner
velocity = current_object.getLinearVelocity()

if velocity.z < 0.0 and current_object.worldPosition.z < 0.0:
    current_object.worldPosition.z = 0.0
    velocity.z = 0.0
    current_object.setLinearVelocity(velocity)

It has the correct effect of limiting to the boundary, but random or changing forces pushing towards the boundary will create a small wobbly effect.

This all works on the object's "center", so if you want to have the object meeting a surface instead of intersecting it, you will have to calculate the boundary with the correct offset for the object.


Distortion in the whole mesh when applying scaling to a part I am new in blender. I am modelling a cup wherein I want to reduce the radius of the lower part. But when I select the lower circumference using Alt+ click and then press S to scale it down. the whole mesh get deformed as shown in the pictures. Can anybody help me where I am wrong?

Is it possible that you have enabled proportional editing with random pattern?

You can disable it by click on the blue circle and selecting disable or by using the shortcut, o.


Does Blender have a histogram? I'd like to be able to tell where—and by how much—a highlight is blowing out without having to render, go into Photoshop, back into Blender, turn my lamp down, render etc etc. So I'm wondering, is there a way to do this within Blender, or even better, without the need to render first?

Yes, press T in the image viewer to reveal it, among other things.
In addition, clicking on the image shows some useful information about the pixel under the cursor (in particular, the scene referred and display referred RGB values. Plus some fun things such as screen-space XYZ coordinates, where Z is depth).
You will have to render first to use these features, but you can use low-resolution, low sample test renders for fine-tuning.

That said, you might also be interested in utilizing the wide dynamic range of the images cycles spits out to avoid so many small lighting changes.

See
How to put a Linear Workflow in practice with Cycles and
Render with a wider dynamic range in cycles to produce photorealistic looking images


need help with material nodes- accidentally tampered with them Having trouble with blender. I had just managed to make a material on the walls as pictured, iridescent and shiny. I have somehow messed with the nodes and now it has turned black and looks completely wrong. I will attatch pics of before and after and the nodes. Could anybody tell me which part I have tampered with to ruin the image? desperate to get the original material back as I have a deadline tomorrow.
enter image description here

Here is a much simpler node set up for you.

Essentially all you are seeing is the noise texture. You dont need all that other stuff.

Also the sockets have to plug into the same color (you can break this rule sometimes, but not in your case.)

You can use something other than a noise texture to have a different type of bump.

Or even better just use this set up since you want shine and bump.


Mirror an object via modifiers on a point(instead of a plane) I would like to use modifiers to mirror and rotate an object.
Or simply, mirror on a point, not a plane.

Left on the image is the simple mirror modifier using the x-axis.
I want to have the situation on the right, where the object is mirrored and
rotated.

Red points correspond to each other.
It would be easier than copying and rotating the object, because I
want to model some kind of matching, point-wise symmetric chain links.

Create an empty at the origin of your object.
Rotate it 180° relative to the object's rotation.
Add an Array modifier to your object, and disable all offsets.
Enable Object Offset and select the empty from the list.

Using the Object Offset can be a very powerful tool

Another Solution to this would be to use a linked copy, created with AltD and rotate that 180°. Linked copies share the same mesh.


Exported fbx and obj files getting hidden faces in substance painter I keep getting these "missing faces" when I export from blender to substance painter. Is this caused because I exported the object in the wrong way or is this an option in substance painter that I've accidentally turned on?

I've checked the normals on blender and it seems to be fine so not sure

I'm not sure if this is an issue with blender or substance painter, so I'm asking here.

It is a mistakes in the normals, is there a chance the legs are scaled in the negative? If yes you should apply the scale and maybe rotation too, then recalculate the normals. If you work in blender 2.8 you can activate blackface culling in the Viewport settings. Or the face normal direction to ease it a bit.


How to generate a metal mesh? How can I model a metal mesh in Blender? I have tried to create a texture with opacity, but I cannot seem to get that to work. Is there another way to create this?

I am using cycles.

Thanks!

EDIT: Hey thanks everyone for the great advice! Before this I was not sure where to start, but now I have plenty of ideas about how to tackle this!

Create a base object with the shape of the mesh.

Then use a couple of array modifiers to extend it as much as you need.


Animating cameras focal length via python code I am trying to animate the focal length of the camera, based on focal length information imported from a file. setting the focal length is no problem:

focal_length = 35
timeline_frame = 10
cam = bpy.data.cameras.new('Camera')
cam.lens = focal_length

after setting this value I want to insert a keyframe for the focal length. According to my intuition, I am looking for something like this:

cam.keyframe_insert(data_path = 'lens', frame = (timeline_frame))

(this code deosn´t work...)
is there any way to get this to work?

Your code works fine. But note that you are adding a new camera data when you
do bpy.data.cameras.new('Camera'). If there already is a Camera data, the new one you created will be named Camera.001. Make sure this camera data is assigned to your camera object.


scaling an object by a factor of exactly ten how do i scale a thing to x 10?

There must be a way to get numeric options for scaling? and here i'm just typing a few things because it wont let me post such a short and precise question as i wrote initially. i hope this has enough words now. no it wasn't what more do i have to do? hello AI why aren't you better than this? I feel super annoyed that an AI prevents me from asking a very simple question can you please stay out of human ways of talking mr AI?

thank you times ten.

you type in x 10 in the scale properties - so if scale is 1.000 you write 1.000 x 10 in the scale properties panel


Why won't textures work? For some reason, when I try to put a texture (picture) on any object, it doesn't work. Here are the steps I took to put a grass texture on a plane:

1: I made a new texture for the plane

2: I set the type to image or movie

3: I opened my Jpeg file

4: I even tried rendering, it won't show up!

Here is a screenshot of when the texture won't load:

Some other texture-related things that won't work for me (even when I follow the exact steps on a video tutorial):

Texture painting
Cube textures
Skydomes (spherical maps)

Any ideas on why this isn't working? Thanks!

You have to unwrap the object and give it a material with the texture for it to show up.

First you have to tell blender how to put a 2D texture on a 3D object by unwrapping it, which means selecting edges where the mesh will be cut to flatten it.  This is done by going into edit mode, selecting the edges, hit Ctrl.+E > mark seam, then U > unwrap.

Then you have to give it a material with the texture.

If you are using the cycles render engine this is done by first going to the materials panel of the properties view and clicking New.

Then switch to the node editor and add an image texture node by hitting Shift+A > texture > image texture.  Then add a diffuse shader Shift+A > shader > Diffuse BSDF, plug the color output of the image texture into the color input of the diffuse and the BSDF of the diffuse into the BSDF of the material output.


How to make a moving arrow? I want to create an animation where a arrow points from the red circle to the blue circle.

My standard approch would be, to start with a cube on frame 1, deform the cube to a rectangle in frame 2, than to a long line and eventually in frame 4 I have the full arrow.

Now in this approach two things are not optimal:

The arrow looks really bad.
Its hard work to do this.

Is there a shorter approach to get a more accurate looking arrow which is developing during time? I know the curve->path object, but I dont know how to explain to blender that it should develop during time (as in the image below).

One solution is to make your arrow as a Curve, and then adding a Build Modifier to it.

It will animate along the direction of the curve (represented by the arrows in Edit mode), but you can check Reverse to change this. Also you can cange the start and length fields to your likes.


Permission denied when opening .txt file with python I wrote a script that involves outputting some information to a .txt file.  A couple days ago this script worked just fine with no errors.  Since then I have changed nothing in the script but now when I run it in Blender I get the following error:

traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
PermissionError: [Errno 13] Permission denied: 'input.txt'

With info from the various other Permission denied questions (here, here, here, and here) I have done some troubleshooting and gleaned the following information:

The file is not open anywhere else.
I can save the .blend file and open/import/export other files just fine, unlike the problems the above linked questions are addressing.
I have tried open('input.txt', 'w') from the command line within Blender and it throws the same error.
I have tried open('input.txt', 'r'), and open('input.txt', 'r+') as well, these throw [Errno 2] No such file or directory: 'input.txt', even though the file does in fact exist.
I can open and write to the exact same file from a python script outside of Blender just fine.  So the problem seems to be from within Blender.
This exact same script worked just fine a couple days ago, it has not been modified since.

Any idea what could have changed and caused Blender (and Blender only) to no longer be able to access this file?

I had the same problem today! I don't know if It's too late now, but this is my solution: insert the entire file-path for your file.
Example:
file = open("C:\\Users\\userName\\Desktop\\Codes\\f.txt","w")


How do I manipulate curves of animated textures?? (not showing in graph editor) Animated the mapping coordinates of a texture (pressed i with cursor over attributes) - but can't see these keys in timeline/dopesheet/graph editor.

I need to adjust the interpolation of these keys and also ad some modifiers to these curves.

PLEASE HELP.

Think I figured the issue out.
Normally if I select an object, it's animated properties show up in the animation editors (graph/dope/timeline)... but it seems that to access animated attributes of an object's shader nodetree, both the object AND it's animated shader node has to be selected.

I selected the object in a 3d viewport, and also clicked on the animated shader node in the shader editor.... and the animated channels where available for editing in the graph/dope sheet/timline.


UV Map Scaling Issue I have created a simple mesh in blender 2.72 and created a UV map for the mesh for exporting to another engine.

This all works and I can apply a texture to it in the third party engine but the scaling of the texture is not correct (it appears as image below does in blender without scaling UV map) ... this is because textures in the external application I would like to use are 1024x1024 and the UV map in blender by default is 1024x1024.

After much investigation I have found that you can scale UV map very easily and I can achieve the scaled texture that Im looking for such as this

My question relates to the imprecise nature of this scaling.

If I want to create many meshes to export with the same UV scaling so that the textures in the external application are all applied consistently (which I do) there does not seem to be a way to scale the UV map manually (i.e. provide manual scale parameters) you can only scale with the mouse in a haphazard way without knowing what the scale is other than eyeballing it in the 3d view?

So, is this
a) the correct way of scaling my model so that textures are rendered the way I want and
b) if so can I specify the scaling manually for the UV map (i.e scale UV by 10.0)?

Thanks in advance for any help

I have been pulling my hair out on this one for some time

Manual precise UV scaling:
In UV editor place your 2d cursor in the desired center of scaling, you can place it precisely from Properties tab N. In the header swith to 2d cursor pivot:

Select UV vertices and enter transform mode with S, in the header area type the exact number or an expression. You can constrain axes by X or Y.
Precise UV scaling of multiple selected objects:
import bpy
import bmesh
from mathutils import Vector

# center of scaling - edit this
pivot = Vector((0.0, 0.0))
# amount of scaling in each axis - edit this
amount = Vector((2.0, 2.0))

for object in bpy.context.selected_objects:
    mesh = object.data
    bm = bmesh.new()
    bm.from_mesh(mesh)
    uv_layer = bm.loops.layers.uv.active

    for face in bm.faces:
        for vert in face.loops:
            vert[uv_layer].uv -= pivot
            vert[uv_layer].uv.x *= amount.x
            vert[uv_layer].uv.y *= amount.y
            vert[uv_layer].uv += pivot

    bm.to_mesh(mesh)


Why does the mirror modifier disappear when I merge objects together? For starters, I started studying blender it's been just a couple of weeks.

So, just for fun, I started modeling a key using a torus, a cylinder and a cube, as you can probably figure out by the images below:

It was all fun and games 'till I tried to merge the objects into one using Ctrl+J, weirdly the result was this:

I've tried changing the sequence of selection when I was merging, but it didn't solve the problem. That little thingy still disappeared. I think this error is due to the mirror modifier I used on the last piece of the key, and maybe when I merged it something wasn't compatible.

I also tried adding the same modifier to the other pieces but the result was the same. The last piece in detail can be seen in the link with the screenshots.

If anyone would kindly explain what's going on and hopefully come up with a solution I would be very much appreciated.

When you merge two or more objects together, all selected objects will inherit the modifier stack of the active object (the object selected last).
If you're selecting the teeth object first (the object that has the Mirror modifier) then the key object (the active object that doesn't have it), the Mirror modifier will be deleted, since the active object doesn't have one.
The best solution is to copy the object that has the Mirror modifier, put it on a different layer for backup, then go to the original object and apply the Mirror modifier before merging it with the key object.


How to maintain multiple cameras with different resolutions I'm developing a scene and want to have a few different camera settings: an isometric camera with render resolution x==y, and a wide-angle perspective camera with render resolution x>y, and maybe a couple more.

To start, I created a linked copy scene, adjusted the dimensions and set the active camera.

I continued developing my scene, adding objects, etc.

I now realized that the object links were setup when I added the new linked scene, but any new objects I add after of course only exist in the one scene where they were added.

Is there a way to maintain all objects being linked to all scenes?
Is there a better workflow I could be doing to achieve this?

This kind of situation is best handled with Python in my opinion since it's so simple to tweak and you can keep working on just one scene.

This simple script would change scene resolution, change camera (perspective/orthographic views are set within the camera), and start the render:

import bpy

bpy.context.scene.render.resolution_y = 1110
bpy.context.scene.render.resolution_x = 870

bpy.context.scene.camera = bpy.data.objects['camera1']
bpy.data.scenes['Scene'].render.filepath = "C:/Test/"+"orthographic"
bpy.ops.render.render(animation=False, write_still=True, use_viewport=False)

bpy.context.scene.render.resolution_y = 220
bpy.context.scene.render.resolution_x = 360

bpy.context.scene.camera = bpy.data.objects['camera2']
bpy.data.scenes['Scene'].render.filepath = "C:/Test/"+"perspective"
bpy.ops.render.render(animation=False, write_still=True, use_viewport=False)

To use make sure you change the resolution numbers, match the camera object names, change camera object to perspective or orthographic, match the 'Scene' to the name of your scene, change the filepath C:/Test/ to wherever you want to render.


Animate collection instance (material) independently? I have an object collection (let's call it a Red Cube for simplicity) which has a "blinking" animation (via emission material + keyframed mix shader).

Now, I want to create several instances of that collection, and be able to have a different animation timing for each instance.

For example, one might blink for a second every 5 seconds, another one blink twice every 10s, etc.

Is there any way I can accomplish this, without having to create a new material (and object using it, and collection...) for each new light pattern I want to create?

Ideally (at least, in my mind) there  would be a way to attach some kind of "argument" to an instance, describing how the light should behave -- that can be used by the material to control the animation, if that makes any sense..?

Model:

Material:

Sure.  Check it out:

There are a number of different ways to identify exactly which emitters you want behaving this way or that, but I think that using UV is the easiest, particularly with 2.8 improvements.  Here, I'm using the UV.x position of each object, which has been shrunk to 0 with individual origins pivot, to decide what period to use for the sine wave that I'm using to drive emissions.  Everything is driven from a single value node, where I just entered #frame to get my current frame count.

You can use something other than UV to identify which objects you want behaving which way, like object ID or position or vertex color.  I just find UV easy to use and flexible.  If you're using UV already, just create a new UV map; but if you're using linked objects, you'll need to use a different identifier.


Get Final Render Depsgraph I am writing a simple exporter in python. I want to export the meshes as triangle meshes, with modifiers applied. Therefore, I want to access the evaluated version of the final render dependency graph. However, I only see one way to get a depsgraph, which is bpy.context.evaluated_depsgraph_get(), that returns the viewport depsgraph. How can I access/create the render depsgraph?

As confirmed here by Blender devs, there is currently no way to access the render depsgraph from the python API.


Some vertices aren't visible when i go to edit mode from weight paint mode When I am in weight paint mode and I want to create a vertex mask. I click tab and some of the mesh does not show the vertices.

I can hit alt-h to unhide but when i go back to weight paint mode and the vertex paint, it wont let me paint over them or show the vertices. how can i unhide those vertices? I'm fairly sure its not the subdivide sruface hiding them. its only on the arms some hair strands and the fingertips.

ok .....i have solved the problem , the problem was a bug.......i have uninstalled my blender 2.91 version ....and installed the 2.838 lts  version and this solved the problem .........lts version is better because they keep fix bugs


Inverse fuction to "Rip Region" to heal disconected faces There is function Rip region (Rip polygon) which disconnects faces and creates non-manifold mesh

Is there some inverse function which can heal it back ?

background:

I often create some meshes with disconnected faces, sometimes imported from different programs. I would like to Heal them - i.e. to make proper manifold mesh from them, sine they are more convenient for further editation

There is the Weld modifier (since 2.82) for non-destructive workflow.

You can use a vertex group to limit it's influence.


Assign a different material to objects within dupli_group instances Say you have a cube and a sphere grouped as 'Group'. You instanciate that group and link it to the scene. Now when you click on the instance, there is no material panel.

See the two pictures below for a better understanding of what I'm trying to do.

Is it possible to access the duplicated objects in the dupli instance in order to give them new materials ?

The only thing I succeeded in doing is to assign a material to an object instance but not to objects within a group instance.

Python answers are welcome.

As requested, here's the code to create a dupli_group instance:

layers = [True] + 19*[False]

# Could replace this with bmesh method
object1 = bpy.ops.surface.primitive_nurbs_surface_sphere_add(radius=1, location=(0, 0, 0), layers=layers)
object1 = bpy.context.active_object

object2 = bpy.ops.mesh.primitive_cube_add(radius=1, location=(4, 0, 0), layers=layers)
object2 = bpy.context.active_object

group = bpy.data.groups.new('some_group_name')
group.objects.link(object1)
group.objects.link(object2)

group_instance = bpy.data.objects.new('some_group_name_instance1', None)
group_instance.dupli_type = 'GROUP'
group_instance.dupli_group = group

bpy.context.scene.objects.link(group_instance)

Then I would expect to have a way to target object1 and object2 within group_instance and to set new materials that won't affect other instances.

Unfortunately, I think it is not possible to do exactly what you want to do.

One of the advantages of using an Empty with dupli_group is that you don't have the overhead of storing much in the way of differences (location, rotation, scale).

If you want to alter the group, you will probably have to instantate objects by copying the data from the group.  There's actually a keyboard shortcut to Make Duplicates Real (Ctrl Shift A) that would work for interactive use.  Since you were using python in your original project here is a small python script I wrote that might accomplish your mission:

import bpy

def mission1(group, scn):

    parent = bpy.data.objects.new("parent", None)
    scn.objects.link(parent)

    for obj in group.objects:
        o2 = obj.copy()
        o2.parent = parent
        for i in range(len(o2.material_slots)):
            ms = o2.material_slots[i]
            ms.link = 'OBJECT'
            ms.material = o2.data.materials[i]
        scn.objects.link(o2)

    return parent
#
#

anchor = mission1(bpy.data.groups["Group"], bpy.context.scene)
anchor.location = [2,0,2]

The parent object is not strictly necessary, but it gives you the ability to manipulate the location and orientation of the group very much like the dupli_group empty you were using before.

An important drawback is that once you have instantiated these copies modifications to the group (adding, removing, relocating objects) will not be propagated.


A strange problem with rendering glass in Cycles While I look on my model by shift+z (in viewport) it looks good:

Render without wired connections to the center

But when I render same scene out it looks like this:

I think this is caused by wrong topology, but still - in preview-mode it looks good, can I do something to make render like 'preview render'?

There is photo of the topology:

After pressing random buttons, and trying to fix mesh - successfully i did it!
There was problem with my mesh - gaps caused mirror modifier, and some other things.

There is how I fixed it:

At first I was searching for something wired in mesh, found not connected edges, so I selected them.

And scaled them down. pressed s + x (axis of scaling) + entered 0 on keyboard

After scaling them together i removed doubles by selecting all edges press two times a then click w > Remove Doubles

In the end, with selected mesh I pressed Mesh>Clean up>Split Concave Faces...

And Voilà!

 :)


Estimation of focal length when using BLAM I am trying to understand how the BLAM addon works. In the Blender default scene I made an image of a cube with camera focal length 35mm. Then I created a new blend file and opened this image in the movie clip editor and did draw the lines requested for camera calibration with BLAM.

After BLAM camera calibration the focal length was set at 32.37. I really don't understand this (the image was made in blender with 35.0).

Blams accuracy depends on your line drawing accuracy. Maybe if you would repeat the cube line pixel to pixel it would calculate focal length correctly, but I bet there would still be some minor inaccuracy. As for the mesh reconstruction, even in introduction video is stated, that resulting object will probably not be perfect, so you should expect that. BLAM is not perfect, but certainly changes tens of minutes of tweaking into few minutes of tweaking, so it's not bad at all.


why boolean modifier not making difference Im modeling a car and with some shape im getting a difference. With the boolean modifier with the difference selected its not getting cut. I have remove double of the mesh and of the shape yet to no result i found. Any suggestion.

Ateks,the file had several issues:

car body had no boolean(?)
car body had several unapplied modifier mirror > subsurf > edge split - those were interfering after adding a boolean modifier (it showed an error), so I applied them all
the bars HAD negative X scale(corrected)
the bars also had edge split modifier (I applied it)

in this way I could obtain this:

which should be more or less what you wished, I hope.

Here is the modified file


How do I create a proper bevel on narrow, pointy shapes? I find myself running into variations of this problem with increasing frequency, where I have a narrow, curved, pointy shape like the one exemplified below, and I can't figure out how to create a bevel that isn't a mess of overlapping and clipping geometry.

Does the problem just lie in my topology, or am I going about this in entirely the wrong way?

This is what manually correcting the bevel yielded: It doesn't have the best topology, but it seems to work:

Blend File:

There are multiple bevel modes. In 2.79 If you hit "W" then "B" for the bevel tool, you can switch between them by hitting "M"


Arrary script wont create a a duplicate im trying to create a script that does basically what the array does.  My code only moves the active object but does not duplicate and move the duplicate.
import bpy

 def createcircle(curve, number):
    for x in range(number):
        duplicateobject = curve.copy()
        duplicateobject = bpy.ops.transform.translate(value=(0, .1, 0))

 createcircle(bpy.context.active_object, 10)

try this:
import bpy
import math

def createcircle(object, number, radius, xOffset, yOffset, zOffset):
    origin = object.location

    for x in range(number):
        newObj = object.copy()
        bpy.context.scene.collection.objects.link(newObj)
        newObj.location = (origin.x + xOffset * x, origin.y + yOffset * x, origin.z + zOffset * x)

print("script started ---------")

radius = 6

createcircle(bpy.context.active_object, 10, radius, 2.1, 0, 0)

you created the cubes, but you created them in "nirvana". You have to link them to a scene to "see" them. But you can see them...if you go in your outliner and...check orphan data.

buuuuuut....i think, you were looking for this:
import bpy
import math

def createcircle(object, number_of_objects, radius):
    origin = object.location
    angle = 2 * math.pi / number_of_objects
    for x in range(number_of_objects):
        newObj = object.copy()
        bpy.context.scene.collection.objects.link(newObj)
        newObj.location = (math.sin(angle*x)*radius, math.cos(angle*x)*radius, 0)

print("script started ---------")

radius = 6

createcircle(bpy.context.active_object, 10, radius)

result:
[2
and here is a video tutorial: https://youtu.be/k2lsdYBwocU
just in case you are interested ...


Animating A Logo With Boolean I can't find a way to animate this logo with booleans
so i need this logo to appear from the center with a boolean-like effect

can anyone help me with this?

I'm sure there's a more intelligent way but here is one:

Create your P shape from a 64 vertices circe.
Convert it to Curve.
Create a plane, it will be your profile shape, don't forget to put vertices close the corner so that it will sharpen the edges.
Convert it to Curve.
Now select your P curve, go in the Properties panel > Data, in Shape choose 2D, in Geometry choose the plane as the Bevel Object, and enable Fill Caps.
The profile appears along the P.
If you play with the End value of the Geometry you'll see that it will progressively fill the P shape. You'll use this value and some keyframes to animate the appearance.
Duplicate your P shape to build your logo shape.
Don't forget to Smooth the shapes.