Sweep along a path through multiple cross-sections I'm trying to make sweep along a path through multiple cross-sections. Finally got to the point where I managed to place objects along that path in correct orientation - almost. Still have some glitch or some fault in my nodes. It does place shapes right, but sometimes shape turns around 180deg. on Z axis when changing position along curve.

Now question is how could I make sweep of these forms along that path.

If anyone need blender file to take a look - let me know, will try to send it. and it is on 2.81a blender and currently latest sverchok.

i'll further update the answer if you upload a demo blend with those shapes. I'd like to give you a nice answer.

For now, i'll clarify what i've said in the comment, with an illustration. For predictable results I recommend making sure all profiles have the same vertex count. There are two ways to do that.

subdivide the square profile.

or, double up on the destination vertices.

notice that the locations of the vertices in this "doubled up" example will produce some undesirable twisting in the end result.

One simple way is to interpolate both UV (slices between profiles) - without a path or trajectory". Notice how the extrusion goes exactly through the profiles too.

In the above example you must position and rotate the profiles in such a way as to achieve minimal stretching. Sverchok's Object In node interprets each Curve as a list of Vertices (the vertex indices are sequential and stable from Curve objects) and we interpolate between the list of resulting profiles. Get the .blend on this issue


2.8 Beta - Save all images "invalid path"? After texture painting, there is a button "save all images" below the texture slots. However when I click it I get an error "Invalid Path" is there something I need to set up?

this isn't broken or incomplete, it does work!!
What you haven't done is SAVE the files YOURSELF first!
Once you have done this the first time, every other time you press the Save All Images button, it WILL Save ALL your Images!!
Got me stuck for a bit too, but you just need to give it a path first, then you're good to go :]
Cheers
Wayne


What is this extra face that is appearing after extruding? I am following the blender guru youtube tutorial modeling a chair and I'm having this extra face appear even thought it isn't a face or it isn't acting like a face.
Is this normal or is it my settings that make the face appear?
It happens everytime I extrude the vertices and always get this fake face on it.
I'm new to blender and I am barely starting out.

I suspect you are seeing the difference between your Modifier and the actual bounds of the mesh.  Try toggling the "Display Modifier in Edit Mode" button.


Is it possible to set the image of the image texture to be a camera in that scene? long story short, I am trying to get a cartoony artstyle where the mouth is a 3d object being rendered by an orthographic camera to give it a 2d look, then put that image onto the finished model. it would be really convenient if I could have it so I didn't need to render them both separately, is there a way to set that orthographic camera as a texture?

You'll need to do some compositing to make this work, because you can only have one active (rendering) camera per scene. So yes, you will have to render both, but Blender can auto-composite your results.

Make a new scene. You can do a Full Copy if you want to copy everything over, and delete all but the mouth and the camera. Keep the background camera as perspective, and make the camera in the new scene orthographic. In the new scene with the mouth, make sure you have Film -> Transparent checked. You might want to copy the lights over as well.

In the compositor, check "Use nodes," and duplicate the existing Render Layers node. Change its scene, so that both scenes are present. Connect the two nodes' image outputs to an Alpha Over node, which will layer them. Connect that to the composite output, or the viewer output if you'd like to preview what's going on. Look up some compositor tutorials if you're not sure what all this means.


I UV unwrapped my mesh, but the image texture doesn't show in my object I just created a 3D model of a barrel and UV unwarped. That thing below is the screenshot of the UV image editor.

Then I clicked new button below the UV image editors window and gave a name barrel and unchecked the alpha option, and selected blank to color fill option then clicked ok. then I changed the viewport to texture mode. I can't see the color grid texture on my object. Image below.

i am using blender 2.78n thanks in advance for any help.

UV unwrapping just deals with the coordinates for the mapping of a texture it does not assign the image to the material automagically.

In order to have an image be part of the material, you need to edit the material add an image texture node and connect the color output to the color input socket of the shader, then the UV coordinates as vector for the mapping.


Red highlight in Material shading mode? So, when I go into the Material shading mode in Cycles, everything seems to have this strange red light shining on it from below (relative to the view, of course). Does anybody have an idea as to why this is? [EDIT added photo.]

Check your prefs in the systems tab. This is just the default viewport lighting. You can change it. It does not effect your renderings.


How to copy weight painting on foot1 to foot2? I have a mesh (half a human body) and an armature, which is mirrored by scaling -1 along x, and then fixing bone roll. The mesh is weight painted.
I want to mirror the mesh. However when I use the mirror-modifier, I experience great problems with the feet.

When I mirror the mesh, the weightpainting of the feet get copied. In the sense that the foot-bones for one of the feet controls both feet, while the other doesn't control any. The rest of the rig works fine.

How do i make the feet-bones control each their feet?

This is my modifies for the mesh

It seems to me that the new foot bone is either using the group associated with the other foot or that it copied a new group to the new foot but has also copied over the weights for the opposite foot...

You need to make sure that you have a separate group for each foot bone, and that each of those groups is associated with its particular foot weights.

Its also good to keep good naming conventions, foot.R and foot.L, for your bones and groups as blender uses the .L or .R to work out its symmetry when doing opposite calculations.

Hope this helps...


Inverted axis in pose mode I have this mesh with their bones... the first (upper, called Target) bone is selected in pose mode. The bone next (down) the "Target" has IK.

as you can see the location and rotation are with cero's.

But when need to move or rotate trying to use the location and/or rotation transform... the axis are inverted...

If I modify the axis Z in location, the bone moves across the Y axis... why is that?

NOTE

That bone is not connected with others bones, to be a target bone, with the IK.

Try applying the rotation of the object/bone, maybe? (CTRL+A>Rotation)


Removing alpha from PNG image with set alpha node gives pixelated result I am making a node group, and I want to remove the alpha from an image. I added a set alpha node and set the factor to 1, but this gives me a crazy result as you see in the screenshot. I 'm using a normal image with black text and an alpha background, but when I add the set alpha node, the image goes crazy.

I also tried using an alpha over node, but that didn't work either.

Sometimes in PNGs that have alpha channel the image get interpreted in a weird way as RGB only (without the alpha).
Here's an example of how blender interprets such image:

Maybe someone else can explain why... I find that the program in which PNGs are generated can make a difference.

But as a quick solution in this particular case, try connecting the alpha of your Image node to the alpha of the Set Alpha node.


How do I use Hairnet properly? I have Just got the Hairnet extension but everytime I try to add the hair it says somethings missing, have I done something wrong? Could someone tell me how Hairnet?

I tried the addon, here it seems to work.

If you set a seam on the "plane hair guide", like this
(note:I highlighted in red the "plane hair guide", in blue the "emitter")

then, in object mode, be sure to apply all transformations to the objects (location, rotation, scaling)

then you select those two in that order, and press this button

you should get something like this

which renders like this in blender render

I noticed though, that if you select the "emitter" (eg the head) first and after the "plane hair guide" (eg a custom shape) you get an error like "no seams were defined in plane", because it needs to be selected in the opposite way: first the "plane hair guide" (eg a custom shape), and then the  "emitter" (eg the head).

Otherwise, please describe how you set it up, or share the file on http://blend-exchange.giantcowfilms.com/, then paste the provided link editing your question: I'll take a look.


Revert model to t-pose I'm aware of the "Rest Position" button, but I'm looking to somehow get the model to a T-pose in "Pose Position" (because you can't pose the model if it's in "Rest Position" mode), so I can pose it from there. I downloaded a rigged model and it wasn't in T-pose, but I want to revert it to a T-pose to make it easier to pose the model.

I'm hoping there's a button because I can't find some of the bones

Wow that's a lot of pose hope it's not too unclear

To return to the original pose, simply reset all the transformations.

Make sure your are in Pose Mode, by selecting the Armature and choosing Pose Mode in the 3D View (CtrlTab).

Then select all bones (A) and press

AltG to reset location
AltR to reset rotation
AltS to reset scale


bpy.ops.view3d.view_selected() issue I try to import an obj file and make a rendered image, by a python script.
How to center the view to the mesh?

I've tried bpy.ops.view3d.view_selected() but i get this error:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "<string>", line 43, in <module>
  File "J:\Programmi\blender-2.75a-windows32\2.75\scripts\modules\bpy\ops.py", l
ine 189, in __call__
    ret = op_call(self.idname_py(), None, kw)
RuntimeError: Operator bpy.ops.action.view_selected.poll() failed, context is in
correct

If you don't have a reference to a specific window, you can iterate over all screen areas, and call the operator on all VIEW_3D area types.

for area in bpy.context.screen.areas:
    if area.type == 'VIEW_3D':
        ctx = bpy.context.copy()
        ctx['area'] = area
        ctx['region'] = area.regions[-1]
        bpy.ops.view3d.view_selected(ctx)            # points view
        # bpy.ops.view3d.camera_to_view_selected(ctx)   # points camera

I think the topic and resolutions to context is incorrect have been covered exhaustively .

If you use camera_to_view_selected(ctx) you can break the loop early if you only have one camera to point, else it will point the camera at the same thing for every 3dview opened.


Workflow to model and texture a jigsaw puzzle Goal

Create a repeatable workflow to model and texture different 500-5000+ piece jigsaw puzzles for use in Tabletop Simulator.

Question

How would you model and texture a 500-5000+ piece jigsaw puzzle from a vector cut template appropriate for import into Tabletop Simulator / Unity.

I'm familiar with Generating jigsaw pieces from svg curves but think he quits just when it gets interesting.  Looking to move beyond 2d.  This is a complete, albeit small, puzzle cut template:

Edit: I removed my incomplete/attempted solution to reduce this to a single question.  Hope this is better.

"How would one go about projecting an image across all these individual piece objects? That then get baked into textures? That can then be applied in TTS?"

I would just use the single image as the texture, and each piece would start out being in the same object mesh so that they can all be unwrapped from view at the same time and carry the same material - then you can separate each separate piece with P - 'separate by loose parts'. No baking needed.

Incidentally, I advise you to increase the resolution of your curve object before converting to mesh if you are concerned about the edges of each piece.


Displacement map causes strange effects I am working on an old pool table set and I came across a problem when I tried to add a displacement map to my cue ball.

This is it without the displacement map.

But to add more realism (and to show it had been used a lot) I wanted to add small dents and scratches to the ball as well.

