White lines between objects in render I am kind of new to the whole animation aspect and in fact still in high school.
 I am trying to make a Minecraft character rig and I want to make some 3D hair. I did not know how to quite make it so I kind of when just did something pretty simple. It isn't the greatest in any means, but any how the point is every time I render it white lines show up between objects or joined objects. I don't know how to fix this and would like help (a picture is posted below of the problem).

It's caused by lack of bleeding in UV set, which will show poor result when sampling.

To solve this, just leave some room for the border pixel with the same color (that's what bleeding used for).


Can I use GPU to bake fluid simulation? I have 8 Tesla K80 GPUs that I want to use! I do not want to use cpu it would be slower right?

At current point the answer is - no.

You can use GPU for:

Cycles rendering
Subsurf
Compositing


First fluid liquid animation- feedback! I have made my  first animation using fluids! It is a splash of water hitting a rotating caracter. The scene is quite simple, but there are issues I cannot fix. For instance the shape of the water just before it is hitting the caracter very 'shield' like. And after  the water has run off the caracter, the waterdrops on the plane is flickering  in the animation. I really would  appreceiate some feedback  on all possible improvements:) The animation is 20 sec, rendered on 256.
For animation, see link: https://vimeo.com/537149024
file:

Recommendations:

Start a complete new Blender file with just the default cube.

go to quick effects -> quick liquid

start the animation -> looks great, right?

so you should try to keep the settings there in your file and tweak only one effect at a time to see what happens if you do that. -> or watch tons of tutorial videos

Now to your file:
to improve it you can do...

decrease resolution to 64 or 128 when you are still changing things, if you render you increase this to 256 if you like, else it takes too long and your computer will slow down

for me it looks like you "wildly" changed some settings just to get better results - without knowing what happens. e.g.

of course you can change these values (which i personally never did and i made nice looking water simulations without it), but if you increase it that hight, i just don't wanna know how long your render time for your simulation was...1 week? ;)
So put it down to the default values 4 and 1 ...and wow...your computer and your simulation is fast again

put on all border collisions -> else you got these weird results where just "some" water is on the floor which does not look realistic.

check liquid and don't change default settings

you got this: https://youtu.be/QAH1ljMFkEA

turn on spray, foam, bubbles

most important: Do the render in cycles. Only in cycles water looks really good and realistic. But change to cycles after you did all your settings because this also slows down your computer massively.

quick result of cycles render (bad resolution):

bit higher resolution (128)

Best recommendation: Don't use mantaflow.
Use Flip Fluids. I know -  you have to pay for it.
I know it is "kind of" advertising although i do not get anything from them and i don't have any relationship to the FlipFluid - addon creators.
It is just an amazing add-on which makes fluids look a lot better and - even more important - it is so much faster!!!
Here is a result of your simulation which i just did with a few clicks with FlipFluids....deleted your background, used a HDRI and ...you won't believe it ...rendered in EEVEE:
result:

aaaaand.....NOOOOOW....Cycles:

Remember: These are JUST the default settings of FlipFluids. I just assigned default materials (which are part of FlipFluids) and checked 2 checkmarks (so you can see foam + spray)


Zoom locked to 3D cursor So here's the problem: Regardless of whether I have "zoom to mouse position" checked or not, for my view is zooming to the 3D cursor. I am running 2.77, and I feel it is important to mention that this is only occurring in the 3D views. I cannot figure this out for the life of me so someone please help, it is getting annoying, especially when zooming way in.

Sounds like you may have accidentally enabled Lock to cursor in 3D view > Properties region > View:


VSE: How to Speed up the Preview of Image Strips? The Issue

Is there any way to speed up the preview of image strips in the video sequence editor? Unfortunately, the preview in the VSE is very choppy and indicates that it runs at only a few frames per second. Even worse, the preview starts to lag compared to the music strip (although “AV-sync” is turned on) which makes it very difficult to cut on beats.

What I’ve tried

At first I thought the slowness would be due to transform effects on the images; I have many images on which I’m applying a Ken Burns Effect. But it’s also slow on plain image strips (with no effects on them).

I have already tried to add proxies to the image strips but that didn’t have any noticeable effect.

Reducing the image resolution might be an option, however, I need the additional pixels for the mentioned zoom effects.

Some more Background

My images are not unusually big, I’d say: just 1–3 MB each with about 7–10 megapixels.

I’ve tested this on both Blender 2.74 and on the latest 2.75a version – each running on Ubuntu 14.04 64bit with 8 GB of RAM. I have an older ATI video card, so I can’t use video acceleration.

You could increase the memory cache (1GB by default) to your available physical memory and increase the number of prefetch frames.

This is done in Menu: File / User Preferences in the System-tab. Ctrl-Alt-U


Is is possible for the Scene's in the VSE to automatically track their source objects? I have am using the VSE only in blender as a video editor.  I have created three scenes:

Scene 1 - images (Add >> Image) in the VSE that render to mp4 movie
Scene 2 - movie clips (Add >> Movie) in the VSE that render to mp4 movie
Scene 3 - Scenes 1 and 2 (Add >> Scene) in the VSE that render to a mp4 movie

This seems to be working ok, but if I change Scene 1 or Scene 2 for example by adding more frames, it appears that I have to manually change Scene 3 to pick this up.

Is is possible for the Scene's in the VSE to automatically track their source objects?

This appears to be impossible.

We can force an update by setting the start and end frame values for Trim Hard. If the scene was not cut in the VSE and the values are 0 for both fields, we simply cycle through all the strips and set the fields to 0 for all scene type strips.

import bpy

def syncSceneLength(*pArgs):
    print("Syncing length of scene strips.")
    for s in bpy.context.scene.sequence_editor.sequences:
        if(s.type == "SCENE"):
            s.animation_offset_start = s.animation_offset_end = 0
def attachAsHandler():
    for f in bpy.app.handlers.frame_change_pre:
        bpy.app.handlers.frame_change_pre.remove(f)
    bpy.app.handlers.frame_change_pre.append(syncSceneLength)

syncSceneLength()
#attachAsHandler()

Paste the code in Blenders text editor. Pressing Run Script will update the scene strips in the VSE of the active scene.

I have added an option to attach the Update to the Frame Change Event. By removing the # character from the last line and running the script, the update function will be attached to the frame change event. On every frame change, the scene will sync the lengths of all scene strips. This may slow down Blender with an extremely large number of scene strips.


Is there an add-on for a knife-like tool for curves? For instance, splitting a Bezier circle into cyclic halves cutting across its diameter is quite tedious when directly manipulating segments, control points and handles. Things get complicated when editing more complex curves with all the (un)hiding and moving of overlapping points to (re)connect and (re)align everything properly to keep the original shape intact.

No there is not. Unfortunately there are very few cad-like tools for bezier curves in blender. Curves are kind of a second-class citizen, and although they have improved considerably in recent years, they are still not regarded as primary modeling tool.

The closest I know you could currently get is probably a relatively recent addon "Extend / Trim Curve CAD Tools for Bezier Splines" which works relatively well for most situations:
http://blenderartists.org/forum/showthread.php?387520-Addon-Extend-Trim-Curve-CAD-Tools-for-Bezier-Splines


How to get the dimension of multiple objects? I have downloaded car models where each model consists of multiple meshes including some modifiers. I would like to determine the dimension of the set of all these objects (window, bumper, trunk, ...). I know I can get the dimension of a single object in the transform panel. And I know I can apply all modifiers, join the objects and get the dimension of the resulting object and then undo the joining etc. But isn't there a more straight forward way?

In the end I would like to position the car model such that the center of it's bounding box coincides with the origin. Doing a plain Object > Transform > Geometry to Origin and then selecting "Bounds Center" usually destroys the model unless I apply modifiers and join the objects first.

As Chebhou already pointed out in his comment, what people usually do when transforming a disjoint model is have an EMPTY at the centre or wherever you want it (you can use it as a pivot), and then PARENT all objects with the empty. Then you would simply transform the empty and everything should stay in the same position relative to it.
You can have a hierarchy of empties if you want to be able to move some objects separately (say wheels, doors, etc.)
I am not sure how getting the dimensions of all objects would help you solve your problem, but if that is what you want you will have to write a simple script (something like that):
for each object in selected
  print object.getDimensions()

But then you will have to go through them manually unless you don't attach it to some other script.


Object data panel menu, not available The panel that appears as shown in the image below, cannot be re-opened.
It only appears, on the left-hand-side of the screen when I create a new object.
How do I get it back as shown in the image?

https://wiki.blender.org/index.php/Dev:2.5/Source/Development/Proposals/Editable_Object_Parameters

My "Data" tab, looks different.

Judging from the (quite old) link you posted, that is just a proposal. No such feature has been implemented as far as I know.

As of version 2.77, once the original object has been created and has gone through some kind of transformation, there is no way to get the original creation parameters back.

Maybe it will get implemented in the future, maybe it will never happen...


How to add detail to a mesh without subdividing all of it Kind of a simple/noobish question here.

I have this simple model:

