Add-ons don't show in menus - Blender 2,8-Mac I have a number of add-ons installed in 2.8, import/export, mesh, etc. They don't show up in the appropriate menus, however. For instance, I have the 'official' add-ons: BVH, FBX, STL, OBJ and VRML2 installed and enabled but when I go to the import menu all I am offered is Collada(dae) and Alembic (abc) which are not actually even add-ons.

Am I missing some 'switch' or something or is this a bug?
I can't believe this is general behaviour or there would be more 'noise' in these forums. The only thing I see is a 4 month old - and unanswered - query which sounds similar to mine!

When you're loading the project file through File > Open uncheck Load UI and you should see all your add-ons.


Move the origin point to the cursor in Edit Mode I have a model where I would like to rotate an area of the object, in this case a mouth of a ordinary beast along a defined point, marked here with the 3D Cursor. And I am trying to move the selected areas Origin Point to the cursor, so in edit mode i press Ctrl+Shift+Alt+C and select "Origin to 3D Cursor. But then I get an error message that says, "Operation cannot be preformed in edit mode". Why??

I have Heard that you can snap the 3D Cursor to an object/vertex/edge/face but I have not found any reference of it...
It is a mirrored object btw.

What I understood  about your issue, you want to open mouth and close it.

Please try following steps:

Select the base edges as shown in the image below, snap the 3D cursor to this edge, by hitting Shift + S and selecting Cursor to selected

Change the Pivot Point to 3D Cursor

Select the full mouth and rotate it as required.

You may also create a Shape key for easy rotate and animate

When you are done with it you may change back the Pivot point to Median point

Best of luck!


The area where the mesh should be displayed is missing I'm absolutely brand new to Blender, just started today (so sorry if this is the stupidest question ever but google isn't helping any)
The area where the model is displayed went missing
I don't know what happened, and ctrl z doesn't help
Basically it just shows the UV map area and nothing else

On bottom this is the timeline. Just above the uv map area. On bottom
  left of it there is a button looking like an image. Click on it and
  choose '3D View'. – lemon

You can see what lemon described in the image below.


Need Help With Settings for Hair Particle System \w dynamics enabled Goal: Model of Solar System, I'm currently stuck on some animations I'd like to sketch up for the sun.