The problem is as soon as I added the displacement map this happened.

As you can see the glossiness is made very glossy in the bottom, the scratches are dotted and not indented, and the bumps do not like bumps.

Obviously I have made a mistake somewhere and I would really appreciate any help in fixing the problem.

You can download the files used from this dropbox folder

It looks like you are trying to use bump maps as normal maps.  If your texture data is black and white you should use it as a bump map.  Normal maps are made up of RGB data that maps to the XYZ components of normal vectors.  They generally look purplish blue.

Plug the output of your noise texture and scratch texture into a mix node, and then plug the output of the mix node into the displacement slot of your material output.

And the result:


Blender 2.8 exporting UV-Layout I've found the button i should use for that, but somehow they changed it from "UVs" to "UV", now the "Export UV Layout" button is missing and i can't find it.

It is there in the UV menu on top, maybe update blender?
If you can't find it, you should be able to search it by name with F3 key on 2.8
I can find it by typing export uv.


Wrong colors on rendered video I rendered my animation using eevee and video has wrong colors. If I render image it has correct colors exactly how they appear in viewport in preview mode. Perhaps there are video settings I don't know about?

Rendered video has color shift to yellow while original has red colors.

Color management settings:

After hours of research and trial I managed to get colors right. According to this topic on blender dev tracker blender renders video with BT601 conversion in YUV colorspace. That's why I had correct colors with RGB colorspace codecs (avi raw, FFmpeg codec #1 and png) and wrong colors with codecs using YUV colorspace (h264,vp9). BT601 conversion is used on SD videos, while BT709 is used on HD videos (my video has 4k resolution). So I figured a workaround:

Render video in blender in any lossless format that uses RGB color space (like AVI RAW, FFmpeg codec #1, png).
Use FFmpeg CLI to compress the raw video with any other codec, like h264 or vp9 using following parametr -vf colormatrix=bt601:bt709.

Here is an example of covertion from raw avi to webm with color conversion correction:

ffmpeg -i input.avi -c:v libvpx-vp9 -lossless 1 -vf colormatrix=bt601:bt709 output.webm

As you can see below, colors are almost identical (input on left, output on right). Output has slightly brighter color, but you won't notice it unless you are on really good IPS monitor.


Light source automatically fitting to object I want to setup a light source that is automatically fitting to the loaded object. Either by a script or by maybe setting it in a way that it works great for every object that might get loaded (maybe sun or area?). This means that the brightness should be good for every object, however contours and shape should be still visible, so shadows/shades have to probably be visible.

This solution is different to what you asked, but I think it gets the intended result.

The sun light itself will impact 'every' object without needing to be attached to every object. The sun has constant direction parallel rays regardless of where it is placed, unlike the other light sources that are relative to their position.  So for example, in the following three images, the sun is above, moved just right and then moved far below and yet they produce the same constant result for the object. For every other object I add in the scene, the same sun light properties will be applied.

Adding a light per object is most likely an overkill.

Above:

To the right:

Well below:


How can I set sliders to values outside the limits allowed by their slider? How can I allow value sliders to be set higher than certain values?
For example, I can't slide the subsurf slider past 6.
This might seem like a bit of a silly question, but it always bugged me when watching a tutorial or something and somebody said something like

  blender can't do more than 6 subdivisions, so add two modifiers

It just seems clunky to add another modifier.

How can I set a value slider such as the subserf setting higher than it normally goes?

The values you can enter in with the mouse are clamped to (soft limits),
if type your value in specifically with the keyboard you can get an increased range (hard limits):

Note that once you type in a value higher than the initial soft limit, you will be able to slide the value to the next highest soft limit.

e.g. for subdivide, if you type in 11 (the initial soft limit is 10), you can slide the value to 20, if you type 21, you can slide it to 30, etc.

This applies to many such limits, not just subsurf.


How can I create a portal? I'm planning an animation in Blender to be released on my birthday.

One of the scenes features something coming out of... let's call it 'a gap in reality.' It's a humanoid shape, and it's curved.

But I wonder... Is there any way to make a "portal" object that can show an entirely different texture on the inside, or even something semi-dynamic as this Minecraft redstone hax here: https://youtu.be/xewQL6CkMWI

Is it possible for an object to create the illusion of another dimension when looked into, but if viewed from the side, seem perfectly normal?

Thanks, Nefer. (Best answer gets to be put in the credits!)

Here's a example I made a long time ago using the same techniques.

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

This can be done easily with some render layer trickery.

Start out by putting both of your scenes on two separate layers, and align everything so that in your first scene, the opening into the next scene is in the same place.

Then, create an object on a trash layer, and shape it in the inside of your "portal". Then, in your renderlayer settings, in the mask group, select the layer you put your "portal mask".

Then, on your first layer, using the exclude group, exclude the layer with your first enviroment in it, and then do the oposite for the other one. This is done so that lighting and shadows from one enviroment, doesn't transfer over to the other.

Than, if your camera crosses into the other world, you need to stop the first one from rendering. This can be done by animating the checkbox next to the name of the layer.

After you render everything out, you can paste the two scene together using an alpha over node in the compositor.


Bones wont deform mesh in real time It happened after I saved a pose to a pose library, when I move the bones, I have to click again to see the mesh deformed. I can't figure out how to get it to move in real time without clicking again. This is in 2.77.

Ok, silly me somehow toggled "delay refresh", i didn't know about that feature it until Demon's Fate pointed it out.


How do you check for a specific game engine property with python? (2.7x only) Instead of having several ray sensors each set to look for a specific property, I would like to have one ray sensor that looks at everything and have python decide what to do with what is hit based on the property.

So something like this:

sensor = cont.sensors["Ray"]
if sensor.positive:
    trigger = sensor.hitObject
    if trigger.(whatever would determine if it has the property):
        # do something
    if trigger.(another property):
        # do something else

sensor = cont.sensors["Ray"]
if sensor.positive:
    trigger = sensor.hitObject
    if "property" in trigger:
        # do something

You may also want to check if the property exists and get it (all in one lookup), This can be done using get a fallback value to avoid try/except.

sensor = cont.sensors["Ray"]
if sensor.positive:
    trigger = sensor.hitObject
    prop = trigger.get("property", None)
    if prop is not None:
        # do something

This style of access is the same thats used in Python dictionaries. eg:

dct = {"a": 2}
if "a" in dct:
    print("found")

val = dct.get("b", 2)
print(val)  # -> 2 (or the value)


Hidden layers appear when I hit undo I have two layers that have a purple circle around the visiblity "eye" icon in the outliner.  Every time I hit undo, these two purple layers re-appear.  How do I mark them as un purple?

Sounds like you somehow added a driver to an object on one of the layers. Simply right click the eye and choose Delete Driver. It is an undoable action so if you undo, it will revert so you might want to save the file and reload it.


Why when I apply my armature modifier the mesh won't move anymore with the bones? Let me explain in details what append:
I have made a model and I have applied an armature to it.

As you can see when in pose mode the mesh can be moved.

But when I click on the Apply button the the Armature modifier.
the mesh won't move anymore.

Is someone can help me about that ?

Thanks.

You can't apply the armature. Armature is part of "deform modifiers", when you apply this modifier the deformation gets permanent, and gets rigid. If you can't roll back (ctrl+Z, backed up file or similar) you will have to rigify your model again.


How to add playing videos to the 3d viewport? Is it possible to add videos to the 3d viewport? I want to add multiple ones playing in a loop.

Create a plane, give it a material.
In the Shader Editor create this node chain: Texture Coordinate (Generated output socket) > Image Texture > Diffuse or Emission > Material Output. You may also want to put a Mapping node between the Texture Coordinate and the Image Texture in order to move the movie in the plane.
In the Image Texture load your video, tweak some of its settings: enable Auto-Refresh and set the amount of frames your movie requires.

Or, as No-Can-Do says, enable the Import Images As Planes addon and press ShiftA > Images > Images As Planes
and open the Shader Editor to tweak the settings.
If your video is not a video file, but a series of numbered images. Press the gear icon when adding an image as plane, and select Animate Image Sequences,so that all the images are imported in a single plane and not as multiple planes, each one with a single frame.


How to get the normal of the face which was hit in a collision? I would like to make an object stay at the height (Z) and velocity it was created at (it's created from another object with an Edit object actuator). Ideally it should be allowed to bounce up/down, but not allowed to fall (think very slow light ray).
I would like this object to bounce off only certain objects.

I couldn't get an object to do this with collision groups + physics (it seems like it should be possible though, so if it is, please say so :)

I thought I would try and handle bouncing with python, however I can't figure out how to get the normal of the face it hits on collision (I'm using a collision sensor with a property)

How can I get an object to behave like this?

Blendfile

You could try to use a ray sensor:

c = bge.logic.getCurrentController()
ray = c.sensors["raySensorName"]

if ray.positive:
    pos_vec = Vector(ray.hitPosition)
    normal_vec = Vector(ray.hitNormal)


how do I remove all cameraAction I have a 3D object with some animation on it. And a camera with some animation on it. I want to export only the 3D object with the animtion to FBX. So I remove the keyframes of the camera, I remove the camera I, deselect camera in the FBX export settings.
When I import in Unity3D i still see 'cameraAction' in the FBX properties (see image).
How can I remove all cameraAction in blender?

You can remove an action from an object by going to the 'Dopesheet':

Switch to the 'Action Editor' in the Dopesheet header and press the 'x' next to the action name (CameraAction in this case):

This will remove the action from the object selected in the 3D view.

If the action is not used by any other objects it will be removed from the file when the file is saved, closed and re-opened.


Mantaflow fluid does not take the shape of a sphere (Blender 2.8) I created a sphere and set it up as a container for Mantaflow Fluid. I created another sphere and set it up as an inflow object. No matter what I do and how I play with the values, I can't seem to get the fluid take the shape of the sphere, it only takes the shape of a cube. Seems that it only takes the shape of the bounding box of the container.

Attached are the parameters I'm using, if ever needed.

The container/domain will always use the bounding box of the object (the cube/rectangle that enclose the object), you can see it by changing the object display to Bounds:

If you want to have the liquid stay in a shape that's not a rectangular box, you have to use a separate object set to Effector to act as a container.

For example, if you want the sphere to act as the walls of a container:

Duplicate it
Set the fluid type to Effector
Go into edit mode, and flip the normals so that they face inwards.
Back inside the simulation settings, set Is Planar, and turn up the Surface Thickness until things stop leaking

Put your flow source inside the sphere.
Bake
???
Profit!

You should get something looking like this:

Here's the blend file:


Delete/merge mutliple vertices on the same spot My problem can be seen in the pics below... I want to edit this part of the model but I can't select the vertex that connects all the edges that seem to be attatched to it. Instead, I have to delete three layers of vertices on the same spot (and lose some faces too), in order to find the desired vertex. I am pretty sure I have never extruded or done any transformation around there.

This happens way too often while modeling and I spend too much time deleting vetrices and "rebuilding" lost faces. Is there any tool that can help me fix this?

Thanks in advance

Desired outcome (without losing faces):

Select every vertex with A, hit W and select remove doubles .
 you may have to adjust the merge distance if they are not exactly on the same spot.

To make vertices that are on the same location merge automatically, enable automerge.

Another option is to select all the vertices again with A then press Space to open the search, then type Remove doubles (Or for saving time, just "dou")

Then press enter or click on it.


How to find active brush in Image Editor context? At the minute I use bpy.data.brushes['TexDraw'] in an operator, but can I find the currently active brush in UV/Image Editor?

I've found it

context.tool_settings.image_paint.brush


Creating bumpy glass effect on an extruded path? I want to make a glass material with specific bump pattern on an SVG image that I've extruded and converted to mesh.I've been using bump node and connected its normal output to the normal input of glass node but that doesn't affect the final render.
I'm using blender 2.81 with Eevee engine.

To do this you must add a B&W conversion node between Bump and the Texture node as Bump node requires a greyscale image to work.


Mirrored object not symmetrical I am trying to mirror an object and the original is symmetrical along all axis, but when I attempt to mirror across the y axis, the mirrored side is tilted to a different angle.

Mirror modifier mirrors the object in its local space. If the object is rotated its local axes differ from the scene's global axes. If you have an object and want to make its local rotation match the scene you need to apply rotation by hitting ctrl+a -> Rotation:


Procedurally generated objects of paintings I have number of pictures of different paintings (all with different aspect ratios). I need to create art gallery with paintings randomly selected from this collection.

What are ways to adjust painting frame and canvas object to size of a random painting? Doing this manually is not an option.

UPD: All paintings in separate images.

UPD: Can it be done without creating whole painting frame in script? It will be pretty hard to build mesh of more complex frame.

I'm not sure if I understand the requirement correctly. But here is one way... The following code will create an extruded planes per image from the given directory. One of the faces of the plane will have the image texture (you can randomize the array of image files using random.shuffle).

This is rather quick and dirty :), so maybe buggy and quite slow.  To improve the performance, (and if the functionality broadly corresponds to your requirement) you'd need to replace the ops calls with the low level equivalents. Also, the space between the planes may be required to be properly worked out.