Now I want to add details to it. Like, rounding up the ring, add something to the hilt...
But I'd like to keep the model "light" on the polygon count. But if I add a loop cup on the hilt (for example) lenght-wise, it'll obviously subdivide the blade too (which doesn't really need it) and the ring.
So what would the best way to add detail whitout adding unnecessary quads where they're not needed be?

I though about dividing the mesh in three pieces like this:

But this way, after adding what I want, I'd end up with a different number of vertices between the (for example) the ring and the blade, this way I wouldnt be able to reconnect it the right way, I'd end up having to add traingles to the mesh or leaving seams.

I don't think that simply connecting the pieces in object view so that there is no space between them would be the right course of action, right?
Or maybe it is? Because I remember this human model I downloaded, and it basically had the face, the hair and the body as separate meshes, that were basically put together in object view without leaving visible seams but not connected into a single big mesh.

I recommend to have separate mesh objects. My rule: "What is separated object in reality should be separated object in 3D too", because it simplifies many things: modeling, texture mapping, material setup, animation, etc.


How to make particles appear where I draw weight using dynamic paint? How to make particles appear where I draw weight using dynamic paint? I know how to do it with hair - https://www.youtube.com/watch?v=746GAAZbG_U but this method does not work with particles (or I am doing something wrong).

There is an interesting workaround, found by Blenderartists member suboptimal - http://blenderartists.org/forum/show...inally-working

First you need to uv unwrap your Canvas and add two dynamic paint
canvassesses (Whats the plural?)
The first one is gonna generate the Time Map, the other one the
Density Map. Make sure you turn of dry and slow because otherwise the
particles later will behave a bit weird.
The dissolve time for the Time map canvas must be as long as the
particles are going to be emitted.

Then setup your brush with a white color. You have to use Mesh Volume
or Particle system with 0 smooth raduis as the paint source (nothing
with a blurred edge)

Then bake your dyn paint image sequences, the frame range must be the
same as your particle emission frame range.
Take the last frame of each one of your sequences and fill its
transparent background with black.
Add a particle system, it should have a pretty big amount of
particles. Next step is using them as particle textures, go to the
texture tab select particle textures ( I think they aren't in cycles
yet, only in BI). Load the Time Map, mapping to uv etc. and check
Time in the influence tab.
Repeat it for the density Map but use Density influence this time.


Efficient way to get selected vertices via python (without iterating over the entire mesh) What's the best/fastest way to construct a list of selected vertices for a mesh object in python?

I want to avoid iterating over every vertex in the mesh if possible, since that seems like a really inefficient/wasteful way to go about it.

There's a nice attribute called select_history in the bmesh module that gives you a list of vertices in the order that they were selected...but of course, it will only give you verts that have been selected manually (not by box or circle select) after the bmesh was initialized.

I've been searching through the edit mesh api for an attribute that will give me an updated list of selected verts (so that I don't have to iterate over the whole mesh). Does such a thing not exist?

You have to iterate over the entire mesh since blender isn't storing this data in a separate list internally.

You can use the following line of code to get a list if selected vertices from a bpy.types.Mesh object ('mesh' in the code):

selected_verts = list(filter(lambda v: v.select, mesh.vertices))

or with list comprehension:

selected_verts = [v for v in mesh.vertices if v.select]

However, in most cases, brute force looping through all the vertices of the mesh should be fine.


Rigging issues and animation issues I created this objected and here is how I rigged it. I have already parented the object with the rigs with automatic weights.

Here are the issues I am getting. First of all as you can see if I were to move the foot, for some reason the legs stretch out weirdly. Second of all, how come the leg bones are not moving with the foot bone?

May I know what the issues are and how do I solve these issues please?

The reason for the leg stretching is because the foot bone is controlling most of the leg mesh. The leg bones are only slightly affecting the mesh, and thus you get stretching when both bones are 'pulling' on the same mesh. You will need to properly weight paint your mesh (or manually assign them in edit mode) and then work on your skeleton. I would suggest looking up tutorials for setting up IK constraints as that should do what you want.


Aligning empty object with Bezier curve point using Python I'm using a Bezier curve to generate a shape. Once I'm happy with the shape I process it with a script I wrote. Among other things it adds 2 empty objects: one at the start of the curve, one at the end of the curve.

I can't figure out how to rotate the empty objects so that they point in the same way the curve is pointing. Or how to align the empty's Y axis to the end point normal?

I access the end point data via curve.data.splines.active.bezier_points[pointId] but I couldn't find a way to get rotation or normal information.

Orientation that I'm trying to copy from curve end point to empty axis orientation.

End result I'm trying to achieve: the empty's Y axis is aligned with the direction of the last curve point.

Use the follow path constraint

When it comes to putting an object at either end of a curve, the follow path constraint, with fixed location, follow curve. An offset factor of 0 is one end, 1 the other.

import bpy

context = bpy.context
bez = context.object

bpy.ops.object.empty_add(location=(0, 0, 0))
mt1 = context.object
fpc = mt1.constraints.new(type='FOLLOW_PATH')
fpc.target = bez
fpc.use_curve_follow = True
fpc.use_fixed_location = True
# dupe it
bpy.ops.object.duplicate()
mt2 = context.object
mt2.constraints[0].offset_factor = 1


How to hide an object in the viewport but still be selectable? Thought the answer for this was straightforward, but that approach isn't working.

For the Doorway.013 object you can see that 'Show in Viewports' has been unchecked, but 'Selectable' is still checked. However I can't actually select the object and move it, etc. Is there another toggle somewhere to make it work?

Found the answer here:

https://blender.community/c/rightclickselect/ltdbbc/

This appears to replace the 'transparency' option in previous versions of blender.


Render Samples missing? i have a issue with the render samples

when i set my GPU as render device i get 500 samples as i want. but when i change to CPU device, i dont see the number of samples

what do i miss?

CPU Device: no samples shown

Samples i set:

Device:

Blender has been made so that he displays the samples progression only when he renders one tile at the same time.
(Or if you check the "progressive refine" option as you force blender to render the entire picture sample after sample instead of waiting for each tile to get all its samples done before rendering the next tile).

This happens only when you set the tile size bigger than the final resolution, or use GPU  rendering (GPU has only one rendering unit) or constrain your CPU to use only one rendering unit (CPU nowadays have at least 2, most have 4, 6 or 8, high-end CPU can have 32, 64, ... And render farms can have hundreds of them).

If there are multiple tiles to render, Blender shows only the tiles progression. I guess it's mainly because they want to keep the rendering stats as simple as possible.

Considering that some computers can have several dozens of rendering units at the same time, I guess it's better to have just a tile progression instead of 64 different render samples progression.
I also guess it could be nice to give an optional "advanced stats" mode, letting the user choose what he wants to see, but that's another topic.


Linux x86: can't Open Blender my x is configured to execute blender (v.2.76b) but when I try to run the executable from terminal, It gives back this error:

$ ./blender
connect failed: No such file or directory
Read new prefs: /home/user/.config/blender/2.76/config/userpref.blend
Xlib:  extension "GLX" missing on display ":0.0".
intern/ghost/intern/GHOST_WindowX11.cpp:177: X11 glXQueryVersion() failed, verify working openGL system!
initial window could not find the GLX extension
Writing: /tmp/blender.crash.txt
Segmentation fault (core dump created)

what I don't read is why it prints:

  connect failed: no such file or directory

My O.S. is ubuntustudio 14.04 LTS, no blender pre-installation.

Blender downloaded from the official website.

problem of booting blender has been solved re-installing NVIDIA drivers.


How do you change the colors of 2 objects with nodes? when I press an object and go to the nodes and get finished with the color and I want to go to an other object and change the color from the nodes but it won't work it only stays for the first object?

Since the OP said that this is what helped, then the answer to this question is to use material nodes, not the compositor nodes for the purpose of changing material properties with context sensitivity being per selection in the 3D viewport.

Albeit, the compositor nodes can definitely be used to change visual properties of everything (with a high degree of power and with a great myriad of approaches), in this case I believe that my prior statement is the answer for this question.

For whatever the reason may be (newness to the software, lack of experience in node editing, etc...), I imagine it to be true that this particular question would be very hard for a user at a beginning level of understanding to articulate.  This being said, I hope that this helps somebody else who may be searching for the same/similar solution in the future gain good information; even though it may be hard for them to describe.


How do i write a script that modify every material in the scene by creating and connecting a "UV map" node to every texture file node? I have a few hundred materials in the scene. Every material have 7 texture files.

I need to create and connect a "UV map" node with default UV map chosen (there is only one UV map on the objects) to every single texture file there is. Doing it by hand is very time consuming.

Is there a way to automate this process, by python script perhaps?

Here is picture, it may help you to understand what i want to achieve.

This script will iterate over all the materials in your scene, and add a texture mapping node to each material that has an image texture node. The mapping node's UV output applies the default UV map of the object using the material, so it should achieve the same result as using a UV texture node (that uses the default UV map). The script will then connect the mapping node's UV output to the image texture's input and that should do the trick.

Disclaimer: This script assumes you are using Cycles and will probably only work in with Cycles materials.

import bpy

M = bpy.data.materials

for m in M:
    t = m.node_tree

    # Get all image texture nodes in each material's node tree's
    img_textures = [ n for n in t.nodes if n.type == 'TEX_IMAGE' ]
    if len( img_textures ): # If material has at least 1 image texture
        imgTex = img_textures[0] # Get the first (and probably only) image texture node in list

        # Create a new Mapping node (its UV output uses the default UV map so it's simpler than the UV map node)
        texMap = t.nodes.new('ShaderNodeTexCoord')

        # Link the texture mapping node to the image texture node
        t.links.new( imgTex.inputs[0], texMap.outputs['UV'] )


Weight paint not showing on some objects I can select the head mesh and weight paint without problems. Other objects the rig controls like shirt are not showing in weight paint - they are staying grey. In weight paint face masking they are showing as Green. In vertex select they can be seen and changed. In weight paint vertex mask no vertex is visible and only the Green surface is shown.

I can manipulate and modify the weights of the other objects but only the Head is shown in weight paint mode. I hope this is something silly I am overlooking because it has left me very confused. Any ideas?

Under the Subsurf modifier I had "Use OpenSubdiv" ticked & unclicking the box was enough to return the functionality. It sounds simple now but was by no means obvious!

Hope this saves someone else from going crazy...


Manual Unwrap Warping Seams I'm trying to unwrap this sign I am modeling but the unwrap is coming out distorted. I've tried converting to triangles as suggested in this answer... but same result. I've tried making the hole using the Knife tool previously but it made the unwrap even more horrible.

http://www.pasteall.org/blend/33505

For this block-shaped object just simply use cube uv projection and re-arange the pieces  like you want in uv editor.

For more complex shapes unwrap the planar part with project from view so they don't distort, pin them in uv editor with P and then unwrap the whole piece with just Unwrap (with setuped seams).

For multiple planar parts in your mesh do this multiple times to create uv islands each with undistorted pinned piece inside and then use welding (W+W) to join the islands. For best results smooth the welds with UV Sculpt's (Q) Relax brush.


Extrusion axis incorrect in Blender 2.90 I'm not sure if this is a bug or the side effect of some new feature, but I've been having an issue with extrusions along a specific axis in blender 2.90. I am wondering if anyone else has experienced this and can either a) explain it, or b) verify it is a reportable bug.
In the images below, I have attempted to extrude a section by using the extrude hotkey E + axis letter. In the first photo, I extruded along the Y axis (E+Y), and in the second, I extruded along the Z axis (E+Z). As you can see, both "axis letters" produced movement in the same direction. I know it may be hard to tell from the screenshots, but the vertical extrusion line is green (Y) in one photo, and blue (Z) in the other, yet the extruded face moves along the same (Z) axis regardless. Selecting a face with a normal that points towards the desired direction and extruding by simply pressing E works as intended.
Y-Axis extrusion (supposedly)

