Which denoiser is better? In blender 2.81a, there are two denoising tools:

Under layer properties, you can scroll down and enable denoising
Also in layer properties, you can check "denoising data" under passes > data and in the compositing workspace, you can add a denoising filter

Is there a difference between these two? If so, what is different and is one of them "better" (faster, more efficient etc) than the other?

Any help would be appreciated. Thanks

For now Intel's OpenImageDenoise is superior to all the other ones. From the release notes:

Compared to the existing denoiser, it works better with more complex materials like glass, and suffers less from splotchy artifacts. It also gives better results with very low numbers of samples, which can be used for quick previews.

It's just a post process so it's easy to set up and thus not exclusive to cycles, means that the node also allows to denoise eevee renders as well as images synthesized by other render engines.

Also see: Type of Denoiser built into Blender


Filmic Log: How to render a texture to appear identical to the input image? EDIT:
I know this is a hack. The thing is why this hack works in Compositor and not as a texture?
I ran into an issue when editing OpenColorIO config file and I don't know if this is a bug or I misunderstood something. So I created this minimal example:
Let's say I have an image/texture in the 3D scene to serve as a reference - I want to see this image in the viewport with the original colors, while at the same time I would like to work on the 3D environment and render it in Filmic Log (in this example. Normally Filmic no-Log, but I will change the config file anyway, this is an ilustration).
So, the View Transform is sRGB / Filmic Log.

If I load this image in Compositor and assign ALSO "Filmic Log" as its color space, the image is output perfectly intact. However, if I assign this image as a texture, again with Filmic Log colorspace, then there are wrong colors are on the output.
You can see the difference side-by-side here, left half of the parrot is the perfect one from the compositor, right half of the parrot is the washed-out texture.

The material is simple Emission shader, the scene is otherwise empty, just camera and plane with texture.

I thought the textures is converted from preset color space (Filmic Log here) into to reference space (Linear) and then back to Filmic Log on the output, but it seems that something else is happening as well and I don't understand it. Thanks for any explanation! :)

Images look correct only if they are displayed on the color space that they were encoded to use, or if the color transform to the display deals with the conversion to a different display or color space.
If your image is not log encoded you should never set it to use log as color space. I presume the image is encoded as sRGB sot that is the only color space you can set it as. The issue is that log and filmic use a much larger dynamic range, while the jpeg you are importing is limited to display referred values. Start by reading the post on this site on filmic
Render with a wider dynamic range in cycles to produce photorealistic looking images
and
How to mix a jpeg background image with a 3D scene generated using Filmic Blender?
By reading that you will realize that there is no perfect way to mix apples and oranges, other than using images that are using scene referred values (log encoded or linear EXRs). Images encoded as sRGB are impossible to reverse to linear scene referred values, they can only be linearized to display referred linear (form 0 to 1).
The problem lies in how display referred images are encoded, besides reversing the gamma curve (trivial issue), the way the highlights and shadows are encoded is already non-linear, as it is something that each individual camera does differentrly, and therefore not reversible to linear values accurately. You can play with curves and even with the ASC-CDL node to try to modify the values, but know that at that point is all hokus-pokus and unscientific as it gets, plus you will quickly run into issues where banding and other quantization errors will appear, particularly in 8bit images. Moreover, jpeg is a terrible format to begin with, and will also break once you start distorting the values that make such compression scheme work, showing macroblocks and fuzzy edges.
Display referred image created on a camera is already taking into consideration the fact that we perceive light in a non linear way, as we see better into the shadows than in the highlights, so those images are created to emulate that and therefore need to skew the way values for shadows and highlights are assigned. There are more bits used for the shadows. If you try to linearize the information you will find that at lot of the information on the highlights is just not there, and any tool will have a hard time inventing what is not there.


Is there a shortcut or hotkey that I could use to access the Transform panel of the properties shelf in the 3D viewport? While working on vertices, and wanting a bit more precision than I can get with a mouse, I use the transform panel of the properties shelf in the 3D viewport. But to do this, I have to move the mouse over to the panel, make my adjustments with the keyboard, and then mouse back over to the vertices I'm working with. Is there a shortcut or hotkey that could eliminate the mouse moves?

You can also use the keyboard shortcuts combined with the Arrow Keys.

For example: in top view pressing G and the up/down arrow keys will move the selected vertices on the vertical (Y) axis. The left and right arrows will move on the horixontal (X) axis.

On any side view, the up/down arrows will control movement on the Z axis.

You can still use constraints like GX, G Y, GZ to limit the movement to one axis

The precision of your movements will depend on how far you zoom in on the viewport.

For even smaller moves you can press Shift while pressing the arrow keys.


Paint BW texture, if used color stencil I want draw Roughness map. It may be in BW mode, but I use color stencil. It is possible draw in BW mode (not color)

If you go into the Texture Properties, and expand the Color panel, you can set the Saturation to 0. The colors will output in shades of gray.


Why doesn't the mirror modifier work with object groups? Why doesn't the mirror modifier work with object groups? I have a group made of four objects to which I want to apply a mirror modifier. For me, it's not working. What are the steps to make apply a mirror modifier to a group of objects?

The closest that I can think of to applying a mirror modifier to a group is to use the mirror object functionality, and have the constituent objects in the group be mirrored by using the mirror object. According to the Blender manual, the definition of a mirror object is

  ... another object (usually an empty), to be used as the reference for the mirror process: its center and axes will drive the plane(s) of symmetry. You can of course animate its position/rotation to animate the mirror effect.

Otherwise, the mirror modifier is designed to be applied at the object level, and won't work at either the group level, or the mesh level.

To see how to use a mirror object, do a search of the available blender tutorials using the search parameter "mirror object".


Not unflipped normal but some faces are unusually brighter? Why are these faces brighter than the rest? These are not flipped normal. After creating the window with edge loops, I deleted some edges and joined distant vertices to make face, thinking that doing so will reduce tris count. I shall use it in Unity.

I figured it out. I had left some faces detached from the same-object mesh. How could I do that!
All I had do to was to merge vertices of the loose faces with the vertices in respected positions. The edges of the  loose faces were positioned just beside other edges of the larger mesh. So visually, there were two edges side by side. Merging vertices solved the problem.


I moved two vertices on the cube: once side is bent inwards and the other not What I did is:

I selected the right vertex and moved it to the left.
I selected the left vertex and moved it to the right.

Please notice how on the right the geometry is somehow bent inwards and on the left it is not.

Why is that so? Is that a correct behavior?

To add to the other answer, it is possible to fix errors in the automatic triangulation of meshes.  Faces can be triangulated by pressing Ctrl+T and converted to quads by pressing Alt+J.

When you force triangulation you often find Blender evens out any inconsistencies, but you can manually rotate edges using the Edge menu if necessary.  When done convert back to quads and your mesh should look a lot a more even.


I accidently hit a key combo and it messed up my view My hands accidentally fumbled over the keyboard and the 3d view ended up with a dark volume that extends out forever from a point. Anything outside that view is hidden. I am unable to recover the file for some reason and may of just lost about 20 hours of work as I am unable to find out what I did.

You can try this:
File > Load Factory Settings.

Of course, this will reset any custom settings you set up.

I don't know what that thing is. Kinda looks like a lamp. Try alt+H to un-hide everything? Or check other layers?

Sorry about your lost work. Did you check .blend1 files?


Dynamic Paint to select vertices in edit mode Is there a way to use Dynamic Paint to make a selection of vertices to then be able to delete in edit mode. I would like to use a brush to accurately select a specific shape from a dense mesh. Thanks in advance for any help.

No. While it appears to be possible at first, the data is only there during the simulation, going into edit mode clears it out.

If it suits your needs, you could dynamic paint vertex weights and use that with a mask modifier to hide part of the mesh.

I expect you will have to use border, circle or lasso selection to get the verts you want in edit mode.


Is it possible to add a Child Of modifier without changing position of the child? Currently, when I add a child-of modifier, the child jumps to the parent's head and rotates.

Why is that?

And more importantly, can I have blender not do that and keep the bone where and how it was, instead?

(I just want to "parent" a second armature to the first as if I had one armature where I parented with keep offset.)

Yes, in the constraint, click on the Set Inverse button. By default, the child will stick to its parent, but if you click Set Inverse it will keep its original position (like a Parent > Keep Offset).


How to draw RGBA 2D image in 3d_view with gpu module (or without)? I just copied and pasted from https://docs.blender.org/api/current/gpu.html#d-image:

import bpy
import gpu
import bgl
from gpu_extras.batch import batch_for_shader

IMAGE_NAME = "Untitled"
image = bpy.data.images[IMAGE_NAME]

shader = gpu.shader.from_builtin('2D_IMAGE')
batch = batch_for_shader(
    shader, 'TRI_FAN',
    {
        "pos": ((100, 100), (200, 100), (200, 200), (100, 200)),
        "texCoord": ((0, 0), (1, 0), (1, 1), (0, 1)),
    },
)

if image.gl_load():
    raise Exception()

def draw():
    bgl.glActiveTexture(bgl.GL_TEXTURE0)
    bgl.glBindTexture(bgl.GL_TEXTURE_2D, image.bindcode)

    shader.bind()
    shader.uniform_int("image", 0)
    batch.draw(shader)

bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_PIXEL')

But it rendered in black and white colors.

So,

How to draw colored image?
How to draw with alpha?
It doesn't render it immediately - only when I hover over some view_3d interface widget. How can I force to draw it immediately?

The problem seems to be SOLVED.

I just can't understand why the image I've tested first time rendered noncolored.

Here is some Screenshots.

Second time I add image it was drawn RGB.

But why it doesn't render immediately? Is there some refresh function operator or etc.?

The 3D view does not know about this script, so it won't draw immediately since some change occurs for it.

But you can force updates in 3D views using this at the end of your script:

for area in bpy.context.window.screen.areas:
    if area.type == 'VIEW_3D':
        area.tag_redraw()


How to get rid of excess vertices lined up in a straight line I have a cube that is subdivided and with a hole cut through it, but there are 2 excess vertices on each edge between the real vertices. How do i properly delete them without upsetting my project?

EDIT: what to do if the vertex is in the middle of an edge?

Someonewithpc's answer is almost right. The correct operator for this purpose is located in the same menu, it's the Limited Dissolve. It allows to limit the max angle, so setting the value low enough will remove only the excess vertices on straight edges.