import bpy
import os
import glob

def getOverride():
    for area in bpy.context.window.screen.areas:
        if area.type == 'VIEW_3D':
            v3d = area.spaces[0]
            rv3d = v3d.region_3d
            for region in area.regions:
                if region.type == 'WINDOW':
                    override = {
                        'scene'  : bpy.context.scene,
                        'region' : region,
                        'area'   : area,
                        'space'  : v3d
                    }
                    #~ return region, rv3d, v3d, area
                    return override
    return None

types = ["*.png", "*.jpg"]
srcDir = '/tmp/'
imageToCanvasRatio = .8
canvasThickness = .08
canvasColor = [.120,.109,0.02,1]
canvasWidth = 1
canvasOffset = .2
image_files = [os.path.basename(x) for t in types for x in glob.glob(srcDir + t)]
maxImgs = 15
maxHeight = 0
imgsPerRow = 5
cumulHeight = 0

bpy.context.scene.render.engine = 'CYCLES'

defaultMat = bpy.data.materials.new('Background')
defaultMat.use_nodes = True
node_tree = defaultMat.node_tree
node_tree.nodes.get("Diffuse BSDF").inputs["Color"].default_value = canvasColor
for i in range(0, len(image_files), imgsPerRow):
    imgs = [bpy.data.images.load(srcDir + image_files[i + k]) for k in range(0, imgsPerRow) if (i + k) < len(image_files)]
    maxHeight = max(canvasWidth * img.size[1] / img.size[0] for img in imgs)
    for j, img in enumerate(imgs):
        print(i, j, maxImgs)
        if(i + j >= maxImgs):
            break

        canvasHeight = canvasWidth * img.size[1] / img.size[0]

        bpy.ops.mesh.primitive_plane_add(location=(2 * j * (canvasWidth + canvasOffset), cumulHeight + maxHeight/2, 0))

        obj = bpy.context.object
        obj.dimensions[0] = canvasWidth
        obj.dimensions[1] = canvasHeight

        bpy.ops.object.mode_set(mode='EDIT')
        bpy.ops.mesh.extrude_region_move(MESH_OT_extrude_region={"mirror":False}, TRANSFORM_OT_translate={"value":(0, 0, canvasThickness), "constraint_axis":(False, False, True)})

        bpy.ops.mesh.loopcut_slide(getOverride(), MESH_OT_loopcut={"number_cuts":1, "edge_index":5}, TRANSFORM_OT_edge_slide={"value":imageToCanvasRatio})
        bpy.ops.mesh.loopcut_slide(getOverride(), MESH_OT_loopcut={"number_cuts":1, "edge_index":5}, TRANSFORM_OT_edge_slide={"value":-imageToCanvasRatio})
        bpy.ops.mesh.loopcut_slide(getOverride(), MESH_OT_loopcut={"number_cuts":1, "edge_index":4}, TRANSFORM_OT_edge_slide={"value":-imageToCanvasRatio})
        bpy.ops.mesh.loopcut_slide(getOverride(), MESH_OT_loopcut={"number_cuts":1, "edge_index":6}, TRANSFORM_OT_edge_slide={"value":-imageToCanvasRatio})
        bpy.ops.object.mode_set(mode='OBJECT')

        obj.data.materials.append(defaultMat)

        for faceIdx in range(0, len(obj.data.polygons)) :
            if(faceIdx != 24):
                obj.data.polygons[faceIdx].material_index = 0

        mat = bpy.data.materials.new('mat')
        mat.use_nodes = True
        node_tree = mat.node_tree
        node_texture = node_tree.nodes.new("ShaderNodeTexImage")
        node_texture.image = img
        links = mat.node_tree.links
        links.new(node_texture.outputs['Color'], node_tree.nodes.get("Diffuse BSDF").inputs['Color'])
        obj.data.materials.append(mat)
        obj.data.polygons[24].material_index=1
        bpy.ops.object.mode_set(mode='EDIT')
        bpy.ops.mesh.select_all(action='SELECT')
        obj.data.uv_textures.new()
        bpy.ops.object.mode_set(mode='OBJECT')
    if(i + j >= maxImgs):
        break
    cumulHeight += (maxHeight)+ canvasOffset


Blender 2.8 how to change toolbar's tools? I'm quite new to Blender and I've been using 2.8 to teach myself 3D modelling and more.

Following a tutorial I must have done some kind of manipulation that changed my default selection tool from box to lasso. As you can see in this screenshot of my toolbar, the lasso selection tool is there instead of the box one, which transformed the latest "left click and drag for box selection" to lasso selection instead, and I don't especially want to go back to pressing 'B' for box selection now.

This is probably a simple shortcut that I triggered unintentionally but I cannot undo it and find nothing regarding Blender 2.8's toolbar customization. How can I change the selection tool from lasso back to box ?

At the bottom right corner of the lasso select tool icon you can see a little white arrow head pointing down. Left click on this and slowly drag your mouse downwards.

This will open a menu where you can choose other selection tools.


Weird see-throught effect I don't know how I did it but I pressed a button that made that meshes will get invisible if there is another one around or behind them. Anyone know which button I need to press or if it is anything to do with the viewport?

You probably toggled X-Ray mode in the object viewport.
You can switch X-Ray mode on and off with Alt +  Z


Custom Toggle Shortcut (for an operation that doesn't normally toggle)? I'd like to set up a keyboard shortcut that in Object Mode will apply Smooth Shading to a mesh object, or alternately apply Flat Shading if all faces are already smooth.

This would ideally behave similarly to how pressing A will either Select All or Deselect All depending on whether anything is currently selected.

Here's my current setup with two separate shortcuts:

If this were a simple Boolean value situation, like a checkbox that is either on or off, this answer would be a solution. The challenge is that Smooth/Flat is not as simple as yes/no because a mesh can have a combination of both smooth and flat faces.

I'm guessing this will probably involve some scripting because logic will be required to first check the shading of the faces on the mesh. Or maybe (less ideal, but) just apply Smooth Shading the first time the shortcut is pressed, and then alternate between smooth and flat for all subsequent shortcut calls.

I realize it's a geeky ambition, but can anyone point me in the right direction (if this is even possible)? Thanks.

As you are a veteran here, I will point you in the right direction and when you have it you can post it here as answer:)

You need an operator that doesn't simply do a thing, but does a thing based on condition. That means you will have to script your own operator, and assign a custom shortcut to it:

How to register custom operator
In the execute function, you will have to check the active object and all it's faces and see their smooth attribute:

How to get Bmesh from active object
Bmesh faces: BMFace.smooth

Based in which state the mesh is, execute

shade_smooth operator
shade_flat operator
How to run an operator: refer to point 1 last line of example code

Assign a custom shortcut to your operator:

Adding a custom shortcut

Turn it into an addon, so you don't have to run the script every time (or also save it in the startup file, check register and enable auto run scripts):

Simple addon example with operator


transfering compositing nodes with render layer nodes I have two projects. In one I have a lot of compositing nodes including a lot of render layer nodes. I have found a way to append nodes but it does not work with render layer nodes. Is there a way to append compositing nodes including the render layer ones? It would take me ages to copy that and yet it would not be the same.
Thank you very much.

Append a Scene
Compositor nodes belong to the Scene settings.
You just have to Append a Scene from a blendile containing the compositor setup you want. Go under -> File -> Append, pick the file and look under the Scene folder.

Then go to the scene selector, open the compositor in the appended one and copy past the nodes in yours.

Remember to update the render layer input scene in the copied compositor node setup.