Scene Setup: Currently, there is one main object (icosphere), the sun (in blender terms, it's large, with a radius of 695km). Within the sun, is a force field (charge). The sun itself is a particle emitter (hair), the particle system has a field enabled (charge). Both fields' powers have opposite signs and there is a large difference between the power strengths. My expectations were that would create a strong charged field that would attract the hair (with high velocity) as it tries to leave the sphere, and pull it back.

I can see the hair particles, and the look/feel is ok for now. But they won't move at all.

What I want:
- Hair particles to bunch/twist in thin filaments primarily at the poles of the UV sphere (north/south). I currently have them bunched and twisted as I want, but they tend to get placed randomly on the sphere, I'd like to have them concentrated at the poles. Or know how to go about doing that. These are what i think are the relevant settings below

Dynamic Effects (animation intent), I’d like those bunched filaments to be pulled into the sphere, semi-randomly over the course of the animation. The dynamics and physics settings are below

The rendering & viewport settings:

(This is an example of the motion I’d like: https://www.youtube.com/watch?v=TWjtYSRlOUI)

Problem(s):
- i'd like the hair particles to form and bunch at the spheres poles
- i'd like to get a better grip on how to solidly control the movement of the hair using fields (or whatever is the best option)

note i unfortuantely don't have much rep, so i couldn't upload the rest of the screenshots. anything else i can add to help let me know i'll try to get it sorted.

So working through this some, I found out that a lot of the changes I wasn't seeing may have been because it seems to only update changes when i'm positioned at frame one in the timeline. With that solved, I found ways to shape and animate the hair using keyframes that will work for the first layer of motion. Next, i made a more simple blend and played with the hair, a simple object, and various fields. It seems the charge field doesn't work, or I can't get to the bottom of how it should yet, but I can mimic a similar effect with other fields. Also found out how to associate the hair with a vertex group for placement =)


Why are all the textures in my file pink? I made a character, and its one of my first times texturing, and I saved my character into a new folder, and when I came back to the model ALL the textures were pink, I used to know what to do, but I stopped texturing, how do I bring my textures back?

Pink means that the texture files are missing.

If the texture files are still on your system, then it sounds like the textures are referenced relative to the blend file (the default behavior). This means that if you move the blend file and you don't move the textures, blender won't be able to find them.

There are several things you can do:

Use the Find Missing Files operator in Info > File > External Data to let blender try to find the files for you:

This will give you a file browser with which you can select a directory which you think contains some (or all) missing files. Blender will then recursively search through all files and subdirectories of the selected directory for files with the same names as the missing files.

Note that if the directory is big (contains lots of files and subdirectories), this might take a while. Blender will appear frozen while the operator runs, but don't panic.
With the blend file in the original location (so the textures are loaded correctly), press Make All Paths Absolute in Info > File > External Data,
then save the blendfile. Now blender can find the textures (provided they don't move) no matter where the file is on the system.
Pack the textures into the blendfile. Press Info > File > External Data > Pack into blendfile. This will embed the image data into the blendfile itself, so your file may become rather large. However, this means that blender will always be able to find the textures no matter what (even if the file is put on another computer).
Move the textures to be in the same position relative to the new blend as they were to the old blend. E.g., if the textures are in a directory that is in the same directory as the old .blend, move that directory into the directory containing the new .blend.


export the length of edges to a text file from blender. I am working with blender 2.78, and I want to export the edge lengths of a mesh to a file text, but I don't know how to do it with Blender.
I will explain more, I have a bunny wavefront, and I did display the edge length using the Transform panel. Then what I want to know is there a way to export those lengths in a text file for example. I searched on the net and I found that I can use the NeuroMorph Measurement Tools, I did add the tool but it seems that it exports just the area and volume but not what I want.

It is obvious that we can just compute the lengths based on coordinates of vertices and faces stored in the .obj file, and take into account the repetition of edges between tow adjacent faces (the thing that I haven't think about how to implement it yet on Matlab). But if it is possible to get it from blender directly it would be great.

It might be a simple way but I am pretty new with blender and I don't find the way.

You can use this script, tested on happy.ply for performance test (6 seconds on my laptop):

import bpy
import time

#Calc the length between 2 vertices given by vertex index
def CalcLength( obj, vertices ):
    v1 = obj.data.vertices[vertices[0]] #Get the first
    v2 = obj.data.vertices[vertices[1]] #Get the second
    return (v1.co - v2.co).length #Calculate the length from their coordinates

#In object mode
obj = bpy.context.object #selected object
#obj = bpy.data.objects['name'] #or by name

fileName = "c:\\tmp\\exemple.txt" #Your file name

file = open( fileName, 'w+' ) #Open a file (will create or erase an existing one

startTime = time.time()

try:
    #Write to the file the length of each edge
    file.write( '\n'.join([str(CalcLength(obj, e.vertices)) for e in obj.data.edges] ) )
finally:
    file.close()

executionTime = time.time() - startTime
print( executionTime )

Here is the file so you can look at the setting:


After Retopology, should I apply the modifiers to have a good "Normal Map Bake"? I'm new to the baking of a Normal Map from a High Poly (Sculpt) for a Low Poly (Retopology), so I might have some questions.

From the Image above, as you can see, it's fully retopologized (WITHOUT having the modifiers Mirror, Subdivision and Shrinkwrap applied), BUT you also can see that my retopology is out of the model, the faces of the retopology aren't stink to the Sculpt object.

NOTE: the Red Color isn't the Sculpt object, it's the retopology object covering the Sculpt object that is a Silver Color, which you can't see in the image, since it's already covered.

So my question is, if I do a Normal Map Bake between the High and Low models, does it affect the quality of the image after the bake even if I have such retopology?

2.- What would you recommend me? Should I better apply the modifiers and do the bake or do the first one (If it works)? If I apply the modifiers, my only option to UV wrap is doing the AI Unwrap (Smart Unwrap),since there would be a lot of a vertices.

Thanks for the answer.

Assuming wireframe vertices on screenshot are from low poly retopology object, that object is not "sticking" to the high poly by itself. It's only through modifiers (mostly shrinkwrap) that it doesn't look like the vertices you can see around high poly. So you have to apply modifiers before baking (thought you should make a duplicate before that, to change modifiers in case something goes wrong).

After that the easiest you can do is use Smart Unwrap, it will separate your retopo into "random" parts unwraping it. Thought it would be quite a bit better if you marked seams (Ctrl+E->M) and Unwraped it yourself (U->Unwrap). You can look up some simple tutorials on that (this from BlenderGuru for example).


Alt-click is not selecting edge loops in lInux Does anybody have an idea why this is not working?

Alt key in most Linux window managers doesn't work properly with blender. You can configure it in various window managers, but the easiest solution for me is to shift+alt click. It will select an edge loop, but its in a "additive mode" so it works for selecting 1 edge loop, and continues selecting edge loops as if you are shift selecting multiple items.

Sorry if this text description is confusing, but try shift+alt click on the edge loop and it should achieve what you want.


Looking for Pasta Material Looking for Pasta Material like this in Cycles.

I tried so far.

With this nodes.

With the basic knowledge of nodes i tried. Need more details. any suggestion or help how to make like a pro material. Thanks

Here is a try for Eevee (a bit less al dente than your picture though), I guess the settings would be different for Cycles, and probably easier to find.
Use a Principled BSDF with a bit of Subsurface Scattering (don't forget to tweak the Subsurface Radius values), Specular at 1, a medium Roughness, and a bit of Noise Texture in order to have a bit of grainy texture:

For the pasta modeling:

Create 2 circles, checker deselect the outter circle, scale down:

Give it a Screw modifier to create a half torus:

Close the tips with LoopTools > Bridge:

Recalculate the normals, select the slots, bevel:

Give your object a Subdivision Surface modifier:

Deform it a bit with the Proportional Editing on...


How do I add a procedural confetti pattern to a plaster wall? Okay,I'm gonna ask this again and I'm gonna be more specific. Do you remember in FNaF how you see a triangle shaped confetti texture on the walls? The clearest view of it is in the West Hall as displayed in the image below. Well,I am trying to find out if this can be done procedurally or if I have to use an image texture for it.

Can someone please help me out? If you can,I'll give you a big,fat thumbs up and I'll check your question as the answer.

You will need to do this with a texture. (I have created a seamless texture for you) I don't believe there are triangle shapes with nodes, so I dont think this can be done procedural.

Here is the Link for a seamless 4K texture I made real quick in PS.

This one below is just a reference of what it looks like.

Hope this helps.


Towel hairs taking up too much gpu memory I have an Nvidia GeForce GTX 750 GPU with two gigabytes of memory.  I followed Andrew Price's Tutorial on how to make realistic towels in Blender, and I was only able to do 700,000 hairs (before my GPU ran out of memory), instead of the 1,000,000 hairs that he did.  As a result, mine didn't look as realistic.  I'm working on a bathroom interior, and I'm wondering if there is anyway to achieve a similar result without using a hair particle system?  It's okay if it doesn't look good close up, it will be farther away from my camera in the scene.  Thanks!

You could do something like what is shown here http://www.blenderguru.com/articles/how-to-render-a-complex-scene-without-crashing/

You could change the random seen on the particle system on a second layer and disable emitter visibility for one layer.


Can Project Paint be used with Cycles? I am having a problem trying to implement texture project paint with Cycles, Blender 2.70.

I go through the process of importing the model (a female head), establishing the seams and unwrapping without an issue; when I try to add the new UV maps I can add them and then I can unwrap on each to get the different views; all that works. The problem starts when I try to assign an image to those UVs, that it does not stay. As I cycle through the UVs I can see that the UVs are different but the image remains the same and i have to change it manually. My UVMain is black; this is the texture I want to project the other textures into.

After applying the black image texture to the model, I select the model, and I go into texture paint; in the Tools tab, I select the Clone Brush; in the Options tab, I make sure that under the Project Paint section Occlude, Cull, and Normal are selected, that UVMain is set as the Stencil and UVSideView is set as Clone From UV Map.

In theory I should be ready to project the texture into my mesh (and into the black image, which is the current texture of the model), but when I paint, nothing happens; I can see that changes have been made to the image for the asterisk, but no changes are apparent. When I change to the Draw brush, everything works and the texture gets painted; but projecting the texture from a photo does not work at all.

It is not only that it does not work, I fail to see how does the image in UV Image editor relates to the UV Layout; if they are not linked at all I cannot see how can I achieve texture projection; when I cycle through the different UV layouts in the Object Data section, all that changes is the UV Layout; and that makes sense, but how do I link it to the texture I am interested in projecting?  am I missing something?

Project Paint is a Blender Render feature that doesn't appear to work when using Cycles. It is also an old way of texture painting.

In Cycles you need to add a material to the object and have an image node that defines what image is to be used to receive the results of texture painting.

Rather than using project paint you should try painting with a texture, I am referring to using a texture with a paint brush while in texture paint mode. The texture can be an image or any other procedural texture available in blender.

Once you have a texture setup, you choose the texture and set the brush mapping to Stencil then the texture will be overlaid in the 3dview. You can move the overlay with the right mouse button and rotate your model as usual, when the texture is in the place you want it to appear you can paint it on your model. The overlay clearly shows where the texture will be placed on your model.

While right clicking easily moves the overlay around, you can also use Ctrl-click to quickly rotate the overlay and Shift-click to scale the overlay to get the texture right where you want it to appear.

This technique works just as well in both Blender Render and Cycles. The overlay feature of texture painting was added in blender 2.67


Blender Skeletal Mesh into Unreal I'm learning Blender and Unreal side by side.

I've made a mesh and would like to use as my main character's for the game I am building. The mesh looks alright, even comes into the game with all the materials looking the way I want them and everything.

My goal is to create a skeleton that would match the Unreal skeleton enough to be able to use the animations that come stock/are so cheep on on the Unreal market.

But it seems that whatever I try, though, I don't get the right effect(s)

Method 1:

Export a Unreal mannequin into Blender. I then move the skeletal mesh to be connected the way it should be. Removing IK bones and twist bones.

(described here: dhttps://forums.unrealengine.com/development-discussion/animation/100864-tutorial-how-to-make-ue4-mannequin-in-blender)

I then have tried two versions:

A) I just parent the skeleton to the mesh and use weighted when asked.

This results in the mesh having all the bones, and I can move it all in the skeleton section of unreal. But the physics assets is a GIANT blob of blue 50x the character's size with so many volumes I don't even know where to start on trying to fix it.

And the blobs don't scale right. I can't get them to be much smaller and they just become slightly smaller spheres if I try to arrange them

B) select the skeleton, hit the create rig button and try to use that.

When I get it into Unreal, the skeleton doesn't move the mesh at all.

Method 2:

Using blender skeleton
https://youtu.be/jiXwDxCZtOc
Following this tutorial.

I do have a different skeleton than the person who made this does. When I create the human mesh, mine has a face and everything (no biggy, I figure, I've tried just not creating targets in unreal and I've tried removing those bones.)

My project looks different the moment I hit the rig button. I don't get the little floating orbs connected to bones.

I get one in front of the characters face. But I do have the arrows and the box around the center of gravity etc.

When I grab these and move them around The Mesh warps. Mostly.

Like grabbing the center the pants warps around but where they meet items I have joined (belt/shit) they seem completely unconnected.

(to begin with the created generated Rig is slightly larger than the original rig for some reason? If I scale from the root to .889 it's exact)

And things like the arms the bones just move through them.

Is there any help anyone can give on what I am doing wrong/how to fix this. I would appreciate it. I have no idea

(I kept getting errors when trying to post photos i have taken. I placed them in a folder on my drive here:
https://drive.google.com/drive/folders/1r0mUrY40fXo9rdhwz79BWVhpymxvyjCB)

Found an Answer that actually works just right:

Export The UE4 mannequin.

Remove anything you dont want to use including MESH, IK bones, Twist bones.

Turn on snap and set it to verticies.
Then grab ends of bones that are in the wrong positions. Move them using the axis arrows onto the correct bones.
Save it for next time as it's own file

Next bring in your mesh. Scale appropriately for unreal
In object mode, select the skeleton. Press shift+C so that you scale from origin. Scale it to your mesh.

Turn on the mirror x and move bones as needed.

In object mode, select the mesh and skeleton and press CTRL+P
set them by weight when asked.

Go into weight mode and fix all the crazy stuff it will do for whatever reason.
Export to unreal.

In unreal make sure you dont choose a skeletal mesh during import.
Open the UE4 skeleton. Get to the rigging options and set it to the humanoid rig

On your skeleton do the same thing.

Go find whatever animation you want, right click on it.
Select Animation re target asset, and in the process just choose your skeleton.


Weight Paint mode makes my mesh white? Is it locked? I'm having this issue with weight paint.
This particular mesh turns white and I can't paint over it. This happens whenever I access the weight paint mode, regardless of being unparented and parented back.
Unfortunately, I left my computer alone for a couple hours, when I came back it was like this. I was alone by then, so there was nobody else who could play with it.
Someone suggested me to check my overlays, yet I haven't had any luck yet.
I even tried loading Blender's factory settings, in hopes of fixing this.
How can I revert it back to normal? Or what is this "mode" even called? I can't work on it like this.

You have enabled the Paint Mask > Face Selection option, which allows you to only paint on the selected faces, so either disable it or use Ctrl or Shift and left click to select the faces you want:


Python: Determine if mesh is Cubic For Blender python scripting, I understand how to, for the "poll" function of an operator, identify whether a selected object is mesh.  You could do

context.object.type=='MESH'

Still, how could you create a boolean statement to determine whether a selected mesh object (if it is known that it is mesh) is a cube?

Thanks.

One way to go about it, using answer from https://blender.stackexchange.com/a/53976/15543.

A cube has six sides, with orthogonal set of normals, all with equal area.

Below is code to split all faces into "sides" with same face normal and calculates the sides area and volume. The volume should be zero, if not the faces aren't coplanar and don't make one side of a cube.

Run the test code in edit mode.

If end up with 6 sides, equal area, all coplanar with orthogonal (either dot product is zero or sum length is zero ( v == -v) )

import bpy
import bmesh
from math import radians
from mathutils import Vector

context = bpy.context

def coplanar(faces, TOL=0.00001):
    bm2 = bmesh.new()
    verts = [v.co for f in faces for v in f.verts]
    o = sum(verts, Vector((0,0,0))) / len(verts)
    for v in verts:
        # origin to center (matters for convex_hull)
        bm2.verts.new(v - o)
    #calculate a convex hull
    bmesh.ops.convex_hull(bm2, input=bm2.verts)
    # if the convex hull has no volume its on same plane.
    volume = bm2.calc_volume()
    bm2.free()

    return volume

# create a bmesh
TOL = 0.01
bm = bmesh.from_edit_mesh(context.edit_object.data)
# tried (unsuccesfully) to calculate orthonormal set from face normal
f = bm.faces[0]
normal = f.normal
v = Vector((1, 0, 0))
if normal.dot(v) < 0.000001: # parallel
    v = Vector((0, 1, 0))
#get the axis
x = normal
y = x.cross(v).normalized()
z = x.cross(y).normalized()
print("-" * 72)
faces = bm.faces[:]
sides = []
while len(faces):
    f = faces[0]
    axis = f.normal
    # has to be at least one to match f.normal
    side_faces = [f for f in faces if f.normal.angle(axis) < TOL]
    area = sum(f.calc_area() for f in side_faces)
    volume = coplanar(side_faces)
    for f in side_faces:
        faces.remove(f)
    sides.append((axis, area, volume))
    print("Axis:", axis, "Area %5.2f Volume %5.2f" % (area, volume))

Won't be a cube if len(sides) != 6 and so on.

Better if an orthogonal axis set was calculated from the first face normal, but couldn't work that out.


Can't Edit Quick Explode I used the preset Quick Explode (Is it a preset?), and after a while, I wanted to change it so Quick Explode happened later on in the animation so I could animate before it (like you would on the dope sheet), but I couldn't find out how to. If anybody could help that would be AWESOME!
(P.S. I'm using cell fracture if that makes a difference)
Thank you for your time.

Quick explode adds both an Explode Modifier and Particle System to the active object. By default, the particle system will start and end on frame 1, causing the explosion to occur instantly.

To change this, go to particle system settings and change the start and end frames to the desired frame.


glass in outer eye blurry I tried to make the outer eye has a transparent effect / reflection so I add the glass material but the effect still has some blurry on it, how can I make the outer eye have a transparent and clear reflection (not blurry)? I've tried to add lighting, making the new object but it does not work

This is not blur, this is noise, due to insufficient amount of ray bounces, if you take a look at the reflection, it's not blurred, the white and black pixels making the noise are because of the rays are not able to collect enough data because they are set to low bounce values.
Try one of two things:
First: instead of using Glass Shader, use an Add Shader to connect a Glossy Shader and a Transparent Shader, you might need to tweak the parameters of both shaders to meet your requirements, keep in mind this will not give you any refraction, but it should eliminate the noise and keep the glossy reflection. If you don't like what you get with an Add Shader, you can use a Mix Shader instead, and add an Input Node called "Layer Weight", use Fresnel as a Factor, then you can tweak the Blend in Layer Weight Node in order to get the effect you want.
Second: Go to Render Panel, under Light Paths menu, change the Integrator Presets into Full Global Illumination.
Aside from that, if you are planning not to use any kind of roughness in the Glossy Shader, put it to "Sharp" instead of "GGX" or "Beckman" this will tell Cycles not to calculate roughness, so changing roughness values will not do a thing, also if you still need some roughness, my advise is to use Ashikhmin-Shirley method instead of "GGX" or "Beckman", it gives better results, specially when the roughness is less than 0.7.
Hope this helps, Happy Blending!


Get raw sound data in Blender using python I would like to use Blender to construct a mesh based on a sound file. I've seen the bake sound to graph function, and I tried to look in the source code how it works internally. This function is great, if we want to change some parameters based on the sound data, but it was not meant to be used for mesh creation. I thought, I must somehow get the raw data (integer value from the sample), then use python to create the mesh (I've already created meshes based on frequency and dampening factors).

I couldn't find the implementation of the bake sound function, only an user interface reference to this function. I think it calls some kind of C++ code (and I really don't want to mix my script with low level code).

I saw a post with blender game engine, which presented the usage of the aud API. This API can load any kind of format (even the sound channel from videos), but I couldn't figure it out how to get the sound data between some given frequencies, like in the bake sound function.

Can someone suggest an easy way to load the raw sound data between a given frequency range.

Say with a Plane object selected, you bake a sound file to its location keyframes.

>>> obj = bpy.data.objects['Plane']
>>> obj.animation_data.action.fcurves[0].sampled_points[0].co
Vector((1.0, 0.0))

>>> obj.animation_data.action.fcurves[0].sampled_points[1].co
Vector((2.0, 0.34159383177757263))

>>> obj.animation_data.action.fcurves[0].sampled_points[2].co
Vector((3.0, 0.8729846477508545))

>>> obj.animation_data.action.fcurves[0].sampled_points[3].co
Vector((4.0, 0.8701881766319275))

>>> obj.animation_data.action.fcurves[0].sampled_points[4].co
Vector((5.0, 0.6890017986297607))

This gives the points that the graph makes. And you can limit the frequencies used for the bake.

Then making a mesh is simple (relatively)

import bpy

rescalex = 20
rescalez = 0.2
obj = bpy.data.objects['Plane']
points = obj.animation_data.action.fcurves[0].sampled_points

# turn 2d points into 3d coordinates and rescale
verts = []
add_vert = verts.append
for idx, p in enumerate(points):
    z = p.co[1] / rescalez
    x = idx / rescalex
    add_vert((x, 0, z))

# connect sequential vertices
edges = [(i, i+1) for i in range(len(verts)-1)]

mesh = bpy.data.meshes.new("mesh_name")
mesh.from_pydata(verts, edges, faces=[])
mesh.update()

obj = bpy.data.objects.new("obj_name", mesh)

scene = bpy.context.scene
scene.objects.link(obj)

that gives this.


What's the most efficient way to draw edges for an object? What's the most efficient way to draw edges for an object?
By efficient I mean quick in drawing and efficient in rendering.

Example:
Adding red edges to a box.

A possible way to do this is to use the Wireframe modifier. To get the result you want, add 2 materials to your object (the first for the faces and the second for the wire edges). Set the Pass Index of the second material to 1 (or any other number different from 0, which is the default value for any new material):

Add the Wireframe modifier to your object, and make sure to unchek Replace Original and to set the correct material index in the Material Offset input:

The final render will be something like this:


Project scene to plane in real-time I understand I could render out the view my camera and then just that as an image texture, however, I want to try and achieve this effect in real-time.

The idea is derived from an effect present in a handful of first-person shooters:

I'm not concerned with making different objects appearing in different colours within the view, I can figure that part out myself. But is there any way to make what the camera can see projected onto an object in real-time? Essentially, making the camera's view an image texture, but in real-time

UPDATE

I tried using the solution provided in this question: Zoom windows magnification

It definitely achieves the effect I'm looking for, in the sense that it picks up the surrounding environment and 'displays' it on the specified object.

However, due to it being reliant on a refraction node and some complex vector maths that I don't quite comprehend, the screen just picks up on the rifle's mesh. This occurs as the true normal of the plane picks up on the mesh in front of it, and ignores the generated normal (an in-depth explanation is present in the 'Zoom windows' solution)

I will upload images of my results later in the day

EDIT

I don't mind by what means this effect is achieved, provided I can do it using only one computer and can be done in real-time

As has already been mentioned, the same techniques as used in Zoom Windows Magnification can be used here - but this is very dependent on getting the vector maths correct, which is also critically dependent on getting the geometry and orientation correct, so I'll try and explain the set up in an as easy to replicate method as possible.

For the geometry, we need to have two parallel faces with specific orientations so that we can use the coordinates to generate the correct normal for the 'lens' at the front of the 'scope' - this allows the image to be zoomed to the correct magnification. The simplest start point is for a cube. Note that the orientation of the faces is significant (since the X/Y coordinates will be used for the lens - therefore, if you later rotate the cube do not 'Apply Scale' as this will upset the coordinates.

Create your cube. The uppermost face will become the 'screen' of the scope, the bottom face will become the 'lens'. In Edit mode (Tab) select the uppermost face and assign a new material ('Scope.Screen'), select the bottom face and assign a new material ('Scope.Lens'). You can optionally assign a material to the rest of the mesh for the body ('Scope.Body').

The direction of the Normal is also significant. Select the uppermost face ('Scope.Screen') and the bottom face ('Scope.Lens') and select Mesh/Normals/Flip Normals. This should result in the following :

Note the flipped normals. Different materials assigned to the 'body', 'screen' (top face) and 'lens' (bottom face).

For the 'Screen', setup the material as follows :

Note the IOR of zero - this, combined with the flipped normal, results in all rays being directed along the normal (ie, directly towards the opposite (lens) face).

For the 'Lens', setup the material as follows :

This material uses the Refraction shader with a Normal generated based on the X and Y coordinates (it's critical that the mesh is orientated so that the bottom face is flat to the X and Y planes). The X and Y is combined into a vector along with a fixed 'Z' and this is converted to a Normal via the Vector Transform node (to convert from Object to World space). Adjust the Z length and IOR to adjust the focal length (strength) of the lens.

Once the mesh and materials are configured you can rotate and scale the mesh as desired - but ensure you do not 'apply rotation' (as this will upset the X/Y coordinates used to generate the lens) and only scale along the object's local axes (otherwise it will skew the opposing faces and result in the screen no longer being aligned to the lens). If you do 'apply scale' then this will affect the focal length (as the Z value will be relative to the new scale) which may need to be re-adjusted.

Here's the final result :

Blend file included

Just for completeness, here's a very rough animation of this in action :

And here animating the IOR in order to dynamically 'zoom' :


How do I enable a particle system for text? I am using blender for the first time, and i am watching a tutorial to create an animated name, but when it was time to use the particles system, i didnt have the option enabled in my blender page, how can i install it or enable it on my screen?

You need to select a MESH object (particles do not work on curves or text).

To convert the text to a mesh, press Alt+C in Object mode, and select convert Mesh from Curve/Meta/Surf/Text

Then the options for particles will then be available in the Properties window.


Single Object transparency overlay with additive/brighter coloring I have an object that bends over onto itself.  Its one color with some transparency.  See Image.  The left portion is like a string that has bent around in front of itself.

Right now, when the object overlays itself, it gets darker which makes sense.

But what I want is for it to get brighter.  I guess like an additive overlay?  Or maybe it would be subtractive?

I've tried a bunch of combinations of shaders (mainly emission/mix shaders) and I can't seem to make it lighter. I did get it somewhat working with a black background, but I have to have a white background.

Can I make the overlap region 'brighter'?

Edit:

I'm using blender 2.79.  Cycles Render Engine.

Edit

This is what I'm currently using in my nodes plus a bunch of other things I've tried that didn't work.  You can see at the bottom just a mix shader with transparency and glossy BSDF.  But none of the other things I tried there made it any better (all were worse, actually 1 was decent, but only if on a black bacground).

You can try to tune this simple material setup:

This example is based on the simple idea covered at this post:
https://blender.stackexchange.com/a/88356/13643


How do I get Cycles to use GPU on a linux server? Inspired by this question: Enabling GPU rendering for Cycles?

I have access to a Linux server that is equipped with GeForce GTX TITAN X. Now Cycles still renders everything with CPU. How can I get it to exploit the GPU?

Since I am talking about a Linux server, I guess there are two steps towards this goal:

How to get the GPU ID or identifier with Unix commands so that I can refer to it in Blender?
How to use Python to enable GPU computations?

For enabling the device for use, see bpy.context.user_preferences.system.compute_device_type and
bpy.context.user_preferences.system.compute_device.

To check these from a shell, put the python you wish to execute in a file and run

blender --background --python <file.py>

Or, more concisely for quick tests,

blender -b --python-expr 'import bpy; <python code here>'

For convenience, here's a script which will print the possible and current values of compute_device_type and compute_device:

import bpy

sysp = bpy.context.user_preferences.system

devt = sysp.compute_device_type
dev = sysp.compute_device

# get list of possible values of enum, see http://blender.stackexchange.com/a/2268/599
devt_list = sysp.bl_rna.properties['compute_device_type'].enum_items.keys()
dev_list = sysp.bl_rna.properties['compute_device'].enum_items.keys()

# pretty print
lines=[
("Property", "Value", "Possible Values"),
("Device Type:", devt, str(devt_list)),
("Device:", dev, str(dev_list)),
]
print("\nGPU compute configuration:")
for l in lines:
    print("{0:<20} {1:<20} {2:<50}".format(*l))

If CUDA shows up in the possible values for device type, then enabling the device should be as simple as doing something like this in python:

devt = sysp.compute_device_type = 'CUDA'
dev = sysp.compute_device = 'CUDA_0'

To find the identifier for the device, you can use the script above with a line to set compute_device_type to CUDA before getting the list of possible devices.

Once that's all enabled we must still tell cycles to actually use it; to do this set bpy.context.scene.cycles.device to GPU.


How to stop smooth shading/sub surface distorting render Im using blender 2.8 and modelling a Pokeball, however, whenever I try to smother out the flat edges with a subsurf or smooth shader it creates weird artefacts. Any suggestions would be greatly appreciated.

Subsurf is probably not what you want. You don't smother out flat edges, you use smooth shading. Enable Auto Smooth in the Object Data Settings (marked below). Select all faces and mark them as smooth. Select the edges you want to be sharp and mark them as Sharp.


Blender 2.8 No compatible GPUs found for path tracing I was having this problem where my blender 2.8 didn't recognize my GPU driver.

I have a AMD RX 580 and my operating system is Ubuntu 18.04. For those who have this same problem I will post it as an answer below.

First you have to download and install the AMD pro drivers for your GPU here.

If you're using Linux you just extract it and open the terminal inside the folder you just extracted. Type in the terminal ./amdgpu-pro-install  --opencl=pal,legacy,rocm and hit enter. It is very important to put the opencl options. That was the reason why I was trying to install and reinstall my GPU drivers and nothing happened.

Restart your pc and check your GPU options in blender.

I hope this helps all Linux users facing this problem.

Found this solution here.


part of material not showing up in render I'm pretty new to blender.

I want to make a silver ring with the "925" stamp inside. I realized the stamp via a bump map (black and white image from Photoshop). That map drives the darker color as well.

It looks nice enough in the viewport (Cycles), but in the final render the stamp is somehow there but not really.

The ring has a diameter of approx 20 mm. I have a feeling that the stamp is somehow too small for the path tracing engine. Does that even make sense?

Any help is appreciated.

Found the solution:
I have a bevel modifier on the ring itself. I did apply it to a vertex group (the edges of the ring). I now changed it to "limit method: weight" after I gave those edges a mean weight of 1. Now it works fine.
The reason I didn't see the problem before in the viewport was that I accidentally had the modifier hidden in the viewport.
Shoutout to @Robert_Gützow for the right idea.


Change red reflection in: object mode - material viewport shading - principled shader When viewing an object in object mode with viewport shading set to material:

Is there a way to change this red reflection to a different color?

I'm using principled shader in blender 2.79

These reflections are caused by the default Blender viewport OpenGL shading lights, which apparently becomes more visible in materias using the Principled BSDF Shader.

You can change this from the User Preferences > System tab under Solid OpenGL Lights.

The offending color is by default most likely the last Specular entry. Change it to whatever color you like, make sure you Save User Settings if you want it set by default.


Is it possible to build blender scripts in external editor like Atom I have little experience scripting thus far but want to develop my skills further. I am particularly interested in autocomplete features and looking to script geometry within one context for Rhino, Blender, and Processing. Atom handles Rhino and processing, but not sure how to make it work with Blender.

Edit: Is it possible to create an atom package for a bpy/bmesh autocomplete library and send scripts directly to blender?

Here is how Atom can be used with Rhino Python:

Scripts can be executed within Atom.

When I was doing this with sublime, I added a "build system" to sublime, essentialy "run this shell code on save", that would run a new headless (or not if directed to) blender instance that ran my script. It was slow but it did allow me to leverage an ide for writing my scripts. It's a bit like setting up a testing framework, and I would recommend additionally setting up a testing framework too so you can know if your script is working and still working without manually, visually inspecting your script results, if possible.


How to use emitter for generating thick forest so that trees would not intersect? I am trying to make thick forest in blender using emitter or hair emitter. The problem is that with huge ammount of trees they intersect with each other and I do not want that to happen. I did use various setting, groups and tricks without success. Does anyone have idea how to make it work? Here you can find blend file

I would suggest to disable Emit in Random order.

Particles in this case are emitted from faces. Every faces has it's own id. With the Random opton enabled you are asking Blender to pick a Random face id to generate the next particle.

In this case, where your simulation does'n run trought time, means that is very likely to have a particle create in the same place of another.

Let's say you have 100 faces. First random id is 1, so a tree is generated in Face1. Than pick another id, randomly..it may occour to pick the same id..1, so the generated tree will be overlapped to the previous one. It may seems that you have a low probability to pick the only 1% that is already came out, but you have to consider that for each particle cration iteration, the number of "free" ids lower, so when you are at half of the particle cration, you'll have 50% probability of overlap.

If this effect is not very strong is because you have also Random distribution option enabled.

With that, you are asking to position randomly the created tree on the face. So , despite they are created on the same face, the might have different location. On th other side, it may occour that two tree of born in adiacent faces, let's say along the common border, will be very near, causing overlap.

Particles generation is not aware of where other particles have previously been generated (it would be very high computing demanding for large numbers), so for now it is not possible to have a random distribution without any overlaps.

One possible workaround can bw to subdivide your mesh till the faces are almost the size of the trees XY bounding plane. Now you should have about 2000 faces in the "forest area". If we put without a tree in the center of each faces we would be able to create about 2000 trees without any overlap.

This obiuvsly resamble more to a plantation than a forest, but by lowering the amount of trees and the use of voronoi density map:

you should be able to dampen the "grid" effect a bit.


Rendering smoke issue: How to get realistic smoke trails from particles? I am in the process of creating the smoke simulation for a live action shot of an explosion coming out of a window.

I like the consistency and quality of the smoke except for the particles when they get further away from the blast. They are looking very light/wispy and have some grainy parts that makes is look uncanny.

My Smoke settings:

Domain Resolution: 128

High Res: 5

Subframe samples 50

Domain smoke thickness: 600

Smoke particle size: 0.1

400 particles released over 2 frames in a single burst

Initial velocity box checked and set to .2

Render Settings:

10 samples(Even when I go to 30 I still have this issue)

1.00 Clamp indirect

1.00 Clamp direct

0.001 Step Size

Max steps 1024

Does anyone know a way I can fix this? I am going for something like the result shown in the image below. Notice how it's particles are dense enough to be a thick continuation of the original cloud of debris. They are not a mess of blur and wisps etc.

Thank you!

Have you tried animating the size of the smoke particle size to increase from 0.1 to say 2 or 3 over the first 20 frames?
They will emit thicker smoke as they get further from the start point.


Boolean difference produces incorrect result I'm carving letters on a cylinder with the Boolean difference operator.
This worked well for a while, but suddenly a strange result became to occur:

As you can see, a part of the letter made a pit in the cylinder (as intended), while outside part produced "walls" around the letter edge.

I already checked for broken normals and duplicate vertices.

Also, I can not see mesh geometry when I switch to wireframe shading (not sure if it's releated):

The file itself can be downloaded from here: https://drive.google.com/open?id=0B8QGeF3SuAgTRXNyZ2xsZVV4Tk0

What do I need to fix to make this operation work correctly?

Make sure you apply the scale and rotation of the objects. In Object Mode select an object and press CTRL + "A" and select "Rotation and Scale" from the drop down menu.


Lamp is not illuminating I'm not sure why my lamp isn't working.  Here are the screenshots:

You have a couple of problems:

You are trying a glass object and a glossy black object (the plane). Highly reflective objects need something to reflect! Create some environment and you'll see that your lights work.
Your objects are quite large! So the lights also need to be a bit more more powerful

Here's your scene with a white hemisphere and your lights a bit brighter:

To leave the environment out of the rendered image turn off the visibility for the camera

Blend file to play with:

EDIT:

if what you are after is some glow in the dark effect you might want to add a plane with an emitter shader as a light source under the object and forget about the lights on the scene altogether.

Or have no other emitters in the scene than the object generating its own luminescence:

and why not? another blend:


Dark grey artefacts on a simple mesh I'm modelling a coat for a character, and I have those weird dark grey artefacts on some faces.

A few things :
As you can see, there's no overlapping faces, no triangles either, it has no modifier on it except for the mirror modifier.
I've already tried to :

Shade it smooth or flat,
Flip and Recalculate the Normals
Apply all transforms in Object Mode, and
Clean Up for Loose Edges/Vertices/Faces, and Merge By distance.
I've also deleted and rebuilt those faces but those artefacts remains.

Any idea ?
Here's a blend file : https://blend-exchange.giantcowfilms.com/b/ykzVrBss

Clear (or edit) your custom split normals data from the Object properties->Geometry data section.  These custom normals are causing this issue.


Display UV-Map node input in panel I want to display the .uv_map property of a UV-Map node in a panel, the same way it looks on the node.
I tried layout.prop(node,"uv_map"), but that simply adds a text input which isn't what I'm going for.

How would I display this properly?

UILayout.prop_search

Test code, draw method, looks for all uv map nodes on the active object's active material nodes, adds a prop search to each listing all the uvmaps on the objects mesh.  The search data is the mesh, the search property is "uv_layers" and the name of each layer is displayed in the prop search menu.

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

    obj = context.object
    me = obj.data
    mat = obj.active_material
    nodes = [n for n in mat.node_tree.nodes if n.type == 'UVMAP']
    for n in nodes:
        col.prop_search(n, "uv_map", me, "uv_layers")


Animation looping not seamless I'm working on a looping character animation, but no matter what I try, the "seam" of the loop is always jerky and clearly visible. The keyframes are all set to vector and I made sure to make the animation 1 frame shorter, so the 1s.
Video to illustrate:
https://youtu.be/7yZ_QMZVdKQ

When you make looping animations, especially animations whose entire motion is procedural, you want to make sure that the first and last frames have the same keys, but also that the Handle Type for those keys is set to Vector. You can change these in the Curves window.
DO NOT TOUCH the vector handles;
Assuming that all handle types are Automatic and you did not adjust the bezier handles, when you convert them to Vector, they should already be flowing the same direction. (The tangents should be the same). If they are not (look at them, compare), you can manually adjust the vector handles or re-key the first and/or last keyframes.
Example of when to expect good results automatically:
A bobbing motion where cardinal (X,Y, and/or Z) position(s) is/are keyed. Suppose you key only one period. You will want 5 keys for the 4 distinguishable segments:
  x
 / \
x   x   x
     \ /
      x

the default interpolation ("Automatic") will create smooth bezier curves that work great in the middle but flatten out at the ends. Assuming this motion has its keys equally spaced and the average position is keyed, if you now select the first and last key and change the handle type to "Vector", their tangents will match and the motion will be seamless.
Also: Remember that the last frame needs to be excluded (since it is literally a copy of the first frame (yes, I see you do). This is done by setting the last frame value in the Timeline window to 1-less-than the frame the last key is on.


Moving around the object wiith Alt key + Left Mouse Button I am new to Blender using it in Linux OS. I have tried to move the button with ALT+LMB. I have selected Emulate 3D Mouse Button from the user preference. The select with option is set to Right. But it is not working.

Keep this settings and do not forget to save user settings and close


Since 2.82 my computer completely crash on random occasions I am using blender since 2.8 around October.

Since I installed 2.82 the software keep crashing together with my whole computer.
Not even a BSOD, the computer just reboot while I am modelling, or more recently while doing weight painting.

I deactivated most of the addons, and that have helped, but it is still crashing several times a day.
I even tried to get back to Blender 2.81 but the crash also occur with 2.81 now.

I believe all my drivers are up to date.

my configuration is:
windows 10 pro N 64bit

CPU intel core i7 4790 @ 3.6ghz

ram 16 gb DDR3 @ 798MHz

NVIDIA RTX 2070 gigabyte

I do not overclock anything.

I really have no idea what I could do to stop the crashing

Any one have an idea?

For me this sounds like your graphic card uses more power than the power adaptor can deliver. And then the system becomes unstable. This would fit to your new graphics card and the kernel power error, even when it started with Blender 2.82 first. Have you checked if your power adaptor can deliver enough power to the system?

To calculate how strong a power adaptor needs to be, calculate the maximum watt values for all of your components in your pc together, and add 10% to 20% on top to have some reserve. There are some small users that are usually not worth a mentioning. A ssd usually uses around 2 watt. Same goes for ram. But a motherboard comsumes easily around 50 watt nowadays.


Putting objects in a python list Is there a way to store objects in a list and change their properties? I want to make a for loop and move objects one-by-one using this loop. My attempt so far is below but I get the error KeyError: 'bpy_prop_collection[key]: key "FINISHED" not found'.

import bpy
from random import randint

#how many cubes you want to add
count = 3
listOfCubes = []
Cubes = bpy.data.collections.new("Cubes")
bpy.context.scene.collection.children.link(Cubes)

for i in range(count):
    x = randint(-10,10)
    y = randint(-10,10)
    z = randint(-10,10)
    listOfCubes.extend(bpy.ops.mesh.primitive_cube_add(location=(x,y,z)))
    bpy.data.objects[listOfCubes[i]].location.x = 0

The operator bpy.ops.mesh.primitive_cube_add() returns the status of the execution and not a reference to the created object. It does set the newly created object as active though, which means it can be accessed by using bpy.context.active_object.

Since you already know that you want the location on the x-axis to be zero, you can set this right when the object is created instead of changing it later.

In your current code the objects are not linked to the newly created collection. You can add an object to a collection by using collection.objects.link() where collection is an object of type bpy.types.Collection. You can unlink the cubes from the currently active collection where it was originally added to, if you don't want them to appear in both collections.

import bpy
from random import randint

num_cubes = 3
master_collection = bpy.context.scene.collection
collection = bpy.data.collections.new("Cubes")
master_collection.children.link(collection)

for i in range(num_cubes):
    y = randint(-10, 10)
    z = randint(-10, 10)
    bpy.ops.mesh.primitive_cube_add(location=(0, y, z))
    active_object = bpy.context.active_object

    # Link to the newly created "Cube" collection
    collection.objects.link(active_object)

    # Unlink from the active collection in the view layer
    # (otherwise it will appear in both collections)
    bpy.context.view_layer.active_layer_collection.collection.objects.unlink(active_object)

If the changing of the location was just meant as an example and you do need the objects in a list, you can store them at each iteration through the loop:

import bpy
from random import randint

num_cubes = 3
master_collection = bpy.context.scene.collection
collection = bpy.data.collections.new("Cubes")
master_collection.children.link(collection)

cube_list = []

for i in range(num_cubes):
    y = randint(-10, 10)
    z = randint(-10, 10)
    bpy.ops.mesh.primitive_cube_add(location=(0, y, z))
    active_object = bpy.context.active_object

    # Link to the newly created "Cube" collection
    collection.objects.link(active_object)

    # Unlink from the active collection in the view layer
    # (otherwise it will appear in both collections)
    bpy.context.view_layer.active_layer_collection.collection.objects.unlink(active_object)

    cube_list.append(active_object)

Alternatively you can retrieve them from the Cubes collection by using:

collection.all_objects()

This assumes that you still have the collection variable in scope with the reference to the collection. Otherwise you will have to access it through:

bpy.context.scene.collection.children["Cube"].all_objects

The latter two examples don't give you a list, but also an object which is iterable of type bpy.types.bpy_prop_collection. Therefore it can still be used in a loop similar to how you would iterate through a list.

import bpy

objs = bpy.context.scene.collection.children["Cube"].all_objects

for obj in objs:
    print(obj.name)

Be aware though that when creating multiple collections with the same name, Blender will automatically append a number to avoid duplicate names. Which means if you're executing the script multiple times, you will have collections called "Cubes", "Cubes.001", "Cubes.002", "Cubes.003" etc. If you want to avoid this and only have one "Cubes" collection, you will have to check if it exists before creating a new collection:

import bpy

name = "Cubes"
master_collection = bpy.context.scene.collection
collection = bpy.data.collections.get(name)

if collection is None:
    collection = bpy.data.collections.new(name)

if master_collection.children.get(name) is None:
    master_collection.children.link(collection)


center point in camera view Is there a simple way in python to rotate/position a camera so that a specific point (X,Y,Z) is in the middle of the camera viewfinder in Blender 2.8?

Get the camera-object direction as a vector by subtracting the cameras location from the objects location: direction
Convert this vector to a look at quaternion with the vectors to_track_quat('Z', 'Y') function. This function returns a quaternion rot which points its Z in the direction of the direction vector and its Y in the direction of the global Y.
Convert rot to a 4x4 matrix.
Convert the cameras location into a Translation Matrix and store it in loc.
Compose the new camera matrix by matrix-multiplying the loc matrix and the rot matrix and assign it to the camera matrix_world.

import bpy
import mathutils

cam = bpy.context.scene.camera
object = bpy.context.active_object

direction = cam.location - object.location

rot = direction.to_track_quat('Z', 'Y').to_matrix().to_4x4()
loc = mathutils.Matrix.Translation(cam.location)

cam.matrix_world =  loc @ rot


What shaders are used in the example below to achieve the same effect? Everthing I have done in blender is all pretty standard as far as shaders & textures go but I want to start working on toon shaders I have a style in mind but so far I havent been able to find any usefull resources to gte me there. Any help would be greatly appriciated!

The simple shading can be achieved with "Toon BSDF" for the material and the "Freestyle" mode in the scene settings.


Change default rotation and orientation of imported model? If you import this OBJ model this Luigi model in Blender, the model opens face down.

How can you use Blender to change the default orientation and rotation so the model is standing vertically (90 degrees) upon opening the file?

The goal is to export a new OBJ file that lets the Luigi model open in a vertical standing (90 degree) posture.

These questions are similar, but the solutions did not work:

1) Could not apply rotation to entire model (Applying rotation after manually rotating the axes with two-finger panning does nothing. Blender says, "Objects have no data to transform."): Imported object shows aligned to the wrong axis

2) Did not work: Imported object shows aligned to the wrong axis

3) Could not apply rotation to entire model (Applying rotation after manually rotating the axes with two-finger panning does nothing. Blender says, "Objects have no data to transform."): Rotate Default Model Orientation

Not sure if this will work but it’s worth a shoot. Manual rotate/move the object to how u want it and the press control + a and apply rotation and location


How can I make loop cuts the same distance from the edge? I'm trying to make a mesh like this, except where the loop cuts are exactly the same distance x from the edges (this is just a eyeballed approximation of what I'm trying to get):

I've tried looking around for an answer, but the only thing I come across people using beveling or insets, but I need overlapping cuts making the little squares in the corners. I don't want diagonal lines from the corners pointing inwards like this:

The way I would do that is:

Decide the height of the object, but leave the square shape
Apply two loop cuts
Bevel them
Grab one side
Move it on an axis to get the shape you want


Update 3d model through blender Basically I want to start learning Blender so I have some question regarding that. So please give me reply for these questions.

If I have fbx file then can I import that file in Blender?

If importing of fbx file is possible in Blender then modification related to that model is possible?

Yes, you can modify your model in blender, after importing it from an external file supported by an import plugin (fbx is shipped and enabled by default) See the File > Import menu. Other formats could be enabled through the user preference menu, or even added to the standard blender distribution through separate plugins.

After importing, you should have a regular model as if you modeled it into blender from scratch. An then you can save it as .blend or export it to other formats.

Just keep in mind that import/export plugins may have sometime limitations, due to their update status, sometimes unsolvable differences between different modeling programs, or their own good implemetation, but in general they get better and better, in blender, in particular most widely used ones (as fbx).


Blender 2.8: dynamically set particle locations via python In Blender 2.7 it was possible to set particle locations dynamically as demonstrated in this answer.

In 2.8 particle data isn't up to date unless evaluating the emitter via the depsgraph as shown in this bug report.

This does provide up to date data about the number of particles and makes the individual particle location accessible, however trying to set this value does not update the view and seems to have no visible effect, although accessing the same particle location shows a change has been made.

In 2.7 we were able to force a scene redraw to fix this, any way to update the depsgraph or anything similar to manifest these changes?

Here's the code snippet I'm trying to get to work (requires adding a cube object named 'Cube' with a particle system that has a particle count of 50):

import bpy
import numpy as np
from mathutils import Vector

p = bpy.context.depsgraph.objects.get('Cube', None).particle_systems[0].particles

locations = np.random.randint(-10,10,size = (50,3))
locations = [ Vector(co) for co in locations ]

for pp, loc in zip( p, locations ):
    pp.location = loc

# None of this works
bpy.context.depsgraph.objects.update()
bpy.context.depsgraph.scene_eval.update()
bpy.context.depsgraph.scene.update()
bpy.ops.wm.redraw_timer(type='DRAW')

Object.evaluated_get()

In answering Get particle location using python came across this one.

Note this will work with instanced object or collection particles. Not those rendered as halo.

Test script, set object with ps as active.  Sets all particles on current frame to location (1, 1, 1)

import bpy
from mathutils import Matrix

context = bpy.context

dg = context.evaluated_depsgraph_get()
ob = context.object.evaluated_get(dg)

ps = ob.particle_systems.active
po = ps.settings.instance_object

for p in ps.particles:
    p.location = (1, 1, 1)


Cycles Render showing up white I switched to "Cycles Render" instead of "Blender Render" and my object is now fully white. I would like to render my object with it's material. I have been looking for solutions for quite some time and I'm not quite sure.

You have probably setup your materials for the Blender Render which are not compatible with Cycles. That means you'll have to (re-)create the materials for Cycles.


Weird faces on retopologized mesh does anybody know what could be causing these artefacts?

So far i have tried different render engines, using cage/no cage to bake, trying different uv seams, adding more detail, but to no avail...

!!!EDIT: so I figured it has nothing to do with baking aspect, the weird faces still persist even when no normal map or material is applied.

Here is the file with retopologized version: enter link description here

Well, it's definitely terminator problem. It's one of "problems" of Cycles render. To avoid it, you should  make lights bigger or/and add some subdivisions on model.

No artifacts with subsurf at level 1:

But if you want to export it to Unity, this problem doesn't appear in it. It's a problem of ray-traced renderes.


How to create a panel with different properties for different objects In Blender when I select an object and I change any setting, the other objects are not affected, but when I create a panel with properties from bpy.props, changing an intProperty on one changes it on the others
Look at this example:
I made a custom panel with 2 properties

I create 2 object A and B with property "Resolution" = 12, then on object A I change resolution to 20

when clicking on object B I see that resolution is 20 as well, but I want it to be still 12.
I understand that this is because I have only registered one set of properties, that are all the same, so is there a way to register different properties for each object, and create a panel that shows only the properties of the active one?
(custom ID props could be a workaround, but I would prefer to use a custom panel because it's cleaner and drivers are way worse to trigger update functions)

here there is the part of the code related to properties:
class MyProperties(bpy.types.PropertyGroup):

    sphere_resolution: IntProperty(
        name="Resolution",
        description="resolution of the sphere",
        default=8,
        min=3,
        update=updateResolution #function that changes the subdivisions of the sphere
    )

    sphere_transform: FloatProperty(
        name="Transformation",
        description="curvature of the Radial Sphere: = 0 is a plane, 1 is a sphere",
        default=1.0,
        min=0.0,
        max=1.0
    )

# operator to create the objects. Each object should have its own properties
class MESH_OT_CreateRadialSphere(bpy.types.Operator):
    bl_idname = "mesh.create_radial_sphere"
    bl_label = "Radial Sphere"

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

# create panel. Here there should be the properties of the active object, if the active object was created by the create operator, and changing a value should only affect the active object
class MESH_PT_sphere_topologies(bpy.types.Panel):
    bl_idname = "MESH_PT_sphere_topologies"
    bl_label = "Sphere Topologies"
    bl_space_type = "PROPERTIES"
    bl_region_type = "WINDOW"
    bl_context = "data"

    @classmethod
    def poll(self, context):
        # stuff

    def draw(self, context):
        layout = self.layout
        mytool = context.scene.SphereTopology

        layout.prop(mytool, "sphere_resolution")
        layout.prop(mytool, "sphere_transform")

classes = (
    MESH_OT_CreateRadialSphere,
    MESH_PT_sphere_topologies,
    MyProperties
)

def register():
    for cls in classes:
        bpy.utils.register_class(cls)
    bpy.types.Scene.SphereTopology = PointerProperty(type=MyProperties)

def unregister():
    for cls in classes:
        bpy.utils.unregister_class(cls)
    del bpy.types.Scene.SphereTopology

Easy. You would have to assign the PointerProperty to bpy.types.Object. Use context.object to get a reference. Demo based on the template from How to create a custom UI?
import bpy

from bpy.props import (StringProperty,
                       BoolProperty,
                       IntProperty,
                       FloatProperty,
                       FloatVectorProperty,
                       EnumProperty,
                       PointerProperty,
                       )
from bpy.types import (Panel,
                       Menu,
                       Operator,
                       PropertyGroup,
                       )

# ------------------------------------------------------------------------
#    Object Properties
# ------------------------------------------------------------------------

class MyProperties(PropertyGroup):

    my_bool: BoolProperty(
        name="Enable or Disable",
        description="A bool property",
        default = False
        )

    my_int: IntProperty(
        name = "Int Value",
        description="A integer property",
        default = 23,
        min = 10,
        max = 100
        )

    my_float: FloatProperty(
        name = "Float Value",
        description = "A float property",
        default = 23.7,
        min = 0.01,
        max = 30.0
        )

# ------------------------------------------------------------------------
#    Panel in Object Mode
# ------------------------------------------------------------------------

class OBJECT_PT_CustomPanel(Panel):
    bl_label = "My Panel"
    bl_idname = "OBJECT_PT_custom_panel"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "Tools"
    bl_context = "objectmode"

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

    def draw(self, context):
        layout = self.layout
        #scene = context.scene
        mytool = context.object.my_tool

        layout.prop(mytool, "my_bool")
        layout.prop(mytool, "my_int")
        layout.prop(mytool, "my_float")
        layout.separator()

# ------------------------------------------------------------------------
#    Registration
# ------------------------------------------------------------------------

classes = (
    MyProperties,
    OBJECT_PT_CustomPanel
)

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

    bpy.types.Object.my_tool = PointerProperty(type=MyProperties)

def unregister():
    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)
    del bpy.types.Object.my_tool

if __name__ == "__main__":
    register()


Animating eye texture in a head mesh I'm trying to animate a mesh with different eye textures but it's not working.

This is a texture made by me to animate but I still couldn't figure out how to do it. I've seen tutorials on the internet but they don't work to me.

You can use an addon called Animall to animate the texture.

CYCLES

Activate an AnimAll add-on (File--> User Preferences--> Addons--> AnimAll). It'll be displayed in the tools menu in the 'Animation' section.

Setup the image texture in the Node Editor. Enter the "Edit Mode"and unwrap the mesh (press U in 3d window) using the Project from view.

In UV/Image Editor place the UV island on the desired part of the image texture (note that you have to make perfect spaces between images in graphics program. In this case the images have 200 px of space between them).

Check the 'UVs' box and insert the first keyframe (clicking 'Insert').

Go to the next frame (right arrow), place the UV island on the next part of the image texture (in this case i go 200 units along x axis) and inesert the keyframe again. Repeat this process moving right.

Place the UV island in the lower row (in this case I move the uv island -600 units along x axis and -200 units along y axis)

Continue the proces and position the UV island on the last image part (of course the moving patern could be different). Go to the 'Object Mode' and play the animation (alt+A).

8.- Select all keyframes on the dopesheet (or Graph editor) and set them to Constant

You can also prepare the texture like this, so it will be easier to jump between images. Remember about doing perfect spacing between them.

Go to NLA Editor, change the action name (CTRL+LMB) and click the 'double arrow' icon.

Now you have your 'blink animation' in one block and you can place it wherever you like on the timeline.

Hope I helped.

--------------------------------------------------------------------------------------------

BLENDER INTERNAL RENDER

I'm adding an update, since Warianos wants to know how to do the same thing in Blender Internal. So here it goes:

Select the mesh you want to have an animated texture on it, and in Shading panel change the Material Mode from Multitexture to GLSL. Add a lamp (a sun lamp for example), so you'll be able to see the texture when you apply it.

With the object selected in Object Mode go to the Materials Panel. Add the material. Set the Diffuse and Specular values if you want.

Go to the Textures Panel, set the texture type to Image or Movie, then click the Open button in Image panel and load your image.

In Mapping panel set the Coordinates to UV.

In 3d window set the Viewport Shading to Texture

Load an image in Uv/Image Editor window. Unwrap the mesh using Project from View option. Enable an AnimAll addon and check the Uvs box.

Now the process looks like in my previous answer. You press Insert in AnimAll panel and add a keyframe. Then you go to other frame, change the Uv island's position and press Insert again.

Being in Object Mode, with the Viewport Shading set to Texture you can now play an animation to check out how it looks like. If you don't want the smooth transition between images you may set the Curve Interpolation type to Constant, by pressing T in graph editor window (as Cegaton suggested in his answer).

Hope it is what you wanted to know.


Auto Run Python Script from Text window I have a blend file that contains the following scenes:

• Clothing
• Compositing
• Paper
• Social Media
• Van

The idea is that guys in my office who aren't 3d literate can save a logo design as a texture file, then open this Blend file, hit render and it spits out a bunch of images showing off the logo in different scenarios.

The only sticking point is that they may need to change the colour of parts of the files so I have put together the following python script which when run allows them to just use colour pickers to change the colours.

import bpy
from bpy.types import Panel

class ExamplePanel(Panel):
bl_label = "Background Colours"
bl_space_type = 'VIEW_3D'
bl_region_type = 'TOOLS'

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

     #Paper Scene Inputs

    obj = bpy.data.objects["OfficePaper"]

    mat = obj.active_material
    if not mat:
        layout.label("Create a material")
        return

    nodes = mat.node_tree.nodes

    # Define the Specific Node
    paper_colour = nodes["Principled BSDF.001"]
    mix = nodes["Mix Shader"]

    layout.label("Office Paper Scene")
    layout.prop(paper_colour.inputs["Base Color"], "default_value", text="Paper Colour")

     #Clothing Scene Inputs

    obj = bpy.data.objects["Embroidered_Cloth"]

    mat = obj.active_material
    if not mat:
        layout.label("Create a material")
        return

    nodes = mat.node_tree.nodes

    # Define the specific node
    clothing_colour = nodes["Principled BSDF"]
    mix = nodes["Mix Shader"]

    layout.label("Printed Clothing Scene")
    layout.prop(clothing_colour.inputs["Base Color"], "default_value", text="Clothing Colour")

     #Social Media Scene Inputs

    obj = bpy.data.objects["iPhone"]

    mat = obj.active_material
    if not mat:
        layout.label("Create a material")
        return

    nodes = mat.node_tree.nodes

    # Define the specific node
    postbg_colour = nodes["MixBGColour"]

    layout.label("Social Media Scene")
    layout.prop(postbg_colour.inputs["Color1"], "default_value", text="Background Colour")

     #Vehicle Graphics Scene Inputs

    obj = bpy.data.objects["Van"]

    mat = obj.active_material
    if not mat:
        layout.label("Create a material")
        return

    nodes = mat.node_tree.nodes

    # Define the specific node
    vanpaint_colour = nodes["VanColour"]

    layout.label("Social Media Scene")
    layout.prop(vanpaint_colour.inputs["Base Color"], "default_value", text="Van Colour")

if __name__ == "__main__":  # only for live edit.
from bpy.utils import register_class
register_class(ExamplePanel)

This script, micraculously given my limited scripting experience, works fine.

The final hurdle though is that I want this script to be loaded ready for them so that they don't even have to worry themselves with clicking the Run Script button and hence having to leave the code open to the risk of accidental editing.

I have the the Register Check box checked and I have the name of the text datablock as cp.py  I have also set the preferences to Auto Execute but so far nothing works at all.

Requirements for auto running a script.

Press CTRL+ALT+U
to open user prefernces.

In the File tab ensure Auto Execution is checked.

Save User settings.

In Text editor:
Create new text block.

Copy script into new text block (ensure the script has an explicit register function note bottom lines).

Save text block as cp.py. Unlink text block. Open cp.py.

Click Register checkbox.

Save Blend file
Close Blend file
re-Open Blend file ... panel should auto run.

import bpy
from bpy.types import Panel

class ExamplePanel(Panel):
    bl_label = "Background Colours"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'

    def draw(self, context):
        layout = self.layout
        obj_types = ['MESH', ]  # add types as needed
        objs = [obj for obj in bpy.data.objects if
                obj.type in obj_types and obj.select]
        col_types = ['RGBA', ]  # add types as needed
        for obj in objs:
            box = layout.box()
            box.label(obj.name)
            # for viewport or non node colors
            if obj.active_material:
                my_mat = [mat for mat in bpy.data.materials if
                          mat.name == obj.active_material.name]
                box.label("Viewport Color")
                box.prop(my_mat[0], "diffuse_color", text="")
            else:
                box.label("Requires active material")
            # for materials using shader nodes
            if my_mat[0].use_nodes:
                my_nodes = [nd for nd in my_mat[0].node_tree.nodes]
                box = box.box()
                box.label("Render color")
                for node in my_nodes:
                    for ip in node.inputs:
                        if ip.type in col_types:
                            box.prop(ip, "default_value", text=("%s: %s" % (node.type, ip.name)))

classes = [ExamplePanel, ]

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

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

#if __name__ == "__main__":  # only for live edit.
#    register()

register()  # required for autorun


Why does my .7 solve error result in bad track? I started with my iPhone 4 footage and managed to get a solid 0.7159 solve error (using the phone preset w/k1+k2+focal length) with just 21 markers (including my new Favorite Thing, perspective markers). Huzzah!

Except when I Setup Tracking Scene - the presented solution shows the camera and the markers in an almost completely straight line, or has the camera stretched out to a ridiculous distance, covering the markers (which are in an almost completely straight line).

I've set the floor, the origin, the x axis, the scale - all to only minor adjustments.

How can I convince Blender that it's looking at a fairly broad street, not a tiny, thin path?

The problem is displayed in your screenshot.

First off the iPhone 4 has a 3.85mm focal length (part of the iPhone 4 preset), no were near 457.

Because you had a focal length that was way off, it messed up blender big time. No doubt you had Refine in the Solve settings set to adjust the K1 and K2 values. -1237926.25 is a HUGE number, way bigger then anything you will ever really need; for that matter the K1 value is way too high. The focal length and Lens Distortion values are the cause of your problem.


Rigify addon? WTG-bones? I am following this step from this link

https://docs.unity3d.com/Manual/BlenderAndRigify.html

I am using blender 2.79 and the current vertion of "Rigify addon" I am not big fan of Addon for RIgging, I prefer manual , however I am working on a project and someone recommend me this addon...

It was nice up to this lines :

and the previous line (in the manual) it says , must delete all the wtg WGT-Bone, however If I delete all the wgt... there are not bones convections...at least not "DEF" ... welll I can not see my "bones names" in my propieties display....I only see  "rig:shoulder.L" , that is the prefix and sufix for bones...but they not appears in the propieties...(when I start the this rigify process, WTG appears in the propieties) , but I am triying to use my model for Unity ,so I must deleate the WTG-Bones from the propiety.... should I am wrong?.

Based on the "... to avoid having unassigned meshes" part of your screenshot, it looks like the manual is asking you to delete the widget (WGT) objects.

This is a collection of objects at the very last layer of the 3D view window. They aren't really bones, but meshes meant to be indexed as bone shapes to make them easier to identify.

If this doesn't work, you may have to delete both the widgets and remove the links to the widgets from the control bones. I hope not, that last bit will be tedious.

To delete the widget links, select a bone and go to Bone Properties >Display> Custom Shape and click the X. Do this for every bone.

I mention this last bit because Blender tends to save these custom shapes internally, so they can appear again even if the widget object is deleted.


Dynamic detail with smoothing Is there a way for the sculpted area to smooth as you sculpt dynamic detail on it. I might be missing something obvious, but as you sculpt with dynamic topology, smaller polygons are added, but the surface is not smoothed, creating that jagged shading. I think this behaves the same way when using a Subsurf modifier put on "Simple" instead of "Catmull-Clark".

In blender:

However, Sculptris on the other hand smooths the surface and there's no problem adding more detail.

I find it that only the Snake and Smooth brush are working fine for this. Is there a way to sculpt with smoothing somehow?

If you hold down the Shift key while making a brush stroke, the Smooth Brush will become active until you release the Shift key.

Sculptris uses what people call auto-relax smoothing.

I don't believe that Blender currently has anything analogous to that feature.

There is a thread hosted on Blender Artists that has been going for a couple years now and it's topic is Dynatopo sculpting.

There are many tips sprinkled here and there if you read through the whole thing.

http://blenderartists.org/forum/showthread.php?264568-Dyntopo-tests/page249&highlight=sculpting


Aligning/joining two objects (Head/Body) with matching edge list I want to align two objects with Blender because for whatever reasons, the head was exported by another program in random orientation. I can easily generate two edge lists which perfectly fit. Knowing the edge lists it should be possible to calculate a the correct orientation of the head, right?

This is my workflow for aligning objects that are accuratelly separated but  rotated randomly. The tutorial seems to be complicated but it is actually quite quick method (if you remember how to do it :) and accurate. Unfortunately I don't know about any addon that would do that automatically.

I will demonstrate it on an example with Suzanne model so warning - this tutorial contains drastical images.

The whole idea is to rotate the model gradually by using 3 common vertices.

Rotate & align both objects so they fit to each other roughly

No we need to find common vertex pair and snap objects there

Detailed steps:

set Snap target to Active (remember, the active vertex / edge / face is the one selected the last)
set Snap Element to Vertex CtrlShiftTab
select the object you are going to fiddle with (it is the top part in our example), switch into Edit mode Tab, then Select All A and select the vertex you are going to use for the snap (now it is the active one)
enable Snapping ShiftTab or you can always hold Ctrl while grabbing instead
grab G the mesh while holding Ctrl and move it / snap it to the same positioned vertex in the second model

Use the previously aligned vertex as a pivot point, then snap the model's rotation to the vertex on the other end of the same edge. This needs to be done for each axe separately

set Pivot point to 3D cursor .
make sure you have the common vertex selected and move Cursor to Active ShiftS
select whole model and then a vertex on the same edge as previously snapped vertex (so it is active now)
press R and then X to rotate around X and snap it to corresponding vertex on the second model, repeat this for Y & Z axes (after that, double-check the mesh doesn't rotate anymore on any of these axes so it is aligned perfectly)

When we have the common edge, we can rotate model around it to make the fit complete

Pivot Point to Active Element
Transform Orientation to Normal
Snap Target to Closest
turn off snapping ShiftTab
select whole mesh A and ...
select the edge between our previously aligned vertices as last (so it is active)
rotate the mesh around normal Y axe by pressing RYY so it roughly fits the other model

turn on snapping ShiftTab and use the same rotation method as in the previous step, now it will (hopefully) snap perfectly

If you are about to join the objects (by selecting them and pressing CtrlJ), don't forget to go into Edit Mode Tab, select all A and Remove Doubles by W > Remove Doubles to merge the common vertices.


how do you make the top of a cylinder round and the bottom a hexagon i was trying to make the glass shown in the picture but i dont know how to make the top of a cylinder round and the bottom a hexagon, can someone provide me a solution?

Start by creating a cylinder (Shift + a while in Object Mode). Expand its Add Cylinder popup in the bottom left of the 3D View to give it only 6 sides. Change the Cap Fill Type to Nothing.

Next go to Edit Mode and use Ctrl + r and then float your cursor near the center of a vertical edge to preview a single edge loop at the center. Left-click to commit to the one edge loop, and then right-click to cancel the tool.

Hold Shift and select the entire bottom-most edge loop and press s to scale it, dragging the mouse out until you have a decent sized base. Left-click to commit to the new shape.

While still in Edit Mode, press a to Select All, then right-click anywhere on the mesh and from the context menu that appears, choose Subdivide.

Immediately afterwards, hit Shift + r to repeat the Subdivide command several times. You want a mesh density sufficient to create the round spout.

Tab into Object Mode and create a new Cylinder. This cylinder should appear in the same space as the first one, unless you inadvertently moved the 3D cursor between creating the first cylinder and the second. It's important that the two are in the same space.
In the new cylinder's Add Cylinder pop up, to the bottom left of the 3D View, change its number of sides to something considerably higher than the current value of 6. I chose 128.

Select the original, wide-based mesh in Object Mode and tab into Edit Mode. Select an orthographic camera front view with Numpad 1. Press 1 to go into Vertex Selection mode, then press Ctrl + b for box select mode, and drag a box around only the vertices which will end up forming the round spout. Don't include any vertices from any part of the wide flat faces making up the base. Only the vertices making up the edge loops of the spout. You will probably need to go into Wireframe mode (z key to toggle it) in order to make the needed vertices easier to see.

Next, while still in Edit Mode, go to the Object Data tab (1) of the Properties Panel, make sure the Vertex Group section (2) is expanded, click the '+' icon (3) to create a new vertex group, then press the Assign button (4) to add the currently selected vertices to this vertex group.

Tab into Object Mode. Your original, wider-based cylinder should still be selected. Click on the Modifers tab in the Properties Panel and select Add Modifier. Choose Shrinkwrap from the list of available modifiers.

In the Shrinkwrap Modifier settings, choose your newer, smoother cylinder as the Target, and choose the vertex group you created for Vertex Group. Choosing a vertex group allows you to limit the effect of the shrinkwrap to only the vertices in that group, which is helpful for our situation.

While still in Object Mode, hide the smoother version of the cylinder by selecting it alone, and pressing h. If you find that the transition between the flat sides and the round sides is a bit weird, you may have to adjust some things. I had to scale the smooth version of the cylinder down slightly. I gave it a scale value of
0.934 along both the X and the Y axis, but left the Z axis unchanged.

Finally, put a Subdivision Surface modifier on the original mesh. A handy shortcut for this is to select the mesh, and then press Ctrl + 3, where "3" is the number of subdivision levels to choose. Choose a different number for a different subdivision level. Bear in mind that this shortcut only affects the viewport subdivision level, not the rendering one.

Hope this helps.


Set wire + draw all edges on as default Is there a way to enable wire and draw all edges in Object -> Display as default?
So I don't have to enable it for every single object.

Any help is appreciated! :D

You need to get the "Copy Attributes" add-on. Here

This add-on allows you to copy alot more things to objects than with just the "ctrl+L" hotkey in blender. It also allows you to copy "Draw Options" of the selected object to the others with "ctrl+c".


Where can I connect my OCC texture on a principled node? I am creating materials with node wrangler and notice it doesn't use the OCC textures ever, so I was wondering if you could point me to where to use it.

Assuming the OCC texture is ambient occlusion, there's no direct input for it on a Principled Shader.

It's also really important to note that it's not really a sensible texture to use with the Cycles renderer.  See these other questions.  Cycles already does, using ray tracing, what the ambient occlusion texture is trying to "fake".

If you're using Eevee, then there's an ambient occlusion option in the rendering tab, though it's only an approximately, and you might not like the results.  For Eevee, a reasonable thing to do would be to use the ambient occlusion texture as a factor to mix the diffuse texture with black.  If you use it, it's probably a good idea to make sure Eevee's own ambient occlusion feature is shut off.

Using the low-res versions of this crate texture, here's the node set-up I used to incorporate the diffuse, normal, ambient occlusion, and reflective occlusion maps:

Here's the result in Eevee with Eevee's own ambient occlusion turned off.  The middle crate is shaded using the above node network.  The left crate shows what happens if you leave the ambient occlusion texture out (just diffuse).  The right crate, for reference, isn't shaded by Eevee -- it's just the exact texture (displayed using an emission node) from the reference photo for the texture.


I have an edge that does not bevel as expected, what might be wrong? Here is video of the problem: https://www.youtube.com/watch?v=9rAeFdRckN0

What might be wrong with those edge to bevel in such way?

Edit1 : Here is dropbox link to file. https://www.dropbox.com/s/d7lc0zirimptwcm/wheel.blend?dl=0

Beveling ngons (faces with more than 4 vertices) is not a good idea : results are not really predictable.

Here is a view of the inner geometry with triangles (on the right) :

The upper part of your mesh is good, but the ngon part does not allow to manipulate it well (for beveling, for instance).

So for a good bevel, you should redo this part with quads only (faces composed of 4 vertices), the same way you modeled the upper part.

Also take care of the bottom part (on the left) which is composed of 5 vertices.

To 'repair' the mesh

Go to edit mode
First of all, select all and remove double vertices (some are doubled)
Set face selection mode by Ctrl + Tab then face
Select the two faces which are ngons then delete this faces (X then 'only faces')

Set vertices selection mode by Ctrl + tab then 'vertex'
Select the vertices like below in order to count them (here 18)

Give 18 cut on the bottom part (Ctrl+R then Page Up 17 times)

Select the top and bottom vertices on one side (without the extremities)
Then Ctrl+E and 'bridge edge loops'

Do the same for the other side

Now we have this below, so simply complete the faces for the extremities.

Beveling :


Modelling cell division in blender I want to make an animation where a simple cell divides into two but how could I animate that Morphy or glooby division (organic not simple cutting into two halves or duplicating like copy and paste)? I have seen a lot of tutorials using metal balls but they are too rigid and cannot be modified to a great extent like meshes.

Edit like this video https://www.youtube.com/watch?v=FvgEaDVCKfA&feature=youtu.be#t=1m52s

Here may be an alternative to Metaballs, I remember seeing something similar done with 3DS Maxs symmetry modifier so I attempted to try something with Blenders mirror modifier in combination with other modifiers.

On your mesh that you want to split go into edit mode and select some vertices where you want there to be tension during the animation and apply a hook modifier then a mirror modifier (use a empty for your mirror modifier origin) and then apply some smooth and sub D modifiers towards the end. Maybe the animation can be baked and then soft body dynamics could be applied but I've never tried that though, just a thought.


Is there a way to have an object show up only in a reflection? I have the planet Earth set up to reflect into a habitat on the moon via a mirror set outside a window. I had to place a tiny Earth near the mirror to get this to work. From inside the habitat the faux Earth isn't visible, but I'd like to make only its reflection visible so I can take videos without the fakery showing up, and do the same thing outside other similar windows.

The ideal thing would be to be able to do this in Eevee, but Cycles would also do. Is there a way to do this?

Use the light paths node on the Earth to isolate the reflection light ray.

In this picture I have a sphere emitting light, but it is only seen on the reflection of the plane. On the right is the node set up for the Sphere. You can use that node set-up for the Earth, just replace the principled shader with your current node set up for the Earth.

Hope this helps!


How to change mutiple parts by changing just one? Let's say I'm changing the scale of one face and subdividing it and whatnot, but I have 20 of those faces. How do I just select all of them and change one so that it also changes all the others in the same way I changed the first one?

I'm making a castle, and I have a design to make, but I don't want to do it to every brick, I just want to select one, make the fancy design, and then it would be on all the other bricks so that they would all look the same.

There are several ways to do this:
Array modifier
You can use an Array modifier to do this. Use multiple modifiers to make the wall, and then model the design (or model the design first and add the array modifiers later, the order doesn't matter):

Linked Meshes
You can link the mesh data of two objects together by press CtrlL> Object Data. Note that this will make the mesh data of the objects identical, however you can still transform (scale, rotate, etc.) them independently in object mode.
Related shortcuts:

To quickly duplicate and link objects in one step, you can press AltD

To unlink an object or objects, press U> Object and Data.

Example:

Dupli objects
Dupli objects are used to display instances of an object on the vertices or faces of another object. They can also be used to display duplicates of the object in time (dupliframes) or an entire group of objects. Duplifaces are faster and use less memory than the array modifier, see Applying Array Modifier - Still instance?.
You can also use them to make an instanced array modifier (which does not use instances), giving a performance boost. See this question.
Particles
You can do pretty much the same things with particles as with dupliverts and duplifaces, however you have more control over the orientations of the instances.
Plus you can also do some interesting tricks with hair particles or particles with physics.
Modeling
You can do this to some degree with normal modeling tools (useful for some quick symmetrical actions), however for creating something like a tiled wall the other techniques are probably better.
See Mirror changes to side of cube across all six sides


Iterate through objects then parent and add material based on string search in names I've imported a model from the BodyParts3D database (http://lifesciencedb.jp/bp3d/)
It's made up of a huge number of .obj files. These have a name based on the anatomical structure/organ:

My question is whether it's possible to use a Python script to go through the objects in the scene and;

parent them together under an empty transform, according to a text string search
add a material based on that text string

e.g. FJ2574_BP48954_FMA14964_Proximal part of ileum.obj

so any object with 'FMA14964' in its name would be parented under a transform named 'FMA14964', and be given the same material ('FMA14964_mat', or whatever).

For #2, I've found this 'How to assign a new material to an object in the scene from Python?' which I could probably work out how to tweak to do what I need, but I don't know how to iterate through the objects in the scene and do a a search based on a text string

I'm new to Python, but ok in C# and other programming languages. Fairly new to Blender (mostly I work in Unity) Any help would be very much appreciated!

Use string.split.

As you are already familiar with programming, and without a test file, will run thru an example. Use pythons String.split to split the name as is into a list using the underscore as a separator.  If there are 4 members in the split etc..

import bpy
context = bpy.context
scene = context.scene

def parent(name):
    ob = scene.objects.get(name)
    if not ob:
        ob = bpy.data.objects.new(name, None)
        scene.objects.link(ob)
    return ob

def material(name):
    ma = bpy.data.materials.get(name)
    if not ma:
        # add a new material as in link
        pass
    return ma

# iterate thru all obs in scene
for ob in scene.objects[:]:
    split = ob.name.split("_")
    if len(split) != 4:
        continue
    a, b, c, name = split
    ob.parent = parent(c)
    # add materials etc.


When selecting, it is this weird select tool and I dont know how to make it select with a click When selecting, it is this weird select tool and I don't know how to make it select with a click. How would I fix this?

You are on Lasoo select. Press W to toggle through select modes until the cursor in the top left of the viewport is an arrow with a dotted box around it again (box select is default). – Christopher Bennett