Solidify non manifold (non contiguos) I tried to solidify a poligon extrusion, but it seems to be more complex than expected.
After solidification some edges seems to cross each others, but I believe this should be a real common result because my geometry is not particulary complicated.

What can I do to correct this issue?
tank you.

extruded angle
solidified angle (wireframe view)
solidified angle (solid view), with crossed faces.
I would like to delete only crossed faces and plug the external perimeter with a single face.

EDIT

I did a mistake during the post:
the original geometry was an agle, but trying to surround the problem I added an edge (instead the angle).
the @rob solution was correct for the angle! tank you @rob (very gratefull)

this part of the problem is another one: how to solidify an edge (not an angle)

EDIT2:
for completeness i post the entire geometry (cursor on problem):

the file:
blender file

The mesh object has quite a bit of double vertices shown in the example below. They will prevent modifier from working properly as if extruded they will create even more intersections leading to z-fighting even without solidifying.

Selecting all and removing doubles in Edit mode solves that as they are intersecting with each other. Then extrusion should be done to have faces Solidify to work with. After extruding by default Blender orients half of normals to one side and half - to another.

Blue lines show normals orientation. According to that modifier will orient half of faces to one side and half to another one leading to intersections. Select all and recalculate normals in Edit mode.

Lastly object scale is uneven. It doesn't prevent Solidify from working but it does give unexpected result, on the image below left is before scale applied, right one is after. To apply scale in Object mode press Ctrl+A.


Copying PropertyGroup values I'm trying to make a configuration dialog, which prompts the user for some options and can then be committed or cancelled entirely. The dialog is opened from a node. I would like to copy the existing configuration to be edited in the dialog Operator, and then copy it back when the Operator is done, or not in case it is cancelled.

Something like this:

class Configuration(bpy.types.PropertyGroup):
    configuration_option = bpy.props.StringProperty()
    ... more items

class ConfigurationOperator(bpy.types.Operator):
    ...
    bl_idname = "test.configure"
    conf_to_edit = bpy.props.PointerProperty(type=Configuration)
    def invoke(self, context, event):
        # Copy context.node.conf -> conf_to_edit
        # Store node reference somehow
        return context.window_manager.invoke_props_dialog(self)
    def execute(self, context):
        # Copy conf_to_edit -> node_ref.conf
        return {'FINISHED'}

class ExampleNode(bpy.types.Node):
    ...
    conf = bpy.props.PointerProperty(type=Configuration)
    def draw_buttons(self, context, layout):
        layout.operator("test.configure", "Configure Node")

Is there any cleaner way to do this than copying the contents of the PropertyGroup manually (or with some kind of hacky iteration)? I don't intend to nest PropertyGroups.

Example using custom node template.

Test code, put together with the custom nodes template for 2.8. Recommend that scripting now in 2.8 will save time going forward

Using Set up methods in the property group have a method to draw, and set and get from another object that shares the same pointer.

The draw method simply iterates and draws a basic prop layout for each property in way of example.  I've added a list of chosen props. Begs for a nicely formatted method.

The operator requires context.node  this has been added to the context at where the operator is displayed in custom node UI, the context member is set to the node, which is self in the node code.  For the N panel draw, the context active node is used instead.

    def draw_buttons(self, context, layout):
        box = layout.box()
        box.context_pointer_set("node", self)
        op = box.operator("node.configure")  # XXX

The config properties are drawn using. box is any layout element defined, could be self.layout or self.layout.column() etc.

        self.config.draw(box, context)

Note could flag to use self.node instead of self above  would display the node values directly.  Contemplating using this but inverting the operator to revert if cancelled, and make props live so one can dynamically dick around and only save when happy.

The node values are loaded on invoke using CustomNodeConfig.getfrom and set on execute with CustomNodeConfig.setfrom

Note It appears the config pointer will not register on the operator if it has an ID type pointer as a member.

from nodeitems_utils import NodeCategory, NodeItem
import nodeitems_utils
import bpy
from bpy.types import NodeTree, Node, NodeSocket

class CustomNodeConfig(bpy.types.PropertyGroup):
    __props = ["x", "my_enum_prop"]
    x: bpy.props.FloatProperty(name="X factor")
    my_items = (
        ('DOWN', "Down", "Where your feet are"),
        ('UP', "Up", "Where your head should be"),
        ('LEFT', "Left", "Not right"),
        ('RIGHT', "Right", "Not left"),
    )

    my_enum_prop: bpy.props.EnumProperty(
        name="Direction",
        description="Just an example",
        items=my_items,
        default='UP',
    )

    def getfrom(self, node):
        for p in node.__props:
            setattr(self, p, getattr(node, p))

    def setfrom(self, node):
        for p in self.__props:
            setattr(node, p, getattr(self, p))

    def draw(self, layout, context):
        layout.label(text="Settings...")
        for p in self.__props:
            layout.prop(self, p)

class NODE_OT_configure(bpy.types.Operator):
    bl_label = "Configure"
    bl_idname = "node.configure"
    node = None
    config: bpy.props.PointerProperty(type=CustomNodeConfig)

    def invoke(self, context, event):
        self.node = context.node
        if self.node:
            self.config.getfrom(self.node.config)
        return context.window_manager.invoke_props_dialog(self)

    def execute(self, context):

        if self.node:

            self.config.setfrom(self.node.config)
        # Copy config -> node_ref.conf
        return {'FINISHED'}

    def draw(self, context):
        if self.node:
            self.layout.label(text="%s" % (repr(self.node.id_data)))
            self.layout.label(text="%s" % (self.node.name))
        self.config.draw(self.layout, context)

class MyCustomTree(NodeTree):
    '''A custom node tree type that will show up in the node editor header'''
    bl_idname = 'CustomTreeType'
    bl_label = "Custom Node Tree"
    bl_icon = 'NODETREE'

class MyCustomTreeNode:
    @classmethod
    def poll(cls, ntree):
        return ntree.bl_idname == 'CustomTreeType'

class MyCustomNode(Node, MyCustomTreeNode):
    '''A custom node'''
    bl_idname = 'CustomNodeType'
    bl_label = "Custom Node"
    bl_icon = 'SOUND'

    my_string_prop: bpy.props.StringProperty()
    my_float_prop: bpy.props.FloatProperty(default=3.1415926)
    config: bpy.props.PointerProperty(type=CustomNodeConfig)

    def init(self, context):
        self.inputs.new('NodeSocketFloat', "World")
        self.outputs.new('NodeSocketFloat', "How")

    def copy(self, node):
        print("Copying from node ", node)

    def free(self):
        print("Removing node ", self, ", Goodbye!")

    def draw_buttons(self, context, layout):
        box = layout.box()
        box.context_pointer_set("node", self)
        op = box.operator("node.configure")  # XXX
        self.config.draw(box, context)
        layout.label(text="Node settings")
        layout.prop(self, "my_float_prop")

    def draw_buttons_ext(self, context, layout):
        box = layout.box()
        box.context_pointer_set("node", context.active_node)
        op = box.operator("node.configure")
        self.config.draw(box, context)
        layout.prop(self, "my_float_prop")
        layout.prop(self, "my_string_prop")

    def draw_label(self):
        return "I am a custom node"

class MyNodeCategory(NodeCategory):
    @classmethod
    def poll(cls, context):
        return context.space_data.tree_type == 'CustomTreeType'

# all categories in a list
node_categories = [
    # identifier, label, items list
    MyNodeCategory(
        'SOMENODES',
        "Some Nodes",
        items=[
            # our basic node
            NodeItem("CustomNodeType"),
        ]),
]

classes = (
    CustomNodeConfig,
    NODE_OT_configure,
    MyCustomTree,
    MyCustomNode,
)

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

    nodeitems_utils.register_node_categories('CUSTOM_NODES', node_categories)

def unregister():
    nodeitems_utils.unregister_node_categories('CUSTOM_NODES')

    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)

if __name__ == "__main__":
    register()


Video renders look pixelated Ive been having this problem that my MP4 renders look chopped in final render.
I cant find the solution

This is in the render screen:

This is in the final render

Hey thanks for trying to help.
I checked those settings but no difference.
Here are my settings:
I just add movie and sound and render it so no prosessing

I can think of a few possibilities, however it almost looks like option 2:

Video encoding:

Resolution (or % thereof)

Sampling

Actually check all of the Output and Render properties.
Are you are doing any post processing in Composition?