Blender release life cycle and versioning I was trying some older versions but version numbers and release versions are not clear to me.

For instance how can I know what is the most stable release of a given version, say 2.49:

The folder listing looks like this:

...
Blender2.49/    2009-Jun-04 09:24:18    -   Directory
Blender2.49a/   2011-Jul-11 16:08:09    -   Directory
Blender2.49b/   2009-Sep-16 09:53:26    -   Directory
...

So, which one is the stable release, is it the "newest one"?, so what does the letter a stand for, is it alpha?

How is it related with the software release life cycle common acceptance?

AFAIK, the letter doesn't stand for anything. It is appended to the version number when there is a bug fix release with minor changes after the initial release, and incremented with subsequent bug fix releases. So 2.49b is the latest version of 2.49.

The date refers to the last time the directory or file on the server was modified:


How Can You Adjust Bone Roll Value Without Twisting and Deforming the Mesh? How can you adjust the bone roll value without twisting and deforming the mesh? If it does twist and deform can you reset the mesh to adjust to the new roll value of the bone?

For example I adjusted a finger bones roll to 250 so that the bone will go only follow the natural motion of a finger when extending in and out.

However after I did this the mesh around the bone its self was twisted.
I tried deleting the vertex group and resetting it to the bone but after i made the new group and assigned it to the bone the mesh was still twisted. I tried resetting the bone roll with control-n to no avail.

You can unparent the mesh, roll the bone (in edit mode) then reparent the mesh, and it should work.


Roll view while looking through camera I am painting grease pencil based on a fixed camera angle. The camera itself is locked and won't move. I am looking through it, but the camera is not locked to view, so I can still pan and zoom without moving the camera. It is projecting a background image that I am painting the grease pencil over. There are also 3D objects being painted over.

To make painting certain angles easier, i want to be able to rotate the canvas like you'd normally do in photoshop or SAI or Krita. But I can't find a way to do this while looking through a camera. In the Viewport camera, you can use shift+numpad 4 or 6 to roll it. This does not work when looking through a camera. If I unlock the camera and roll it, then my background image rotates with it, so that doesn't work.

I need some way to roll my view of the active camera without rotating the active camera itself. Is this possible?

As far as I know, if you rotate the camera, the background image will always rotate with it. However, similarly to this question, you can display the image inside of an empty instead of as a background image, and then you can roll your active camera, and the empty displaying the image won't move.

I realize that this isn't a perfect solution since using the empty isn't nearly as easy as just using the background image feature, but it's the best I can come up with.


Why is texture paint showing a different UV map For some reason my UV map is different between UV editing and texture painting. I'm gonna try unwrapping again to see if that fixes it, but maybe there's some checkbox somewhere I'm missing.
Pictured here is what I see in texture paint mode.

And this is what I see in the UV editing panel.

This came down to a problem between UV unwrapping and my modifier stack. All modifiers need to be applied before unwrapping, otherwise there will be glitches in the UV.
In the question above, I had a sub-d and bevel modifier being applied dynamically, and this lead to inconsistencies in the UV map. By applying both and unwrapping a second time my UV islands began to appear in texture paint.


Would it be possible to get list of index of components BY SELECTION ORDER in Edit Mode? Not sure if Blender has a built in mechanism that "knows" the order the user selects Objects in 3D view or Components by Index.

I wanted to achieve this using Python for later usage incorporated into node in Sverchok or Animation Nodes.

bmesh records (or provides access to) the selection history of a mesh.

import bpy
import bmesh

obj = bpy.context.object

if obj.mode == 'EDIT':
    bm = bmesh.from_edit_mesh(obj.data)
elif obj.mode == 'OBJECT':
    bm = bmesh.new()
    bm.from_mesh(obj.data)

for i in bm.select_history:
    print(type(i),i.index)

Notice the use of type() as the history list can contain verts, edges and faces at the same time and in any order.


Keeping Shaders in Memory Is it possible to make Blender keep shaders in memory instead of reloading them each time I switch back to lookdev or render view?
I am losing a lot of time switching between the views simply because the shaders have to load...it can take up to 3 or 4 minutes. I work as much in the basic viewport as possible for speed, but I do need to switch to check textures, lights and things. Unless it is only a short time, Blender has to reload all the shaders again.
There MUST be a way to get Blender to hold the shaders in memory so it is possible to quickly switch between manipulating things in the viewport and checking the effect in shaded view.

I discovered an answer to this:
Preferences/System/Memory & Limits/Texture Time Out
I had this set as default to 120 (seconds I am presuming). It is possible to set it to 0 so that they are kept in memory.
What would be nice is if it were possible to load or unload textures manually. Often, we are working on lighting and textures for a while and then sometimes modelling and animation.


Clamp Settings for Getting Rid of Fireflies To get rid of fireflies in blender cycles, under the sampling do I change the indirect clamp to .98 or the direct clamp to .98 or both?

First clamp cut the light value to the maximum you put so try first using hight values and then lowering from that as if you put it too low it will remove some light that is "real".

Second, you want to cut first the indirect light as it's normally what make more fireflies and direct light value is higher.

I recommend to start using a value of 100 or 10 in "clamp indirect", and reducing from it.


I can not find cylinder Projection panel I am working with Blender v2.78 windows 10 64 bit.
I am doing  a course  using UV projections. When I call Mash => UVunwrap => Cylinder Projection I am supposed to find the Cylinder Projection Panel, but it is not there.
need help.
Dov

It comes up at the bottom of the Tool Shelf (press T if the panel is not visible):


"Vertex Data Detected" - Dynamic Topology (Dynotopo Warning) When I try to sculpt in sculpt mode using dynamic topology, I get a message saying there is "vertex data detected." Despite this, I try to sculpt, but the details don't refine as I get closer to the model.

There was another post on another website about this same issue and someone responded "Properties panel / object data, see if you have something and delete it. Can be vertex colors, vertex-groups, UV's, simply select and delete it," to which the author of the post responded 'thats exactly what I was looking for.' I don't know how to access the settings for vertex colors, etc.

Besides that issue, when I exit sculpt mode and come back, the dynamic topology setting is off. Is there any way to keep it on consistently?

Please explain in simple terms. I still have yet to learn Blender jargon.

Thank you in advance.