Z-Axis extrusion

Would someone be able to either confirm or refute that this is currently a universal phenomenon with Blender 2.90?
Steps to reproduce:

Start with default cube (or added cube - makes no difference)

Select one of the "side faces"

Attempt to extrude the face along the Y axis by using E+Y

Notice that the extrusion follows the Z axis instead of the Y (If I am correct that this is a universal problem with 2.90)

If this is not a bug, but rather an intended feature, could someone please explain the logic of why this is happening? Any feedback would be very helpful.

From what I understand, since 2.9, the default axis for extrusion is still the face normal, but if you press X or Y once, the extrusion will follow the face X or Y direction, not the global direction anymore.
Now if you press XX or YY, the followed direction will be along the global orientation. But you don't need to press Z twice to make the extrusion follow the global: As no Z was necessary in the first place to follow the face orientation, you just need to press Z once to make it follow the global.
Here is how, when you extrude then press Y or Z, the face may follow the same direction, because the face Y direction and the Z global orientation may be aligned.
Yes, a bit confusing, but the previous method was not perfect either, one X or Y meant global axis, but for example, as the default extrusion occurred along the face Z direction, to extrude along the Z global axis you needed to press Z three times.


face is flickering in blender and invisible in unity and i cant add a texture I have an invisible face in unity, and a black/flickering face in blender, I've looked it up,

but cant seem to find answer, so I have no idea how to fix it.  Here is a link to my blend file

I have tried things like normalizing, it did fix parts of my problem, but this is the only one left and I can't seem to add a texture to the cube for some reason, as it just appears white.

You have some overlapping faces. They will never render correctly. And in unity it's even worse because it uses only single-sided faces. Follow the link given by  Duarte Farrajota Ramos, there are some tips how to get rid of them.
Also try to revise your mesh to avoid face overlapping. In your case it's simpler to model it once again. Just use loopcuts (Ctrl+R) to create points, where the new faces will begin, instead of overlapping them.

look this video.


combining objects in logic editor In the game engine, I've created a door handle and door, and am trying to combine the physics in the logic editor so that when I left click on the door handle, it spins, meanwhile also swinging open the door at 120 degrees. To summarize my problem, when I select two objects, I can't get both under logic editor, and they end up having the same qualities. How do I separate them?

What your final result may look like:

You can link the logic-bricks of different objects if you select both of these objects in the 3d-view.

In my example, I use a mouse-over and a left-button sensor to detect a click on the handle. That goes to an and-controller, which is connected to both the armature of the door and the armature of the handle. Both armatures then play their animation.


How to wrap text on top of an object I have a pencil here I modeled and I want to wrap some text around it. I have been trying this method: What's the simplest way to wrap extruded text around a cylinder? but this is not working for my pencil. I am trying to wrap the text on top of the object. here is what i am trying to achieve:

As you can see, the letters H and B are wrapped around the pencil. Here is my scene:

Please help. is there any other way to do this?

In my opinion you don't need to bend a mesh to do this. Just use a texture and use the geometry of your object. Avoid overlapping geometry and prevent z-fighting. If you use the texture as a bump map or as a displacement map you can control the indentation or relief (and will help you keep a low vetex count).


Legs twisting in rig The legs on the mesh I'm trying to animate are twisted, no matter what pole angle I select.Here is the file : http://www.filedropper.com/potato

The rest position of the knees have a slight backwards bend to them, but they should instead have a forward bend.  Once the bend was added, zero-out the rolls on each bone to 0 degrees, and in the IK constraint settings, change the Pole Target angle on leg bottom.R to 0 degrees, and the leg bottom.L to 90 degrees.


How Can I Close This Gap Around This Deformed Cylinder? Nothing I can think of with my experience has worked so far. I need a method to bend the object around the cylinder so that it sticks out slightly (same distance as the very bottom of the dip) all the way around without it losing its shape.
Manually changing it is inaccurate and hard to replicate on the othersides. If anyone has a method that squeezes them together (and the extrusion / spike that comes out the right) that would be awesome.

Some Suggestions .. Not a tutorial
Torus with extrusions, vertex groups, shrink wrap.

Here is a low quality facsimile. I will write some simple things and not enough. Loop tools was shown in another link above.
The yellow cylinder.  The turquoise torus which is modified in edit mode.  So clearly the torus allowed fitting to the cylinder more easily. It has enough vertices for a nice fit. [Extrude] was used to produce the giant extrusion to the right. Then [Loop Cut] was performed to add the grid of vertices so that area can be formed.
The red mark on the right show 5 edges meeting like a box corner meeting a floor, produced by extrusion. A ring was selected and a [vertex group] was created.  [Shrink Wrap Modifier] was added with the Cylinder as a target and is depicted above. If you see terms in [] you do not know, you may want to see a tutorial. So now the vertices will conform to the cylinder when they are moved up (grabbed).  [Proportional Edit] is used. One vertex was selected and raised on the z axis. Nearby vertices followed in a smooth edit.
To the left some other vertices were chosen and put in a vertex group.  A shrink wrap modifier was added, with the box as target. This was added to show straightening an area. Clearly you can straighten an area in many different ways.  Note the red mark on the left where 4 edges meet.  To show a modelling [error], an extrusion was not used.  You can see the diamond shape stretched which you might not want.  No loop cuts were used, just to identify areas.  You may only need on shrink wrap.
I left big gaps in the visual .. you can reduce the gaps.  Please inspect and correct and optimize this work.  You can do better work than this.
Finally one area scaled.  Vertex group created on side and a Shrink Wrap.  You can press [apply] for modifiers.


Can't get UV mapping on "back side" of plane mesh I've created an object originally from a plane. I ended up solidifying it so it has two sides. I have an issue however when I UV unwrap it, only one side is represented. So in unreal engine 4, one side is lit, the other is just black though.

How do I unwrap it so it shows the front side, and the backside?

Thanks.

The ‘unwrap’ operation works on the base mesh. If you have any modifiers (such as Solidify) these need to be ‘Applied’ before you unwrap your mesh - otherwise the geometry generated by those modifiers won’t be included. By applying the modifier the base mesh will be updated to include the new geometry and the ‘unwrap’ will include the additional faces.


Creating a gravity lens effect? I was thinking of doing some scifi models, and it would involve a kind of gravity lens effect, where light is distorted and warped by a powerful gravity field.

I have attempted to create a gravitational lensing effect with a refraction shader, but the results don't look very good.  Refraction BSDF is a surface shader, and as a consequence the edges of the shader effect are plainly visible as shown in the render below, whereas I would want the edges to fade out more.

I've tried a few things to accomplish the desired effect, such as using a mix shader node with either transparency or a refraction shader with an IOR of 1.  I've tried several variations to accomplish the desired effect, but they all either do nothing or just ruin the shader entirely.

I'm using the cycles engine, and any solutions would be appreciated, especially if they don't require render layers or compositing.

I believe that you would want to mix a Refraction shader with a Transparent one, using the Layer Weight's Facing as the factor; This gives you something similar to fresnel, which, however doesn't depend on surface normals, and can be blended.


Part of Object Goes Through Plane When Falls I am using Blender 2.81a and just doing a Domino Animation. But faced a little problem. When the last domino falls, it kinda goes inside the plane and the comes out. But I don't want that go through. Any solution?

As with all simulations, make sure you use realistic properties for your objects - ie, each domino should be a realisic 'real world' dimension with suitable real-world mass and centre of gravity. If need be, set your Scene to suitable units so that your objects do not have to be unreasonably scaled (eg, if working with very large objects set the scale to Kilometres, if very tiny, maybe set to Milimetres or Micrometres, etc.).
Ensure you have 'Applied Scale' to all of your objects. This helps with producing a consistent simulation.
In Scene Rigid Body World parameters consider increasing the Steps Per Second and/or Solver Iterations above the default values (defaults are 60 and 10) - eg, 6000 and 600 would not be unreasonable and shouldn't slow down the simulation too much. Avoid excessively high values as this can result in rounding discrepancies which can affect the stability and accuracy of the simulation. If in doubt, change one value by a factor of, say, 10 and re-try the simulation to see if it makes it better or worse before deciding on whether to change it back and/or change something else. Note that there are no 'universal best values' for these - it depends on your situation and simulation requirements.
If you're still getting intersections, consider enabling the Collision Margin in the Physics properties Rigid Body settings. This defaults of 'off' and can be enabled and a margin set. The default (0.04m - 4 cm) will likely be way too large (depending on your scene units and what it is you're simulating) - try the lowest permitted value first (0.001m (1mm)) and try higher values if still getting collision issues.
Using these changes I managed to get a clean simulation without clipping. If you still cannot get the expected results, please edit your question to add further details.


Beginner: Wrong workflow? 8x8x8 LED Cube to complex Total beginner here - I hope you guys can help me :)

So I want to make a 3D representation of my LED Cube. It consists of 512 LEDs (8x8x8). I think it should be pretty simple... So I started reading a Tutorial and now I just created the 3D LED cube. But the performance seems pretty bad - thats why I think I am using Blender wrong :)

My Workflow:
I deleted the standard scene and then added a UV Sphere
I reduced the segments and Rings to 12 and reduced the size to 0.25.
I hoped that this would make the performance better (I want to export it to a .obj file and use it in a C# Program).
Then I duplicated the singe LED and created a row, changed the position of each new LED. When the row was done I created an 8x8 LED side by duplicating the row 7 times. Then I duplicated the first side 7 times to get my 8x8x8 cube.

My object looks like this:

I see that the verts/edges/faces count is pretty high - I assume this is bad for my performance. Is there a better workflow for my little project that results in a better performance? My exported Object is 4.91 MB big - seems a little big for a simple cube or is this ok?

Sorry but I would really appreciate any help I can get :)