Size of an object from a distance of the camera In my example, I have set up a canvas 500 x 500 pixels, and scaled my object to fit in the camera boundaries. Once exported to Photoshop I can see it's the correct size I wanted to export my object.
But is there a way knowing the dimensions of the object in Pixels (if there's an add-on) since it's away
from the camera boundaries. I can see the dimension of the object in Metres, but the conversion of metres to pixels is confusing. So if there's a way to see pixels when sizing and object that would be great.
Thank you.

Notes towards an answer.
The size of the final output image (in pixels) depends on the resolution settings for the project.
There is no default size for pixels when images are used as textures, the size of the image depends on the dimensions of the object, and how the textures are mapped as part of the material.
The size of objects in the camera view depends on three different variables:

The dimensions of the object.

The camera lens (or field of view in degrees).

The distance between the object and camera.

Answer.
With the information above you can then use Trigonometry(https://en.wikipedia.org/wiki/Trigonometry) to calculate camera placement, or lens size, or the dimensions of the object so that the image fills the screen.

End of answer.

For a lazy way to have an image fill the screen read on:
When you import an "image as plane" you can determine the size. By default blender will import an image as a plane that measures 1 unit in height.

But if you open the settings, by pressing N or pressing the gear icon on the top right, you can change the settings to Camera Relative.
That will allow you choose to have the image be at a scale that fills the current camera view. Select Fill or Fit.

Fill will fill the camera frame. (if the image is a different aspect ratio than that of the camera then the image might spill out of the frame)
Fit will fit the entire image within the camera frame (if the image is a different aspect ratio than that of the camera the image will have some empty space around it)
If the camera view and the images are the same aspect ratio, then you can use either one of those choices.


Weird blotchy shadows in blender cycles (denoising) I have an interior scene with a window opening, a portal light in the window and an area light acting as sun light. I want to achieve this dramatic cinematic feeling without interior spot lights apart from the kitchen counter light. I know its hard to properly denoise these kind of scenes and im very new to blender (i have a modo and vray background)... I keep getting this blotchy shadows and i cant get rid of them nor de noise, i used to have a hdri to iluminate my scene but i changed it to an area light with no improvement, i started with 1024 samples and now im on 9000+ samples with no aparent improvement... render time is crazy high and the result is the same. Im trying to get Optix denoising to work on my gtx 1070 on a custom build i found online with no luck

This is how to use Intel Optix Denoise node in compositor.
Basically instead of using the Blender denoiser, using this node allows you to denoise a scene using low samples, and without creating splotchy/dark areas.
Downsides? This node may cause blurring in some areas, when used with very low samples.
This image is with regular denoising, rendered at 4 samples (to show effect):

This is the same scene, but using the denoise node in the compositor to denoise:
This is the original image without any denoising:

As you can see, it has a major effect on render times, and denoises well, but it can be blurry on very low quality renders.
You can enable this node by going to the compositor, and clicking "use nodes". Then add the denoise node between the image node and the output node. (You can press Shft+A to pull up a search menu for the node).
A simple connection between the image points should do the trick:

If that is too smooth, you can try connecting the image node to both the image and albedo points on the denoise node:
The node runs on your CPU, so there should be no reason why you can't get it to work.
For more info about connecting the denoise node, see this post:
How to properly connect the Denoise node in Compositor?


Can I slow down my entire animation with particles? My animation has particles and keyframe animations in it. I really like how it looks right now, but I want it to play out slower while retaining 24 fps. It seems that Time Remapping only affects keyframe animations. The only solution I could find to slowing down particles was lower velocity and increasing damping, but I would like to keep what I have now. Is there anything I can do?

If you have already baked jour particle systems, you should be able to simply slow down time by opening the "time remapping" option in the Scene tab and putting a bigger number into the slot labelt new, then in the slot labeled old (an example: the default value of "old" is 100 so if you put 200 into "new" that would slow down time to half the speed). I tried it with an keyframed animation and a particle system in my Szene and it worked just fine. Be careful to bake the particle system before you change the time remapping or it will not work correctly together with your other animations.


Cycles render stopped rendering I'm trying to render out my file but it stopped at frame 178 and now I can't get it to continue rendering, it just doesn't seem to do anything and then the software says its not responding. I've tried rendering it on my MacBook and now on my boyfriend's PC to no avail.

Link to the file: https://drive.google.com/file/d/1nwHD-AH2b-O3NW2531x5XOnbD8xxiBJY/view?usp=sharing

The frame renders just fine, it just takes a very, very, very long time to synchronize the objects... You are using a highly subdivided model. In my opinion you don't need that many vertices.

Try simplifying the topology and reduce the number of vertices as much as you can.

Additionally, instead of animating the visibility of the objects, play with shapekeys, so that you are dealing with a constant number of vertices for the start and end of the morph transformation.


Can I adapt UV map after geometry change? Is there any way to repair a pre-existing UV map after deleting some unnecessary faces and replacing them by a simpler geometry? Everything of the old mapping works fine. Unfortunately my new vertices are all positioned at the bottom left of the UV map. This leads to rather odd textures in the front of my car model. (See screenshot below reference.) Unfortunately I don't understand yet how customized uv-mapping works. I just want to adapt pre-existing models.
I expect I would need to add the new faces to the proper selection group. But how can I do that?

You may have to re-unwrap your mesh so that the new vertices will confine to the newer state of the mesh. You can do this by pressing U > Reset > Unwrap.


Animate an object by moving it according to a list of coordinates I have the list of coordinates of an object (a ball) in 3d space in a csv file. How can I create an animation in blender of that ball moving through those coordinates?

Assuming you have csv file with row like:

1.2,2.4,2.0
2.2,2.8,2.4

and assuming the requirement is to animate the ball with a constant frame interval between each of the coordinate set in csv, here is the code snippet:

import bpy
import csv
from mathutils import Vector

csvPath = '/path/to/the/csv'

#Not the most efficient way of creating a mesh , but should be fine for just one object
bpy.ops.mesh.primitive_uv_sphere_add(size=1)
ball = bpy.context.object

startFrame = 1
increment = 5 #This can also be in the csv
newFrame = startFrame

with open(csvPath) as csvFile:
    reader = csv.reader(csvFile, delimiter=',')
    for row in reader:
        #First set the location and then insert key frame
        ball.location = Vector([float(r) for r in row])
        ball.keyframe_insert(data_path='location', frame = newFrame)
        newFrame += increment

#Set the end of animation, if needed
bpy.context.scene.frame_end = newFrame


How to import 3D buildings from OpenStreetMap to Blender As an OpenStreetMap (OSM) user, but pretty newbie regarding to Blender (I know the basics, but never used in depth because I get lost) or developing, I would like to 3D print some buildings stored in OSM and maybe make some basic renderings/modifications with Blender. After having done some research I've come to two different workflows but unfortunately none of them work for me, so hopefully anyone can tell me how to improve them or provide another one:

Preamble: download OSM data

I have exported an OSM area into OSM's native format *.osm file (which is an xml file) from their website. Full explanations on exporting an OSM file can be found here. For purposes of this exercise I will be downloading this particular area, which looks like this on this 3D Viewer thanks to the work of the community.

The osm file that I am working with can be downloaded here as well.

Scenario 1: Using BlenderGis Addon

BlenderGis Addon provides a lot of interesting features for GIS users. Amongst others it can import osm files geolocate, terrain analysis... it seems great!

Unfortunately the osm importer only imports 2D information of the geometry, and no other osm information is stored (at least I haven't been able to find it).

I would still need to extrude each object and model their roofs, and I haven't found any fast way to do that. I have just created a feature request on their repo, but despite it seems quite active I do not know if it will be accepted.

Scenario 2: Using Blender Geo Addon

Due to those problems I tried Blender Geo Addon which can import buildings in 3D, judging by this awesome video. It seems it has everything I need, except for these annoying issues (for me):

Only buildings that make use of osm's key building:height are extruded. Unfortunately this key is less used than building:levels which is more approximate but easier to get.
All roofs are flat, something which is not always true in most areas. OSM has some keys in order to store information regarding roofs, such as their type (roof:type) orientation (roof:orientation) and so on. (more details on that on this wiki)
There seem to be many overlapping meshes. (less cleaner than the other solution)

This is the result of the import:

The good news is that all this OSM information is stored as custom properties. The bad news is that I do not know how to work with them.

Regarding issue 1. I was wondering if there could be a way to extrude each object by its building:levels custom property without having to review and extrude them one by one.

Regarding issue 2: I do not have any idea on how to solve that. This is really a problem.

Regarding issue 3: I do not know if that's really a problem.

Final steps
In case I could fix the import problem my idea is to use 3D print toolbox and export the model into stl file.

Can anyone provide any clues to overcome these problems?

Here are some updates to the script https://github.com/vvoovv/blender-geo/blob/master/io_import_scene_osm.py

Extruded buildings based on building:levels using a level_height setting in import. Also added a scale setting.

https://gist.github.com/batFINGER/87ad90900be589281eeeaa83697d541f

Result So far.

Haven't done much with roofs yet.

Till I add it into code proper this adds some materials / object color to buildings

import bpy
from bpy import context

# CoDEmanX from BA.org
def hex_to_rgb(color_str):
    # supports '123456', '#123456' and '0x123456'
    (r,g,b), a = map(lambda component: component / 255, bytes.fromhex(color_str[-6:])), 1.0
    return (r,g,b,a)

scene = context.scene
# buildings with material

bm = [b for b in scene.objects if "building:colour" in b.keys()]
materials = {}
for b in bm:
    matname = b.get("building:material")
    if matname is None:
        matname = "building:material"
    mat = bpy.data.materials.get(matname)
    if mat is None:
        mat = bpy.data.materials.new(matname)
    mat.use_object_color = True
    if matname not in b.data.materials:
        b.data.materials.append(mat)
    if b.get("building:colour"):
        b.color = hex_to_rgb(b.get("building:colour"))

Might also pay to have a look at osm2x3d to convert to x3d and import from that format.  (Haven't tried)


Made the leg IK bone, tried to attach the upper leg bone to the pelvis but after attaching it, the body rotates a little bit I'm relatively new at rigging in Blender, and I tried to rig a humanoid model that I made. Everything went fine, but after finishing the leg IK bone, I tried to attach the upper leg bone to the lower pelvis bone to allow the model to crouch. But after attaching both leg bone to the lower pelvis bone and going to pose mode, the model and the rig was slightly rotated clockwise. When I lowered the lower pelvis bone to make the model crouch, the model leaned to one side and not the middle.
 Here is a copy of my .blend file of my model before attaching the leg to the pelvis: Character
Any kind of help will be appreciated.

In Pose mode, select your right lowerleg, go into Properties > Bone Constraints, and in your IK Constraint, change the Chain factor from 0 (influence the whole armature) to 2 (only influence 2 bones)


Problem with movements script in BGE I'm pretty new to the bge, which I'm using for a school project and right now I'm having a problem with my movements.py script. I know this question is quite 'noobish' but I just can't find the problem. The 'player' object is just a cube with character physics and actor enabled but won't move when I start the game simulation and press the different keys.

import bge

def main():

    cont = bge.logic.getCurrentController()
    player = cont.owner

    keyboard = bge.logic.keyboard

    if keyboard.events[bge.events.WKEY] == bge.logic.KX_INPUT_ACTIVE:
        player.applyMovement((0, .2, 0), True)

    if keyboard.events[bge.events.SKEY] == bge.logic.KX_INPUT_ACTIVE:
        player.applyMovement((0,-.2, 0), True)

    if keyboard.events[bge.events.AKEY] == bge.logic.KX_INPUT_ACTIVE:
        player.applyMovement((-.2, 0, 0), True)

    if keyboard.events[bge.events.DKEY] == bge.logic.KX_INPUT_ACTIVE:
        player.applyMovement((.2, 0, 0), True)

main()

TLDR: You need to enable True Level Triggering.
By default the "Always" Sensor only runs once, when game starts.
Any time you need something "always" triggered then you must click the little button with the three dots on the right side of the "Always" Sensor called "True Level Triggering" (I have it marked in red in the image below).

So your script works fine, just it was not running during the game.


Is it possible to assign a hotkey on the checkbox For example I want to assign on the checkbox "Wire" hot key F4
Can I do it?

Yes it's possible. Go to your User Preferences, Section Input, and navigate to 3D View, Object Mode:

Then, add a hotkey for Object Mode only, and use these settings:

Operator Name: wm.context_toggle
Hotkey: F4
Context Attribute: object.show_wire

This Operator allows you to toggle many boolean properties if they are accessible reliably via Python. You can test it by going to a Python console and typing in:

bpy.ops.wm.context_toggle(data_path='object.show_wire')

The object.show_wire part is referring to the Active Object, searching for a property called show_wire on it. so if you try this instead, the X-Ray Property will be toggled instead:

bpy.ops.wm.context_toggle(data_path='object.show_x_ray')

If you want to have the operator working for any mode in the 3D View, add the shortcut under the 3D View Global section.


How to set keyframe handles to be interpolated via script on the fly (low-level variant: keyframe_points.add(int) + keyframe_points[i].co=..)? When I do this in a script, both left and right handles begin at the (0.0, 0.0) point, so the animation curve looks like this:

Handles fix themselves if I do sth, like dragging just one of them. Seems like the api is so low-level that setting keyframes that way doesn't let some callback for interpolation to be called.
Here is the python script:

import bpy, re, sys

obj = bpy.context.active_object
obj.animation_data_create()
obj.animation_data.action = bpy.data.actions.new(name="MyAction")
fcu_x = obj.animation_data.action.fcurves.new(data_path="location", index=0)
fcu_y = obj.animation_data.action.fcurves.new(data_path="location", index=1)
fcu_z = obj.animation_data.action.fcurves.new(data_path="location", index=2)
f = open(".../example", "r")
for i in range(30):
    print(str(i))
    ln = f.readline()
    try:
        vec = [float(m) for m in re.split(r"[ \t\n]", ln)[:-1]]
    except ValueError:
        sys.stderr.write("ERROR")
    fcu_x.keyframe_points.add(1)
    fcu_x.keyframe_points[i].co = 24*vec[3], vec[0]
    fcu_y.keyframe_points.add(1)
    fcu_y.keyframe_points[i].co = 24*vec[3], vec[1]
    fcu_z.keyframe_points.add(1)
    fcu_z.keyframe_points[i].co = 24*vec[3], vec[2]

Here I parse a file string-by-string (3 coords + time in sec) and create corresponding location keyframes. I need to create animation in real-time and play it simultaneously, so moving the animated object and setting keyframes based on its real position is out of the question.

I could change the interpolation manually after each frame adding (for Blender to recalculate every handle each time), but I'm afraid that when the number of keyframes is in the thousands, it'll take too long.

Is there a way to set and calculate the interpolation for only the last keyframe point when adding it?

When using keyframe_insert() the default interpolation set in preferences is applied to each keyframe as it is added, this doesn't happen when using fcurves.new(), which always leaves it at bezier. If you don't want to use bezier interpolation then you will need to set the interpolation for each point as you create them.

fcu_x.keyframe_points[i].interpolation = 'LINEAR'

Then you will want to call fcurve.update().

  update()
  Ensure keyframes are sorted in chronological order and handles are set correctly


Is there a way to remove hair particles in particle edit mode? Is there some way to fully remove hair particles (e.g. with a brush) while in particle edit mode?

Ideally this would actually remove the particle, instead of e.g. making it tiny with the cut brush. The problem with cutting particles until they are invisible is that they will still affect child particles:

The above example uses interpolated child particles.

Blendfile

Yes, you can select the hair particles and press X or Delete.

To give credit where credit is due, thanks to Dan Eicher for pointing this out on the developer mailing list.

There does not seem to be a brush for doing this, but you can use circle select (C) to select hair particles with a brush.


How to create realistic powder? I want to model powder in a dish like in this picture.

I have tried to create the powder using the particle system by following some suggestions in an earlier answer, but so far I had no success.

I can't control the overall shape of the powder, and the particles seem to pass through the dish even with collisions enabled.

Can someone please tell me how to create powder in Blender?

You have two solutions :

1- Use the game engine to make powder fall and after save the last frame. You can modelise each particule of pownder as a tiny cube for example, but it won't give you a result that is graphically appealling.

2- If you want to have a result that looks exactly like the image you posted you need to sculpt because of the special pattern that there is on the image.


How showing vertex paint in object mode blender 2.8 I want to show vertex paint in object mode in blender 2.80.

When in Solid Shading Mode, go to the config panel found in the top right corner of the viewport and for color select Vertex Colors where probably Material is currently selected


"active object is not a selected mesh" error Trying to join different meshes together.

In object mode, if I select a couple of objects and try to join them I get the error active object is not a selected mesh.

If I select the meshes, it puts me into Edit Mode and the join command is not visible.

If I select meshes in edit mode then change to object mode I get the error no data to join.

It's super confusing.   What am I doing wrong?

What I am actually trying to do is to simplify a model, by joining parts with similar shaders together, for import into three.js . I want less data in the json file and want to make it simpler to animate in three.js, with less objects. Is there a better way to go about this?

In order for selected mesh to combine make sure one of these objects is text highlighted in the outliner, it's a means for Blender to decide which part inherits the other parts. If none of the parts are text highlighted you will get that error message and they won't combine.


Net Render Outputs Black .exr Files, Regardless of Selected File Type After watching this tutorial on setting up network renders, I set about trying to make one myself. However, regardless of what file type I have selected, it keeps outputting black .exr files.

I viewed a variety of links (tutorial, tutorial, problem post, very similar StackExchange post with no answer, unanswered YouTube comments reporting the same problem, and a post about compositing .exr s.) However, I still am not sure what I'm doing wrong.

Here's a link to the output and the file.

Know I didn't write a lot, so please feel free to ask questions. Any help is appreciated.

While multilayer OpenEXR files are a useful way to keep all the render results in one file, not every application supports them.

An easy way to get render output that can be used outside of blenders compositor is to save each part into a more compatible file, blenders file output node is useful for this.

As shown in the node properties, each output file can have it's own file format and any compositing can be included with the output.


How can I make holes on a wrist strap? beginner here.

I'm currently modeling my wristwatch and I'm running into some issues making the holes in the strap. I attempted to use the boolean modifier with a cylinder to get the holes out, and while the holes came out great in edit mode, the object itself is looking messed up, probably due to the subsurf:

I've tried edge loops, making a crease, hell, even bevels and nothing is fixing it. Does anyone have an idea as to what could be done to get this working?

Thanks so much!

Using booleans for holes is an easy temptation, but often brings horrible results, due to horrible topology. I would try something simpler like this:

and then let subsurf make the rounding:


I changed a primitive mesh, need to restore it to defaults. Brand new to blender, just finished the doughnut tutorial. Next project to teach myself is I'm trying to make a cupcake on my own.

Not sure what I did, but I needed a hollowed out cylinder. So I made a new cylinder. Maybe I used an ngon setting not sure. I changed the properties of it to make it not have face ends so it'd be hollow. Now every time I make a cylinder (shift a) it creates this face end missing cylinder, I also don't get the tool to change the number of starting vertices, etc.

How can I restore my blender primitive settings? So when I make a new cylinder primitive its the same type of cylinder if I were to start a whole new project.

Thank you!

Every time you add a new primitive object you get this little window (if it's closed, click on the + icon), in which you can set all preferences.

The window disappears after you perform any operation.

In the file menu you have also the option "Load factory settings" to restore all preference changes to their default value.


Blender Sine wave calculated incorrectly? While working with Blender built in sine waves, I noticed that the sine waves do not perform a full round cycle every 90 frames.

Its offset by roughly 1.5 frames every 90° (Yes I checked the multiplier and everything. Its on the default setting: 1) Am I doing something wrong? I'm using Blender 2.76b

There is nothing wrong, your expectation and the parameters of the modifier just do not fit together. I guess this is caused by a unit mash-up of radians, degrees and frames.

I'll try to sum up the necessary math as short as possible to avoid further misunderstanding. Take a look at the XY plot with a circle given a radius of 1 (known as unit-cirle) and consider the marked triangle:

The sine is now the Y position of the black dot (green line) and depends on the position of the dot running counterclockwise around our circle. We can either measure the marked angle in degree or radians. Plotting this with reference to the angle measured in radians gives us this plot:

You can observe, that a full period is reached after 2 PI, which is approx. 6,28. Now compare this to a sine modifier applied to the x-location of some object:

Looks similar, right? Both plots are bounded by +1 and -1 and complete a full period after 6,28. But in the Blender case 6,28 is the number of FRAMES, after which the sine starts all over again.

Now it depends on your use case if you want such a fast oscillation. You can stretch and shift the sine with the four given parameters as you like. The equation seems to be this one (c=constans):

Hope this helps!


Mesh only shows in wireframe in Edit mode My mesh only shows up as wireframe in Edit mode, no matter which mode I am in. If I am in solid view it just hides my mirror and stays wireframe. I've looked at other posts where the maximum draw type is set to wireframe, yet mine is set to textured so I really don't know why this is. As you can see, I've added three images of my mesh in three different views.

I think you have Hidden Wire activated in the Shading panel.


Python resize imported SVG I'm using python for batch upload and rendering. I need to import many SVGs, resize them and place to required position. Import is OK, curve is named, I can read dimensions, but I can't write new dimensions back. Where I doing mistake? Thanks for help.

maxSize = 0.220
for emboss in embosses:
    emb_name = emboss[:-4]
    loadedSVG = bpy.ops.import_curve.svg(filepath = embossDir + emboss, filter_glob=".svg")
    for obj in bpy.data.objects:
        if obj.tag == False:
            obj.name = emb_name
            obj.tag = True
            bpy.ops.object.select_pattern(pattern = emb_name)
            meshes = bpy.context.selected_objects

            x, y, z = meshes[0].dimensions

            if x > y:
                needRatio = maxSize / x
            if y > x:
                needRatio = maxSize / y

            # not working code starts

            meshes[0].dimensions.x = x * needRatio
            meshes[0].dimensions.y = y * needRatio
            meshes[0].dimensions.z = z * needRatio

            # not working code ends

            bpy.ops.object.select_all(action='DESELECT')

To change the dimensions use the scale Vector.

obj.scale *= needRatio

NB: I have a hassle with obj.tag, albeit could be because I am running in UI and not batch mode.

# import blender svg logo blender.svg in app folder
# (quick hack works on linux)
bpy.ops.import_curve.svg(filepath = bpy.app.binary_path + ".svg")
#the list of all objects with obj.tag = False `
false_tag = [o for o in bpy.data.objects if not o.tag]

gives me an empty list.

However, it appears the importer doesn't return the objects as selected, hence selecting all objects first then running the op and making a list of all unselected objects in the scene gives me the imported svg's curves could be another way to go.

bpy.ops.object.select_all(action='SELECT')
bpy.ops.import_curve.svg(filepath = bpy.app.binary_path + ".svg")
newcurves = [c for c in context.scene.objects if not c.select]

setting select to True on each curve in newcurves  removes the need to run bpy.ops.object.select again.


Fire Adaptive Domain rendering like a solid cube When I render I see a solid cube which is Adaptive domain. But it shouldn't show up. I feel like I missed something. It is my first time simulating fire.

Candle with a solid domain blocking the fire

The material seems to be plugged in to the volume already :/

Node setup

You have a material plugged in to the Surface for the domain. Because you are rendering a material on the surface of the domain nothing else will show. You need to delete that and add a smoke and fire node set up, which gets plugged in the the Volume input.

Here is an example smoke and fire node setup for cycles.
The top frame labeled Smoke is the default node setup from "Quick Smoke." Which is accessible from the 3D view header then Object > Quick Effects > Quick Smoke.

Briefly, what is happening there is your material is getting the smoke sim data from the "density" in the Attribute node. That is fed in to the two volume nodes, Scatter and Absorption which together normally make a completely dense, uniform volume. However with the data from the smoke sim, it changes the density in some parts of the object, making it take the exact shape of the smoke sim.

The bottom frame Fire is what is giving the flames the color you will see in the render. Similarly to the density, the "flame" in the Attribute node is where we get the fire data to add in.
(Credit goes to Andrew Price for popularizing the use of the ColorRamp node for controlling the color of the fire. Prior to that it was common to use a black body node.)

Then all that gets combined with the Add Shader and pluged in to the Volume input of the Material Output node.


How To Export Blender Mesh w/ Shaders to Unity I am following CG Geek's How to Create a Low Poly Tree in 1 Minute and I want to export this tree, shaders and all, to Unity so I can add it to my game. How would someone go about exporting a (Cycles Rendered) mesh To Unity? Thank You In advance!
(BTW, I know there are a lot of people that already asked this but I tried them and they don't work. Also (I think), my circumstance is kind of specific)

You cannot use Blender cycles shaders in unity. Unity has its own nodes, you need to bake out the cycles rendered texture on the model in the scene, and then export them with the FBX exporter addon.


Set shortcut to use 3DConnexion SpaceMouse button? How can I setup the right (or left) button on the 3DConnexion's SpaceMouse Wireless to act as ⎈ CtrlZ keystroke in Blender 2.7x for Mac?

3DConnexion's own SpaceMouse settings don't work.

Try editing the keymap in ⎈ Ctrl⎇ AltU> User preferences > Input.

To change a shortcut, click the button with the current shortcut and press the new shortcut. Pressing a mouse button works for me:


How to save Animation Nodes cache without baking to mesh? It seems like all caching data from Subprogramm is purged after closing a file, but can we re-use this internal cache?

I was thinking about running few instances of Blender to write Subprogramm Loop cache on different frames simultaneously and then save it for further use. Mainly to speed up the process, as AN doesn't use all CPU power.

P.S. Right now I am saving OBJ sequences splitted between two instances of Blender and converting it to Alembic, which is quite annoying.

EDIT: Trying to implement Omar's solution...

Cube is simply rotating at (0,0,0). I am caching vertices and writing them to dynamic keys. After disconnecting Subprogram from upper Expression I can keep data for 1 full animation timeline. When I want to repeat animation - all data is lost.

There is currently no built-in way to save cache persistently. However, for simple data types, you can store your cache in ID properties in objects. For instance, if you have a vector list vecs that you wish to save, you can save it in an object obj using the expression:

obj["frame_1"] = vecs

And retrieve the data using the expression obj["frame_1"]. You can change the key frame_1 to anything to cache multiple data, per frame maybe. For example, if you wish to save the locations of vertices along frames, you could use the following node tree:

If you now reopen your blend file and use the following node tree, you will get the data you saved:


Change object animation become cyclic for many objects, use Python I use Python for create many objects then give them animation key frame like this (no problem here):

object.location = (x, y , z)
object.keyframe_insert(data_path='location', frame=start, index=-1)
object.location = (x + changeX, y + changeY, z + changeZ)
object.keyframe_insert(data_path='location', frame=end, index=-1)

How change animation become cyclic? I already know graph editor can change it, but how change this use Python for each object when add their key frames? I try:

bpy.ops.graph.extrapolation_type(type='MAKE_CYCLIC')

but Blender tell 'failed, context is incorrect'

Get fcurve array for object

fc = object.animation_data.action.fcurves

From list find fcurve want repeat (example location X)

locationX = fc.find('location', index=0)

Create modifier type CYCLES and set mode_before and mode_after become REPEAT

modifier = locationX.modifiers.new(type='CYCLES')
modifier.mode_before = 'REPEAT'
modifier.mode_after = 'REPEAT'

One problem, this method cause two repeat loops between original two keyframes, object move 1/2 time and 1/2 distance between keyframes. Need double original distance and time between key frames.


Why is my camera irregular and how do I fix it I need it to match the grid's width for a shot.
I don't see anything wrong with the render:

In the Object Properties, under Transform, make sure Location X is set to 0.


SFM to Blender Conversion I was wondering how to convert the files for sfm models, such as .vtx, .phy, .mdl, and .vvd into a Blender 2.8 compatible format.

You'll first need to decompile the .mdl file into an .smd file. Crowbar is an excellent tool to decompile mdl files, find it here: Crowbar (Source Engine Modding Tool)

After that, you can use the Blender source tools as 8foldhero suggested: BlenderSourceTools
Install it as an addon like usual, and you'll be able to import any smd file into Blender by going to File > Import > Source Engine (.smd, .vta, .dmx, .qc), then choose the file from the dialog box. I recommend changing the Bone Append Mode to Make New Armature. Good Luck!


Visualize radioactive gamma rays & their absorption in materials using cycles there is a very nice tutorial showing the mathematics behind light absorption - the amount of light is getting less during it's move through colored material. - following the law of Lambert & Beer.

This mathematically approach could be used to visualize the absorption of normally invisible radioactive gamma rays.

Imagine a scene with a radioactive-ray source inside a box made of a absorption-material (could be made of led-, concrete or iron…)
The absorption coefficients for each material can be found in scientific literature and so the mathematics can be adopted)

Questions:

Has anyone experience in such an approach or heard about someone else who tried to visualize radioactive emissions with blender?
(I know there exists very expensive specialized programs to do such calculations, but they are much to expensive for a simple human being - and they are not that entertaining and not as nice as Blender)
And how can the amount of light that is not absorbed by the box-material and travels through the absorbing material to the surface be "measured"? Or how can one measure the density of light on the surface of such a box.

Thanks a lot for your help!

There are volumetric materials in Blender which can visualize such rays.

Blob with hole and radioactive stone inside (volume absorbtion with volume scatter):

You would "measure" the intensity with pixel value on the surface i guess

But I have an impression from your question that you would like to simulate the absorption or even measure it, you will not get any precise scientific result from Blender, only artistic. Blender does not work with real scientific units (except from dimensions) and its calculations take shortcuts to get better performance, its not precise.

That's why that specialized software is so expensive, it actually simulates it all.


Why is the render so weird? So I finished making the bottle, and added a simple red liquid to it. On the render preview, it looked great, but when I hit actual render, it became weird like this:

If I add smooth shading then it looks like this:

How do I fix the reflections and the little stripes around the liquid? I rendered it in these settings: Samples: 300 render, 300 preview...Resolution: 800x800px (80%)

It seems you mesh has hard edges on surfaces.
Go to edit mode, then on the left of blenders GUI in the tabs go to "Shading/UV" overthere under faces click smooth..and hit render again ..voila


why does loop-cut-and-slide ignore some faces but not others? why does the loop-cut-and-slide operation ignore certain faces but happily cut others?the model is symmetrical so it is a bit strange to pick 3 faces that won't get cut. I tried applying it to see if it was just a graphics glitch causing the purple line to not display over everything, but it did end up cutting only what the line was selecting, instead of the whole mesh.

as requested,here's a paste of the blend:
http://www.pasteall.org/blend/27821

First you should fix the mesh. This might be part of the problem.

Remove the double geometry, W -> Remove Doubles
Select all geometry, A
Recalculate the normals, Ctrl N

Does the problem persist? If so you might have to do some manual cleanup. The problem might be that you have ngons in your mesh.

To see if you bad geometry go into vertices mode and Shift Ctrl Alt M to select all non-manifold geometry. If something was selected near at the place where the edge loop does not work that also indicates a problem, if not there still might be a problem
Also to select all n-gons you can do Select -> Select Faces by Sides. Set the number to 4 and the type to Greater Than If you have n-gons they will now be selected.
Go into vertices mode, in face mode it is harder to stop ngons
If you see that there are random vertices along the edges you should delete them, x -> dissolve vertices.

An example of a random vertex along an edge


How can I use a game controller in BGE? How can I use a Bluetooth game controller as an input device for a game in Blender. I have tried what I can think of but I can't get it to work.

There is no native support to that kind of device.

If it comes with a joystick driver you can use the joystick sensor.


How do I move the hair above the mesh? When I am adding hair to my horse model, the hair is going inside the body and not outside as I want. I tried using the particle edit mode but it still doesn't work. That's how it looks like and I want the hair on the upper face.

It appears you are using a separate mesh for "neck hairs" instead of using vertex group of the main horse. It also appears you're using a plane.

My suggestion would be delete the plane, and use vertex groups. You make them while in edit mode, and then assign them in the particle system under "density".  Then you don't have to worry about trying to warp that plane to fit the underlying mesh during animation.

If you have to use the plane, then flip the normals, or flip the plane.


Shading on model is not smooth in some places I created this face in blender, it has smooth shading on but shadows in some areas appear sharp, I want the shadows to appear smooth consistently. Here's an example of the issue i'm having:

I'm not sure what i've done wrong, I'll happily supply the .blend file or any other additional information if needed upon request, Thanks! :D

What you're most likely experiencing is cycles not being able to shade properly on such a lowpoly mesh.

Some things that could fix this are:

Adding a Subsurf modifier to your mesh can smooth it out and remove some artifacting.
Having Auto Smooth in Data >> Normals unticked or set to 180 can remove unwanted sharp edges.
Increasing the size of you sun lamp also smooths out the shading.


Exporting IK bones from blender2.8 to unity has problem I'm working blender2.8 with unity3d
but when I export my model from blender to unity
My Bone plays animation so weird see this

First picture in on unity. second one is on blender2.8
Two legs have IKBones and i guess these IKBone is having trouble.
I put all keyframes of all bones at every each frame but it still don't work.
Does somebody know why this happens and how to fix it?

I just figure it out.
I've re-rigging(?) my model at IKLegBone parts.

Delete IK constraint.
Change both side of calf bone's rotation a little bit.
Add IK constraint.

Finish!
If it doesn't work, repeat 2 differently.


Create a tower frame with a Icosahedron How can I create a multi-sided geometric (geodesic) polyhedrons, specially a Icosahedron.  Using this for a tower frame construction.

friendly regards

Jos

In Edit > Preferences > Add-Ons, enable the shipped add-on 'Mesh: Extra Objects'.

Then it's ShiftA > Mesh > Math Function > Regular Solids.. and in the creation panel dropdown, 'Icosaohedron'.


3D sound via python in the BGE? I can't seem to get 3D sound working with audaspace.
It works fine when using the logic brick, but I'd like to use python directly if possible.

I'd like to have positional sound relative to the player object:

import bge
import aud

sound = aud.Factory.file(bge.logic.expandPath('//laserfire01_mono.wav'))
scene = bge.logic.getCurrentScene()

def main(cont):
    own = cont.owner

    sound_device = aud.device()
    sound_device.distance_model = aud.AUD_DISTANCE_MODEL_LINEAR
    sound_device.listener_location = scene.objects["player"].worldPosition
    sound_device.listener_orientation = (0,0,0,0)

    sound_handle = sound_device.play(sound)
    sound_handle.location = own.worldPosition
    sound_handle.distance_maximum = 12
    sound_handle.distance_reference = 1
    sound_handle.attenuation = 12

There are no error messages, but the sound is still "2D"; there's no falloff or doppler shift.

Here's a simple test .blend and sound file.

It seems handle.relative defaults to True. Setting it to false fixes the lack of attenuation, but to get doppler shifting you must tell audaspace the velocities of the source and listener objects as well:

import bge
import aud

sound = aud.Factory.file(bge.logic.expandPath('//laserfire01_mono.wav'))
scene = bge.logic.getCurrentScene()

def main(cont):
    own = cont.owner

    sound_device = aud.device()
    sound_device.distance_model = aud.AUD_DISTANCE_MODEL_LINEAR
    sound_device.listener_location = scene.objects["player"].worldPosition
    sound_device.listener_velocity = scene.objects["player"].getLinearVelocity()

    sound_handle = sound_device.play(sound)
    sound_handle.relative = False
    sound_handle.location = own.worldPosition
    sound_handle.velocity = own.getLinearVelocity()
    sound_handle.distance_maximum = 100
    sound_handle.distance_reference = 1


Python call of import image as plane I am building a simple python script that creates a plane with an image (image as plane addon). I call blender by the command line :

blender -P pattern_blender_smartphone.py

Here is the content of pattern_blender_smartphone.py :

import os
import bpy

def initScene():
    file = os.path.abspath('C:/Users/John/PycharmProjects/untitled/cowboy_bebop.jpg')
    bpy.ops.import_image.to_plane(
        use_shadeless=True,
        files=[{'name': os.path.basename(file)}],
        directory=os.path.dirname(file)
    )

initScene()

When i execute blender by the command line with this script i get these errors :

========================
   SCRIPT STARTING
========================
Error: Traceback (most recent call last):
  File "C:\Program Files\Blender Foundation\Blender\2.75\scripts\addons\io_import_images_as_planes.py", line 320, in execute
    self.import_images(context)
  File "C:\Program Files\Blender Foundation\Blender\2.75\scripts\addons\io_import_images_as_planes.py", line 333, in import_images
    self.set_image_options(img)
  File "C:\Program Files\Blender Foundation\Blender\2.75\scripts\addons\io_import_images_as_planes.py", line 449, in set_image_options
    image.use_alpha = self.use_transparency
AttributeError: 'NoneType' object has no attribute 'use_alpha'

location: C:\Program Files\Blender Foundation\Blender\2.75\scripts\modules\bpy\ops.py:189

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 43, in <module>
  File "<string>", line 11, in initScene
  File "C:\Program Files\Blender Foundation\Blender\2.75\scripts\modules\bpy\ops.py", line 189, in __call__
    ret = op_call(self.idname_py(), None, kw)
RuntimeError: Error: Traceback (most recent call last):
  File "C:\Program Files\Blender Foundation\Blender\2.75\scripts\addons\io_import_images_as_planes.py", line 320, in execute
    self.import_images(context)
  File "C:\Program Files\Blender Foundation\Blender\2.75\scripts\addons\io_import_images_as_planes.py", line 333, in import_images
    self.set_image_options(img)
  File "C:\Program Files\Blender Foundation\Blender\2.75\scripts\addons\io_import_images_as_planes.py", line 449, in set_image_options
    image.use_alpha = self.use_transparency
AttributeError: 'NoneType' object has no attribute 'use_alpha'

location: C:\Program Files\Blender Foundation\Blender\2.75\scripts\modules\bpy\ops.py:189

Traceback (most recent call last):
  File "C:\Program Files\Blender Foundation\Blender\2.75\scripts\addons\io_import_images_as_planes.py", line 320, in execute
    self.import_images(context)
  File "C:\Program Files\Blender Foundation\Blender\2.75\scripts\addons\io_import_images_as_planes.py", line 333, in import_images
    self.set_image_options(img)
  File "C:\Program Files\Blender Foundation\Blender\2.75\scripts\addons\io_import_images_as_planes.py", line 449, in set_image_options
    image.use_alpha = self.use_transparency
AttributeError: 'NoneType' object has no attribute 'use_alpha'

location: C:\Program Files\Blender Foundation\Blender\2.75\scripts\modules\bpy\ops.py:189

location: C:\Program Files\Blender Foundation\Blender\2.75\scripts\modules\bpy\ops.py:189
Read new prefs: C:\Users\John\AppData\Roaming\Blender Foundation\Blender\2.75\config\userpref.blend
found bundled python: C:\Program Files\Blender Foundation\Blender\2.75\python
Saved session recovery to 'C:\Users\John\AppData\Local\Temp\quit.blend'

Blender quit
AL lib: (EE) UpdateDeviceParams: Failed to set 44100hz, got 48000hz instead

I have already tried to execute a blender instance and run the script with the GUI and it works but when i launch it by the command line i get errors.
Have you guys any ideas why it doesn't work?

The python docs for os.abspath() says

  os.path.abspath(path)
   Return a normalized absolutized version of the pathname path. On most platforms, this is equivalent to calling the function normpath() as follows: normpath(join(os.getcwd(), path)).

that is it is adding the current directory (from os.getcwd()) onto the start of the absolute filepath that you have entered. This causes the load image to fail which then gives an error when attempting to set the use_alpha property.

The simple solution is to remove the os.abspath() call.


White edge around objects with alpha I have a simple texture, of a bush (for a billboard plane)
There are very annoying white artifacts around the edge of the plane.

I am using GLSL shading in the BGE.

             UV/Image Editor                             3D View

There is no white edge on the actual texture, however, one appears on the plane.

Texture Settings are Below, Material Settings are below and to the right

Blend file

Textures

Get the ones that start with Bush1_ and Plants_

In the material Game Settings section change Alpha Blend from Opaque to Alpha Clip, and in Transparency section you can adjust the Clipping amount by increasing or decreasing the Alpha value.


Is there a way for a shader to differentiate between viewport render and F12 final render? The more generic/robust way the better. I.e. if this shader is copied to another project, it shouldn't be necessary to make other changes. But if this is not possible, then any other solution is nice too. (Mainly for Cycles, but for Eevee is well.)

Currently this solution relies on using an alpha version of the software (download  2.93 here) but it is pretty straightforward. Don't use for production until it is officially released.
Also, it seems it only works for Cycles if you are using a Windows OS.
Add a Geometry Nodes modifier to your object.
Plug an Attribute Fill node between the input and output. Change the Attribute name and remember it. Set the type to Color.
Plug the new Is Viewport node into the value. See the docs.

Add a material to your object, and add an Attribute node. See the docs.
Set the attribute name exactly as in the geometry node modifier. Plug the Color into your shader tree as you see fit. You may need to toggle between Material Preview and Render view to see the effect update.
This setup will render as White in the viewport, and as Black in the F12 rendered view :

Render Result :


cycles through everything while trying to select one thing is this normal behavior for Blender? at some point in my working in blender it starts to no longer let me just click on an object to select it when their are more then one within the work area.

Instead when I click on the object I want, it will not select it (right away), it cycles through everything until it gets to the one I want before it gets selected.

in object mode and pose mode. it is really annoying, so now I'm asking.

Yes, this is normal. This is the way Blender handles selectable objects that are coincident, or very close to each other. If it can't tell which one you want, it will cycle through each possible option until you stop on the one you want.

If you want to avoid this behavior, there are a few options.

You may be able to move some objects to other layers.
A little known tool is "Local View." Press numpad / in object mode to view only the selected object. Do what you want to it, and then press / again to see everything else again.
Use h to hide selected objects
Use shift to hide UNselected objects
Use the Outliner to turn off selectability for certain objects


Where i can find latest compiled Animation nodes for windows 7 32 bit? I tried my best to compile Animation nodes for my OS (windows 7 32-bit) but as i am not from programming backgroud and neither i am a techie guy, I found it quiet hard to compile.
Is there is anyone who has compiled AN for the same OS i have? If yes, then please upload that to github or other link for me.
I am stuck with version 1.6 of animation nodes.

There are no 32-bit builds for Animation Nodes. The developer said in this issue:

  So far I never compiled AN for a 32 bit system. It should be possible somehow but I don't know how without having access to a 32 bit system myself.

And the release page states that for the 2.1 test builds:

  Also 32 bit operating systems are not supported.

And for version 2.0:

  Only 64 bit systems are supported for now.


Cant select only one face on my mesh I’m trying to select only one face on my mesh, but it’s selecting 2 instead of one. I have cleaned up the loose geometry also merged vertices, what am I doing wrong?

To select faces you need to press 3 to switch to FACE SELECTION mode.


How does this works? verts = [[float(i) for i in r[:3]] for r in rows] I looked over here and found a csv reading script that creates curves, wich is exactly what I need, it´s cool, but I need to modify it because I need to read a differently formated csv, in fact I need to create different lists with different values, my CSV looks like this:

uniquename, x,      y,      z,      diameter,   name
401_JJ,     2800,   15500,  21400,  406,        401_JJ
a,          2800,   15500,  24150,  406,        401_JJ

The thing is that I need to extract a names list, a unique names list, a diameter list and a coordinates list.

I know that with this code I extract the first 3 rows and convert them to a vector collection, but I don´t know how to modify this and extract specific positions, for example, 2,3,4 as vectors, 1 as string, 5 as float and 6 as string.

Hope someone can help me out here.

Thanks!

Use the excellent csv module built into Python for that. The Python documentation has plenty of examples on how to read and write CSV files.

Once you have a row, you can convert individual bits to other objects, like so:

vec = mathutils.Vector([float(coord) for coord in row[1:4]])

The explicit conversion to float is necessary as CSV is untyped, so every field is returned as string.

The [f(x) for x in collection] construct is called a list comprehension, and is also explained in the Python documentation.


How do I export animation data stored in actions using the Python API? I am writing an exporter for a custom format, and I would like it to export each action as a separate animation. Based on what I've learned so far, I think the exporter would have to look something like this:

export_rest_pose(armature_object.data.bones)
for action in bpy.data.actions:
    # TODO: set 'action' as the current action, somehow
    frame_begin, frame_end = [int(x) for x in action.frame_range]
    for frame in range(frame_begin, frame_end):
        bpy.context.scene.frame_set(frame)
        export_pose(armature_object.pose.bones)

First, does this look about right, or is there a better way of doing it? In particular, is there a way to get the pose of an armature at a specific frame without changing the whole scene to that frame?

Second, assuming that is the correct way to do it, how do I set the current action?

You can set an object's action like:

object.animation_data.action = action

But note that you should check first, that animation_data is not None (which is the case for objects with zero keyframes set).

frame_set() is not a bad choice. You could also evaluate the F-Curves one by one and avoid the frame changes, but it's easier to set the frame and get the transformations ready to use (e.g. as 4x4 Matrix). It's also ensured that all modifiers, drivers and such are applied.

Quick F-Curve example:

bpy.context.object.animation_data.action.fcurves[0].evaluate(5)
#~ -3.2612

bpy.context.object.animation_data.action.fcurves[0].keyframe_points[0].co
#~ Vector((1.0, -3.2612))

bpy.context.object.animation_data.action.fcurves[0].keyframe_points[0].interpolation
#~ 'BEZIER'


How to render the Trajectory of a Moving Object? I want to use blender to draw a cycloid animation. I know the function, but is it possible to render the motion path of a vertex of a circle like the following video?

https://www.youtube.com/watch?v=x0Z9OeJbRy4

You can use dynamic paint, but as far as I know, this will alias a bit.

So I propose to use Animation Nodes instead. For 2.8 you can find an experimental version here.

The principle is to create a Bezier curve, set it to 2D, bevel it a bit and use it in Animation Nodes.

Calculation steps:

Take the moving sphere, its location and append it to the spline so that it is reinjected in the curve (bottom line of the nodes).
The used spline (top part of the nodes) is either an empty one (at frame 1, so that the curve starts to be empty) or the current spline of the curve as it is.

Few words about the cycloide itself.

If you add a simple deform (bend mode) to a subdivided segment, this will make a circle:

If we add an empty as axis origin, then moving the empty will make the obtained circle to rotate.

To make this rotation visible, add another empty (below with a sphere shape), and make the 3 first vertices of the segment parent of this empty.

Now the empty will move and rotate following the segment made circular thanks to the simple deform modifier:

The "drawing sphere above" is simply parented to this sphere empty.

(the file contains also the Dynamic Paint setting, using vertex color, it is on the hidden plane)


When I render my animation my main light source is not rendered. How can I get the light to show up in the final render? //i.stack.imgur.com/5XYUs.png

All help is appretiated

Your light is in a different layer. Bring your light to layer number one. First, find where is light located in layers then select the light and press m to move to layer number one.


I want a procedural texture on a PNG "Decal". How do I set up the nodes? Modeling a Nintendo Controller.  The label is rough and reflective, here's an image of it...

Looks to me like if you ran your fingernails over the black part it would be bumpy so that's what I am trying to achieve.  I figured my NOISE texture node into a NORMAL MAP node would have given some results but nothing...  I'm not seeing what I'm NOT doing right...

The .Blend file is here...

.Blend file of Nintendo Controller

Is it legal to also ask how I could have made the mesh topology better in the same question?  How the heck did I get to over a million faces!?!

Answered by @Rich Sedman, draft result (needs some tweaking):

The Principled Shader is configured with 100% roughness for pure black diffuse with no specular. This will basically produce black regardless of the angle of the incoming light - the 100% roughness on the black surface will basically kill all bumps and textures and simply render as black.

To address this reduce the Roughness and add some Specular to provide some shine to the bumps.

In addition, the Noise fed directly into the Normal Map will be producing incorrect normals (the output of the noise is not a proper basis for a normal map - it will be in a random direction (so may point ‘inwards’) and it’s length will not be 1). Better to feed the Fac of the Noise into a Bump node instead, to generate the surface normal.


is there a way to create kanji or other symbol based text fonts using blenders text object? i'm doing a project where i want to add japanese style text to a mesh but i don't want to make the symbols individually as it will take a while and will most likely not turn out right. preferably a way to convert the english text into japanese kanji or another language much like google translate does.

You just need to find an OpenType or Truetype Kanji font, then you can load it into Blender's text object, and paste in your Kanji messaging in Edit Mode. You'll have to do the translation part somewhere else though.

If you having issues getting it to work, it might be easier to set the text in another program like Adobe Illustrator or Inkscape and then importing the text as SVG file into blender.


Why won't blender files open? I have a student that has been working on a project recently and finally got the steps to work. However, when she tries to open the files in blender, it won't open. Instead, it takes her to the page as if she was saving it again. Any ideas on why this is happening? I have never ran into this problem before.

Thanks!

Uncheck the "Load UI" button when loading the file. That'll keep the user interface as it was before, instead of loading it from the blend file.


Rotation around the cursor with low-level python (no bpy.ops) In order to optimize my script, I would need some help to perform a rotation around the cursor
(see Rotate object around cursor with Python)

With low-level python, that means, without bpy.ops.* operations.

I have to admit that I didn't find a good overview on how to make rotation with python without bpy.ops. Do I have to perform matrix operations for a simple rotation around an axis Z located at the cursor position?

Rotate a vector

import bpy
from math import pi
from mathutils import Vector, Euler, Matrix, Quaternion

v = Vector((1.0, 1.0, 1.0))
#point which will be rotated around the cursor

cursor_loc = bpy.context.scene.cursor_location

rot_mat = Matrix.Rotation(pi / 2.0, 3, 'Z')
v_new = rot_mat * (v - cursor_loc) + cursor_loc

There are further options available (see api docs):

You can construct a matrix, this is most efficient if you want to apply the same transformation on many points.

mat = (Matrix.Translation(cursor_loc) *
       Matrix.Rotation(pi / 2.0, 4, 'Z') *
       Matrix.Translation(-cursor_loc))
v_new = mat * v

You can use quaternions:

# using (axis, angle) constructor
q = Quaternion((0.0, 0.0, 1.0), pi / 2.0)
v_new = q * (v - cursor_loc) + cursor_loc

or eulers:

eu = Euler((0.0, 0.0, pi / 2.0), 'XYZ')
v_new = v - cursor_loc
v_new.rotate(eu)  # works for quat's and matrix types too
v_new += cursor_loc

Rotate an object

mat = (Matrix.Translation(cursor_loc) *
       Matrix.Rotation(pi / 2.0, 4, 'Z') *
       Matrix.Translation(-cursor_loc))

obj.matrix_world = mat * obj.matrix_world

Euler and Quaternion both offer a method to convert them to a matrix:

q  = Quaternion()
eu = Euler()

mat =  q.to_matrix().to_4x4()
mat = eu.to_matrix().to_4x4()


Object not casting shadows on itself I created a scene, which was mostly a sky of blue with random clouds covering the world, and I want the clouds to look more solid. But rendering the clouds makes them one flat blob. Its just white with no corners to make it look 3D
I messed with the settings to see if I could figure it out, because I had gotten it once before, but nothing worked. As I said, I've figured it out before, but now its not working, no matter what I do.

Ah HA!
The problem was in the options tab, in the materials section for the clouds.
"Traceable" was not selected. The clouds were not being traced. Once selected, it fixed everything.


Distortion when using displacement modifier So I'm modeling a ring for myself, and I'm using a moon surface texture as a displacement map using a UV unwrap of just the outside of the mesh.
But the displacement modifier seems to be afftecting parts of the mesh I don't want. You can see below that the internal diameter increases.

And I don't want this as obviously it will chance the ring size and it won't fit.
Also I'm wanting the displacement to only affext the surface and for it to stay flush with the top of the ring but it has these sides that I want to get rid of.

Any help or tips will be greatly appreciated!

A way to obtain a smooth transition from a displaced surface to the non displaced parts is to use a vertex group and to assign the good value for the vertex weights:

Here is a view of the weights (blue = the smallest value = 0, red = the highest value = 1):

This is done with the following steps (some of them will depend on your actual mesh and the way the ring is modeled):

Create a vertex group: in the property panel, use the "plus" button as below

In the displacement modifier, assign the group:

Now we have to assign vertices to the group and fix their weights

This part depend on how the model is done.
Here I used a parallelepiped base, set an array on it, then subsurface and a curve:

To assign the wanted vertices:

Select them
Tune the value of the weight
And assign

So going progressively to the border, while decreasing the weight value to 0, you obtain a smooth edge.

The values are visible vertex per vertex on the right side panel:

The blend file


Apply transformation from axis of one object to different axis of another object in Blender? I'm designing a kind of hinge mechanism. I want a sliding part's movement along the y axis to be applied to another part's movement on the z axis. I'm fairly new to blender so possibly I'm missing something fundamental.
I could probably achieve the same thing via a rotation with a rig, but I feel like it should be easier than that. I've been trying to use a transformation constraint but it seems like you can only map this movement with respect to ranges of global coordinates. What I want to do is more like +1 on the y axis for object/bone A = +1 on the z axis for object/bone B.
Am I missing something or is this the wrong approach? Thanks.
I'm using Blender 2.9.

This is fairly easy using drivers. Look into that on docs.blender.org
Right click the property you want to drive from, and select “copy as new driver.“ Then go to the property you want to be controlled, right click, and click “paste driver.“


How can I color a text? I did in Object Mode > Add > Text Now I want to change the text color to red. Now it's in gray.

This is a screenshot of the text in red but how can I make that when I'm carving the text into the cube it will carve it with the text color and not the cube color ? Now the carved text still in gray and not in red :

You can see the left carved text is in gray and I want it to be in red :

Mesh can't use a material which is not contained in slots.

I will try to guess what you have done so far. You create a text, make it thick enough, turn it into mesh. And for that wall, you use a bool modifier with difference operation, select the mesh text. And get no color?

1) Make sure your text have an material on it

2) In your wall object, you will need a same material in the slot

At the time you add the same material on the wall, you should see the text color in your wall.


how to extrude a curve to create a hollow torus i created a mesh torus to scale.

however, the design has multiple tori.

i am concerned about the weight. with the specs based on a solid torus, the end result would be very heavy.

is there a way to make a hollow torus and specify the thickness?

i saw a similar post about extruding along a circular path to create a torus, but it seems like the suggestions would still result in a solid object.

I think you are talking about Bevel for Curve:

Create two curves, one for section (tori), one for path;
Select the path curve, find Bevel Object in its Object Data panel, choose the other one as the bevel object. Then you can scale either of them to change both ratios for it.


How do I rotate an environment texture? I've loaded an HDR image into my scene as an environment texture. However, I need to rotate the image, and so far, haven't found a way. I assume this is possible, but I need to know HOW.

In the World section of the Material nodes add a Texture Coordinate node and a mapping node to control the placement of the Environment texture. By changing the rotation on the mapping node you can place the HDR where you need it.

As of Blender 2.8x, the World section is part of the new Shader Editor:


Blender Invisible Weight Paint? The Mouth keeps moving when I try to move the arm. However I cannot delete the Vertices from weight paint. Nor do they show up in the Vertex Weight List:

Here is a video of what the problem is and what another version of the character was like (where everything worked properly):

https://www.youtube.com/watch?v=iOasFEq_P3g

I hope this is not a blender bug and I am overseeing something trivial. What am I doing wrong?

When you move the bone 14 (upper arm), probably you are moving the forearm and hand bone also: check if there is some weight relative to theese other bones in your moving vertex.

Check also if the number you see in the vertex weight tab (0.000) is a true null value (maybe is 0.000024 which is not null).


How to map "CHANGE FRAME" to mouse right click in Blender 2.80 in the VSE I use the VSE to do my video editing with the option "Select With Left" activated in Preferences.

Under those circumstances, in all beta versions of Blender 2.8, as well as the older 2.7 releases, pressing the right button with the mouse would drag the cursor easily for video and audio scrubbing and so on.

But now, pressing right click bring a context menu, and I can only restore the old behavior if I press Shift together with right click.

So, in Blender 2.8, how can I map "Change Frame" to right mouse click while Select With Left is activated in Preferences?

Under the File > User Preferences > Keymap look for the Animation entry.

There should be a Change Frame entry. Change it to watever you like, in this case I'd advise something like Tweak - Right.

You may additionally have to change the context menu to open on Right - Mouse - Release event instead.


How do i align diagonal beams? I want to align the diagonal beam so that the top right part is connected the same way as the bottom left part (as shown in the left picture below), so there is still a bit of the diagonal beam connected to the vertical one. I've tried lots of different things to get it connected the way i want, but with the snapping tool I only manage to get one side properly connected, on the other side it always snaps to the wrong vertex. In the past I did estimate what looked kind of nice, but for a project I'm currently working on it needs to be spot on. Is there any way to do this properly?

To have proper topology and avoid overlapping faces, create a loop cut on the two columns, one cut on the bottom of the left column, and one and a cut on the top of the right column.

Then select the newly created faces on the inside and do Bridge Edge Loops to join them with new faces.
(the shortcut is Ctrl+E and select bridge edge loops)


How to create vertices/edges/faces at the intersection of an object and a plane? I have a cubic object and a bigger plane that 'cuts' it. My objective is to create a face on the cube where the plane is cutting it without removing anything from the cube mesh, so I can't use the boolean operators. Until now, I used the Knife tool, but its accuracy leaves a lot to be desired.

I tried to use both 'Mesh > Faces > Intersect' options from the bottom dropdown menu, but neither is satisfying, Intersect Knife plainly not working and Intersect Boolean removing my entire cube.

Is there a simple solution on Blender 2.77a that involves no Python scripts and no extensions whatsoever?
Thanks in advance.

Probably you are not using the Intersect command properly.

The intersecting plane should be inside the object to cut, so you must join the objects. You should also remember to pick only one part, and not the whole mesh in order to feed the operator with a correct source selection.

Here's two wrong sample of usage, followed by a good take.


Extruding an arc shape with a plane as the extrusion path I created this model in AutoCAD and I am looking to recreate this design in blender.

To create the model I created two closed polylines and set there Z's. To draw the arc between the top and bottom plates the UCS can be aligned so that an arc can be drawn in 3D and then extruded along the top polyline to create this part that looks kind of like a lantern.

I am continuing to try to do this in Blender but I have not yet been able to achieve the design. Is this possible to model in Blender?

Thank You!

there could be many ways,  this is one :

add a biziere curve align it to front view
convert it to mesh with Alt+ C
add a screw modifier
set the steps to 4 (in the modifier)


Can we make our fluid domain object from a cylinder? I'm a beginner and wan't to know more about the fluid domain objects. Is it possible to make our fluid domain object from a cylinder? A lot of tutorials on YouTube use a cube for it. I have also tried to make my domain object from a cylinder but it's not affecting anything and I just want to make sure I did it right. Is cube really the base of a domain?

Yes, you can use Cylinder object as domain, but shape is not used in calculation, only dimension of the object (see Xylvier's answer).

So just an extension ... if you need liquid inside cylindrical shape
- use Cylinder object as Effector (Physics Properties > Liquid).

Common problem is blocky colision (outer) shape.
You can solve it by using Boolean modifier > Intersect > Object - the same cylinder object.


Slow edit when using subdivision modifier When i create a Suzanne monkey in a new file
i put subdiv modifier at 3 and try to grab a vertex, it's slow a bit.
But when subdivided by 4 in the modifier it's very slow. The viewport is slow in rotation and moving even slower in 5 the subdivision modifirer.
My machine can't work with more than 30 thousands verts without slowing down
All of that just in edit mode, completely unusable.
I tried windows 10 and 8.1 with different drivers and tried blender 2.8 and 2.79 all has the same problem.

Why do you need 5 subdivision levels while you are editing an object?
With each level, your geometry is getting subdivided, creating more vertices: out of every quad at least 4 virtual quads will be created per level of subdivision. A single quad, subdivided to level 5, will result in 1089 vertices, 2112 edges and 1024 faces.
Blender will of course be slow when you have that many vertices, but you shouldn't need that big of a subdivision surface. First of all, if the object has Shade Smooth on, you probably won't even see a difference between 4 and 5 subdivision levels.
Also, you will notice that there is both a View and a Render number of subdivisions:

So, as in the image above, I have only 2 subdivision levels while I am working one the model, so it is fast, but when I render the image with my model, it changes to be 5 subdivision levels so it looks good but isn't slow while I am working.
So, the solution is that you don't need to make your machine faster, you can just use less subdivision levels while working.


Cannot edit newly added object I am fairly new to blender and I cannot seem to solve this issue;

Whenever I add a new object. I used to get this sort of menu. in the tools section on the right.

However, after working on my file for about an hour. I cannot access this menu upon adding a new object.

It seems a workaround is to press F6 after adding the object in.


Mesh is on the inside of the object in certain areas? When I am zoomed in on the object the mesh seems to go inside of the object.

In a more zoomed out view you can start to see the mesh again.
I have changed the 'start' clipping distance to 0.001, however this doesn't seem to affect it very much.
What am I doing wrong?

Here is the file:

It looks like you've got a subsurf modifier enabled. You can disable it in edit mode so that the subdivided mesh doesn't block you from seeing the wireframe.


Please explain how to extrude a 2D curve from SVG Can a 2D shape that was created in Illustrator be extruded? The svg file imported successfully, but I have not been able to determine how to extrude the shape into a solid object. Does this require a special add-on?

You can use Solidify modifier.

Select imported object, go to Modifiers tab, select Solidify and change Thickness to desired value.


Can I bevel this shape cleanly? I'm modelling a curved shape, and I'd like to bevel the edges. When I try to do that, the faces pucker. I've tried smooth shading the model, but it prevents any bevels from showing. Do I need to fix the topology?

Go into Edit Mode, select your whole mesh, and go to Face > Tris to Quads. This merges adjacent triangular faces into quads, which the Bevel modifier (and pretty much anything else) works best with.
Try beveling again and it should work better. If you want to convert back to tris again after beveling, just go to Face > Triangulate Faces.


How to turn off what seems to be an auto extrude I'm new to blender (and in fact modelling in general) and I don't know the controls. I think at one point I must have toggled something wrong and now instead of dragging vertices around right mouse button extrudes from whatever is selected.
In addition selecting a vertex and trying to move it manually with the X/Y/Z transform boxes also extrudes.

Does anyone know what I've done and how to reverse it?

Blender has no auto extrude functionality like what you describe to my knowledge. Based on your description, the most likely culprits are.

Duplicate vertices, to fix, Tab into Edit mode and perform a Remove Doubles operation from the W specials menu.
Proportional Editing, this is usually indicated by a circle that shows the region being affected, check your view header for a blue icon/toggle this with O. See Why is an object stuck to another?

Or it could be a combination of both of the above.


Adding sky in Python API I can find a lot of examples about tools for creating a sky using the User Interface (https://docs.blender.org/manual/en/latest/render/shader_nodes/textures/sky.html), but the same cannot be said for the Python API. The only examples I found use the obsolete
bpy.context.scene.world.use_sky_paper

Which does not exist anymore.
Does anyone know how this can be replicated from Python?

Try this:
import bpy

sky_texture = bpy.context.scene.world.node_tree.nodes.new("ShaderNodeTexSky")
bg = bpy.context.scene.world.node_tree.nodes["Background"]
bpy.context.scene.world.node_tree.links.new(bg.inputs["Color"], sky_texture.outputs["Color"])

You can then tweak the options like this:
sky_texture.sky_type = 'HOSEK_WILKIE' # or 'PREETHAM'
sky_texture.turbidity = 2.0
sky_texture.ground_albedo = 0.4
sky_texture.sun_direction = mathutils.Vector((1.0, 0.0, 1.0))  # add `import mathutils` at the beginning of the script