The default cube comes with a UV map (so if you want to apply a texture you're already halfway there) which is what's upsetting Dyntopo. Click on the "Object Data Properties" tab (the green triangle, third from the bottom on the right), then unfold "UV Maps" and click the minus symbol on the right. Dyntopo will no longer complain when it starts, or switch off when you change editing modes.


Import FBX Camera animation - rotation issue? I'm trying to import an animated (position and rotation) camera from a FBX file, however, when I do the animation is completely wrong and doesn't match the movement of the camera from the other program (Cinema 4D). I've tried exporting different versions of the FBX file (FBX 2011 - 2016) but the FBX version doesn't seem to have anything to do with the problem. I think the position of the camera seems fine (however, I'm not really sure) but the rotation seems completely off. The scale seems to be correct since a 1 meter cube in the middle of the scene from C4D matches the size of adding a 1 meter cube in Blender. Any ideas how to fix this?

If I'm coming from After Effects I can use this plugin to properly import a 3D camera to Blender: https://blendermarket.com/products/ae2blend


Boolean difference leaves open gap I am trying to make a surgical cutting guide (blue) for a jaw bone (white). The top part has to fit on the teeth, the lower part on the side of the jaw bone.

However, when I use the Boolean Difference modifier, it only partially works: The teeth are nicely cut out from the upper part, as you can see below.

But the part that touches the mandible is left open after the boolean, as you can see below.

I guess it might have something to do with the jaw bone model coming from a CT scan so it has an internal (hollow marrow) structure (see below)

I don't know how to solve it though. Is there a way to just 'fill' the jaw bone model and make it completely solid? Thanks for any advice.

Booleans ussually fails on non-manifold mesh.
To see these problematic parts - from within Edit Mode, using Vertex selection, with no geometry selected, Search for "manifold" (Select non-manifold operation appear). For more info see Blender Manual

Q: Is there a way to 'fill' model and make it completely solid?
A: In a meaning - closed mesh without holes - Yes
_
Fill
Search for Fill operator and increase number of vertices in tool properties until the holes are filled. Like here it was value 14.

But N-gons are not the best for boolean operations so probably better to try ...
Grid Fill
Like here. Important for this function is to have a loop of even number of vertices. If you don't have, you can select one edge and subdivide it.
(White vertex in the screen is one I added.)

Or even better to Triangulate whole mesh Ctrl+T
Remesh
Or you can try Remesh modifier > Sharp if there is too much work, but even on hi Octree Depth in wouldn't be precise.


How do I update textures in the viewport from the textures properties? So when I set my texture up with UV and change a value such as Blue on the texture properties, my texture stays the same. I looked in the UV Editor and my texture is the same, is there a way to update my UV Editor Image live by changing a property in the texture properties area?

EX: Change blue in the texture area and the UV texture turns less blue than before

As you can see, when you change the parameters of the texture's colors, the texture doesn't change: it changes the way the texture is rendered: in the properties window you have the preview tab for monitoring the process. Another way is to choose the "Rendered" viewport shading in the header of the 3D Window.


Mirror material works in blender but does not work in standalone game? I have made a game with mirror material using the Render To Texture script. When I hit P in Blender, it works. But when I Saved as Runtime Game and opened my runtime game file, the mirror material was black and did not work.

Why it doesn't work and how to make it work?

The result when I export game to Runtime:

Traceback (most recent call last):
  File "/opt/Blender/2.72/scripts/addons/io_export_pc2.py", line 156, in poll
    return context.active_object.type in {'MESH', 'CURVE', 'SURFACE', 'FONT'}
AttributeError: 'NoneType' object has no attribute 'type'

location: <unknown location>:-1

The code I use for mirror relfection:

######################################################
#
#    RenderToTexture.py        Blender 2.50
#
#    Tutorial for using RenderToTexture.py can be found at
#
#    www.tutorialsforblender3d.com
#
#    Released under the Creative Commons Attribution 3.0 Unported License.
#
#    If you use this code, please include this information header.
#
######################################################

#import GameLogic
import GameLogic

# get current scene
scene = GameLogic.getCurrentScene()

# get the current controller
controller = GameLogic.getCurrentController()

# get object script is attached to
obj = controller.owner

# check to see RenderToTexture has been added
if "RenderToTexture" in obj:

    # update the texture
    obj["RenderToTexture"].refresh(True)

# if RenderToTexture hasn't been added
else:

    # import VideoTexture module
    import VideoTexture

    # get a list of objects in the scene
    objList = scene.objects

    # get camera name being used for render to texture
    camName = obj['cam']

    # get camera object
    cam = objList[camName]

    # get the texture material ID
    matID = VideoTexture.materialID(obj, "MA" + obj['material'])

    # set the texture
    renderToTexture = VideoTexture.Texture(obj, matID)

    # get the texture image
    renderToTexture.source = VideoTexture.ImageRender(scene,cam)

    # save RenderToTexture as an object variable
    obj["RenderToTexture"] = renderToTexture

For some reason the obj["RenderToTexture"].refresh(True) makes it not work. If I change it to obj["RenderToTexture"].refresh(False) it works also in standalone for me. Strange...


Bmesh bevel is inverted This looks cool and all, but it's beveled in the wrong direction. How can I flip the direction it bevels, so it looks more like a rounded cube, rather than a rounded plus-sign?

import bpy
import bmesh

from bpy.props import (
        BoolProperty,
        BoolVectorProperty,
        FloatProperty,
        FloatVectorProperty,
        IntProperty,
        )

#Returns all edges parallel to x-axis:
def get_x_parallel_edges(bm):
    #The returned list of edges:
    e_list = []

    #Look for all the edges that
    #run parallel to the x-axis:
    for f in bm.faces:
        for e in f.edges:
            #Rename the coords:
            ey0 = e.verts[0].co.y
            ey1 = e.verts[1].co.y
            ez0 = e.verts[0].co.z
            ez1 = e.verts[1].co.z
            #Check them:
            if ey0 == ey1 and ez0 == ez1:
                #Check for duplicates:
                is_duplicate = False
                for el in e_list:
                    if el == e:
                        is_duplicate = True
                if not is_duplicate:
                    e_list += [e]

    return e_list

#Break a list of edges
#into a list of verts:
def get_v_from_e(edges):
    #The returned list of verts:
    v_list = []

    #Break apart the edges into verts:
    for e in edges:
        for v in e.verts:
            #Check for duplicates:
            is_duplicate = False
            for vl in v_list:
                if vl == v:
                    is_duplicate = True
            if not is_duplicate:
                v_list += [v]
    return v_list

class AddBevCube(bpy.types.Operator):
    bl_idname = "mesh.primitive_bev_cube_add"
    bl_label = "Add Beveled Cube"
    bl_options = {'REGISTER', 'UNDO'}

    length = FloatProperty(
            name="Length",
            description="Box Length",
            min=0.01, max=100.0,
            default=4.0,
            )
    width = FloatProperty(
            name="Width",
            description="Box Width",
            min=0.01, max=100.0,
            default=3.0,
            )
    height = FloatProperty(
            name="Height",
            description="Box Height",
            min=0.01, max=100.0,
            default=2.0,
            )
    bev_seg = IntProperty(
            name="Segments",
            description="Bevel Segments",
            min=1, max=100,
            default=3,
            )
    bev_offset = FloatProperty(
            name="Offset",
            description="Bevel Offset",
            min=0.01, max=100.0,
            default=0.125,
            )

    def execute(self, context):

        #Rename the variables:
        l = self.length
        w = self.width
        h = self.height
        seg = self.bev_seg
        b_offset = self.bev_offset

        #Make the cube object stuff:
        mesh = bpy.data.meshes.new("cube")
        cube_obj = bpy.data.objects.new("Cube_Obj", mesh)

        scene = bpy.context.scene
        scene.objects.link(cube_obj)
        bm = bmesh.new()

        #Add the cube:
        bmesh.ops.create_cube(bm, size=0.5)
        #Apply size:
        bmesh.ops.scale(bm, vec=(l, w, h))

        #First, get the verts and edges:
        e_geom = get_x_parallel_edges(bm)
        v_geom = get_v_from_e(e_geom)
        #Now bevel:
        bmesh.ops.bevel(bm,
                        geom=v_geom[:] + e_geom[:],
                        offset=b_offset,
                        offset_type=0,
                        segments=seg,
                        clamp_overlap=True)

        bm.to_mesh(mesh)
        mesh.update()

        return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator(AddBevCube.bl_idname, icon='MESH_CUBE')

def register():
    bpy.utils.register_class(AddBevCube)
    bpy.types.INFO_MT_mesh_add.append(menu_func)

def unregister():
    bpy.utils.unregister_class(AddBevCube)
    bpy.types.INFO_MT_mesh_add.remove(menu_func)

if __name__ == "__main__":
    register()

Set the profile

basically your issue was using the default value of 0.0 for the profile property of the bevel operator. I have set it to 0.5 below. Might be a contender for another operator property.

Test code including, what I believe are simpler, routines for finding parallel edges and the vertices they contain. also added some notes re upgrading to 2.8

import bpy
import bmesh
from mathutils import Vector

from bpy.props import (
        BoolProperty,
        BoolVectorProperty,
        FloatProperty,
        FloatVectorProperty,
        IntProperty,
        )

#Test if edge e parallel to vector v:
def parallel(e, v, eps=1e-6):
    # normalized edge direction vector
    d = (e.verts[1].co - e.verts[0].co).normalized()
    return abs(v.normalized().dot(d)) >= 1 - eps

class MESH_OT_primitive_bev_cube_add(bpy.types.Operator):
    '''Add Beveled Cube'''
    bl_idname = "mesh.primitive_bev_cube_add"
    bl_label = "Add Beveled Cube"
    bl_options = {'REGISTER', 'UNDO'}

    length = FloatProperty(
            name="Length",
            description="Box Length",
            min=0.01, max=100.0,
            default=4.0,
            )
    width = FloatProperty(
            name="Width",
            description="Box Width",
            min=0.01, max=100.0,
            default=3.0,
            )
    height = FloatProperty(
            name="Height",
            description="Box Height",
            min=0.01, max=100.0,
            default=2.0,
            )
    bev_seg = IntProperty(
            name="Segments",
            description="Bevel Segments",
            min=1, max=100,
            default=3,
            )
    bev_offset = FloatProperty(
            name="Offset",
            description="Bevel Offset",
            min=0.01, max=100.0,
            default=0.125,
            )

    def execute(self, context):

        #Make the cube object stuff:
        mesh = bpy.data.meshes.new("cube")
        cube_obj = bpy.data.objects.new("Cube_Obj", mesh)

        scene = context.scene
        scene.objects.link(cube_obj)
        #scene.collection.objects.link(cube_obj)
        bm = bmesh.new()

        #Add the cube:
        bmesh.ops.create_cube(bm, size=0.5)
        #Apply size:
        bmesh.ops.scale(bm,
                verts=bm.verts,
                vec=(self.length, self.width, self.height))

        #First, get the verts and edges:
        x_axis = Vector((1, 0, 0))
        e_geom = [e for e in bm.edges if parallel(e, x_axis)]
        v_geom = set(v for e in e_geom for v in e.verts)
        #Now bevel:
        bmesh.ops.bevel(bm,
                        geom=list(v_geom) + e_geom[:],
                        offset=self.bev_offset,
                        offset_type=0,
                        # offset_type='OFFSET',
                        profile=0.5,
                        segments=self.bev_seg,
                        clamp_overlap=True)

        bm.to_mesh(mesh)
        mesh.update()

        return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator(MESH_OT_primitive_bev_cube_add.bl_idname, icon='MESH_CUBE')

def register():
    bpy.utils.register_class(MESH_OT_primitive_bev_cube_add)
    bpy.types.INFO_MT_mesh_add.append(menu_func)
    #bpy.types.VIEw3D_MT_mesh_add.append(menu_func)

def unregister():
    bpy.utils.unregister_class(MESH_OT_primitive_bev_cube_add)
    bpy.types.INFO_MT_mesh_add.remove(menu_func)
    #bpy.types.VIEw3D_MT_mesh_add.remove(menu_func)

if __name__ == "__main__":
    register()

Please note it is standard practice to set the newly created object to active and selected, as well as selecting the new geometry created.

2.7x https://blender.stackexchange.com/a/102239/15543

2.8 https://blender.stackexchange.com/a/133880/15543


What are these time units smaller than seconds: 1/60ths of a second I am using Blender to edit videos. I see strip time units listed with three colon separators, like: HH:MM:SS:??. So, what are those smallest units? 1/60 of a second? 1/100th of a second. Or should the third colon actually be a period to indicate a decimal point? I have this time: 02:18:46:29. Is that for 46 and 29/60ths seconds or 46 and 29/100ths of a second - 46.29? I could find no documentation on this or any way to control time representation in preferences. I've never see a time unit like this.

That's Hours:Minutes:Seconds:Frames or Hours:Minutes:Seconds:Milliseconds (depending on your settings);


How to make 3D model and UV map from picture I want to make a 3D model of an image but not for animation or other 3D stuff. I just need to have a model of my object to be able to apply textures to different faces of the object correctly.

In this picture I want to to apply the pattern with three.js. How should I do that?
Do I need to make a 3D model of that or UV map or both or something else?

There isn't really a simple way to do that, and certainly not one that looks good. Here's what I do, using an example from one of my own projects. This is what it looks like without the finishing details, just the UV mapping/modeling done:

And here is the texture that is applied, which is where you want to get to:

First, I had to model the chair as a whole (which for what looks like you want should be much simpler, there are tutorials on basic shape creation and extrusion modeling all over the place). Then I looked for textures that looked close to what I wanted and applied them to the individual parts (see Adding UV mapping to mesh), giving me the result I asked about in this question: Possible to bake texture to new UV map?

You can then brush in details on the edges in something like Photoshop or GIMP.


Reducing vertex density as distance from point increases I have a 3-D mesh of a human head (mine!), ~100K vertices.  I'm attempting to simulate soundwaves entering the ears.

The simulator's memory requirement shoots up as the vertex count increases by O(N^2)

So I need to massively reduce the vertex count.  However, I need to keep the highest level of detail for the ears.

One approach might be to separate off the ears, and reduce the remaining mesh, then put it back together again.

Another approach might be to create a script that receives the xyz coordinates of each ear (maybe I can choose a point right at the entrance to the ear canal) and automatically merges vertices that far away from both foci.

Or maybe there is another approach?

Please do bear in mind that I've only ever use Blender once, and that was for something trivial: changing the file format of a mesh, so please don't hold back!

If all you need is to reduce vertex count, and not care much about the topology, you may consider use Decimate modifier, and control the modifiable area by vertex group.

Method 1:

Method 2:

Select the ears, then CTRLI to select the invert part;
X > Limited Dissolve to dissolve elements for mesh simplification in a relatively cleaner way.
Press F6 for further tweaks.

P.S.: Limited Dissolve gives same result as the Decimate Modifier by using its Planar mode. So you can use both.

(Head model came from Sintel project)


AMD Radeon r9: weird results using GPU compute hello so i'm having weird results using gpu compute on my blender(v.2.77 on steam) and when i render my project it comes out like this, also tried just using the cpu(which comes out how it should) any ideas on how to fix this or something i could do? simple scene just to test it using a plane and a cube with camera and sun, default cycles setup, windows 10 pro, amd radeon r9 280 gpu(lastest drivers), rendered using default settings at 720p 100% resolution

after reading through the related topic post my @Mr Zak, going back to to an older driver sorted the issue out for me using the 16.4.2 version, thanks for the help guys


How to make dynamic text in GE? I don't know why, but it doesn't work. I've done everything said in this
video, and my result is the following: planes without a transparent background, only displaying @ as the texture, sitting next to each other. Also, there are a lot more planes than the text.

I have a .blend which can be found here.

Your blend file did not contain the packed font image file, so I replaced the texture with one I googled.
With your plane selected, and switching to edit mode the uv/image editor showed your unwrap as this:

For dynamic text to work you need to enclose the @ symbol in your unwrap like this:

This change makes your blendfile work as intended for me.


Making a handle for a bottle with a rounded grip for fingers I am new to blender and the 3d modeling world.  I have modeled a metal mug and am trying to match the lid.  I can get it most of the way.  But when I try to make the actual handle I use boolean to do the circle cutouts and it makes the handle all wonky. I have tried making the inside of the handle completely filled and then tried using the boolean. but the same thing happens. Any help would be appreciated.

Handle should look like this:

You could try it this way:

At first, to make the base, use an Array then a Simple Deform / Bend mode. At the end, keep a copy then apply both the 2 modifiers, then use a Mirror on X and Y as the object is symmetrical on these axis.

To create the handle you'll begin to extrude some faces of the base. Use your picture as a background to make sure you follow the shape.


I can't see the 2nd layer rendered in the Compositor I have been following BlenderGuru's Create a Spaceship in Blender tutorial.
So far so good, until now when doing the compositing.

I believe I have followed every step he mentioned, I have also revised them a few times. Yet when I change the ID Mask's Index (as he does), nothing changes on my screen.
I did assign the Material Pass Index to the material that will be glowing, which is on the 2nd layer. The Render layers are correctly setup, with the main layer set to create the Mat Index pass.

But instead of getting something rendered in the 2nd layer (so it can become the glow eventually) I only get a totally black or white screen.

Note Price only uses 1 render layer node. And only the main scene layer is enabled when rendering. Somehow this works for him.
I have been advised to use 2 render layer nodes instead, and to enable both 1st & 2nd scene layers for rendering. This alternative method does work to some extent, as the 2nd layer gets rendered. The problem is that you end up with the glow behind the box, when it should be over it.

If you go to this specific time in the video you'll see while he's creating the Render layers, he only needs to identify the Render layers, but the Scene layers stay the same, which is only #1 (where the spaceship is).

Anyway, you can inspect my test file should you want. nopass_02.blend. This one is the one like Price's, with 1 render layer node.

Here's the other one with the alternative method, with 2 render layer nodes.

The alpha over node uses the box's alpha (donuts are inside the box)

so it mostly covers your glow effect (white alpha will be over the other image). If the desired effect is what I suppose, i suggest you to use an Add node. (light is added)


Keyframing Field of View in 2.8 I'm trying to animate a camera path using 2.8. I've got a camera clamped to a nurbs path and I want to zoom in and out a bit as my camera is tracking. However I can't seem to keyframe the field of view on the camera. Did that get lost in 2.8 or am I just doing it wrong? Under the Lens parameters I can keyframe Type, Lens Unit, Shift and Clip but no little dot next to FoV. Sup with that?

Thanks

Agreed, it is odd, that the FoV is not keyframeable. However, you can just switch it to "Millimeters" instead of "Field of View".


How to make a curve on the face of a plane I am new in blender and I watched some tutorials on this issue but I did not find any solution.

I want a little curve on a single side of a plane

A solution with Blender 2.82.

In Object Mode , add a bezier curve then pass on Edit Mode.

You can draw a new curve by clicking on icon Draw.

You can draw on a mesh if you select on Tool tab , the Method of projecting depth : Surface.


How to make an infinite landscape or the floor like in games like temple run in blender game engine? We have a project in school either we make an animation or game so I decided I would like to make a game like temple run. How do i make the infinite landscape and any suggestion? Thanks :)

i did something similar in a car game. (Infinite road) If you want to you can download the blend and see how i did it. The file of the Track generator is: TrackGenerator.py

The idea behind the concept is, that you create all kind of objects with the same start and ending. So they have seamless connections. Than you add a new random object when the player gets close enough to the end of your path (or in my case the end of the road).
To controll where to add the next part of the track I created an empty. This empty always is at the end of the path. It is also the object where the script is connected to.
Alway when a new track part is added this empty gets an new Position and orientation. To get this information you need an other empty which is parented to each end of a track part. (those parented objects will automaticly  be added to your scene if you add the track Part, you than can acces them by writing: trackpart.children[0]).
you also need to make shure that the origine of the trackPart objects is at the beginning of the trackPart.

here is an overview what the script does:

it chooses any random trackPart

it adds this part at the and of the Track (with the help of the empty)

than it repositions the empty to the new end of the track.(with the help of the children from the trackPart)

and than it will wait until the player is relativly lose to the end of the track. When he is close enough it will repeat the Process.

here is the code :

from bge import logic as l
from random import randint

def main(co):
    trackGenerator = co.owner
    scene = l.getCurrentScene()
    auto = scene.objects["auto"]
    if trackGenerator["trackLenght"] < auto["distanz"] + 40:
        trackNr = randint(0,anzahlanTracks()-1)
        spawnNext(trackNr, trackGenerator)

def spawnNext(type, trackGenerator):
    scene = l.getCurrentScene()
    name = "TrackPart_" + str(type)
    nextTrackPart = scene.objectsInactive[name]
    next = scene.addObject(nextTrackPart, trackGenerator)
    trackGenerator.worldPosition = next.children[0].worldPosition

    print("size ",next["size"],"   trackLenght: ", trackGenerator["trackLenght"])
    trackGenerator["trackLenght"] = trackGenerator["trackLenght"] + next["size"]

def anzahlanTracks():
    scene = l.getCurrentScene()
    name = "TrackPart"
    anzahl = 0
    for o in scene.objectsInactive:
        #TrackPart_
        if o.name[0:10] == "TrackPart_":
            anzahl += 1
    return anzahl

If you need more information to understand just ask.

CarGame with infinite Road


Faces move slow / not fully connected to bone Blend File:https://drive.google.com/open?id=1B_GELU2WhmT1O25J6V82O1IMIik_EF1F

Good Morning,
I been having this problem for 2 days and I don't know how to fix it, I created a vertex group to control the eyelid of the spider with one bone, but it is not working properly, the edge is not following the bone as it should, it is moving slower, I just need to know if there's a way to make the edge be attached to the bone no matter what.

Also I don't like using shape keys because I need to do other stuff with the bone that the shape key won't work with

https://gyazo.com/b246445672450727703520960e55e3b2.gif

The problem was that the edge was also being controlled by another bone and by changing the weight of the other bones it worked


Toggle Armature Layer Visability via Drivers? FIGURED IT OUT MYSELF: (it looks like 0,1 don't need to be modified to T/F and I can just use var and 1-var to get the effect I want)

I'm in the process of creating my first semi-complex rig and I want to be able to be able to toggle the visibility of my FK and IK bones depending on whether they're driving my deformation bones.

I'm using five integers with [0,1] values to drive the bone constraint influence driving the deform bones. I want to use these same integers to show/hide my layers so I only see relevant bones.

Blender gives me an "ERROR: Invalid Python Expression" message when I put 'True' if var == 0 else 'False' in the scripted expression box in the Drivers Properties side-bar. How should I format this? Or is it not possible?

(Blender Ver 2.75a)

Blender evaluates 1 and 0 as True and False without any extra coding needed. I was overthinking it.


Blender and external files not working, giving error in numpy I keep running into an issue with Blender, and files I create outside of blender that I then import into my blender file as a library. This seems like an issue with numpy, although i'm not 100 percent certain on this.

As of right now, I am using Blender v 2.79 (which uses python 3.5) and on my machine (mac sierra) the default is python 3.6. Numpy version is 1.15. Something that might be valuable to know is I tried uninstalling numpy and reinstalling the newest version into the blender files rather than the version that came with it. That seemed to do nothing for this error

Whenever I run any file that imports any library that uses numpy (which I have found is used in just about every library) I get various issues.

Right now I am getting this error

which looks like the same issue faced here

https://github.com/numpy/numpy/issues/9047

Traceback (most recent call last):
  File "/Applications/Blender/blender.app/Contents/Resources/2.79/python/lib/python3.5/site-packages/numpy/core/__init__.py", line 16, in <module>
    from . import multiarray
ImportError: cannot import name 'multiarray'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/Samuel/Documents/CGS/cgs-oop/oop-blender-demo.blend/model.py.006", line 10, in <module>
  File "/Applications/Blender/blender.app/Contents/Resources/2.79/python/lib/python3.5/site-packages/numpy/__init__.py", line 142, in <module>
    from . import add_newdocs
  File "/Applications/Blender/blender.app/Contents/Resources/2.79/python/lib/python3.5/site-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/Applications/Blender/blender.app/Contents/Resources/2.79/python/lib/python3.5/site-packages/numpy/lib/__init__.py", line 8, in <module>
    from .type_check import *
  File "/Applications/Blender/blender.app/Contents/Resources/2.79/python/lib/python3.5/site-packages/numpy/lib/type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "/Applications/Blender/blender.app/Contents/Resources/2.79/python/lib/python3.5/site-packages/numpy/core/__init__.py", line 26, in <module>
    raise ImportError(msg)
ImportError:
Importing the multiarray numpy extension module failed.  Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control).  Otherwise reinstall numpy.

Original error was: cannot import name 'multiarray'

Any ideas on how to debug this or how I can hone down the issue would be greatly appreciated.

EDIT:

I have gotten around this issue in the past by calling the other programs with Popen(), obviously this is not ideal for run time, reusability and modularity. For whatever reason if I use Popen() I do not run into this issue.

You can use Synaptic Package Installer to download individual numpy files which fulfill the dependency Blender requires.
Specifically, I downloaded the file python3-numpy 'Fast Array facility to the Python 3 language' from Synaptic.


How do you render an object that's behind a shadow catcher? I have a model, a hdri, a cube surrounding the model for a flat colour background, and a shadow catcher. But the shadow catcher doesn't show the cube behind it, and just shows the hdri through it.

go into render settings>film>transparent


What is the technical difference between an Ngon and a bunch of Triangles? I read somewhere that Ngons were nothing more than triangles masked as an Ngon.
Some testing reveals this is not true, at least to some extent.

Here are two sub-surfed cylinders, one with an Ngon, the other with a Triangle Fan.

The things that look like 6 sided Ngons in the Triangle Fan example are really quads, and the cap on top is really a lot of tris:

As you can see, they are definitely different, but what is the difference technically?

Subsurf does not treat tri, quad and ngon differently:

In each case the result follows exactly the same pattern:

Every edge is subdivided into exactly two edges.
Every face is subdivided into n faces where n = original number of vertices. Every new face is a quad.
A new vertex is created at the centre of the face. Every new face shares this vertex.

The difference in topology of the two results you showed can be more easily seen if we use simple subsurf (which does not smooth) and then apply the modifiers and look at the wireframes:

The result from subdividing the triangle fan has the extra edges (selected.) These extra edges are the result of subdividing the radial edges which connect the central vertex to the outside edges.

This does not demonstrate any fundamental difference between tris and ngons, because we can produce the same result using only triangles:

On the left is a triangle fan composed of three triangles. On the right our equivalent "ngon" is simply a normal triangle. The result of subdivision is different and follows the same pattern we saw before with the cylinders. The same results would be seen with a triangle fan composed of four triangles and a quad.

In general it's much better to think of tris and quads as special cases of the ngon than to consider an ngon a "bunch of triangles" like a triangle fan or triangle strip.


How do I create a material that is only visible under one specific light? I would like to know how to create a material that is invisible unless it is exposed to one specific light source, like invisible ink.

As sambler pointed out in his comment, Rich Sedman's answer to how to vary a material's response to shadow rays, depending on the light to which they are cast, is very complete. This suggestion  takes the same basic approach, but instead of using drivers to feed the location of a lamp into a node tree, looks ahead down a shadow ray using OSL, to figure out which lamp is casting the shadow.

The setup for this example has cubes which are going to receive shadows, and shadow-casting circular planes just above them. The spotlight we're interested in has a plane just behind it, and parented to it, as a target for the forward-probing ray. Everything in the scene has the default Pass Index of 0, except the target plane, which has an index of 20.

(The target plane is there, because I couldn't manage to hit the spotlight with the forward ray.. perhaps someone can explain why?)

There's a little OSL script which casts a ray forward from a shading point continuing in the same direction as it arrived, and returns the index of the next object encountered.

#include "stdosl.h"
shader NextObj(
  output float nextObjIdx  = 0.0
)
{
  if (trace(P,-I,"mindist",0.0001)){
    getmessage("trace", "object:index", nextObjIdx);
  }
}

It's used in this tree: If a ray is a shadow ray and the next object encountered has a Pass Index greater than 15, the multiply returns 1, else 0.

The material is applied to the circles, which are blue-transparent to any light associated with index greater than 15, but fully transparent to all other lights.

this is the sort of result:

For lots of reasons I think the geometric approach is better than this one, but maybe someone can improve it? Or come up with a way of manipulating surfaces more directly?


How to move keyframes using Python? Is there a way to move a keyframe using Python (change the frame at which the keyframe is set)?

The keyframe already exists. I need to access it and move it, with the script.

This is not hard:

bpy.data.actions[aname].fcurves[i].keyframe_points[j].co[0] = fr1

The tricky part is picking the right fcurve[i] and keyframe_points[j] if there are more than one.  You'll have to check fcurve[i].data_path and (if it's a vector data_path like location or rotation*) fcurve[i].array_index to make sure you're altering the right fcurve.


How do you generally deal with topology? Especially around the eyes, mouth and hands

Something like this for the head:

And this for the hands:


Smooth brush causing bumps in sculpt I’ve been working with this issue. Seems to be coming up on more part of the sculpt. I’m not sure why. When using the smooth brush I get all these bumps coming up. See the video below:

I have recalculated normals, I’ve used options from sculpting add ons. Specifically the speed sculpt optimization tool, the make manifold option under the 3d print add on.It’s happening on both sides so the Symmetrize option does not work. The flatten brush gets rid of it, but it causes other issues. Anyone suggestions?

So it looks like disabling the axis lock got rid of the odd bumps happening on the smooth brush. I can't yet tell you why but I disabled it and the behavior went away.


How to make better looking lights/lightbulbs Just throwing an emission shader just yields a completely solid light, which i don't want. Throwing a glass-like shader on a bulb made around a light (via emission) basically just shows the light and the glass would be nearly invisible.

Not like this:

Something like this:

(The brighter bulb, on the right)

Try to look, whre does the lightbulb really emit light and model this part, and make the outer part really out of glass. Try to do verything like it looks in a real lightbulb and then tweak your values until youre happy. Except they are in a far distance, then you might just use an light source in form of  bulb in purpose of shorter render times.


How to fix shading issue on a flat face? Here's a simple shape with two bevel modifiers and smooth shading turned on, but the shading on the flat surface is distorted and wrong. I've tried recalculating normals with CTRL N. How can I fix this problem?

I found a solution to this particular problem of mine. After applying the bevel modifiers i inset the faces which where previously giving me issues. This made it near impossible to see when rendered but probably not perfect.


Group splines by height using animation nodes I have a list of splines coming from an object, I want to group them by their height.
An example would be:
a list of splines:

0 spline 1 with height  0.25
1 spline 2 with height  0.35
2 spline 3 with height  0.45
3 spline 4 with height  0.25
4 spline 5 with height  0.35
5 spline 6 with height  0.65

The result I need is a list of lists:

0 [spline 1 with height  0.25, spline 4 with height  0.25]
1 [spline 2 with height  0.35, spline 5 with height  0.35]
2 [spline 3 with height  0.45]
3 [spline 6 with height  0.65]

Is there a way to do so using nodes or an expression is needed?

Finally a script did the job.
splines = ["S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "S10"]
heights = [3, 7, 3, 15, 15, 7,]
uniques_heights = list({ h for h in heights})
print(sorted(uniques_heights))
splines_per_heights = []
for h in sorted(uniques_heights):
    spline_h = []
    for i in range(len(heights)):
        if heights[i] == h:
            spline_h.append(splines[i])
    splines_per_heights.append(spline_h)
print(splines_per_heights)

The script basically takes two lists, one filled with splines and one with the heights for each spline. First creates a dictionary representing each unique height. Then identifies all splines sharing same height and appends them into a list resulting in a list of splines for each height, and lastly it creates a final list including all the lists per height.
Here the result once inside the nodetree.


How do I improve bevel shading without adding more geometry? I have added an edge bevel weight on my mesh, So I wouldn't have to add more geometry and keep the mesh as clean as possible. Once I add a MatCap material on it, the corners are visible of some unclean mesh which is visible. If I add loop cuts it will clean up the topology, but it would also distort the object. So I'd like to know how to eliminate the unclean corners without adding more geometry to the mesh.

There are three things that could improve the corners and shading.

Change Outer Miter Type of bevel
Check Harden Normals in Bevel Modifier
Enable Autosmooth in Mesh tab


How to remove fluid source mid animation I'm very new to blender, following this tutorial I made an identical animation but I'd like to have a few frames where no more fluid is added but all that had already been poured will keep being simulated.

Select your inflow object.

In physics properties hit I while hovering with the mouse over the "Use Flow" checkbox.

Move one frame forward in your timeline.

Uncheck the "Use Flow" checkbox

Repeat step 2

Done.


After using "Import Images as Planes", texture doesn't show up After importing an image as a plane, with the corresponding addon, I switch the view shading mode to texture but the object is just white. If I change the view to render I see the image. How can I work in texture mode and see the image?

In the N panel under shading, select Textured Solid. This allows each object to display its texture in object mode. This is not the same as setting the view port rendered.


Blender Python: How to activate the Auto Refresh in a imported sequence on Image Editor? I'm developing a way to import DICOM slices on Blender. All works well, but I'm with dificults to activate the Auto Refresh after import the sequence:

I really read a lot of examples and the documentation, but the data is different of other commands. I cannot acess it:

import bpy
import os

def ImportaSeqTomoDef(self, context):

    layout = self.layout
    scn = context.scene
    obj = context.object

    IMGDir = str(bpy.types.Scene.IMGPathSeq[1]['default'])

    ListaArquivos = sorted(os.listdir(IMGDir))

    listaIMG=[]

    for Arquivo in ListaArquivos:
        listaIMG.append( {"name":Arquivo, "name":Arquivo} )

    print(listaIMG)

    bpy.ops.image.open(directory=IMGDir, files=listaIMG, relative_path=True, show_multiview=False)
    bpy.data.images[str(ListaArquivos[0])].source = 'SEQUENCE'

#    bpy.data.screens["Default"]..use_auto_refresh = True

class ImportaSeqTomo(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.importa_img_tomo"
    bl_label = "Teste"

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

Thanks for the attention!

Digging for classes and properties.

If you right click and view source on checkbox you see,

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

    sima = context.space_data
    iuser = sima.image_user

    layout.template_image(sima, "image", iuser, multiview=True)

which gives a clue that it belongs to the image editor space sima and there is a class  ImageUser instance sima.image_user...

Ok off to py console, making sure an image editor is open in same screen, in case below its in area 1

>>> for i, a in enumerate(C.screen.areas):
...     i, a.type
...
(0, 'INFO')
(1, 'IMAGE_EDITOR')
(2, 'CONSOLE')
(3, 'VIEW_3D')
(4, 'TEXT_EDITOR')

>>> sp = C.screen.areas[1].spaces.active
>>> sp.image_user.use_auto_refresh
False

Hence in your operator, as long as it is invoked from the image editor you can set with

space = context.space_data
space.image_user.use_auto_refresh = True

This is an example of

SpaceImageEditor.image_user

See the reference section of manual https://docs.blender.org/api/2.79/bpy.types.ImageUser.html?highlight=use_auto_refresh#bpy.types.ImageUser.use_auto_refresh for other possible references.

BackgroundImage.image_user
EnvironmentMapTexture.image_user
Image.filepath_from_user
ImageTexture.image_user
Object.image_user
ShaderNodeTexEnvironment.image_user
ShaderNodeTexImage.image_user
TextureNodeImage.image_user
UILayout.template_image
UILayout.template_image_layers
VoxelDataTexture.image_user


Watch Frames of Animation Already Rendered While Still Rendering If halfway through rendering all frames of an animation with Cycles, is it possible to watch a video of the frames that have already been rendered?
Thanks

Thanks for the helpful comments.

For anyone that finds this in the future with the same question, if you just cancel the render with escape it will save the avi up to frame you were up to, so you can just note down what frame that was and start rendering again from after that and then combine the avi.


Color management: Monitor calibration issues + Compositor issues (+ ideas for improvement) I am aware that there are other posts about color management, but bear with me. I have a wide-gamut monitor and HW calibrators (Spyder 3 and i1 Pro) with custom profiles, meaning without the SW knowing it is displaying in wide-gamut and even a bit adjusted colors, the displayed colors are waaay off. I already made a monitor profile and put it into the Blender color management pipeline ( How can Blender be augmented to display color critical and accurate results? ). I now have concatenated Filmic + sRGB-> monitor profile. However working with colors just improved from unusable to barely acceptable, there are still a lot of issues, that I need help to solve.
Main issues currently bothering me:

The final render is displayed in my monitor's color profile, which is nice. However, after saving the file is in this profile as well, i.e. I have to process it in another step... something like open Photoshop, assign my monitor profile, convert to sRGB and save. I guess the current workaround is to set "Filmic-only" profile before saving and then switch it back again, which is an annyonce and error-prone (could be done by script though). Is there another way that I missed?

Compositor: If I load a file, which should be on top of the render (model on a green-screen, logo, anything, ...) it is processed by the same color transformation as the render: Filmic + sRGB -> monitor's profile. The latter part is ok I guess, but Filmic should not be applied here. How to turn it off for images imported in compositor?

Ideally it seems to me that there should be separate monitor profile that is applied on top of everyting (render image, color pickers, compositor) without other parts of Blender even knowing that.
Also I now wish there was a color conversion node in Compositor that would allow conversion from/to various color spaces. Just an option to load a manually-prepared LUT would be enough. This would solve a lot of issues for me.
Am I getting something wrong and there is an straightforward way to fix theses issues? Thanks!

Main issues currently bothering me:

There are quite a few issues, and thankfully more folks are learning them.

The final render is displayed in my monitor's color profile, which is nice. However, after saving the file is in this profile as well, i.e. I have to process it in another step...

This is because Blender has a horrific file encoding chain. The default is to bake in the Display / View / Look transform, which means that if you have any colourimetric twists in your displays, that will end up encoded into the code values.
Hack Solution:

For canonical sRGB encoding to nonlinear display referred outputs, prior to saving to a display referred output such as JPEG or TIFF, change the Display / View / Look combination to the same combination with sRGB chosen as display.
For EXR encoding, the native buffer will be encoded, so the results skip all management altogether.

Proper Solution:

Pressure the development to implement an encoding panel. This would be something akin to a selection box with a stack of elements similar to a texture, that would have sane defaults and allow the audience to encode a specific chain of transforms into their output imagery.

Compositor: If I load a file, which should be on top of the render (model on a green-screen, logo, anything, ...) it is processed by the same color transformation as the render: Filmic + sRGB -> monitor's profile. The latter part is ok I guess, but Filmic should not be applied here. How to turn it off for images imported in compositor?

When you load an image, you must describe the encoding to Blender. Sadly, this is hidden away behind a bunch of obfuscating menu elements. One method is to open up the Image Viewer, open the sidebar properties panel on the right, and select the encoding that describes the encoding of the footage or shot.
This will cascade into another problem because, again, generic imagery does not work in a radiometric-like compositing environment. There's nothing short of hackery and quackery that can be done to try and get a generic sRGB image into the radiometric domain, as he data is not there.
Hack Solution:

Set the sRGB image to be Filmic encoded. This will artificially "stretch" the range to become a no-operation after the output chain.

More Proper Solution:

Use properly encoded imagery! Camera raws, log encodings with documented transforms, etc. can all be coaxed to do things more correctly. For all work generated from within Blender, never ever use any other file encoding other than EXR. Start with EXR. Stay there. Never leave. Only after completely finished, deliver to the delivery encodings.

It's a deeper subject than this, but hopefully there's enough here to get you moving in the right direction.


Boolean modifier with complex object (hole punching) makes blender go on its knees I am creating a hole pattern in this flattened cube using an object to subtract it with (boolean modifier) consisting of a lot of cylinders.

The cylinders uses two array modifiers, one that iterates in one width and one in another, creating a matrix of objects.

153 seconds after I added the boolean modifier, I got control back.
(When I have been running a similar scene on a macbook pro, blender crashed).

Applying the modifier takes the same amount of time. When the cylinders has been removed, the scene seems to be workable. Manipulating it will not cause wait time.

Is there an alternative method of achieving a hole pattern like this?

People have talked about faking the pattern with a shader.
Is that the way to do it? How would I do that?

I think you need to try out a specific add-on for your task. I have seen one called Box Cutter and its demoed on youtube, it probably has better code to handle the boolean operations than standard blender, lets hope.


Bevel Vertices on Plane I'm just trying to make a simple door.
I started with a plane, scaled it. Then I wanted to bevel the 2 top corners, but I can only bevel in proportion to the plane. That means the bevel is not 45°. Is there any workaround for that? <3

To get expected result, you need to first select the object, then CtrlA > Scale, to apply the scale. (I'm not sure why, and it seems not being documented, but it works this way)


How to set rotation of an object on a specific axis? I am currently using the following to rotate my object:

eul = mathutils.Euler((math.radians(10), math.radians(10), math.radians(10)), "XYZ")
own.localOrientation = eul.to_matrix()

This seems to work just fine; it rotates the object by 10 on x, y, and z. However, I am only looking to set rotation on y and z. I have tried eul.order and other various ideas, but none have come upon success. How can I rotate an object with a specific set of axis?

Do you mean 10° around Y and 10° around Z?

mathutils.Euler((0, math.radians(10), math.radians(10)), "XYZ")

or do you mean 10° around X?

mathutils.Euler((math.radians(10), 0, 0), "XYZ")


How to add horizontal cylinder at end of cube I have this cube which has the basic shape of an escalator but I want to add a horizontal cylinder at the end of the cube like an escalator how can I do that

You could select the last top and bottom edges and create bevels, then extrude inwards and merge.


Yellow selection outline not appearing in solid 3D view I am sure I broke something: The yellow selection outline appears in the 3D viewport in material and texture modes, but not in solid any more:

... and this is because...?

The behavior persists if I append the object into a new Blender file.

The behavior persists if I replace the existing material with a single diffuse shader node; thanks to @Leander for suggestion, however.

The behavior does not occut if the object's material is assigned to default cube. @Leander

Blender doesn't show the outline for transparent objects in the viewport.

Remove transparency in your material to make the outline visible again.


Can I lock the viewport to always jump to what is currently selected? I have a set up with a number of orthogonal viewports, and I would like them to jump to whatever is currently selected. I know I can press 'View lock to selected', which moves the viewport along when I move an object, but if I start to work on another object, I have to issue the command again for every viewport.

So far the closest I've come is to go to the properties of each viewport N and under View, select 'Lock to cursor' (which locks the view to the 3d cursor) then ShiftS and 'Cursor to selected', which is reasonably easy. But can I just make it lock to (and zoom to extents of) whichever object I have selected?

Note that there is a keyboard shortcut for locking the view to the selected object, ShiftNumpad . (Not sure if you knew already or not, but It might make your workflow faster)

Python:

You could use the python api to create a simple script to lock the view to the selected object for all 3D views:

import bpy

for area in bpy.context.screen.areas:
    if area.type == 'VIEW_3D':
        for space in area.spaces:
            if space.type == 'VIEW_3D':
                if space.region_3d.view_perspective == 'ORTHO': # if view is orthographic, do the following:
                    space.lock_object = bpy.context.object # Set the view lock object to the active object

Here is the above code made into an addon based on the addon tutorial in the Blender API reference:

bl_info = {
    "name": "Lock all views to active",
    "category": "3D View",
    "description": "Sets all the 3D views to be locked to the active object",
    "location": "Ctrl+Shift+Space",
}

import bpy

class ViewLockAll(bpy.types.Operator):
    """Lock all views to selected objects"""
    bl_idname = "view3d.lock_all_to_active"
    bl_label = "Lock all views to active object"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):

        for area in bpy.context.screen.areas:
            if area.type == 'VIEW_3D':
                for space in area.spaces:
                    if space.type == 'VIEW_3D':
                        if space.region_3d.view_perspective == 'ORTHO':
                            space.lock_object = bpy.context.object

        return {'FINISHED'}

addon_keymaps = []

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

    # handle the keymap
    wm = bpy.context.window_manager
    km = wm.keyconfigs.addon.keymaps.new(name='Object Mode', space_type='EMPTY')
    kmi = km.keymap_items.new(ViewLockAll.bl_idname, 'SPACE', 'PRESS', ctrl=True, shift=True)
    addon_keymaps.append((km, kmi))

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

    # handle the keymap
    for km, kmi in addon_keymaps:
        km.keymap_items.remove(kmi)
    addon_keymaps.clear()

if __name__ == "__main__":
    register()

You can install this like any other addon. It will create an operator called ViewLockAll and a keyboard shortcut CtrlShiftSpace for calling it.