I honestly see no problem with this, there is not much you can do except
for making the mesh at a lower resolution,
you do not mention what engine you are using this in, but one option might be to look in the engine you use, then see if it supports instancing of meshes which then can have separate materials assigned (I assume you are assigning materials to the different LED's during runtime.).

The you only export one LED, then create it all by code (instance,move the instance, assign materials and so on). That way the mesh memory is kept low, because it will only load 1 LED mesh.

But again - this scene is not big at all compared to other game content that typically exists in a scene.


How do I copy the vertices, edges, and faces of one mesh into another? I have a handful of mesh objects and I'd like to display one of them per frame. Thus far, I've been switching out entire mesh objects like this:

myObject.data = meshes[frame_number]

Unfortunately, the object's shader is tied to each mesh, so when I change the mesh, the shader disappears.

I know that I can use myMesh.from_pydata() to edit the actual mesh, but I'm not quite sure how to get the vertices, edges, and faces out of a mesh and copy them into another. I tried this, but got an error:

#gives an error:
myMesh.from_pydata(otherMesh.vertices, otherMesh.edges, otherMesh.polygons)

Any ideas on how I can swap meshes but retain the object's shader?

One way is, as you are doing, Swapping the mesh

ob1.data = mesh # assign mesh to ob1
ob1.data = mesh.copy() # assign a copy of the mesh to ob1

how to use another meshes verts, edges and polygons to pass to the mesh.from_pydata method.

cone = context.object # some other object
mymesh = bpy.data.meshes.new("mymesh")
vertices = [v.co for v in cone.data.vertices]
faces = [[v for v in p.vertices] for p in cone.data.polygons]
# let faces take care of edges
mymesh.from_pydata(vertices=vertices, edges=[], faces=faces)
# could make edges
edges = [[v for v in e.vertices] for e in cone.data.edges]

Using from_pydata isn't going to fix the shader issue.


Use Anamation Node with texture to drive rotation I was wanting to create an array of circles based on the vertices of a subdivide plane that could then have the rotation of say X be driven by a 2d B@W bitmap animation. Is there a way to achieve this if the plane had a uv map with the bitmap animation as a texture.
I did see an example that used weight paint to drive position but that is not quite what I need. I'm very new to AN so apologies and thanks in advance for any help.

Welcome to Stackexchange! The first thing to do is to sample the values of the pixels of the image. This can be done using this small snippet of python code:

bpy.data.images[imageName].pixels[:][0::4]

We are basically making a copy of the pixel values and only getting every fourth pixel, the pixels list include the values of all four channels of the image since your image is BW, we only get one of the values, hence the [0::4].

Next, we get the width and height of the image, we get the width using:

bpy.data.images[imageName].size[0]

And the height using:

bpy.data.images[imageName].size[1]

We then use the Distribute Matrices node to create the grid with the same width and height of the image. We use the Axis Rotation Matrix node to create a rotation matrix from the pixel values and multiply both matrices list. Depending on which version you are using, you will either use the Replicate Mesh node to replicate a unity triangle along the matrices or use the new Transform Mesh node to replicate the unity triangle as I will be using here. We then output that mesh and set the container object as the parent of your circle object and activate Face Duplication for the container object.

The pixels of an image have a grid structure, thus assigning the values of pixels to objects distributed on a grid is easy. If the objects are not distributed on a grid, then one would have to guess what the value of each object is, this is called an Interpolation. There are multiple types of interpolations, the simplest of which is called the Nearest Neighbour Interpolation, and this is what we will be using here. Basically the bounding plane of the structure is aligned with the image, then for each object, we find the closest pixel to it and assign its value to it.

Let the structure be defined by the vertices of a mesh. We imagine the image as a plane whose lower left corner is at $(0,0)$ and upper right corner at $(\text{Image Width},\text{Image Height})$. The first thing to do is normalize the vertices locations, that is, transform the vertices locations into the range $[0,1]$ in both axis:

See the documentation for more info. Then we multiply the x location by the width of the image and the y location by the height of the image, that way, the bounding plane of the structure aligns with the image we imagined. By flooring the x and y locations we get an integer representing the index of the column and row of the closest pixel to each vertex:

Linear Indexing can be used to compute the index of a pixel in a flat list knowing its column and row index, the equation is $\text{index} = iw+j$ where $i$ and $j$ are the indices of the rows and columns respectively and $w$ is the width of the image, by implementing that:

Now, all we have to do is sample the pixel values at those indices as follows:

Finally, compute the matrices and use them just as we did before:

Blend file for study:


Delete/unlink bones in rigify I'm trying to delete some bones that are included by default when you rig a model with rigify. The bones themslves are not used for anything and I'd like to delete them as they are causing problems when I try to export the animated model to fbx. Any help is appreciated, thank you!

Attached Blend file

Okay, so the issue is with your deform bones, particularly the facial deform bones. If you wanted to use them, you could re-align them, but since you do not, it is easier to just go ahead and delete them and then re-parent the armature. Here's how:

STEP 1

Select your armature and then under the Armature Properties panel, switch to Rest Position. Secondly, switch your active Armature Layer to be only the 3rd from the bottom most left. (See picture below, circled in red).

STEP 2

With the armature selected and only the deform layer active, tab into edit mode. Now you can delete all the bones you do not need. For this example, I selected the three head bones you probably will want (see selected bones in the photo below). Then I hid them (hotkey H) so that I would not accidentally delete those ones that I need. After they were hidden, I selected all the face deform bones and deleted them.

NOTE: The selected bones in this photo are the ones you should NOT delete. You can delete the rest of the face bones for your purpose (the ones around the eyes, ears, and jaw)

STEP 3

After having deleted the bones you do not want. Go back to object mode and select your mesh. Then go to the Object Data property tab and under Vertex Groups, click the arrow button and select "Delete All Groups". Don't worry, one more step and we're almost done!

STEP 4

Now, with your mesh selected in object mode, select your armature so that it is the active object (orange outline instead of yellow). Then parent (control + P) the mesh to the armature using Automatic Weights. Go back to Pose Position and check out your animation. It might need some tweaking, but you will not have any facial issues when exporting down the road.

EDIT: I deleted some posts because I did not realize the format was to keep editing my first answer. I apologize, but wanted to post a comment that got deleted in the clean-up about the OP's FPX export settings.
@Alberto Elorduy: By the way, my main fbx export settings are Selected only, Armature, Mesh, and empty. In armature only export deform bones, don't apply modifiers, and smoothing to faces. In animation I choose baked animation, key all bones and force start/end.


Inset in Blender not coming out even I seem to have screwed up something that allows you to inset evenly, I think I have tried every combination of settings in inset and pivot center and even is far from even.  I tried uninstalling and re installing blender 2.71 and get the same result.  The image attached is a simple default cube that I tried to inset evenly.  I have also attached the blend file link  help??

Blend file here.

Your insets are distorted based on object scale. To fix this, you will need to apply your object's scale(Ctrl-A>Scale).


How does Blender calculate path normals? In Blender, paths may be used to animate objects or to sweep surfaces. Both of these actions require that every point on the path has a normal. If this requirement were not fulfilled, the orientation of the object following the path would be ambiguous and the operations could not be completed.

Curves only have tangents and do not have intrinsic normals. Since normals are required, there must be an algorithm in Blender to generate them somehow. I only know of the following ways to generate normals for a curve:

Use the normal of the plane formed by the tangent and a fixed global axis. Fails when the curve runs parallel to this axis.
Use the normal of the average plane of the curve. Fails when the curve is a straight line.
Use a rail curve. This requires the user to define a second independent curve which never meets the first, and the normal is the line between the two curves.

Blender's path object does not fail when parallel to a global axis or when it's control vertices form a straight line. It also does not require a rail curve. How does it work?

I found this: http://wiki.blender.org/index.php/Dev:Ref/Requests/Incremental_curve_normals_proposal which present another possible solution, but it seems incomplete and may not reflect what Blender actually does at all. It does explain the problem in detail though.

In the Shape panel for Curve objects there are 3 twisting options:

Z-Up: uses Z axis to determine the twist.
Tangent: uses Frenet / Darboux frame tangent.
Minimum: step along the curve points, for each point computing a normal that is orthogonal to the curve direction and rotated as little as possible compared to the normal of the previous point.

Minimum is the default, and it behaves well in most cases. The downside is that it's non-local, any control point can influence the twist in the rest of the curve, but that's unavoidable, there is no other way to get minimal twisting.

The implementation in the Blender source code is in make_bevel_list_3D_minimum_twist.


Switching from eevee to cycles messes up lighting completely This is how my render preview looks in eevee:

However, if I switch to cycles, this happens:

I've been following a tutorial to get to this point, and I'm really a beginner, any of you have an idea of why this is happening? Am I forced to render it with eevee?

I just need to uncheck "ambient occlusion".
It was making everything way too bright, even with low values.


Why im not getting thickness with shrinkwrap modifier I have a subdivided mesh. I have added shrinkwrap modifier to it. Before adding shrinkwrap modifier its has a solid thickness but after adding the shrinkwrap modifier the thickness disappear. I have tried all options but its working. When it is shrink its perfect but no extrude or thickness to the mesh. Any suggestion or help.

The shrinkwrap modifier will flatten your mesh (as explained to you on your previous question) since it will move all vertices onto the target mesh.

As an alternative you can try using a lattice to deform the mesh and have the lattice use the swhinkwrap. As the lattice is deformed your mesh will undertake a similar deformation.

Create a lattice with only one subdivision on the vertical axis. This is achieved via the Lattice properties in the properties panel (only visible when the lattice is selected - see the right-hand side of the image below). The Lattice properties define the number of U, V, W dimensions of the lattice. The dimensions default to 2, 2, 2 - effectively forming a cube. By increasing the dimensions in two directions (to give us some subdivisions) and setting the other dimension to 1 will form a plane. When the plane is deformed this can be used to affect your mesh - but since the lattice plane has no 'height' it also will not affect the 'height' of your mesh. Position the lattice along the baseline of the mesh you want to deform.

Add a lattice deform modifier to the design that you want to bend, and select the lattice object as the one to deform the mesh.

Now simply add a Shrinkwrap modifier to the lattice with the Target set to the surface you want to deform to. The lattice should now be deformed to the surface and your mesh will be deformed similarly. Adjust the Shrinkwrap distance and settings to fine-tune.


how do I create a sprite with hard (aliased) edges, but still be antialiased inside? This question came up in the irc channel yesterday.  The fellow had a model he was turning into a sprite for a 2D game.  He wanted it to be aliased inside, but have a hard (aliased) edge.

Getting transparent images is easy.  Go to the Render Properties panel and set your Alpha to Transparent and make sure the file format is saving RGBA channels.

Getting a hard (aliased) edge is easy.  Turn off Anti-Aliasing in the Render Properties.  This gives your model hard edges, even in the internal pixels.

Now if turn on anti-aliasing you get soft edges, both inside, and outside.

How do you get hard edges on the outside, but soft edges inside?

This answer was composed based on help from several individuals in the #blender IRC channel (you know who you are).

The first step is to use blender's Compositor.  Start out by clicking the Use Nodes checkbox.  That should create the two-node pipeline that does nothing exciting.  Route the alpha channel through Math node (available through the Converter submenu of the shift-A menu) configured to do a Greater Than operation against 0.001.  This means that an alpha of 0 will remain zero, but an alpha of 0.001 or higher (and 0.001 < 1/255)  will be converted to 1.

The problem that remains is that the edges that otherwise would have been translucent are now kind of dark.  That's because the Image channel coming out of the Render Layers node is premultiplied.  To correct for this, add an Alpha Convert node (available under the Converter submenu) and route the image channel through that on its way to the Composite node.

Now your edges are hard and they match the thresholded alpha channel.


Border around reflection pass I am trying to set up a mix of live footage and 3d rendering, but I keep failing in obtaining a realistic reflection layer.

My workflow is to have a ground plane that is totally white, a white sky, and five the plane some degree of reflection (here in the screenshot it is 1.0, but it's only to show the problem, I know it's not realistic this way).
Then i multiply the reflection layer with the result of movieclip+foreground, but I keep having this annoying border around the plane.

How can I get rid of it?

AFAIK, a Dilate/Erode node is commonly used to fix such issue.

Becides, it seems that you set the robot Layer as Mask layer for the reflect RenderLayer, which caused part of the plane was masked as transparent. Try untoggle that in RenderLayer setting, or add a new RenderLayer to get an expected alpha.


Handler-script updates in viewport but not in render I'm completely stuck :-/

I've made a handler-script, that takes with every new frame a new line from the
text-editor and puts that line into the text-object in 3d-space.
It works absolutely fine - but when I want to render it, is it not working any more.

Why is that?? Other handler scripts from me are working fine...

import bpy

'''Text-Objekt muss angewählt sein und im Object-Mode
##################################################'''

def Text_Line_by_Line(Scene):

    FrameNumber = bpy.context.scene.frame_current - 1 #aktuelle Frame-Nummer minus 1 weil python 1 = 0

    TextFile = bpy.data.texts['Text'] #<------------Text-Name eingeben
    TextLine = TextFile.lines[FrameNumber].body  # Nimmt die Text-Line als String

    bpy.ops.object.editmode_toggle()
    # Vorherigen Text löschen
    bpy.ops.font.select_all() #selektieren
    bpy.ops.font.delete()   #löschen

    bpy.ops.font.text_insert(text=TextLine)  #Fügt den Text ein

    bpy.ops.object.editmode_toggle()

bpy.app.handlers.frame_change_pre.clear()
bpy.app.handlers.frame_change_pre.append(Text_Line_by_Line)

Don't use operators in handlers

For the most part don't use operators in handlers. When rendering for example, the context needed will not be there.  I imagine edit mode toggle means nada to the renderer.
Use API methods and the passed argument scene
In example below, displays a line of bpy.data.texts["Text"] as the body of text object scene.objects["Text"]
import bpy

# pass arguments to build a handler
def text_body_handler(obname, textname):
    # the handler method
    def text_body(scene):
        text = bpy.data.texts.get(textname)
        text_ob = scene.objects.get(obname)
        if not text and text_ob:
            print("Error: check names")
            return
        f = scene.frame_current
        lines = len(text.lines)
        if text_ob and f <= lines:
            text_ob.data.body = text.lines[f-1].body

    return text_body

bpy.app.handlers.frame_change_post.clear()
bpy.app.handlers.frame_change_post.append(text_body_handler("Text", "Text"))

Textblock bpy.data.texts["Text"]
I had written him a letter
which I had,
for want of better Knowledge,
sent to where I met him
down the Lachlan, years ago,
He was shearing when I knew him,
so I sent the letter to him,
Just ‘on spec’, addressed as follows,
‘Clancy, of The Overflow’.


3D view "orthographic" isn't really orthographic? When I switched to orthographic view with Numpad 5, the view in my 3D view doesn't look to be properly orthographic at all. Is there any way to fix this?

The view is orthographic. I think what you're seeing is an optical illusion. The angles you have described as 'low' and 'high' are in fact the same, as shown below where I have rotated the the image and inserted horizontal parallel lines:

The lines marked in red are also of equal length and parallel.


Low poly/ cartoonish tropical island creation So I'm making a game in unity sort of like Sea of Thieves, which has a cartoonish feel to it.

What I've done so far, is create the shape of the island in blender, and then save the model to a folder in my unity project. Then I used the Object2Terrain script to make a terrain with the shape of the island.

What I'm currently stuck on, is making the rocks and cliffs around the island. I want to create something similar to the rocks/ cliffs in this:

https://www.cgtrader.com/3d-models/exterior/landmark/tropical-environment-pack

But every tutorial I find when searching "low poly cliff in blender" turns out to be bad.

Does anyone know what I could do in this situation? maybe they have a tutorial I haven't found they could leave a link for?

What i recommend is to use a tool called Bisect.
To do this,  subdivide a cube and apply Subdivision Surface to get a sphere-ish shape.
Then to reach the Bisect tool, switch to edit mode, press space, search and there you go.
Press F6 and check "Fill". You can basicly slice pieces from your mesh. Then continue bicecting, till you get the shape you want. Scale the object to perfect your work.
I hope this little tip helped you, if you have any other questions or problems, let me know.

Source: https://youtu.be/G2CdYFgrP84


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

To store the mode which the active object is in you can use:

current_mode = bpy.context.object.mode

to store the mode in the variable current_mode. In order to set that mode again use the following line:

bpy.ops.object.mode_set ( mode = current_mode )


Expanding Circle on Sphere Surface I'm trying to animate an expanding circle as a texture on a sphere.  I've tried using a wave texture, but that doesn't seem to be working.  It has to start as a point (very small circle), then expand out a little way like a rock dropped in a pond (with no waves) and then disappear.  The coordinates it starts on as well as its maximum size has to be random and repeat.  It has to fade out at maximum size.

I'm stumped.  Can this be done with anything but a custom written procedural?

Thanks!

Use a gradient node and modify its color with a ramp node.

Then drive its location with an empty.


Can I scale 1 image in animation to bigger and still maintain the visibility of the image in front of it? I have 3 images, 1 in front of the other and want to make them move and scale in animation:

image is background - just space with a few galaxies,
image is the earth,
image is a little alien who is waving his hand.

I want the background to be still, i want the earth to scale bigger towards the "camera" and i want the alien to scale smaller and smaller towards the earth.

My question is: can I make the earth appear bigger and bigger in animation to the point where it will cover the entire screen WITHOUT it "moving" in front of the alien image? I want the alien to be constantly visible waving his hand in front of the expanding earth, so it looks as he is falling towards it, but am afraid the image of the earth will at some point move in front of him!

Is it even possible for an image to move in front of the front one if it`s scaled "to much"?
(I'm very inexperienced and realize this question might be very funny...)

So, basically: You can achieve the wanted effect on different ways. You could try it via changing location and so on, but the easiest way is: just scale the images and set key animations.

Go to the start frame, select the image of the e.g. earth. Press "S" and scale it to the wanted start size. Now press "I" and choose "Scaling" from the pop-out-menu. Now go to the next frame you want to define (for example the last one) and repeat the steps. Same you can do for the alien. Just make sure to have a small space between alien and earth for avoiding weird overlaps.

For more information about animating, google a bit ;)

I am not sure whether I understood your last question right (^^) but as scaling just affects the size and not position, overlapping another image by "overscaling" shouldn't happen. Provided there are really only images (that have no depth). Object can overlay each other if the depth becoms too big, logically.

Hope it helped :)
Greets, Jaspa


no tiles while rendering, picure builds from bottom since i edited file on an old laptop for once I have used an old laptop to edit a blender project and now when I hit render on my regular machine I do not see the familiar tiles.
the picture is build up from the bottom and is then sharpened with each sample run.
Tiles are set to Hilbert Spiral, but other choices do not change how it renders
The original unedited file still renders in tiles.

I have no idea if this has any consequence as to image quality or render time.
But if so, how do I change back to rendering in tiles.
Or do I have to redo the original file on my regular machine to fix this?

It sounds like the "progressive refine" option is checked.

Progressive refine will render the entire image one sample at a time similar to how the viewport does it. This does not affect the quality of the output, but it does affect the speed as progressive refine is slower than rendering all samples per tile.


Transform Edges to Profile precisely? i want to do this inside of blender

i already tried with transforming the edge to curve then having a rectangular extrude profile to this curve but the result is not flat , and not precise at all

is there any way i can do that inside of blender? any add-ons that can do that? if possible in a non destructive way

i also tried in extrude then solidify, this is the result i got, its already on "even thickness" im on 2.8. clearly its not precise at all, thoses angles are not straight

thanks

I'm in 279, but this works for me?

Mesh, faces only removed, converted to 2D Curve
In Curve > Geometry panel 'Extrude' set to desired amount (no Bevel)
Solidify modifier assigned, 0 Offset, Even Thickness, Fill Rim.

.. seems to render OK, but yes, if you convert back to mesh, the topology is horrible.


how to scale imported .obj and .fbx I received a 3D character model as a .obj file and as a .fbx file (with animation).

The imported .fbx file is about 1.5 Blender Units high, as expected.

The .obj file (containing the unrigged character) is 150 Blender Units high. When I try to scale the model down, I end up having issues that make it either impossible to navigate or hard to find. Even if I keep my eye on the model and zoom in, the viewport always seem to be looking past the model's shoulder, making rigging it at that size troublesome.

I don't have screenshots at the moment, so I'm hoping someone has run into a similar problem based on my description. Is there a way to import a .obj file so that it's small enough to fit on the usual Blender grid? Or after I scale it down, is there a way to reset the viewport to navigate around this object?

*If screenshots are needed, I'll see what I can do to upload. For now, here are the two files mentioned. Maybe these will help in recreating the problem I'm experiencing.

.obj file - https://ufile.io/wi90r
.fbx idle file - https://ufile.io/mif1u

Select the different parts of the character you want to scale down.
Snap the 3D Cursor to the center of the grid by Pressing ShiftS and selecting Cursor to Center.
We will use the cursor as a pivot point. Use the 3D cursor as the pivot by pressing ..
Scale everything down by pressing S and entering the scale 0.01, press enter to confirm. The objects should be scaled towards the center (0, 0, 0).
Apply rotation and scale by pressing CtrlA and choosing Rotation and Scale.
Align the 3D view pivot point to the current selection by pressing NumpadPeriod.


How Can I Remove CGI from Part of my Video? I added a lightsaber (with motion tracking) in Blender with a video of myself. I remove the lightsaber from my pocket near the end of the video. How can I make the lightsaber invisible until then? Thanks.

There are two methods that this could be done with:

Movie Clip Editor and Compositor:

Add your footage to the Movie Clip Editor
Mask the area around the Light Sabre at the time you don't want it
Use the Mask node in the compositor to remove the light sabre

Section on animating masks from the Blender Documentation (Link). There are also many good tutorials on this.

  Animating
  Masks can be driven over the time so that they follow some object from the footage, e.g. a running actor. This animation can be done in several ways:

  Control points can be parented to motion tracks. This way is the main way to interact with masks in a motion tracking workflow.
  Keyframe animation of control points using a shape keying system. This can be useful when there are not enough good feature points to track in the footage, or the mask is not based on footage.
  For animation more complex mask shapes, it is also possible to do more high level animation:

  Splines and mask layers can be animated as a whole, instead of individual control points.

  Masks can be parented to motion tracking data. Works for both individual mask point parenting and for overall spline. To select motion track to be parented to use Ctrl-RMB. To parent selected mask points to active motion track use Ctrl-P.
  Mask animation timing can be edited from the Dope Sheet. Here there is a mask mode where mask keyframes can be selected and edited.

Animating the appearence of the 3D Model:

Open the Outliner and locate your light sabre object
Next to its name you will see an eye and camera
Animate appearence by using the keyframe shortcut I and keyframe it to the time it should be seen or hidden. This is done by hovering over the symbol (eye or camera), to hide the object click on the icons and they will become greyed out and your object should disappear.

Make sure you animate both the eye and the camera, this is beacuse the eye only hides its appearence in the viewport but will still be visible in the render.


Remove .001 from mesh name duplicates I bake all my OCC/NRMs inside substance painter using _high _low suffix.  If I want to bake floaters, I must name said floaters with the same name as the object I want to bake them onto (E.G) MESH > Gun_handle_high FLOATER > Gun_handle_high

I cant do this inside blender.  When I try to name a mesh with a duplicate name I get .001 .002 .003 etc at the end of the mesh name.  How do I stop this from happening?

Thanks.

This is a bit like asking "how do I give two files the exact same name, and put them in the exact same folder on my computer?" Just like files, separate meshes must have unique names... otherwise, neither you nor Blender knows which mesh is which.

Firstly, lets define our terms. A "Mesh" is a collection of vertices. Meshes have to live inside an "Object." An "Object" is a container for vertices. An object can contain literally any arrangement of vertices; connected, unconnected, polygons, individual points, etc. All those vertices are considered one mesh when they are inside an object, even if they aren't connected to each other. You can think of vertices a little like letters. If vertices -> letters, then polygons -> words, text -> mesh, and object -> document. (It doesn't work perfectly because you don't name your text separately from the document it's in, but Blender does do this with meshes and objects).

Each object must have a unique name, and each mesh must have a unique name. Typically, a mesh gets its first name from the object it's created in, but it doesn't have to.

To answer your question, you have two options. You can use ctrlj to join the meshes in any selected objects into one object (Blender will put them in the "active" object, and then delete the empty ones). This takes all the separate collections of vertices and puts them in the same container. This also gives them all the same mesh name... because they are all one mesh. To continue our files analogy, this method would be like cutting the text from one document and pasting at the end of another other document, and deleting the empty document. You now only have one container, but you still have the text from both documents.

Your other option is to use some other method to give unique names. Maybe it makes sense for your meshes to be in separate objects. In that case, there's likely a descriptive way to name them that will also uniquely identify them.


Information about updating from v. 2.79 to v. 2.79b One can always be wiser.
Unfortunately, it was not possible to move the settings from v. 2.79 to v. 2.79b. As the included installer installed v. 2.79b on v. 2.79.
Fine. But all my presets disappeared so I have to get started on the gene.
It might not be an idea, in future programs, to provide a "normal" update option.
Or is there a good reason why it should be so?

Try path: %APPDATA%/Blender Foundation/Blender/ (Windows) there should be a folder called 2.79, this is shared between all 2.79 series of blender include 2.79b

This is the preference and start up and some script setting folder. You should manually backup these files before update to 2.79b if you are worry about it.

After install 2.79b, you can manually copy back your backup files(not recommend, only setting is lost or blender failed to import old preference)


How to model a television dial? I'm trying to model this dial and for some reason I'm totally stumped on how to do this without too many booleans and to make it smoother than the rest of the tv.  I've been watching tutorials, but the few I found were more how to make the a knob separately and from a side view rather than front (which is what I'm doing).

If you need the .blend I've attached it, but any simple example or tutorial suggestions would do...not trying to get anyone to do the work for me ;)

Here's the image:

And here's what I have so far with a boolean...I just have the feeling this is the wrong way to go about this:

A common way to do that is create a hole in the surface, add a circle into that space then fill in the gaps.

1 : Subdivide a plane and delete some of the inner vertices.

2: Add a circle with a vertice count the same as the number of vertices that now make up the inner edges of the plane.

3: Select both the circle and the inner edges of the plane, then using the W shortcut key open the Specials menu and choose Bridge Edge Loops.

4: Using the Extrude tool model the rest of the Dial.

5: Add bevels and or supporting edge loops, smooth….. etc  etc .

Note that if you intend to use a Subsurf modifier then aim to use a circle with less vertices than in my example below.

Check on Youtube for cutting holes in meshes. This is a good example https://www.youtube.com/watch?v=Bc52fcrHvAA


how can i make the player run in a certain path ? i already had the animation i am beginner in working with blender game engine , i already had the character and its animation , in the BGE the action is done only once i wanna know how to make it do the action as long the key pressed and also in certain path , any help ?

Usually you play a looping walking cycle (on place) and It's the parent at the same time.

The resulting animation looks like walking.


How do I create a custom node group for the compositor? I have made a script that adds a panel, it has buttons that when pressed, nodes are added to the Compositor. I would like to add another button that then adds them to a group.

I have looked around the net and into the Info on Blender and I notice the bpy.ops.node.group_make() which will take the nodes that are selected and then insert them into a group.

I am pretty sure I need this for what I want but the trouble is, I can not find a way to implement that into my script. I also tried this:

tidy_group = bpy.data.node_groups.new('NewGroup', 'CompositorNodeTree')
tidy_group.name = 'Group Name'

It creates a node group in the (ShiftA > Groups) section. However, I have no idea how to properly use it. If someone could help point me how this would work I would greatly appreciate it.

Converted this script to generate a shader group by @sambler for the Compositor. The script creates a new node group called NewGroup containing three math nodes plugged together properly:

import bpy

# create a group
test_group = bpy.data.node_groups.new('NewGroup', 'CompositorNodeTree')

# create group inputs
group_inputs = test_group.nodes.new('NodeGroupInput')
group_inputs.location = (-350,0)
test_group.inputs.new('NodeSocketFloat','in_to_greater')
test_group.inputs.new('NodeSocketFloat','in_to_less')

# create group outputs
group_outputs = test_group.nodes.new('NodeGroupOutput')
group_outputs.location = (300,0)
test_group.outputs.new('NodeSocketFloat','out_result')

# create three math nodes in a group
node_add = test_group.nodes.new('CompositorNodeMath')
node_add.operation = 'ADD'
node_add.location = (100,0)

node_greater = test_group.nodes.new('CompositorNodeMath')
node_greater.operation = 'GREATER_THAN'
node_greater.label = 'greater'
node_greater.location = (-100,100)

node_less = test_group.nodes.new('CompositorNodeMath')
node_less.operation = 'LESS_THAN'
node_less.label = 'less'
node_less.location = (-100,-100)

# link nodes together
test_group.links.new(node_add.inputs[0], node_greater.outputs[0])
test_group.links.new(node_add.inputs[1], node_less.outputs[0])

# link inputs
test_group.links.new(group_inputs.outputs['in_to_greater'], node_greater.inputs[0])
test_group.links.new(group_inputs.outputs['in_to_less'], node_less.inputs[0])

#link output
test_group.links.new(node_add.outputs[0], group_outputs.inputs['out_result'])

Wrap this up into a function and allow to pass some arguments e.g. a string for the name. Even better, make it a function and add it to an execute() method of an Operator, that way you can use the Search Menu (F3) to add your group. In addition to that, you can display the Operator as a button on any panel like in the Properties Panel N of the Compositor:

import bpy

# Create compositor group
def create_comp_group(context, operator, group_name):
    # Create a group
    test_group = bpy.data.node_groups.new(group_name, 'CompositorNodeTree')

    # Create group inputs
    group_inputs = test_group.nodes.new('NodeGroupInput')
    group_inputs.location = (-350,0)
    test_group.inputs.new('NodeSocketFloat','in_to_greater')
    test_group.inputs.new('NodeSocketFloat','in_to_less')

    # Create group outputs
    group_outputs = test_group.nodes.new('NodeGroupOutput')
    group_outputs.location = (300,0)
    test_group.outputs.new('NodeSocketFloat','out_result')

    # Create three math nodes in a group
    node_add = test_group.nodes.new('CompositorNodeMath')
    node_add.operation = 'ADD'
    node_add.location = (100,0)

    node_greater = test_group.nodes.new('CompositorNodeMath')
    node_greater.operation = 'GREATER_THAN'
    node_greater.label = 'greater'
    node_greater.location = (-100,100)

    node_less = test_group.nodes.new('CompositorNodeMath')
    node_less.operation = 'LESS_THAN'
    node_less.label = 'less'
    node_less.location = (-100,-100)

    # Link nodes together
    test_group.links.new(node_add.inputs[0], node_greater.outputs[0])
    test_group.links.new(node_add.inputs[1], node_less.outputs[0])

    # Link inputs
    test_group.links.new(group_inputs.outputs['in_to_greater'], node_greater.inputs[0])
    test_group.links.new(group_inputs.outputs['in_to_less'], node_less.inputs[0])

    # link output
    test_group.links.new(node_add.outputs[0], group_outputs.inputs['out_result'])

    # return the group
    return test_group

# Operator
class NODE_OT_compGroup(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "node.simple_operator"
    bl_label = "Add Group (Operator)"

    @classmethod
    def poll(cls, context):
        space = context.space_data
        return space.type == 'NODE_EDITOR'

    def execute(self, context):

        # Create the group
        custom_node_name = "my_node"
        my_group = create_comp_group(self, context, custom_node_name)
        comp_node = context.scene.node_tree.nodes.new('CompositorNodeGroup')
        comp_node.node_tree = bpy.data.node_groups[my_group.name]
        comp_node.location = 100,0

        return {'FINISHED'}

# Panel
class NODE_PT_customPanel(bpy.types.Panel):
    bl_idname = "NODE_PT_customPanel"
    bl_space_type = 'NODE_EDITOR'
    bl_label = "Custom Panel"
    bl_region_type = "UI"
    bl_category = "Custom Category"

    @classmethod
    def poll(self,context):
        return context.object is not None

    def draw(self, context):
        layout = self.layout
        layout.operator(NODE_OT_compGroup.bl_idname)
        layout.separator()

# Register
def register():
    bpy.utils.register_class(NODE_OT_compGroup)
    bpy.utils.register_class(NODE_PT_customPanel)

def unregister():
    bpy.utils.unregister_class(NODE_OT_compGroup)
    bpy.utils.unregister_class(NODE_PT_customPanel)

if __name__ == "__main__":
    register()

Further reading:

Controlling compositor by python - Basic example on how to create nodes
How to create a custom UI? - Operator/panel/layout stuff
API link - List of all available node types


How to extrude along curved path? Trying to recreate a miniature machine gun in Blender (2.9) - I'm just starting out, so thinking up clever solutions is hit and miss still.
I've used 'paths' to get the initial shape of the magasine and extruded those after converting to meshes, but now I need to make these sections along the sides as per the 2nd image.
I tried insetting faces on the main face, and that kind of worked (see 3rd image), but required quite a few steps of cleaning edges afterwards, and it seems to be a silly way of working.
Any ideas?

1st create a simple object and apply Scale with Ctrl+A.
Now goto the "Modifier Tab" and add "Array Modifier" and put X and Y to 0 and Z to something like 5 and don't apply it now.

2nd add a bezier curve and shape it the way you want it.

Now, select the cube object and again go to modifiers Tab and add "Curve Modifier" and select the created curve. Then you'll have something like this.

You can increase the number in "Array Modifier" and just align it with the curve.
Remember that. Array Modifier should be at the 1st place and followed by curve modifier.


Blender Materials When Using .blend file in Unity not sure if this should be here or in the Unity section of SE but here is my problem.

When importing an .blend file into Unity my material is the default grey one. When I look at what has been saved from Blender there is a material folder but they are all the grey one. I have only once been able to save a material correctly and I'm not sure how I did it, so I believe there is a way to save a .blend and export the material information as well?

Thanks in advanced for the help :)

edit: Just to add, the materials are saved in a folder called Materials in the same directory as the .blend files.

Just in case anyone else comes across this and needs an answer, I found that Unity and Blenders materials are not the same, when importing a material from Blender into Unity, Unity will try to create a material as best it can from the Blender one but it is never exactly the same, so it seems it is best to just re create them in Unity.


I want to "unmirror" a model So, I have a 3D model torso. I made only half of the body, and then used the mirror modifier to generate the other half. However, now I want to modify it asymetrically. How can I turn off the mirror modifier, and still keep the other half?

just apply the mirror modifier. Then it is a "real" mesh on both sides and you can modify it asymetrically.


Why does render resolution affect output quality? The two images below are sections of the same image rendered at different resolutions.

The blurry one to the left is rendered at 600x350 and then cropped to the section shown here. So there is no scaling or other processing of this image except cropping for the sake of clarity.
The sharp one to the right is rendered at exactly the same settings except for the higher resolution of 1200x700 then down-scaled and cropped to the same size as the first one.

I'm fairly new to blender and 3D-rendering in general so do not understand why the first one is so blurry when the scaled one sharp. Can this be fixed and in that case how? I thought that the imgages would be rendered as sharp as possible for the given resolution. But in this case that is obviously not the case.

Is there some switch or slider or property that should be adjusted to get it right? Or is this behaviour to be expected?

I'm running blender 2.80.42.

There are 2 reasons:

the down-scaling can have a sharpening effect on its own - depends on the algorithm used
the higher resolution image contains more traced samples per the same area = less noise. The less noise the less blurry image. Let's say single pixel in original size received 100 samples, the same area in double the resolution would receive 400 samples.

So the apples-to-apples comparison should be rendering the original resolution with 4x the sample count and down-scaling the higher resolution with a method that does not add any sharpening.


How can I expand a active window? How can I expand an active window? Like in maya how you click space bar to focus in on just one window. Thansk for you help

To expand the window hover your cursor over it and press Shift+Spacebar. Press it again to get back.
You may also use Ctrl+Up Arrow/Down Arrow to do it.

To expand the window even more press Alt+F11.


Recording soft body deformations during simulation in bge I have either simple or complex soft body object, collision plane and run simulation in bge(recording is turned on). What i get is recorded animation containing transformations only. Mesh deforms during simulation- squeeze and stretch, has hull around, but does not record deformations. What would be solution?(tried latest release and older as well, probably have bad setup but can`t figure it out)

