Why wont my imported obj appear, it says its in blender but I cant actually see it

Sometimes when a 3d model is exported then imported, it can be imported really far away and/or really small. Its origin may be displaced. What you can do is select the object and then in the top left go to 3d cursor so you are moving the 3d cursor. Then move the 3d cursor to a place were you can see. Then select the move option at the top left and select the object in the heirarchy. then right click in the 3d view port and select: set origin> Geometry to origin. The object should be at the cursor. If you cant see it still, try scaling it up as much as possible. Hope this helps.


How to get a rocky texture throughout the mesh?

Try something like this. All I did was use a Noise Texture to slightly warp the vectors of a Voronai Texture to make the "cells" and to give them slightly uneven edges (less straight). Then I just filled in the surface detail by multiplying it again with another Noise Texture. I ran the result through the Height input of a Bump node, and gave it a bit of a gray color and a slight metallic value (to match your image).


Is Blender Cycles rendering, killing my CPU?

Cycles, by nature, is very realistic at the cost of computer power. I frequently have to click my fans into full gear when rendering Cycles, just to not go over 80˚C.
If using a cooler is simply out of the question than I suggest you reduce the number of threads Cycles uses. This may reduce the strain enough that your temperature stays within a reasonable range.
The thread count can be found under properties>render>performance>threads:

Other than that you could try baking, rendering at a lower resolution, and simplifying your geometry. As for the temperature itself, 100˚ Fahrenheit isn't hot, but I made the assumption that you are talking Celsius.
As a last note, I believe it's worth mentioning that entering render mode in the 3d viewport, is nearly as hard on your computer as just rendering images, with the main performance difference being modifiers hidden from view, and lower view samples.


Getting "experimental" true displacement to work

A UV Sphere is a better mesh to try this feature on (is made out of quads, and not triangles like the Ico Sphere and should subdivide better).

You need to plug the displacement texture to the displacement socket on the material output.

Render Feature set has to be in Experimental.

Displacement in the mesh section has to be set to True or Both.

To preview, you have to be in Rendered Mode in the 3D viewport. Other Shading modes will not reflect the displacement.  Any changes made on the settings will not refresh in real time, you have to exit Rendered Mode (go to Solid or Wireframe Mode) and re-enter Rendered Mode to update (alternatively you can press the Tab key twice).

The more subdivisions you have on your mesh, the more detailed the displacement, but it will also have an impact on the performance of your computer.

Remember that this is still an "experimental" feature, so expect some unexpected results...

click on the image to enlarge

In my opinion, given that this feature is largely experimental, I'd still use a displace modifier. Is more predictable, responsive and easier to control. The results can be previewed in real time in solid and texture mode as well. Also, setting some subsurf modifiers in the right order can make things a lot nicer looking, and with a lot more control on the number of subdivisions.
You can always apply the modifiers to make the displacement permanent, which you couldn't do using the displacement node.

Here's the same displacement, but with a displace modifier instead:

click on the image to enlarge

UPDATE:
The option was under the Mesh properties at Blender version 2.76 but in more recent versions it has been moved to Material Properties > Settings >
Displacement.


How to achieve anime-like smears in blender?

In node editor:
You could try using the displace node which moves each pixel according to an input rgb, where red is how much the pixels will move in the x direction, and green is how much pixels will move in the y direction.