You can write a BGE script that reads the vertex positions from the mesh.

Store this positions in a way that you can match them with the vertices of the according Blender object.

When you run the BGE embedded you can access Blender (bpy) while your game session is running. Be aware changes will apply AFTER the game session ended.

Therefore I suggest:

read the BGE mesh vertex
write to Blender object data (e.g. create shape keys)

I do not have a ready to use script nor do I want to write one here. This answer means is more an idea than a complete solution.


.dae and fbx export both don't export animation? Ok Im trying to export an animated mesh to Unity, and Ive tried fbx 7.4 and 6.1, and dae. Here are my dae settings, fbx is just the standard:

No matter which (dae gives the best result) the full animation doesn't export - just the first half. The animation is all bones scaling from 0 to 1. I have no shapekeys.

What could be the problem?

EDIT: the error I get In Unity is:

transform.localRotation assign attempt for 'Bone' is not valid. Input rotation is { NaN, NaN, NaN, NaN }.
UnityEditorInternal.InternalEditorUtility:ProjectWindowDrag(HierarchyProperty, Boolean)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

EDIT: now works in a viewer but in Unity I get (it is supposed to be a full tree):

I recommend using FBX. Try these settings, note the last section for animation is for the simplest application if your using frame ranges and not NLA tracks. Make sure you timeline 'end' includes all your keys an your not using an alternate start/end.


Quickly Save multiple images I am going to upload a file to be rendered on RenderST. My .blend has a video file in it so I am not able to use "auto pack data" since it does not pack video files.

The problem is I have 100+ images associated with my .blend file. These are pulled from many different files from our work servers and I have no idea where the original files are all located. So I need to save out these images one by one from blender to put in their own folder to upload to RenderSt.

Is there a quicker way of doing this? maybe a python script?

EDIT:

Added pic to make it a little clearer

By the time you get the script completed and run it, you may have your files loaded.  Loading them to your computer in a folder with subfolders based on file sizes, then updloading them is usually best. Load from smallest image sizes to largest folder.


Cannot remove specific polygons Here is my first model

I cannot figure it out how to remove "ears". I made something and these polys/edges/vertices become unselectable but still visible in object mode

I just want to remove them to remake it completely

UPD
Here is how my model looks in solid shading

And when I select all via A

Sorry for noob question
Problem solved, I have made something definitely wrong :)


Fast streaming camera view to video for linux (v4l) system device What i'm trying to achieve is to stream an arbitrary camera view in blender to a v4l device.
What i've done so far
After reading the community post about streaming the Eevee view on Windows and linux, I adapted the spout addon for blender in order to work with the virtualvideo package.
In short, I use a draw handler in Blender to read the pixels the 3D view  and send it to the virtual v4l device:
scene = context.scene
dWIDTH = camera.texshare.capture_width
dHEIGHT = camera.texshare.capture_height

view_matrix = context.scene.camera.matrix_world.inverted()

projection_matrix = context.scene.camera.calc_matrix_camera(
    context.evaluated_depsgraph_get(), x=dWIDTH, y=dHEIGHT)

# Defined somewhere else, just here for complete example
offscreen = gpu.types.GPUOffScreen(dWIDTH, dHEIGHT)

offscreen.draw_view3d(
    scene,
    context.view_layer,
    context.space_data,
    context.region,
    view_matrix,
    projection_matrix)

bgl.glDisable(bgl.GL_DEPTH_TEST)
draw_texture_2d(offscreen.color_texture, (0, 0), dWIDTH, dHEIGHT)

# Read pixels and store them in the buffer
bgl.glReadPixels(0, 0, dWIDTH, dHEIGHT, bgl.GL_RGB, bgl.GL_UNSIGNED_BYTE, buffer)

# Send next frame
fvd.send_next_frame(buffer)

What is working
When streaming is enabled, the virtualvideo streams the pixel buffer to the v4l device and i can watch the "stream" with ffplay (or something else):

What isn't working

The bgl.glReadPixels function takes about 300 to 400 ms to render one frame which results in a slow frame rate.

By using the view and projection matrices, the output is not exactly the "camera view", even the camera mesh gets rendered into the view

The rendered image somehow gets displayed in my blender viewport (See image below).

I somehow managed to flip the image upside down, but that's the least of my problems :D

What i'm asking

Is there a way to grab and redirect the already created (and very performant) camera view from blender? This does not even necessarily have to be done via the Python interface of Blender, if there is a good solution in C++ or similar I would be very grateful!

If not, is there an alternative for the bgl.glReadPixels function that works faster?

Why does the rendered image show up in the viewport and how can i disable this behavior?

I think I made progress which fits to your question.
With a modal operator I have achieved streaming a live camera view from the active Viewport to a v4l device with about 11 fps. Not that smooth, but a good start.
Of course I did not come up with this totally on my own, but i was guided by related threads or answers:

Question from bluejayke on realtime export of images
Brilliant Answer from CodeManX on question regarding screenshots

This method was tested in blender 2.82, in version 2.92 it somehow only delivers black images
Workspace "Configuration":

have a 3D View
switch to Camera mode (Num 0)
Zoom Camera to 1:1 (View->Navigation->Zoom Camera 1:1)
toggle all overlays, gizmos and helper bars which overlap your camera view as they will show in your stream

These steps are not required for the pipeline to work, however what you see in your viewport gets cropped to the render size, so you may have unexpected output if the view doesn't match the camera view 1:1 or has a smaller size than your set resolution
What my code does:
I set up a modal operator which runs at 30Hz (in my use-case it also updates the scene and the camera postion but this is not included in the example).
With the ffmpeg-python package I set up a stream to the previously created virtual video device (setup via v4l2loopback).
In the modal function I grab the pixels in the camera region and put them into the ffmpeg stream.
Example:
import bpy
import bgl
import ffmpeg

class VirtualStream(bpy.types.Operator):
    bl_idname = "wm.virtual_stream"
    bl_label = "Virtual Stream"

    _timer = None
    _updating = False

    ffmpeg_proc = None
    _region = None
    _res_x = None
    _res_y = None

    # change to the path of your v4l device
    _video_device = "/dev/video2"

    def modal(self, context, event):
        if event.type in {'ESC'}:
            self.cancel(context)
            return {'CANCELLED'}
        if event.type == "TIMER" and not self._updating:
            self._updating = True
            # correct start pixel of region to camera corner
            x = self._region.x + (self._region.width - self._res_x) // 2
            y = self._region.y + (self._region.height - self._res_y) // 2
            bpy.ops.wm.redraw_timer(type="DRAW_WIN_SWAP", iterations=1)
            # read pixel values in buffer
            buf = bgl.Buffer(bgl.GL_BYTE, self._res_x * self._res_y * 3)
            bgl.glReadPixels(x, y, self._res_x, self._res_y, bgl.GL_RGB, bgl.GL_UNSIGNED_BYTE, buf)
            # convert buffer to bytes for ffmpeg
            buf_list = buf.to_list()
            myBytes = bytes(buf_list)
            # write bytes to virtual video device
            self.ffmpeg_proc.stdin.write(myBytes)
            self._updating = False
        return {'PASS_THROUGH'}

    def execute(self, context):
        # setup timer for modal
        wm = context.window_manager
        self._timer = wm.event_timer_add(1/30, window=context.window)
        wm.modal_handler_add(self)
        # get render resolution -> size of camera view
        self._res_x = bpy.context.scene.render.resolution_x
        self._res_y = bpy.context.scene.render.resolution_y
        # setup ffmpeg stream
        self.ffmpeg_proc = (
            ffmpeg.input("pipe:", format="rawvideo", pix_fmt="rgb24", s="{}x{}".format(self._res_x, self._res_y))
            .vflip()
            .output("/dev/video2", format="v4l2", pix_fmt="yuv420p")
            .overwrite_output()
            .run_async(pipe_stdin=True)
        )
        # grab region we want to capture
        for a in context.screen.areas:
            if a.type == "VIEW_3D":
                for r in a.regions:
                    if r.type == "WINDOW":
                        self._region = r
                        break
        self._updating = False
        return {'RUNNING_MODAL'}

    def cancel(self, context):
        context.window_manager.event_timer_remove(self._timer)
        self.ffmpeg_proc.stdin.close()
        self.ffmpeg_proc.wait()

bpy.utils.register_class(VirtualStream)

Time constraints:
As I mentioned on my machine it runs at about 11 fps, with an additional update of the scene this drops to about 7 fps depending on the updates. When timig the individual parts bgl.glreadPixels took about 50ms and the conversion to bytes also took 50ms, the other parts are virtually irrelevant.
What I don't know is why your execution of bgl.glreadPixel was so much slower than mine or how to speed up from here.


How to retopologize asymetrical meshes not aligned to a global axis I have a high poly mesh that isn't symmetrical. The body is turned one way and the face another. Also, the face itself isn't completely symmetrical. I'd like to be able to use the mirror adjustment when I retopologize as much as possible, but obviously I can't just mirror along a global axis. Is it possible to mirror along a local axis, and if so, how would I appropriately set up that axis to mirror the face?
If it isn't possible to mirror the face properly, how important is it to make the face topology symmetrical? I tried just doing the whole face manually and I suspect I screwed it up. How much does it matter if I have edge loops going off any which way?

Credit to Patrick on BlenderArtists.org for helping me find the solution. (https://blenderartists.org/t/how-do-i-retopologize-asymetrical-meshes-not-aligned-to-a-global-axis/1236449/3). The mirror modifier is local. My mistake was setting the retopology mesh origin as the center instead of the high poly mesh origin as the center. Also, my topology work above is pretty hamhanded. http://wiki.polycount.com/wiki/FaceTopology seems to have some nice color coded examples of how the flow is supposed to look on faces.


Is there an efficient way to scale UVs on many objects at once? I've got a single texture that a couple dozen mesh objects are mapped to different bits of. I'd like to say, double the height of the texture so I have room to add some more things, which would require scaling the UVs on all these objects by 0.5y from the top. Is there some straightforward way to manage this automatically?

I don't want to just add an extra texture for what I'm doing since it's a relativly minor detail, and since I'm exporting this for a game I don't want the extra draw calls and two .dds files that that would involve.

Well, I puttered around in the python console and bashed this script together:

import bpy
for mesh in bpy.data.meshes:
    changed = 0
    usedverts = set()
    for face in mesh.polygons:
        for layer, texmap in enumerate(mesh.uv_textures):
            tex = texmap.data[face.index]
            if tex.image and tex.image.name == 'construction-facemelt.tga':
                for v in face.loop_indices:
                    if v not in usedverts:
                        uv = mesh.uv_layers[layer].data[v].uv
                        uv.y = uv.y / 2.0 + 0.5
                        changed += 1
                        usedverts.add(v)

    if changed > 0:
        print("Updated", changed, "UVs on", mesh.name)

I mostly put this together via console introspection and guesswork, so, there might be a lot of ways to do it better; I still barely understand the python blender api. But it works, and the bits to customize to make it work for another situation should be self-evident...


Where is the built in Material Utils add-on in 2.8? This is seriously required, especially when joining/detaching objects, and exporting them for game engines. Can anybody tell me how to deal with the issue of cleaning unused materials on an OBJECT (not clean materials from the scene or orphaned data). The built in 'Material Utils' add-on used to do this but does not exist in 2.8 (not to mention all the other useful functions of this material!).

(the image is from 2.79)

Blender 2.8 is glorious, but this is a must have add-on. Please, can someone add it back.

Update. They added Material Utils in blender 2.81. At the moment its in experimental version 2.81Alpha but it works and I love it :>


Making square torus with square cross section Imagine a square donut with a square cross section.  Equivalently, imagine a thin cube with a square hole punched all the way through the middle of it.  I've tried so many ways, and they all fail due to having extra edges that prevent me from modifying the object as a whole.

I created a square tube by stretching a cube, subdividing, and extruding the end faces.  I got the shape I wanted easily, but permanent extra edges remained.

I created a large plane and then a smaller plane inside it, planning to remove the extra edges and vertically extrude the framework.  But I could not get rid of the edges without destroying things.

I created a large, flattish cube with a smaller cube above it.  I extruded the bottom of the smaller cube all the way through the larger cube, added a Boolean subtraction modifier to the larger cube and subtracted the smaller cube.  On first glance it appeared to be exactly what I wanted.  But then I saw that the operation had inserted unwanted edges connecting the external corners to the internal corners!  No matter what I did (delete or dissolve edges) the object was destroyed!

I need to be able to treat the result as a single object so I can twist it as a whole, but no matter what I do, I end up with a single object (in object mode) but essentially separate objects in Edit mode.

Please help!  Thank you.

Steps:

Create a Plane and convert it to Curve - Alt+C > Curve from Mesh/Text.
Add Bezier > Circle.
With Circle selected go to Data tab and choose Plane as a Bevel Object - you will probably need to scale down Plane.
Set Resolution > Preview U to desired density.
Add Solidify modifier and set Thickness. I've used minus value to create "inner" wall.
Convert your curve object to a mesh - Alt+C > Mesh from Curve/Meta/Surf/Text.
Optionally you can add Solidify again.


How to bake brick-wall geomerty into texture image? I have crated a wall of bricks. How can I bake it into the plane texture (not Normal maps just texture)?
Simply i need to be able to bake all selected geometry with materials etc into one texture image.

There's An Easy way to Bake a Normal Map from High Poly Mesh (Your Wall) To a low poly simply a cube.The first thing you would have to do. Is place High Poly Mesh in First Layer & Lowpoly in Second.

I hope you'd be using Cycles Rather than Internal its just a slight difference.

In UV Image Editor Click for Image > New Image. Select a relation accordingly (make Sure it will be the power of 2) The Higher Resolution will give better Result.

Black Image Should Appear

Select the Both Mesh High-Poly (Inactive) Low-Poly (Active). Select High Poly First & Lowpoly then(so High Poly will be inactive & Lowpoly Active) (Remember with Both layer Active).

Last one Open Node Setup add a material for the Mesh (if it don't have one). Add Texture Node Don't Connect this node to the shader instead browse the Black Image which was created in UV Image Editor.

Bake It. (I will Edit the answer & will Post the Result later. I was in a Hurry) Sorry :(

For Any Further Video Detailes Checkout BlenderGuru Tutorial


How to use bridge edge loops to make a pipe bend in Blender 2.8/9 I'm trying to bridge two edge loops in Blender 2.8 to make a curved pipe. I was able to do this in 2.79 but I cannot get it work in 2.8.

After setting profile to 0. Setting it to -1 makes it look crumpled. Either way I cannot seem to make a nice arc.

Is there another way to bend a pipe?

Same settings as Robin Betts

These settings work for me..

You certainly don't want a profile factor if you want the diameter of your pipe to be constant along its length.

It's only trial and error that gets me to go with 'Blend Surface' and this 'Smoothness'.. maybe someone who knows the code can tell us what the maths is?


How to change Bump Map height I'm using a black and white bump map image to carve a image from an object but when I change the height it only bumps a little. If increase the height nothing really changes. How can I change the height/depth of my bump map?

Bump Map is very subtle, if you need more depth, try with displacement.

Good Luck