(I didn't change any settings for the cloud texture, I just use the default values)

Edit:

In 3d editor:
If you want to do it directly on a 3d model in the 3d view, you can use the displace modifier.

create a cloud texture and make the size very small.
Then add the first sub-surf modifier if your model don't have enough geometry.
Then add the displace modifier under, and change the direction to only 1 direction (X, Y or Z)
Then add 1 more sub-surf modifier to smooth things out.


The good thing about comma separated values files is that they are pretty easy to read if they don't contain errors. The amount of Python you need to learn isn't too much.

I made this example file and saved it next to my blendfile:

number,long,lat,mag
1,37.9230,18.1445,3.5
2,47.1948,23.1326,0.1
3,40.9674,16.6782,1.5
4,45.1434,23.3850,4.2
5,39.4629,21.7380,1.4
6,34.7125,16.9653,5.3
7,34.3573,17.9092,3.3
8,40.9570,24.7064,4.4
9,34.9255,17.1371,3.4
10,45.9753,20.9662,0.7
11,31.0126,20.1624,3.4
12,47.6929,20.7224,5.6

My script is not elegant at all. I focused on it being readable. It can be done much shorter and prettier but not everybody is an experienced coder.

The script imports the csv file, separates it into lines and puts the values into a list.

From there it's not hard to let Blender generate circles or spheres with the right diameter and the right location.

Under Linux it's better to start Blender from a terminal. Otherwise you won't see what the script is printing. Under Windows, the System console can be toggled in the Window menu at the top.

import bpy

blendPath = bpy.path.abspath("//") # path to the blendfile because my .csv is in the same directory
fileName = "example.csv" # name of the csv

txt = open(blendPath + fileName, "r") # open the file to read
quakeTxt = txt.read() # read the entire file into a string
txt.close() # close the file
print(quakeTxt)

quakeLines = quakeTxt.split("\n") # split into a list divided by linebreaks
print(quakeLines)
quakeData = [] # this will hold the actual data

flag = 1 # that flag helps omit the first line
for a in quakeLines:
    if flag: # if it's the first time
        flag = 0
        continue # continue with the next iteration of the loop
    if len(a) > 0: # ignore empty lines
        # this is a good place to turn the strings into numbers
        quakeData.append(a.split(",")) # append the data as a list

for a in quakeData: # go through the data
    number = a[0]
    locX   = a[1]
    locY   = a[2]
    mag    = a[3]
    print("Nr " + number + ": Location: " + locX + " " + locY + " Magnitude: " + mag)
    # the print statement only works because all the numbers are still strings. That has to change if you want to use them for blender objects


How to keep a bone in place when posing/animating

This is exactly the task IK was maden for: set an IK chain from the hand to the shoulder (and remember that you can animate the influence of the IK constraint, so you can use normal FK for the others portions of the sequence).


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


Diffuse color inheriting from background

The apparent brightness of the plane depends on the amount of light reflecting off of it and into the camera. If there isn't as much light, then it'll appear darker.


is it possible to easily create this effect on a mesh i modeled from a single vertex?

with further testing all day i found the only thing that will work even slightly is adding vertexes at angles as close as possible, no form of smoothing can be done however which is unfortunate but seems to be the best way. mainly the vertexes were needed to be scaled on the z axis just above the others with faces created from it in all the areas i needed it


How to export Bone matrices for animation?

After another few days of frustration, I finally was able to make it work. Basically, I gave up on exporting euler angles, head and tail, instead, I just exported the bone matrix itself like this:

mat = global_matrix * armature.matrix_world * bone.matrix_local

And in the game's code, I use this exported matrix for computing inverse and for relative to parent matrices (by multiplying bone's matrix by inverse of parent's).


How can i shade foam along a coastline, together with a sea shader?

It looks like you're doing something like this to generate the terrain.

Regardless, with whatever method you've used it should be possible to identify the handle that affects the coastline.

So in my case I could duplicate this Color Ramp and use the current position of that handle to mark the coast, and then create a new mask on the other side of it for a foam shader mix factor.  This does have the unfortunate side-effect of catching a bunch of the terrain.  I don't know if this happens with every method, but regardless we'll fix that next.

You've said that the water is at Z = 0, and I've made sure mine is the same.  To isolate only the coast, we can take Object Coordinates and separate out the Z axis.  Run this through an inverse operation and Clamp the result.

This has given us a mask for the islands.  The jaggies are down to the level of subdivision.  I was using Adaptive so I set my Dicing Scale really low to make them go away for this screenshot.

We can subtract this mask from our Color Ramp output, also Clamping, and get the coast, at that point we can go back to the Color Ramp and adjust the threshold to taste.


Problem with partially UV-unwrapping a simple object

I found the problem.

Apparrently in 2.8 you can't just add image texture nodes and link everything up like I used to do in older Blender versions. Blender will only read a texture if it's imported through the properties panel, next to the color picker button. Thought I'd try to do the exact same steps that are shown in the tutorial (even though they result in exactly the same node structure) and it worked, but trying to build an identical node setup somehow fails...


Currently this feature is not available through the Python API, only for operators implemented in C.

The operator in your screenshot select_ungrouped() is implemented in source\blender\editors\mesh\editmesh_select.c

Operators can use a poll function to check whether they can be executed in the current context. This functionality for select_ungrouped() is implemented in edbm_select_ungrouped_poll(). In this function the message in red is set through:

CTX_wm_operator_poll_msg_set(C, "Must be in vertex selection mode");

If a message is set through this function and the operator is disabled because poll returns false, it will be displayed beneath the operator's description as a tooltip in the UI. This behavior is implemented in source\blender\editors\interface\interface_region_tooltip.c

The documentation mentions this feature in the Gotchas page.

  Blender does have the functionality for poll functions to describe why they fail, but its currently not used much, if you’re interested to help improve our API feel free to add calls to CTX_wm_operator_poll_msg_set where its not obvious why poll fails.


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


Bridge tool creating abomination instead of connected edges

First, make sure that your object has scaling applied in Object Mode (Ctrl+A).

Then, use "Smoothness" to control the connection between loops.


Bevel not beveling in some cases - message is nothing selected

You have 2 problems that prevent you to create any bevel:

An inner face that you need to delete.
A flipped normal, select all and press shiftN to fix it.

Now it works.


The presented error seems to have less to do with the blender API, and more to do incorrectly initializing the python object. You need to use the super function to properly call the parent class’s init method, but you don’t need it here anyway since you’re not changing the init method at all. Just remove that redefinition of the init method.
There may be other errors after you do this, but go ahead and try that.


Use the Principled BSDF Shader as a basis and then add in maps for roughness and normals to achieve the look you're going for. This makes life a lot easier.
You can use this tutorial as a basis. Blender Guru Tutorial
This is an example setup for a bumpy Plastic. Turn the Metallic slider up if you want metal.


Where do my rendering artifacts come from?

It's due to your camera lens start clipping setting. It's set to 10µm (micro-meter, = 0.001 Blender unit).

For some reason Blender can't render surfaces correctly when the camera's clipping start distance is too low.

Try with some higher value, (e.g. 10cm = 10 Blender unit) and the problem is gone. Select the camera, go to camera tab in properties window, Lens panel:


In that first image, you do not show what tool you are using - cannot see the error here, other than you need to be sure you are using the correct paint tool.

Second image, you have to assign a new image texture to get a slot before you can paint - simply add one and you can begin painting so long as your canvas object has UVs.


Do joined objects have to have internal faces removed for 3D printing?

In general, yes. You are not allowed to have non-manifold geometry. If you are not already, I recommend using the 3D Print Toolbox addon, which gives you tools to check if your model is compatible to print.

The proper way to combine those spheres would be with the Boolean modifier or booltool. This can create messy topology, but that doesn't matter much for 3D printing.

It is possible that some slicing programs will automatically handle this problem, but I don't know. (A Slicer is the program that actually prepares and sends the job to your printer, such as MakerBots software, Slic3r, or Cura)


Yes using the fSPY add-on. You can take a reference image, and then use the fSPY guides to model a scene based off of the objects in the picture. You can then import the .fspy file into Blender, and create a fluid simulation with it. This is the best way to do it.


How do I make an object always face my camera in the Game Engine?

Use a simple cube (or rectangle, or whatever shape bullet you want) for the physical bullet. Parent a plane to your bullet's physics object. Set the bullet to invisible, and the plane's physics type to no-collision.

To make the plane track the camera, you can use the method you mentioned of edit object > track to. However, there is an easier way. You can set a material so that it will always face the camera. On your no collision plane, add a material. You can add your bullet texture, but the only setting that matters to make it track the camera is under the material's "game settings." Select the drop down for "face orientation" and select "halo" instead of "normal." What does this do? I'm glad you asked! If, for example, you were using a picture of a tree, you could use "billboard" to make the tree track the camera with rotation only along the Z. However, "halo" tracks the camera on the X, Y, and Z. You may need to go into edit mode in your plane, and rotate it so that the plane is facing it's X axis, for the face orientation setting to work.

Here is the entire process:


You could try advanced material node. This can be  found under the input menu. Otherwise you could just add the normal map in the texture panel and enable normal map at the bottom.


Custom Fresnel with separate wavelength input

I can think of two approaches, either adjust blender's code and build your own version. You may even be able to get your changes accepted into the official blender sources.

Or write an osl script that calculates the way you want. As a starting point the official fresnel node is implemented as -

shader node_fresnel(
    float IOR = 1.45,
    normal Normal = N,
    output float Fac = 0.0)
{
    float f = max(IOR, 1e-5);
    float eta = backfacing() ? 1.0 / f : f;
    float cosi = dot(I, Normal);
    Fac = fresnel_dielectric_cos(cosi, eta);
}

And you can find fresnel_dielectric_cos() here


Cannot Replicate Shallow Lake Shoreline in 2.8

Though it seems rather over-complicated (or over-simplified, depending on how you look at it), the Principled BSDF can be used to make your task rather simple. See the simplicity of the setup below. Note that I changed the Blend Modes to play nice with the alpha. I also took advantage of the Principled BSDF to add a small amount of subsurface color.

If, however, you want to do it the "old fashioned" way, I think you'll find this node arrangement satisfactory. Notice I had to add the normal data in the form of a displacement input in this example.

EDIT - Here are some images of a working setup done in the file you posted.
EEVEE

CYCLES


The Rigify add-on still has the option to run in legacy mode (2.76b feature set) if you check the option under the User Preferences > Add-ons > Rigify. This also still rings true in the Blender 2.8 Beta.


Is there an easy way to create a corner from disconnected edges?

Supposing that you have all non-instanced cubes, with different grid size, etc... so you can't use any trick and you have to model by hand your corner, there are two operators that can may help you:

"Run the previous action" (Shift+R) with automatic merge enabled
Grid fill

I'll start by deleting the messed part and than pick one of the edge path by selecting two vertex (Crtl+RMB), extrude once by snapping to the vertex grid, repeat with Shift+R several times and complete with a grid fill with appropriate parameters.


The smoke and fluid simulations changed with the introduction of mantaflow
The settings are in Fluid.

To create the smoke emitter, or Flow.
Set the Type to Flow
And the Flow Type to Smoke.

For the Domain
Set the Type to Domain
And the Domain Type to Gas

For a simpler way to set flow and domain simultaneously, just select the object, press F3 and type quick smoke.


Blender 2.8 Lag issue on grease pencil with multiple layers. Possible temporary solution

I know what your saying, I run into a tonne of lag when animating grease pencil in full scenes. My favourite way so far to get around this is to finish of the main parts of the scene that effect your character and view (e.g Camera animation and interactive objects, then save the scene then strip the scene right down and save it again using a file name that is relevant to the file (GP animation etc.) then do your grease pencil work. Once finished save and go back to you main file create an empty and then "Proxy" the GP collection into your scene and append it to your empty. Move the empty to the desired position and render. Hope this helps


I can't see my trees through camera but I can see everything else

I think this is a camera clipping issue. Seems like your camera simply is not set up to look this far.

Select the camera and increase the clipping end value as shown below.

For further explanation see the manual:
https://www.blender.org/manual/es/render/cycles/camera.html

It says:

"Clipping
Clip Start and End:
The interval in which objects are directly visible, Any objects outside this range still influence the image indirectly, as further light bounces are not clipped."


Selecting an intersecting point in a line

As HISEROD pointed out, if you click on one vertex to select it, and then hold CTRL before clicking another, you will select the shortest path to that vertex:

If you indeed need a script solution, here it is:
import bpy

index1 = 105
index2 = 165

bpy.ops.object.mode_set(mode = 'OBJECT')
obj = bpy.context.active_object
bpy.ops.object.mode_set(mode = 'EDIT')
bpy.ops.mesh.select_mode(type="VERT")
bpy.ops.mesh.select_all(action = 'DESELECT')
bpy.ops.object.mode_set(mode = 'OBJECT')
obj.data.vertices[index1].select = True
obj.data.vertices[index2].select = True

bpy.ops.object.mode_set(mode = 'EDIT')
bpy.ops.mesh.shortest_path_select(edge_mode='SELECT', use_fill=False)


The ticket for custom normal support in BlendLuxCore was closed 2020-03-30 10:39 CEST. Basic support for custom normals is supposed to be implemented. However, the result doesn't match the Cycles render yet. The render with and without harden normals appears to be identical, only the auto-smooth seems to take effect.

Cycles

LuxCore

The following commits should have implemented support for custom normals:

4a972373996737367709309c055e74fee2b712f5
c011bd2aee91e5fa0582ebb93f499b0708a45581
07cef4d62424de340a3693126973c53864e7a335

Project file

The project does not include the HDRI. It can be downloaded from HDRIHaven.


Go to File> Export and select the file type that you need. Then save the file wherever you want to.
If you want to export individual pieces, select the piece that you want to export and repeat the process above again, but checking the Selected Only box.
You can now use the mesh(es) outside of Blender.


Just enlarge the toolbar from its right:

As you can see rapidly in the gif above, there are three display modes:

Icons in one column (scrollable)

Compact two columns (see picture below)

Icons and names in one column (scrollable also)


For me it looks like a somehow artifact of Approximate method of calculating AO. If you slower Error value in Approximate settings, you will likely get rid of this effect (and increase your baking time):

(I added Edge Split modifier here)

If using Raytrace method (like it's already described here), results will be similar, but at the same time you'll have more control over settings (actually, over baking time):

.blend


Your question is much too vague, how is your 2D shape supposed to be in 3D? I've tried a basic shape, tell me if that's what you want, I began with a half-circle as your knot is basically made with 3 half-circles:


If the Sheen effect is not enough maybe you should plug an Input > Layer Weight > Fresnel in the factor of a Mix between a Glossy and a Diffuse (or a Principled BSDF). To give transparency mix with a Translucent node before the end, the fabric will only seem transparent if you face the light source. Also maybe you should use a Wave node to create a discrete polyester fabric texture (just some parallel stripes).


Copy location keyframe of an object to a specific bone

Well, just after I posted this I figured it out. Turns out you can just Ctrl-C and Ctrl-V all of the keyframes, the trick is to set a single keyframe first on the object/bone you want to paste the animation into, and then Ctrl-V inside the F-Curve editor.


Polygons with more than 4 sides (ngons) do not subdivide well.

Instead of one big ngon on top like this:

try to fill your mesh with quads:

First delete the faces that have more than 4 vertices:

Add a few loop cuts (CtrlR) that match the vertices on the joints of your mesh.

Then fill the gaps making quads.

Your mesh should be nice and smooth now. Even with smooth shading or a Subdivision surface modifier.


How do I create a text datablock and populate it with text with Python?

Sample code creating text block and populating with scene info.

import bpy

obj = bpy.context.object # select active object

if obj:
    ntxt = bpy.data.texts.new(obj.name)
    ntxt.write("Name: %s \n" % obj.name)
    ntxt.write("Location: %s \n" % obj.location)
    if obj.type == 'MESH':
        ntxt.write("Vertices: \n")
        verts = [v.co for v in obj.data.vertices]
        for v in verts:
            ntxt.write("\t %s \n" %v)

classes = []

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

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

if __name__ == "__main__":
    register()


What about using settings like this:

In Render settings → Light Paths → Bounces?

As mentioned by sambler,
This is also possible per shader with nodes, but only in development versions newer than r58776. This feature will be available in 2.69:

  We have a global (Total Max, Diffuse/Glossy/Transmission max) control
  for bounces. It would be useful to add a ray depth control for
  shaders. This way, we can specify if a certain shader should only do 2
  bounces for example. This can help with performance and noise a bit.
  Maybe this option could also be added to lamps, so we can set lamps to
  only do 0 or 1 bounce, and act only as a fill light for example.

To control bounces per material with the light path node you could use a setup like this:

Where the highlighted value is the number of bounces for this material to be sampled (negative values will not sample it at all, letting rays straight through).

To show this, take the following render (Suzanne has the above node setup with a value of 2)

As you can see, Suzanne only appears in direct reflections (the pedestals "farther down" are empty).


Blender fail to close if a process is forked from it!

Well, I solved it with daemonizing the child process.

class serverProcess(mp.Process):
    def __init__(self, port=9012, timeout=5.0, host=socket.gethostname(), daemon=True):
        mp.Process.__init__(self, daemon=daemon)
        self.port = port
        self.timeout = timeout
        self.host = host

# many other stuff

RPCserverProcess = serverProcess(port=9010, timeout=3.0)


How do I add thickness to my cardboard cut-out image-as-plane?

I realized that - once again - I'm overthinking this. With more time away, the solution came to me.
In my above question, I identify Step #7 as the issue, but it doesn't have to be. Instead, I realize I should ignore all that goofy geometry. All that matters is I have my ugly extrude with terrible faces.
What I have is that extruded shape set at 0.009 m Z-depth (thin like cardboard). Then I put my 2D plane on it. As long as the material is close to the color of the cardboard (or dominant 2d image color), it will look just fine.
My Current Understanding of Workflow:

Process image to ensure that it has necessary alpha channel. Export a PNG.
Pull image into Illustrator and use the Image Trace option to create a simple outline around the imagery. Export a SVG.
Import Image as Plane; apply additional textures as necessary (if overlaying texture on top of corrugated cardboard texture as I am).
Import SVG as Curves; extrude to needed depth; turn to a mesh.
Place the flat 2D image 'on top of' the 3D mesh that will become the cardboard's faked-depth.
Enter orthographic mode to look at the model head-on. Make final adjustments to ensure the SVG and PNG 'match' locations, as my tests have shown that it won't perfectly match at first. Simply nudge it in ortho and you get your results.

Final note: For whatever reason, when I do this, the 2D image clips into one side of the mesh geometry. Simply adjust the placement (or flip the model over, as I have). This seems to fix it.
Thanks to all of you on my little mini-rollercoaster ride. I will treasure this moment of feeling like I figured something out... because Blender amirite..


Cycles: Texturize a feather made from particle system?

The Geometry node, which you're using, produces coordinates in world space, so the position, rotation and size of the object do affect the result. In a sense your texture is being projected, just as you suggest. Instead you should use the Texture Coordinate node.

The Generated socket gives coordinates from (0, 0, 0) to (1, 1, 1) for the bounding box of the object, regardless of the object's size.

The Object socket gives the coordinates in the object's local space.

I replicated your node setup, but used the Texture Coordinate node instead, and I skipped the Mapping node.

This image is with Object coordinates.

And this is with Generated coordinates.

The Suzannes in the images above are identical in every respect except being at different locations and rotated differently.

Consider taking a look at Bartek Skorupa's excellent explanation of texture coordinates, Manipulating texture coordinates like a boss, which goes into a lot more depth about how texture coordinates work.


Randomness is one of the hardest thing to achieve. Messing up the coordinates of simple textures might help.

You can try using a checker texture, separate the texture coordinates of one axis of the mapping, and use a wave texture to create distorted lines. Then mix that with another texture to darken some of the lines.

(click on the image to enlarge)

Then mix that that with other groups of nodes that go in different axes and with different kind of distortions and use other control (or mask) the mix

(click on the image to enlarge)

NOTE: this kinds of setups can get very complex and cumbersome, so it might be easier to pack things in node groups. Also to understand how things are working start with the checker texture only, then add texture coordinates and a separate XYZ to see the result. Then add nodes one by one to understand what each one is doing and how changing size, distortion, detail etc, are affecting the result. There are infinite ways to combine textures, coordinates and mappings and effects. Trial and error will require some time before you find something that works for you.


This isn't perfect as the shading is a bit off. But maybe you can improve on this:

(If you add a vector mapping node to the object texture coordinates you can scale the inner sphere.)

All that is necessary is the dot product into the bump node, but this causes the auto smooth shading to go away. So the color ramp is trying to add smoothing back, but not quite perfectly.


Don't use branched path tracing.

If you really REALLY REALLY want to use branched path tracing, then you need to increase your Anti-Aliasing samples. For each ONE pass on one pixel, you're doing 1024 Diffuse samples, and 2048 Glossy samples, but only 1 AA sample. Your Diffuse and Glossy settings are multiplied by the number of AA samples you use. Secondly, your AA settings define how many "passes" each pixel is given. You're only making two passes.

...and don't use branched path tracing.

Editorial: The only reason I say not to use branched path tracing (BPT) is that it's a specialized tool for solving a particular problem. Using it for a situation like this is unnecessarily complicated and creates more problems than it solves. It's common for Blenderheads to use BPT because they think of it like a one-button-click that "makes things better," but there's only one thing that BPT can do better: render faster... sometimes.

Don't worry about speed until speed becomes the bottleneck that you need to solve right now. And BPT is only faster if you know how to set it up for your particular use-case. Otherwise, it's likely to create more problems than it solves.

It's like the old adage about optimizing code "The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet." — Michael A. Jackson

Similarly, the first rule of BPT should be "Don't use it," and the second rule (for experts only!) "Don't use it yet."


My renders were not appearing in the output folder as my macintosh was not linked to an icloud account.

Between my successful and failed renders (about 2 weeks) I had deleted my icloud account and created a new one. I periodically received notifications asking me to sign into an icloud account, but since I don't use icloud, I ignored them. Frustrated, I began running virus checks, reinstalled blender and restarting my computer, but it made no difference. Finally, in an attempt to have everything run smoothly, I signed into icloud (after being asked once again).

In lay terms, it seemed apple wanted to be happy before it would let a nonnative program follow the right paths.

After signing into icloud, my renders appeared on the output folder. Hope this helps anyone else experiencing a similar problem.


You can use a python module to choose different sounds to play. The advantage of a module over a script is that a module can have variables that are reset only when the game starts while a script they will be reset each time the script is run.

To treat a text block as a python module you need to end its name with .py and enable the register option in the header. Then you add a python controller and use the text block name without the .py and the function name to run.

Now in the module you need a function to play the sound. getCurrentController will give you the controller running the script and its actuators property is a list of actuators connected to it. We can then use an index to access each item.

import bge

idx = 0

def playsound():
    global idx
    cont = bge.logic.getCurrentController()
    if idx >= len(cont.actuators): idx = 0
    snd_act = cont.actuators[idx]
    cont.activate(snd_act)
    idx += 1

The actuator list can also be treated as a dictionary, so you can choose the actuator by name -

snd_name = 'Sound' + str(idx)
snd_act = cont.actuators[snd_name]


Why a part of my mesh disappears and its untexturable?

I just played about with a much more basic mesh, mirrored in X & Y like yours, and it looks to me like the rest of the mesh doesn't actually 'exist' for UV mapping etc. until you've applied the modifier.
Safest bet is to duplicate the object (select then hit Shift+D in 'object' mode) and then apply the mirror mod on the new object, unwrap & texture that.
Then if you want to change the model, edit the original mirror-modified object, and duplicate & apply the mirror modifier again.

Here's my  test-

So the only geometry that truly 'exists' is the bit that turns orange in Edit mode, until you apply the mirror modifier, all you'll get is the same UV'd texture mirrored.
If you unwrap your model before applying the modifier, you should only see the 'real' geometry in the UV editor, so that's all the UV'd image or whatever will be applied to (the rest of the model will get the same texture but mirrored the same as the geometry).
Like this-
As you can see there's only the 'real' quater of the mirrored object in the UVs when unwrapped.

Hope this helps...


The master collection of the current scene can be accessed using bpy.context.scene.collection. You can access all scenes regardless of the one currently active through bpy.data.scenes. For example if you want to access a scene by name and get its master collection, you could use bpy.data.scenes["Scene"].collection. Alternatively you can also access them by index.

Once you have the master collection of the scene you can get all objects regardless of the sub-collections within, using all_objects. So for example bpy.context.scene.collection.all_objects would give you all objects in the current scene. You can iterate through them like this (which prints the name of the objects):

for obj in bpy.context.scene.collection.all_objects:
    print(obj.name)

Regarding your other questions:

Yes Python requires indentation to determine what part of the code is within a specific scope. I recommend using an editor that helps you write syntactically correct code.
Add-on can add their own variables using code similar to the one you described and it's precisely so that they can store custom data. They can conflict each other if the have the same name, which is why their name is usually based on the add-on and often bundle their configuration in a PointerProperty which points to an object that contains the actual variables/settings/properties that the add-on uses. This avoids adding several variables.
Correct, the scene variable just holds a references to the scene object.
Correct. I think this works (might be slightly wrong) because SceneObjects, which is the type of bpy.context.scene.objects, implements a custom __eq__ method, that allows to determine equality by their unique name. If their names are equal they are the same object.

You can actually test of lot of these interactively in Blender's scripting workspace where you have a console that let's you run these commands in Blender without having to write an add-on right away.


Mix two materials in the Blender Internal Materials Nodes

since the material nodes output is Color type you can mix them using the RGB_Mix node :


How to get "bpy.ops.mesh.select_more()" working for a bmesh?

I just needed to update the bmesh with some more parameters:

bmesh.update_edit_mesh(me, False, False)

See the reference:
https://docs.blender.org/api/2.79/bmesh.html?highlight=update_edit_mesh#bmesh.update_edit_mesh


How to render casted shadow on surface only

Cycles Render
Select the surface object, go to Object / Cycles settings and check Shadow Catcher.
In Render / Film, check Transparent.
Blender Render
Select the surface object, go to Material / Shadow, check Shadows Only.
In Render / Shading / Alpha, select Transparent.


Theme option for changing relation line for constraints?

I see your point. It puzzled me a lot, too.

Currently I found that the only way to change the relationship lines for constraints are nothing but the "Grid", not the "Wire".

But, This is really not good for distinguishing the constraint lines from the background, including grid, by doing this. It seems that they are mixed together.

I also hope it may draw dev's attention to improve this. As I said, it's really not good to tweak two different thing by one single option.


Faces appear to have an underlying mesh in edit mode

it's looks like Z-culling issue when clipping distance is too big. In this case you may:

Reduce the distance between start and end of clipping (in N-panel):

Try 2.79b or 2.79 master daily build, it have not this problem
Do not pay attention to it - it is not affects on render.


How do I smooth hexagonal shapes more into cylinders?

In edit mode, use Ctrl-R to add loop cuts to the sides of the 6 sided cylinder. Once you have an even division, select the vertices of the cap or end hexagon. Using Loop Tools addon, choose LoopTools> Circle, and the new vertices will form a circle. Repeat for the other hexagon.
edit:
Here is how I would approach it.
1. Original 2. Tris to quads 3. Delete the vert in center of the hexagon 4. ctrl-R loop cut the faces 5. LoopTools Circle to get the round 6. Extrude and carefully fill with quads


There are unused strips on the VSE. If the Sequencer box is checked that takes priority over the 3D scene render...
Uncheck Sequencer and you will be able to render the scene.

(for versions previous to 2.8:)


Update
As of this commit (will be in 2.77) VBOs are always enabled and the option has been removed from the user preferences.

Enabling VBOs (Vertex Buffer Objects) can often help performance with really high poly objects.
Enable it in User Preferences > System:


Is it possible to have multiple physics simulations in blender game engine?

If the areas do not interact at all, can you even see them at the same time? Could you completely forget about the "other" ones while you're over in one small part of the universe?

If not, and you always need to be able to see them, you could try doing things with multiple scenes. Each simulation takes place near the origin, and the camera shifts to provide the correct view of it.

I will echo GiantCowFilms: I doubt floating point is the issue here. If I remember correctly, a 32 bit float has enough precision to work at ±1cm at the radius of earth (6000km)


How do I make an environment sphere thing? (like Blender's preview)

It is quite easy. Just have a glossy material with very little or no roughness.
There you are, done!

Really? But, where is the texture?
The reflections are not part of the texture, the reflections are determined by the environment that surrounds the object, just like in a mirror.
If you add an HDR image as your world enviroment texture it will be reflected on the surface.

More info on this link:
Why does an object with a glossy shader render in black?


How do I remove all internal edges of a converted font to mesh?

You may use Limited Dissolve option. In Edit Mode select the whole mesh (A), then press X-->Limited Dissolve.

You may need to remove some remaining edges manually though.


Use Animation Playback when frames have different names

The operator doesn't expose any options you could set, but this seems to be the command it uses:

'C:\\Program Files\\Blender Foundation\\Blender\\blender.exe -a -f 24 1.0 -s 1 -e 250 -j 1 C:\\tmp\\0001.png'

There's even a step / frame jump parameter:

http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Command_Line#Animation_Playback_Options:

But it doesn't really help in your case. You need to specify every single frame:

blender -a -f 24 1.0 00_0001.png 25_0002.png 50_0003.png 75_0004.png


Calling bpy.ops.text.save() from '3D_VIEW' operator execute method

About 'INVOKE_DEFAULT'  and context override
While you can often override a context not all operators support it.
Examples of context overrides, in particular this one: context override in text editor, see also a more extensive explanation of context overriding. Avoid doing this whenever possible, there is in this case an alternative.
A more sane alternative.
I recommend that you spawn your own file save dialog - a template for that code exists. See Text Editor > Templates > Python > Operator File Export
To save a Text Datablock to disk is easy.
destination = '/home/zeffii/Desktop/file.txt'

text_reference = bpy.data.texts['Text']
with open(destination, 'w') as outfile:
    outfile.write(text_reference.as_string())


Where can I find beginner videos for Blender?

Heres the playlist I used, its well done:

https://www.youtube.com/playlist?list=PLrgQj91MOVfjTShOMRY8TLmkJ7OFr7bj6


Yeah, UV spheres aren't generally the start of great topo.  There are times when they'll work, but more often than not, they're just headaches.

Consider using what I call a cube-sphere:

I started out by subdividing my cube with 2 cuts (so I can get that center stripe), then used the "to sphere" operator (which I use rarely enough that I just call it from the spacebar search, so I don't know the hotkey.)  Give it the full factor (1.0) for the to-sphere, and you've basically shrinkwrapped your cube to the surface of a sphere.

I've got two levels of subdivision in that pic afterwards.  You can write your subdivision as you go and need more detail, but as always, it's smart to work from low detail to high detail, from big to small.  I think you'll find that a lot of your extrusions come more easily from starting with topo appropriate to what you're going to end up with.  (Of course, you can always retopo afterwards too.)


Why do meshes disappear "behind" an Empty image?

Your problem comes from the "X-Ray" object's display option.
I tried to reproduce what you described :

The object on the left has not the option checked :

The object on the right has it :


There is now an option to render using OptiX, which renders in Cycles on the GPU using the acceleration of RT cores in the latest RTX GPUs. Most recently in the Blender 2.92 update, OptiX has been modified to render with both the CPU and RTX GPU combined.


Am I limited to using primitive objects to create shapes in Blender or can I 'sketch' a freeform shape?

How to (sort of) do a CAD sketch in blender:

Add a single vertex. This can be done by deleting all the other vertices in the default cube, or enable the "Extra Objects" addon an press ShiftA and choose "Single Vert".
With the vertice selected go into edit mode and orthographic view from the desired side.
Press E to extend into the shape you want. It will create a bunch of points in the shape you like.
When you want to close off a shape, select the two vertices you want to connect and press F to automatically join them, in this case with an edge.
Now fill in the shape. Select something to fill in and press F to automatically join them, this time with a face.
Now select everything (or something), and press E to extrude them into the desired height.


armature copy rotation weirdly flips the direction

After researching this issue, I get the impression that there is something problematic about how Blender calculates rotations internally which makes rotation constraints reset bone values to zero whenever exceeding +/-180 degrees. It turns out that Blender continues calculating rotations even within ranges for which constraints are currently limiting rotations, and that these internal rotation calculations can continue after passing the constraint thresholds. What I find particularly baffling is that unchecking the For Transform checkbox for a Limit Rotation constraint stops "out of bounds" rotation values from being reported in the Transform panel, yet this doesn't actually stop the calculations themselves, which will still go on to create flips when transforming past +/- 180 degrees. This leads me to wonder what changing this setting meaningfully, operationally achieves, because it doesn't do anything to change this insufferable behavior.

I noticed in the video that the author doesn't seem to have your issue. But then again, I don't think he ever rotated the control bone far enough at any point to tell me for sure that his rig wouldn't have done what yours is doing. So it's not clear that his rig would behave differently than yours if pushed past +/- 180 degrees.

Some elsewhere have suggested creating drivers to address this problem, which seems to me like a very labor intensive workaround for something that shouldn't even be a problem. I noticed that the author creates drivers toward the end of the video, and I don't see any drivers in your file. I don't know that adding these drivers would have solved your issue, as I only skimmed the video. But I found it of possible interest that you didn't have any drivers set up before reporting this issue.

I can't find any problems with the rig itself, but I could have missed something. I have found other links to similar questions which either go without answers or explicitly report that there is no solution.

I would really like to see a satisfactory solution presented, personally.


Carve booleans are used in Blender for a long time. This library has it's own limitations and cases when it will fail and produce incorrect results. It is also very slow.

Bmesh booleans is the new implementation aiming at being a faster solver (really shows on high-dense geometries). So far it also has limitations, but devs are working on it to resolve any bugs. You can trace the progress here:

BMesh booleans (track todo's)

Bmesh might handle some cases better than Carve and vice-versa. It depends on the geometry and those cases are hard to generalize. Bmesh should be faster than Carve. You should avoid non-manifold geometry for both.

In time Bmesh booleans might (hopefully will) fully replace Carve booleans.


Credit goes to Jachym Michal
"Hello :). My bet is on flipped faces: Inaccurate Shading on Object – Jachym Michal 22 hours ago"
It's in the comments, just recalculate normals to face outside, a (selects all) -> Shift-N


How to set options before script execution

You can also register properties on bpy.types such as WindowManager, Scene etc., add them to a panel together with an operator (will appear as button) and pass the value of a global property (bpy.types) to the operator as operator property:

import bpy

class PrintSomeString(bpy.types.Operator):
    bl_label = "Print Some String"
    bl_idname = "object.print_some_string"
    bl_options = {'REGISTER', 'UNDO'}

    print_this = bpy.props.StringProperty(name="Print this")

    def execute(self, context):
        self.report({'INFO'}, self.print_this)
        return {'FINISHED'}

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

    def draw(self, context):
        layout = self.layout
        layout.prop(context.window_manager, "some_string")

        props = layout.operator(PrintSomeString.bl_idname)
        props.print_this = context.window_manager.some_string

        props = layout.operator(PrintSomeString.bl_idname, text="Print welcome message")
        props.print_this = "Welcome to Blender!"

def register():
    bpy.utils.register_module(__name__)
    bpy.types.WindowManager.some_string = bpy.props.StringProperty(name="Some String")

def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.WindowManager.some_string

if __name__ == "__main__":
    register()

(Adds a panel to the Object tab in Properties Editor)


Camera Path Constraint not working as wanted

What you say there:

  nothing moves except a dashed blue line follows the path in the exact
  way I'd want the camera to

Makes me believe that you have the Influence set to 0.

Here a visual version of what i could imagine you have.

The camera or whatever object get's the follow path constraint, follows with it's position relative to the start-point on the path. Since it's not key-framed, it's still possible to adjust the location to suit your needs.

A suggestion i would want to give you is that it might be a better idea to parent the camera to an empty and let the empty follow the path instead.
That way you can give the camera it's own constraint, for example to target an empty for easier targeting. If you then parent the target-empty to an object, it's possible to slowly focus onto the object stay with it while in motion and eventually even wander around on the object, to then finally move away from it to close a scene. (hope that tip did not burst the topic)

Happy Blending.


Change background color in Image Editor for transparent image

Use the Compositor, with this node setup:

It just takes the areas with an Alpha value, and replaces them with the color specified in the Alpha Over node.


Unable to view double bonds from PDB file

PDB doesnt support bond types  , check here https://discuss.avogadro.cc/t/pdb-file-format-and-double-bonds/2293
but you can edit the pdb file in a notepad like so :https://youtu.be/YNoow7qkwFA?t=364


How to control the particular value of the different mapping nodes

You can use this node setup :

The input value (in degrees) is converted to radians then mapped to the Z value of a XYZ Vector. Then it's plugged into one of the mapping nodes on one side, and scaled on the other side then plugged in the other mapping node.


How to discretize a 3D mesh to generate a 3D binary matrix

You're getting this because of the matrix[i][j][k]=   insideMesh|intersectsMesh line.

The "insideMesh" test is currently not accurate enough: If the cube intersects with the mesh at a certain Z height, the "insideMesh" test will also be true for all the Z (k) values below that height in that matrix column (that have the same X and Y values), since the test is based on a ray cast straight up towards (0,0,1000).

You can fix this either by replaceing the or | with and & (which might require smaller cubes but nor necessarily), or by making the "insideMesh" test more robust by checking for intersections with all 6 possible directions:

directions = [
    (0,0,1000),
    (0,0,-1000),
    (0,1000,0),
    (0,-1000,0),
    (1000,0,0),
    (-1000,0,0),
]

insideMesh = len( [ i for i in range(6) if check_raycast( c.location, directions[i], o ) ] ) == 6


Animating a mesh deformation using python

As suggested by Chebhou, the problem can be addressed perfectly and very elegantly by using frame_change_pre. I was inspired by the example that was posted here and I bring it here for the readers' convenience:

import bpy
import math

# for demo it creates a cube if it doesn't exist,
# but this can be any existing named object.
if not 'Cube' in bpy.data.objects:
    bpy.ops.mesh.primitive_cube_add()

frames_per_revolution = 120.0
step_size = 2*math.pi / frames_per_revolution

def set_object_location(n):
    x = math.sin(n) * 5
    y = math.cos(n) * 5
    z = 0.0
    ob = bpy.data.objects.get("Cube")
    ob.location = (x, y, z)

# every frame change, this function is called.
def my_handler(scene):
    frame = scene.frame_current
    n = frame % frames_per_revolution

    if n == 0:
        set_object_location(n)
    else:
        set_object_location(n*step_size)

bpy.app.handlers.frame_change_pre.append(my_handler)


strange modeling issue in simple modeling (blender 2.80Beta)

Yes it was a normal issue. Got resolved by recalculating the normal (Shift+N in Blender 2.80)

This thread describes it in detail:
Why are some faces in my mesh darker?

Thank you Duarte!


Yes, you can.  Download and install the offset addon.  You can find the source code here:
https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Modeling/offset_edges

You can find the compiled script (mesh_offset_edges.py) here: https://developer.blender.org/F100890

Put the file in your ..\Blender\2.xx\scripts\addons directory.  Then, in Blender, bring up User Preferences and click on the Addons tab.  At the bottom, click on "Install from file".  Find the file and click on it.


emission lights not working as needed in cycles or eevee

Eevee isn't a raytracer like Cycles - lights, reflections, shadows, etc. are effectively 'faked' in order to sacrifice quality for speed. This means that you can get lightening fast renders but does require some 'pre-setup' in order to get the desired results - by way of light probes.

Mesh lights (ie, Emission shaders) produce indirect light and by default Eevee doesn't handle indirect light at all.

For mesh lights you need to use an Irradiance Volume light probe. The Irradiance Volume is a cuboid which encases an area of your scene. It is not rendered itself but Eevee can 'bake' the contents to measure the irradience (emission) within that section of your scene, applying it to any other parts of your scene within that volume.

Within the Render properties in the right-hand properties panel is an Indirect Lighting section and within that a Bake Indirect Lighting button. Clicking this tells Eevee to analyse the indirect lighting (Irradiance Volumes and other light probes) which it can then use to render the scene.


Using geometry nodes, is it possible to transform vertices, that are in a specific vertex group?

It's possible and really really easy to do. You just need two nodes to make it happen
Demonstration:

Node Setup:

Note that test is the name of the vertex group. Also the vertex group should have weight of 1
(I am using blender 2.93)
To change material_index follow this node group:

Demonstration:

P.s. For it to work, U have to select the target faces(editmode)-> right click-> shade smooth them


Solution

Turn on [True Level Triggering] at the mouse wheel sensor.

How it works

The mouse wheel measures the "clicks" of the wheel (as estimation of the distance).

Frame f+0:

The sensor evaluates positive when the wheel clicked (at least once). The sensor will trigger the connected controllers, which activate the connected actuators. I guess your controller is counting. The property actuator will deactivate itself after adding +1

Frame f+1

Case: not clicked

When the wheel is not clicked within the next frame, the sensor will evaluate not positive, triggering the connected controller which deactivates the connected actuator. In case of a property actuator, it is deactivated already. So nothing happens (which is correct).

Case: clicked

When the wheel is clicked again, the sensor evaluates positive. As the sensor is already positive the sensor will not trigger the connected controllers which means the actuators remain as they are (deactivated). This is what happens right now.

When you enable [True Level Triggering] the sensor will trigger the connected controllers. Due to the positive evaluation result of the sensor the controller will activate the connected actuators. The property actuator will add +1 and deactivate itself. This is what you want.

Remarks:
I can't tell what happens if you are able to spin the mouse wheel that fast that you get two or more clicks with a frame. This should be a rare case.

I hope this helps


How to remove this distinct line in my texture?

I'm not very good at texturing myself, but it's hard to tell what's wrong without seeing a picture of the unwrap.

That said, if there are texture lines in the middle of your object, you likely a) have a UV island or extra mesh face(s) in the middle of your table surface, or b) a non-tileable texture.

a) This could be because you've accidentally created an additional mesh face in the middle  of your table, or you've somehow double-mapped the texture to the face(s) in the middle.
 - go to Edit mode (tab), then wireframe viewport mode (z), then Face select mode (3)
 -  one at a time, select each face around the discontinuity, them move them out of place (g)
     - you should see the surrounding mesh stretch to the face location, Escape to cancel, go on to the next one
     - if you move a face out of place and there's still a face in the same place, you have a duplicated mesh. Escape to cancel
       - you can probably select all faces (a) and then go to Vertex > Remove Duplicates. Or just delete the excess vertices.

if the mesh is fine, then there's an issue with your texture or unwrap

So, how big is the texture?

If it is big enough to completely cover the unwrap island of the table surface without resizing, that's great.
Otherwise, you MUST have a texture which is tileable or else you have to scale up the texture/scale down the UVs (same effect).
I.e. a texture is tilieable if each side visually matches up with the opposite side - think wallpaper. (Again, can't tell what the texture is like without the unwrap view).

If the texture is bigger than the unwrapped table meshes, you can shrink it down if you want, but not if it's smaller, without some loss in quality. Obviously better if the texture and islands are not resized at all. It's a bit difficult to tell how it will look without doing it.

If the texture is tileable or it's at least as big as the UVs then maybe you have duplicate UV faces attached to the same mesh face. I'm not sure if this is possible though. Try selecting each face in the 3d view and seeing what UVs are selected. There may be multiple UV faces that get highlighted if this is the case. But again, not sure if this is even possible.

The "line" looks to me to be a narrow strip of faces that is not attached contiguously to the surrounding mesh, i.e. the wrong texture is applied to the faces. It lines up with the table legs. I'm going to guess that you split the table top in line with the legs and extruded them from there. You probably accidentally created an extra strip and assigned the wrong texture.


A Curve>Circle is not going to work for what you want to do, a circle is a closed path and you need an open one.

Create a curve and make the circle so that the start and end point of the curve are in the same place, but do not close the path.

Then animating the start or end of the bevel factor should work fine.


How can I instance linked assets with attached armatures?

I solved my problem by trying out and want to share my solution.
Using "Duplicate Linked" is exactly what I was trying to achieve:

After rename and reparent the linked collection I could individually pose each door:

The armature, the mesh and all materials are linked to the asset library file and changes are reflected in the movie file.
Hope to help others with same problem :-)
Greetings


Another possible and slightly simpler node setup:


How can I uniformly apply an image as a texture to an object?

You might want to try the node setup shown below. Change the parameters in the mapping node to move the image around. This might not work, as it is possible that the problem is in the UV projection, but I've already solved problems like this using this node setup.
I hope this helps.


What is meant exactly by 'Deformable Mesh Area'? (context: Was Reading when/when not to use triangles)

Think of an ocean surface, various sizes of waves.
where all verticles move (try it in blender with ocean modifier).
You don't get strange artifacts with simulating that with quads
Not even if you later to decide to subdivide it.
Clean topology makes life easier, but there can be exceptions to the quads rule.
In some cases a tris might bend better, depending on the shape you might need a quad to have some bending angle divinding it into 2 tris.


Your configuration seems OK so far, but your CPU is rather weak. When rendering on GPU, some tasks are also done by CPU, the BVH for example (BVH = building the scene volume hierarchy).
Further reading: https://wiki.blender.org/index.php/Dev:Source/Render/Cycles/BVH

I'd recommend an i5 or something similar with 4+ cores. Don't try to save money on your computers brain. Also important: don't put in 16 gB of RAM as one module, it is more efficient to put in 2 x 8 gB modules to the two fastest RAM lanes on the mainboard (usually those are color-coded). When you want to put in more GPUs in the future, consider choosing a bigger PSU. 450 watt seem OK for two 1050ti, but if you double that in the future, you might hit the maximum wattage and your cards will slow down under full stress (the clock speed will be reduced to cope with the low power = slower rendering). This will also happen, when your system isn't cooled well. With two or more graphics cards, you need to pay close attention to cooling. Make sure your case is bigger than normal cases and has a lot of fans (as many as your PSU/mainboard can supply). I can't stress this point enough, I almost melted my pc last month. I'd also recommend that you put in an additional harddrive as a framestore, 275 gB is sufficient for your OS and some few programs, but when you choose to render a lot, you will need more space for your projects and renders. This "framestore" doesn't need to be an SSD. As for the SSD, you might also consider a M.2 module. This is an SSD module, that is directly put onto your mainboard. But make sure there are enough PCIe slots available, to hold an M.2 SSD and your graphic cards.

A little disclaimer: I'm not an expert, so any comments and corrections by the community are appreciated. Those are just some empirical points from my own hardware fails :-)
happy rendering!


Texture painting seams on joined/loose parts (same UVs, joined mesh)

You have artifacts caused by incorrect topology. Viewed from the side, your topology looks like this:

You have to correct the topology by joining the faces together, so that no face goes through another:

You could do it by first adding loop cuts (CTRL + R), and moving them as close to the extrusion as possible without going underneath it:

Then by aligning all vertices of those loopcuts with the extruding shape by selecting them, pressing G to move and then either X or Y to move along only one axis and on the surface of the shape. If the faces of your shape aren't conveniently horizontal like mine, you can use custom orientation.

Now it's time to align middle vertices of the base with middle vertices of the extrusion: select them one by one, press G twice, and move them along the line.

Next step is to go to Face Selection Mode (press 3), select a few faces and hide them (H). Now Select the faces of the base that you no longer need and press X, then F to remove them. Repeat this for the faces of the extrusion, that you also no longer need. Press ALT + H to unhide the faces.

Now switch to vertex snapping mode:

Go back to vertex selection mode (1), Press Z, then W for wireframe mode, select vertices of the extrusion, that are below the base's top and move them onto newly created vertices:

Press A, to select all vertices, then M, then B to remove doubles. Now your topology should be fixed. Press Z, then S to go back to solid mode.


The Multiresolution modifier doesn't work as expected

This is the Fast Navigate option.

  Fast Navigate
  For multiresolution models, shows low resolution while navigating in the viewport.

It is a viewport optimization, which is useful if your high poly model is slowing down Blender. To disable it, go to the Tool Options in sculpt mode, then navigate to the Options section and disable Fast Navigate.


I want to sort the object numbers in order

The script below will rename all objects in the scene, so:

First having a base name before '.' is named from this base name (example "Cube")
Next with the base name + their rank after the first one (example "Cube.rank")

Comments below for key points:
import bpy

objects = bpy.context.scene.collection.all_objects

prev_base = ""
index = 0
sep = "."

for name in sorted(o.name for o in objects):
    #Get the base name
    splitted = name.rsplit(sep, 1)
    base = splitted[0]
    #If the base name has changed
    if base != prev_base:
        #Keep a new base
        prev_base = base
        #Rename the object
        objects[name].name = base
        #Restart to 0
        index = 0
    else:
        #Next index
        index += 1
        #Assign formatted name
        objects[name].name = base + "." + str(index).zfill(3)


How do I add text to an object mid animation?

You can use text object (Shift+A>Text) or create a texture with no background and text on it and add it to the cube and mix color You like the text to have with cube color using Alpha channel of this texture.


Animation Nodes Error When Checking off Add-on

I saw on the Animation Node Github page the answer is to download VC_redist.x64.exe from Microsoft. Sorry, I should have read that before posting - hopefully this will help other people searching for the same issue.


Why not simply toggle off viewport backface culling?

Under the Properties Area (N Key) Shading > Backface Culling


Autocad "edgesurf" equivalent in Blender?

You're looking for the Grid Fill tool.

Grid fill is accessible with Ctrl F Grid fill or via the 3D View header > Mesh > Faces > Grid Fill.


Is there some way I can update the viewer node during background rendering to output the correct results?

It doesn't look like it's possible at this point, at least not directly through Python:

https://developer.blender.org/T54314


Follow these steps:

Open this link
Select all text and open any text editor then paste it in it.
Save it with this name space_view3d_paint_bprojection.py in Blender's add-ons folder:
Example for Linux:

/home/userA/.blender/2.78/scripts/addons/

Example for Windows:

C:\Users\%username%\AppData\Roaming\Blender Foundation\Blender\2.78\scripts\addons

Example for macOS:

/Users/%username%/blender/blender.app/Contents/Resources/2.78/scripts/addons

Open User Preferences (Ctrl+Alt+U) and under Add-ons, click Install from File. Then navigate to the file you downloaded and select it.

It should now appear in the window and you can tick the checkbox in the upper right to enable it.

If you would like to have the add-on enabled every time you start Blender, click Save User Settings at the bottom.


Are you shrink-wrapping to a single object? You're only allowed a single target object in the shrink-wrap modifier. You can duplicate and merge your objects for the shrink-wrap process; that way, your original model state stays intact.

Also, if you are using other modifiers, play with the order of your modifiers by using the up and down arrow buttons in the modifier panel. I believe modifiers occur from the top down.

Lastly, the shrink-wrap modifier can only work with the geometry its given. subdividing your sheets will add more geometry and give you a more accurate wrap.

Hope this helps!

EDIT:
After downloading your file and applying the methods I described above in a few clicks, I achieved the result you were searching for. There was not enough geometry in the 'sheets'. Also take note of the offset value in the shrink-wrap modifier. see image below:


Check if group input node was passed a value, optional default value

By default an image texture with no associated file will output a completely black value. You can use this to drive the alpha value of your background, using a "Math" node set to "Greater Than 0" in order to have full transparency when there is no image texture and zero transparency when there is an associated image texture.


As cegaton mentioned your current solution does not represent 3d space, because you don't have enough trackers. You can try the following workflow:

First enable object tracking

Try to track the head with 8-14 markers
Increase the search area of the markers, if the footage is jumpy
Solve your object track with a value bellow 0.6
Apply a camera solver constraint to the scene camera without solving it, this  should show your object solution (calculated empties) in the viewport

Align your new face geometry to the empties (trackers) or use the trackers to pointcloud function to reconstruct the head
Apply an object solver constraint to the new geometry

Now your object hopefully should move properly with the empties.


Why do multiple keyboard inputs stop playing an action?

This is because an and controller requires all connected sensors to be true to pass a signal to the actuator. An or controller requires that at least one of the inputs is true.

Think of it this way:

An and controller requires both sensor 1 and sensor 2 to be true.
An or controller requires either sensor 1 or sensor 2 to be true.

This is just boolean logic, see the wiki for more details.


How do I make my camera render more of the scene?

You can move the camera in the scene until the desired position is achieved.

To do this, make sure the manipulation mode is set to local

This will change the manipulators to use the selected object's local axis.

Then, grab the camera's local Z axis and drag it to the desired position.

Or, while you are in the camera view, you can press G to move the selected object (make sure the camera is selected first) Then, press Z once to constrain the movement to the global Z axis, press Z again to constrain the movement to the local Z axis. then move the mouse up or down until you get the desired camera position.


Animation Nodes - How do I swing in the text?

Each character follow the path of a quarter of a circle, it starts from its right side and ends at its top. So it is clear that our characters' path should be parameterized by the equation of a circle where the parameter (angle) range between zero and $\frac{\pi}{2}$ representing the right and top of the circle respectively. The equation of a unit circle whose top is  tangent to the x axis is described by the parametric equation:

$$
\begin{aligned}
x &= \cos (t)\\
y &= \sin(t) - 1
\end{aligned}
$$

Notice that the minus one is just to move the circle down such that its top become tangent to the x axis (Because we want the characters to end up at the x axis). We now have the location of each character. The orientation of the character along the z axis is just $-(\frac{\pi}{2}-t)=-\frac{\pi}{2}+t$. As for the scale, it just animates from zero to one. It should be noted that we can scale the circle to make the characters take a longer path. And of course, we are going to offset each character by some amount by adding to its x location. From all of this, our implementation becomes:

And to get the second result, one just modulate the parameter using a delay falloff:


You have a material override set in your Scene>Layer panel. (Where it says 'Material'). Hit the cross in there to deactivate it.

EDIT:

Newer versions of blender don't use layers, but "collections" so the override function is in the scene>View Layer section.

Additional info:

Where is the Layers panel in Blender 2.8?

2.8 - Is it possible to assign (override) a material to a whole collection?


How to append multiple materials from different blend files

In Blender 2.76 you'll be able to set how many directory levels to show simultaneously.

You can download the last build, though it was not as stable as release:
https://builder.blender.org/download/

It works both for system folder and blender file data

Let's say your blend files are all in the same directory.

Choose One Level and filter by material:

You'll find all the materials used in all the blend files.


Is a smaller object better for the framerate

Having a large mesh zoomed out would be almost exactly the same as a scaled down mesh zoomed in. The scaling usually doesn't effect framerate, the complexity of the objects and amount of objects on screen are the two big things that effect the playback rate. If you're having trouble with playing back at the framerate you want, try putting things in different layers and working on each piece separately, then render them all together.


Scripting a boolean modifier loop, but I'm doing something wrong

This should work for you:

import bpy
import math

# make a screen
bpy.ops.mesh.primitive_cube_add(location=(0, 0, 2))
screen = bpy.context.active_object
screen.scale = 0.05, 2, 2
screen.location = 0, 0, 2

# make a cylinder
bpy.ops.mesh.primitive_cylinder_add(radius=1, depth=1,  location=(0, 0, 2))
cyl = bpy.context.active_object
cyl.rotation_euler = 0, 0.5*math.pi, 0
bpy.ops.object.select_all(action='DESELECT')

holes = [(1, 3, 0.25), (0, 2, 0.15)]

for y, z, r in holes:

    cyl.location = 0, y, z
    cyl.scale = r, r, 1

    bpy.ops.object.select_all(action='DESELECT')
    screen.select = True  # this doesn't matter, the active object does
    bpy.context.scene.objects.active = screen

    # bpy.context.space_data.context = 'MODIFIER'
    bpy.ops.object.modifier_add(type='BOOLEAN')
    bpy.context.object.modifiers["Boolean"].operation = 'DIFFERENCE'
    bpy.context.object.modifiers["Boolean"].object = cyl  # Hey! Use this to cut the hole please!!
    bpy.ops.object.modifier_apply(apply_as='DATA', modifier="Boolean")
    bpy.ops.object.select_all(action='DESELECT')

The key is that it doesn't matter what is selected, but what is active.


How do I get all those tabs to be the same in upgrades

Those are addons. Whether they're enabled or not is stored in the startup file which is stored in your settings for Blender (e.g. for Windows: %APPDATA%/Roaming/Blender Foundation/Blender/[version]/).

When you install a new version on the splash screen there will be a "Copy Previous Settings" button. That should copy everything from the previous version and the folder for the previous version will remain just in case.

If the option isn't available (because you might have saved some settings and created a 2.79 folder), you can just delete the 2.79 folder, start Blender, and the option should be there now.

You could alternatively go into the User Preferences > Add-ons and re-enable the ones you want, one by one, but any options you might have changed then saved to the startup file will not be there.

I have also just copied the files manually. Probably not the best idea, but it has worked.


When I move Parent Bone another bone thats a child of that parent bone's object moves another direction

This is a so-called "double transformation": the bone moves the origin of the eyebrow (and all of its vertices follow) but the bone moves also the vertices away from the origin; so vertices move double the distance of what it's expected. Delete one of the two parenting (bone weight or object-bone parenting).


The head is using Material.006 for the skin except for those areas coloured dark.
The dark areas (faces) have material.021 assigned to them!

Just a note to add:
Your mesh is using flat shading on all the faces (this is probably why you are needing 61.000+ vertices just for one ear).

I would suggest you set all faces to smooth shading: in Edit mode select all then open the Faces menu with Ctrl F and choose the Shade Smooth option.


Cannot export to FBX file, does anyone know how to fix this?

I think your problem may be an invalid UVW map. Here is the developer task associated with this error. You can try two things:
Run the following code in Blender before exporting until the bug is fixed (Credit  Michael Campbell):

import bpy

for ob in bpy.data.objects:
    if not ob.type =='MESH':
        print(ob.name,'is not a mesh, skipping\n')
        continue
    print(ob.name,'\n')
    m = ob.data
    if m.validate(verbose=True):
        print("something was fixed with the mesh")
    else:
        print("mesh was fine")

    print(" and the cached custom data has been cleared to avoid export issues")

If this doesn't work, try clearing and recreating the UV map. Make sure everything is unwrapped properly.
Another thing to check is to make sure all of your objects have correct location and scale values. Some people have reported export problems where certain objects somehow got set to NaN (Not a number) and weird scaling values.
As a last resort, I would try deleting everything from your scene one by one and try exporting to FBX after each and every deletion. This may help you narrow things down and isolate the culprit of the crash.


How to create a very shallow rounded edges bowl shape in the side of a cylinder?

I would go about it something like this - it's not "parametric" per se, but it's rather easy to implement so it might be a happy trade-off. Since you only need a small influence to the "dent", I would recommend omitting the subtracting of faces and shrink-wrapping, and instead use Proportional Editing.
First step is to isolate the section of the cylinder where you want the "dent" to be:

Then add enough loop cuts so the individual "cells" are as close to square shape as possible (I take it you've already done this):

Pick a vertex in the center of your "grid" on one side (preferably one of the "cardinal" directions for ease of making the shape later). Turn on Proportional Editing (O), and select one of the edit options from the  top - I recommend Inverse Square (I know "sphere" is selected in the photo - ignore it) however feel free to try different options and see what works best for your project.

Grab the vertex (G) and move it along whatever axis it's aligned to (so it can move towards the center of the cylinder). The size of the blue edit circle controls the size of the edit influence - you can adjust it by scrolling the Mouse Wheel. Move the vertex inwards:

Final shape looks like this (with subdivision surface and smooth shading):


Is it possible to simulate an optical fiber with cycles?

if you just want to have the looks of fiber optics, faking it is a much easier approach.

But this is definitely an interesting experiment for Cycles. It was surprisingly easy to achieve the result:

A few things I learned:

the fiber needs to be a volume. Make sure the two ends are closed.
Just like a real FO, too much kink in the fiber will kill the internal reflection.
I tried to model the core(high IOR) and the cladding(low IOR) as separate geometry, that didn't seem to work too well. I just ended up using only the core (and basically using air to model the cladding material)
Render with lots of bounces. High sample value helps make the image smoother, but if the bounce value is too low, no light will come out of the fiber.

Blend File


It is called "FLY Mode"
https://docs.blender.org/manual/en/dev/editors/3dview/navigate/walk_fly.html#fly-mode
It is just another way to animate your camera. Like if you wanted to "fly" through a city.

Fly Mode -> Reference
Mode: All modes
Menu: View ‣ View Navigation ‣ Fly Navigation
Hotkey: Shift-F
On activation the mouse pointer will move at the center of the view, and a squared marker will appear – a sort of HUD...
Some of the options of Fly mode are influenced by the position of the mouse pointer relative to the center of the view itself, and the squared marker around this center provides a sort of “safe region” where you can place the mouse for it to have no effect on the view. The more you take the mouse pointer away from the marker, the more you pan, or track, etc.
Shortcuts

Move the mouse left/right to pan the view left/right or move it up/down to tilt the view up/down.

Move the view forward/backward: - WheelUp or NumpadPlus to accelerate the movement forward. - WheelDown or to NumpadMinus to accelerate the movement backward.
So if the view is already moving forward, WheelDown, NumpadMinus will eventually stop it and then move it backward, etc.

Drag the MMB to dolly. In this case the view can move laterally on its local axis at the moment you drag the mouse – quite obviously, dragging left/right/up/down makes the view dolly on the left/right/up/down respectively.

When you are happy with the new view, click LMB to confirm. In case you want to go back from where you started, press Esc or RMB, as usual.


The geometry around the eyes is deformed and bad topology makes it obvious.

Select the outer edge ring around both the eyes.

Scale them to 0 along the Y axis (in your case). In my image it is the X axis. To do this, this: S Y  0  enter.


Shortcut for operator context panel (redo panel) in 2.8?

Yes! Just press F9 or go to Edit > Adjust Last Operation, which displays the Redo Panel a.k.a. Operator Panel as a simple pop-up window after using any operator:

Quoting from the Manual:

  After an operation is complete you can tweak the parameters of the operation afterwards. In editors that support it, there is a “head-up display” panel in the bottom left based on the last performed operation; dependent on mode and context. Alternatively, you can create a pop-up with F9 which does the same thing.


The setup is quite simple.
UV unwrap your object and use the texture's alpha channel to determine the mix between a glossy shader and the glass shader.

(click on the image to enlarge)

If your texture image is black and white but does not have an alpha channel then use the color to determine the mix between the two shaders:


How to quickly select edge loop around grid filled area?

Try this:

select an outer ring

expand the selection towards the ring around the grid fill

deselect all but the ring around the grid fill, using altshift and right click on the outer ring. In your example the above selection expansion will need then to deselect 2 outer rings, I guess.


I found the answer. The problem was essentially what was described here: Volumetric Light not working on Cycles (but good in preview)
So what I did was I selected that cube that surrounds the scene, and I went into the object visibility properties and selected "Render" because it was unselected.


I found a solution.

Create two small cubes and add RigidBody to it. ( Delete rigid body on the hat).
Give two different mass to the cube.
Attached the two cubes with an "RigidBidy contrainst". And attach the hat to those cubes.

And it's work.


How to scale all axes at once using the scale gizmo

It scales in all axis when you click in between the two white rings instead of on a handle


Cant get my compositing to layer my objects quite right

The cause of this issue is the add node just before the final composite node. The node is simply adding the values of the pixels regardless of which is on top. A better way to do it would be to use the Alpha over node, although it's unclear from the images you posted if the render layers with the ships and water have any alpha information. Alternatively, you could set the node to mix instead of add, and then use the object index passes as the factor for the mix node.


Is it possible to animate a mesh's geometry without using Shape Keys?

AnimAll Addon

Yes, you can do this very easily by using the AnimAll addon. "AnimAll" stands for "Animate All" because it enables you to animate many things that cannot normally be animated in Blender.

Here's how to use it:

First, open your User Preferences:
Info header → File → User Preferences

Click on "Addons" and in the search box, type animall, then enable it by clicking on the Enable Addon checkbox on the far right hand side of the addon:
(NOTE: If you want to keep AnimAll enabled, click Save User Settings before closing the Preferences window)

Now select the mesh you'd like to animate and go into Edit mode.
Now in the Tools panel (T), find the AnimAll section and enable Points -- this will allow you to animate the vertices of your mesh:
(NOTE: If you are using 2.70, AnimAll will be in the Animation tab in the Tools panel. If you are using 2.69, it will be down at the very bottom of the Tools panel)

In the Timeline window, make sure the green frame cursor is set to the frame you want the animation to begin. Here, it's set to frame 1:

Now in the AnimAll options, click the Insert (Keyframes) button.
(NOTE: This will insert keyframes for every single vertex in the mesh, regardless of whether they are selected or not, so if the mesh has lots of vertices, it may take a while before Blender is done inserting all the keyframes)

In the Timeline window, move to the next important frame in your animation. Here, I'm moving to frame 75:

Now alter your mesh's vertices as you like:

Now insert keyframes for the vertices by again clicking Insert (Keyframes) button in AnimAll.
Now exit Edit mode and you can preview your animation by either clicking the Play button (  ) in the Timeline window or with ALTA:

NOTE: The tutorial video on this page describes how to use all the many other powerful features of AnimAll.


Create arches to form dome on ring shape

How to create a dome procedurally.

Add a Plane, go to edit mode, select all, right click > Merge > By distance (in order to get a single vertex at the origin of the world)
Add a displace modifier, set the direction to Z and midlevel to 0

Add a screw modifier, set to X, angle 90°. Now you have an half-arc going from Z = 1 to Z = 0

Add another screw primitive. Now you have a half UV sphere primitive

Duplicate the dome and remove both screw modifiers, and set the displacement axis to X. Now add a screw modifier and don't change anything. right Click in the "Strength" field of the dome's displacement modifier and choose "copy as new driver".
Paste the driver in the "Z" location of the wall object with right click > Paste driver. Now go to the "Angle" field of the dome's first screw modifier and copy as a new driver too. Right click again in the "Z" location driver and choose "Edit driver". Click on "paste driver variables" icon on the top right of the displayed variables. Change the driver settings from "Averaged value" to "Scripted expression" and type : strength* sin(pi/2-angle). That should make sure the walls are always leveled with the bottom of the dome.

Now for the circumference, do the exact same process but with the "Strength" field of the wall's displacement modifier and change the expression to strength*cos(pi/2 - angle)

Add a boolean modifier to the dome set to "Union" and a "weld" modifier. Hide the wall object.
Add a solidify modifier to the dome object for thickness.
Result :

You can go wild editing every field in the modifiers and create your custom drivers !


PyNodes API: transferring data between nodes with sockets

The way I have found to get input values is

if self.inputs['inY'].is_linked and self.inputs['inY'].links[0].is_valid:
    iny = self.inputs['inY'].links[0].from_socket.default_value
else:
    iny = self.inputs['inY'].default_value

Add calculations in the middle here then pass on output values -

self.outputs['result'].default_value = res

The key point being read inputs from a connecting node socket default value and write to our output default value for other nodes to read.

You don't need dummy sockets to store values, sockets are for connecting other nodes to pass on values. You can use property definitions to add properties to your nodes. These can be shown on your node in it's draw() without having input connections available.

If your concern is that updates don't just happen, then you've found that pynodes don't just automatically update yet. The solution is manual updates, sverchok adds a panel with update buttons and has a 'Bake' button on some nodes to do the updating, it also implements a caching system. Another consideration is to register a function as a handler for frame changes so that animations aren't an issue.

def handler_node_update(scene):
    for n in node_tree.nodes:
        n.update()

bpy.app.handlers.frame_change_post.append(handler_node_update)

There is also a nodes internal_links property to consider, it's for "Internal input-to-output connections for muting". It is a collection of NodeLinks and I guess we use something like -

self.internal_links[0].from_node = self
self.internal_links[0].from_socket = self.input['inY']
self.internal_links[0].to_node = self
self.internal_links[0].to_socket = self.outputs['result']

I have got this far from this pynodes tutorial and looking through some of the sverchok source (luxblend is another project using pynodes) with this blender wiki page about the only other helpful source of info so far.


How do I export my armature and pose library

I find it easiest to open two instances of Blender. One for the scene I am working on and
one that has the model/material/rig, etc.

You can copy from one running instance of Blender to another using the Copy and Paste keyboard shortcuts.  Ctrl-c then Ctrl-v

This works well because you can select everything that you want from a scene all at once without having to dig through Blender's file navigation dialogue.

If you transfer an object that has rigging, the armature will go with it even if you did not select explicitly select the rigging.

Materials and textures will transfer over as well.

You can use this for Light and Camera setups and probably several things that still have to be thought up by someone.

BTW.  Even though OSX uses a slightly different key-combo for Copy and Paste, Command instead of Ctrl; both tend to work because Blender was programmed to recognize both.


How to animate a soft object while it is squashed on the floor? without squash rigid meshes attached on?

You can do it this way: Select your small cylinder, shift select the big one, go in Edit mode, select 3 vertices of the big one, press CtrlP > Make Vertex Parent:

The small should follow:


How do I keep a cloth sim object inflated?

For 2.8+ versions use the cloth Pressure property under the Physics properties of the cloth object. Enable it and add a value that suits your particular object.
Make sure the geometry has enough subdivisions for an acceptable effect, and little enough that it get usable performance.


When should custom-properties be used instead of 'bpy.props'?

Definition

bpy.props need to be defined.  eg scene.myprop is not available to scripts until it is defined via bpy.types.Scene.myprop = bpy.props.BoolProperty()
It is however saved, once set in a file, and the set value can be retrieved once defined again.

Type Casting

Properties defined using bpy.props are type cast, and expect a value of that type, or are converted

>>> C.scene.my_prop = 1
>>> C.scene.my_prop
True
>>> C.scene.my_prop = "XXXX"
Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
TypeError: bpy_struct: item.attr = val: Scene.my_prop expected True/False or 0/1, not str

Custom props

scene["my_prop"] = 1
scene["my_prop"] = "XXXX"

Scope

bpy.props are defined for all objects of that blender type, for your example scene.my_prop will be available to all scenes, whereas scene["myprop"] only for the scene instance it is defined on.  I choose custom props for more "one off" usage.

Update Method

An update callback method is available to bpy.props properties.  This is a very useful tool, that is not available to custom properties.  Similar to using an "on_change" event handler.

def jangle(self, context):
    print("update called on scene ", self.name)
    # do something based on the value of "my_prop"
    if self.my_prop:
        print("It's on")
    else:
        print("It's off")
    return None # always return None from an update.

bpy.types.Scene.my_prop = bpy.props.BoolProperty(update=jangle)

UI

both can be decorated in the UI, to some extent.  To add a name and description to each.

bpy.types.Scene.my_prop = bpy.props.BoolProperty(name="My Property",
                       description="This is my bpy.props boolean prop")

and for custom props

    rna = {"name": "My Property"
           "description": "This is my custom boolean prop",
           # can also store other data that can be set by script
           # and used as a driver var
           "anyolthing": 13
          }

    scene["my_prop"] = False
    if "_RNA_UI" not in scene.keys(): #  keys() returns a list of id props
        self["_RNA_UI"] = {}

    # define the UI propeties of "my_prop"
    self["_RNA_UI"]["my_prop"] = rna

note the rna_ui dictionary can have self defined property names, as long as the data type is int, float, bool, string.  They will not effect the UI, but are a handy way to store "hidden" data.  The rna dictionary is a handy way to update the min and max and description on a per property basis, to make descriptive and effective visual sliders for instance.

rna Access

Once a custom property is set, the property name will be a member of the, in this case, scene.keys() list, or as name/value pairs in scene.items()

All bpy.props properties  will be available via scene.bl_rna.properties.keys() but only in the scene.keys() list once initialized, ie given a value other than the default.


In Align to: View mode, the cube is created as the user has the view oriented:

Whereas in World mode, the cube is created aligned with the world axes (irrespective of the user's view):

Also, make sure your transform orientation is set to Global is you want to transform your object based on world axes:


How can I apply a basic material to an object using python in cycles render?

The super-simple example is

import bpy

def mission1(obj):
    mat = bpy.data.materials.new("bacon")
    mat.diffuse_color=(0.8,0,1)

    obj.data.materials[0] = mat

obj = bpy.context.active_object
mission1(obj)

If you need to actually create and rig nodes, update your question with a screenshot of nodes you have manually created and if I have time I'll cobble together some code to build a matching node tree using python.


How can I reproduce the same mesh many times 9000 (seriously)

Every time yo find yourself doing the same action over and over, think that there has to be a better way, either by instancing, using arrays or scripts to save you from tedious tasks.

In this case creating a large number of copies of the same object can be done with the Array Modifier

Create your base object.

Add an Array Modifier.

That will duplicate the object however many times you want it. The default is on the X axis (but you can modify that).

Then add a second array to duplicate however many times you need in the Y axis (or any other axis you need)


Note that bpy.types.bpy_struct is not actually available from within Blender, it only exists for the purpose of documentation.

In Object Oriented Programming when you define a class you can specify a parent class, your new class then adds some functionality to what the parent class provides.

In blender the bpy_struct is essentially the base class for all classes in blender and provides the core functionality that is common to everything. You cannot use it directly in python but you will often use the functionality it provides in it's many subclasses that you do use.

Examples would be obj.keyframe_insert('location') or pythons standard keys() and values() methods which are implemented in bpy_struct.


This is a typical problem of some certain intel GPU's.

You could try to upgrade your drivers, or use a different render mode (GSL, Multitexture).


Fluid Simulation Not Working, updated software and have done hours of research

disable guides

change resolution division to 90

change cache type to modular, check resumable

free data

bake data

check mesh

bake mesh

you get:

blend file:


Frames will give you control on the source’s duration (in frames): How many frames do you want to use? Playback will repeat the last frame unless you choose Cyclic* (see below)

Start Frame is the frame in the scene at which the video clip will start playing.

Offset allows you to select the first frame of the video source.

Cyclic* will make the cycle of frames start over. If you want to hold a frame, before or after the specified number of frames or freeze a frame you would need to disable this box.


Blender renders in color, but I can't see the color when I edit

On the top right hand of the viewport there are four orbs.
(From Left-Right):

Wireframe. This shows the wireframes of all your objects so you can better understand the geometry they have.
Viewport Shading. This shades everything a gray color. This mode is intended to provide the artist a good view of the scene geometry and is very smooth and fast.
Texture Preview. This mode allows you to preview the texture first without actually using the render engine. It's very useful for designing materials.
Rendered View. This will allow you to view the scene using the actual render engine. What you see here will also be what you see when you actually render the scene.

Simply click the orbs to change the shading mode.
Most of the time you should be using Viewport Shading because it is fast and allows you to work quickly.


Edges with mean crease set to 1 are still rounded by a subsurf modifier

Make sure the inner edges are creased at the corners as well. For example:
With only outer edges creased

With inner edges creased

As a bonus, you might want to drop an Edge Split modifier on as well to get your object smooth and remove the stretched shades that creasing and subsurf will produce. Also see How to smooth shade an object while retaining hard edges?.


Conforming New Edge Loops On a Curved Mesh to the Curve

Select the curve object. Key Alt + C to open the Convert to menu and choose Mesh from Curve/Meta/Surf/Text or key 2. Key T to toggle open/close the Toolshelf. Check Keep Original in the Convert to dropdown. This adds a new mesh object, rather than converting the curve. This is useful because if you decide to change the curve later, you still can, without having to convert back to a curve, edit, and return to a mesh.

Select the object that you were loop cutting. Tab into Edit Mode. Key Ctrl + R to add a loopcut, position it where you like,  LMB to confirm, and immediately  RMB.
Key Ctrl + [comma] to change to Pivot point > Median point. Choose Transform Orientation > Normal. Enable Snapping and change the settings to Edge > Closest. Your 3D Viewport's bottom bar should now have these settings:

Drag on the green arrow until the loop cut snaps.


Since blender 2.67 you can write a custom pynode or use Animation Nodes as shown below:

Note: Enable cycles first to access the color of the diffuse shader and use the expression node to get correct color values bellow 1.


You only have layer one enabled for rendering, and your lamp and plane are on layer 6. To fix this, go to the render layers tab, and select both layers while holding Shift that you want to render together, and you shouldn't have any problems.


How to get silhouette with contour rendering in Cycles

Render your scene twice. First in cycles and then in Blender Internal. Leave cycles materials in BI and change the alpha to transparent in the shading setting. There will be edges only in BI. When you get both of your scenes rendered. Use the compositor with the "alpha over" node.

If you want your human to be a shadeless white, you could use a material index node in Cycles that creates a mask of your object without shadows but it will still cast shadows under image.

Node setup:

Test render: