Where do I find the equivalent of Blender Render's texture slot panel in Cycles? I'm watching this tutorial, except I'm doing it in cycles.

I'm at 21:29, and I've noticed that he has a panel with texture slots in it..

I do not have this panel though..

It could be because i'm using cycles, or because I'm using a far newer version of blender than him.. Can anyone help me figure out how I'm supposed to create the 3 texture slots without the panel?

Switching to the cycles render and then to the blender internal render removes the texture slots. The video also mentions that they are using blender render and not cycles.


BSDF options not availble in texture I am learning Blender and I like to search tutorials but on some steps, I need to use BSDF but I have this:

Is there anyway to change this?

You have your render engine set to Blender Render. Set it to Cycles instead by selecting Cycles Render in Info > Header (at the top of the window by default):

See How is Cycles different from Blender Internal? for more information.


Alpha semi transparent issue I downloaded a model of the game FF7re,after adding alpha texture,the part supposed to be transparent can still be seen.

Also,the normal tangent creates weird effect(the right picture).I am new to blender and I guess it might be some error settings because I heard it doesn't go wrong in maya.
Here is the packed blend file https://drive.google.com/file/d/1XWDHbqCjwzVMJ0q8tFMpTxiwGTRac7p2/view?usp=sharing

I just request access to your file,
but I think the issue is from material setting
you should switch the Blend Mode to Alpha Clip


What do the coordinates in a RGB-Curve mean? Is the curve a representation of a function which describes y = f(x) where x is the input as composite or R,G.B channel and y is the result where x and y are in the range 0..255?

In case that is true, how does the vertical graph (D) perform a posterization as described in the Documentation on RGB curves ?

A) Lighten B) Negative C) Decrease Contrast D) Posterize

The coordinate range of the RGB curves is [0, 1]. The RGB values in Blender are always in [0, 1] range, where 0 is is no intensity and 1 is full intesity of the color channel. Otherwise you are correct. The curve represents a function which maps input values (x axis) to output values (y axis).
The vertical curve (D) does the following: It manipulates the combined color values (note that the C is checked at the top of the RGB Curves window). This means the curve is applied to all channels individually. It maps all R, G and B values that are smaller than 0.5 to 0 and all that are greater than 0.5 to 1. So the color (0.8, 0.6, 0.2), a light ochre, would be mapped to (1.0, 1.0, 0.0) which is pure yellow.
If you apply this curve to an image the R, G and B values of every pixel are mapped to either 0 or 1, resulting in 2³ = 8 possible colors. Reducing the number of possible colors in an image is often called posterization.
If you want posterization with more than eight colors you could add more steps to the curve. Here is an example of a curve that will map an image to 3³ = 27 colors.

Apart from the combined channel you can of course also manipulate the separate R G and B channels by clicking on the on the corresponding button on top of the RGB Curves window and modifying the curves of the channels. The curves of the separate channels are applied AFTER the curve of the combined channel.


Bug? Voxel Data Animation Issue (Still Frame Number Keyframe not rendering) EDIT: I found a workaround to this (see post below), however, the keyframe input with Still Frame Only, does not work. So I can only setup a scene of duration my number of frame in the texture.
Any clue how to work around this?

Original Question:

Either this is a rendering bug, or I'm missing a critical step texture wise.

I am trying to render a Time Voxel Data set.
I have my 8 bit RAW file, with time series as Still Frames.

When I select a still frame number it works just fine if I render one frame using F12, or Render (see image). So I know my texture file is good.

If I add Keyframe animation, the keyframe link works (see GIF), but then if I click on Animation to render the movie it renders all frames with the first texture and does not load the other frames (it doesn't take into account the key frame change on the Still Frame Number I guess?)

Anyone knows what I am doing wrong ?

PS: I'm using BI rendering, as voxels aren't supported in Cycles yet.

Sorry about this, I figured it out.

It was my own mistake

I checked the option Still Frame Only.
To anyone reading this, MAKE SURE IT'S UNCHECKED

Edit: I could not find any information about this online so I made a tutorial.
https://hackmd.io/s/rketOixDG


Is there a way to set the radius of an edge loop exactly by typing in a number somewhere? New to blender. I am trying to adjust the radius (or diameter) of various edge loops on a cylinder. I know that I can do this via selecting the edge loop and using keyboard shortcut S. But is there a way to display the radius of an edge loop in a toolbar so I can just punch in a number and have it be the exact radius or diameter that I want?

If know the current diameter of the loop, you can scale the whole loop by x/d, where x is your new diameter, and d is your current one.

To determine the current diameter, you can use the Measure tool in the 3D viewport. Set the snapping mode to Vertex and Click+drag between two vertices on opposite sides of the loop. (It appears that even with snapping enabled, you still have to hold the Ctrl key to snap with the Measure tool.)

Once you know the current diameter of the loop, select the whole loop and scale by x/d.

For instance, if you want the final diameter to be 6.5, and your current diameter is 3.60979 (as in the example above), you can scale the loop by 6.5/3.60979, or 1.80066. Press S to scale, and type the value.

Note: Because of the way Blender parses math during operations, you may not be able to type 6.5/3.60979 during the operation. You either have to calculate the value beforehand and type the one number (1.80066), or you can scale twice, once by 6.5 and once by 1/3.60979.


Texture distorted on UV unwrapped face I am not sure what I did here. I have unwrapped this face and in the UV editor you can see that it is covering the entire thatch part of the quad but there appears to be an invisible diagonal line distorting the texture:

What's going on here? There are no additional vertices on the face that I can see.

The diagonal line is caused by unproperly scaled UV coordinates for the face. Original face resembles trapeze where the bottom parallel line is longer and the top one - shorter. In order to avoid any distortions of the texture the UV map for that rectangle should also have those forms - one side shorter than the parallel one.

If scaling unchanged UV map you'll notice how it distorts:

The easiest solution would be to unwrap again in order to restore original proportions. However you can scale those edges on the map to roughly respect original ratio as well.


How to add bumpiness to a car/roller coaster motion? How would one add bumpiness/bounciness to a motion animated in blender. For example, if I were to model a car moving on a road as a POV or a roller coaster from POV. I am currently working on a roller coaster, but I am asking this as a general question, how would one add the random bumpiness to anything moving on the road/tracks ?

You could do this by adding the noise modifier to you animation.

1) Open the property’s tab in the graph editor and select the animation you want to add the bumpiness to
2) Go the modifiers tab and select noise

You can read more about the noise modifier and other fcurve modifiers here

Note: Don’t add the modifier to the f-curve that controls the direction your object is going. For this particular problem add keyframes to your Y and Z locations of the car (assuming that car is moving along the X direction of the path) and then add noise to f-curves for Y and Z locations.


How do I properly work with the grid I'm working in centimeters because that is what UE4's unit scale is. My problem is when I scale a wall segment to be [304.8cm or 10ft] I'm no longer aligned to the grid properly. Am I going to have to scale my wall segment to be [274.32cm or 9ft] to stay aligned to the grid and just make a separate piece that is [30.48cm or 1ft] to get the 10ft the wall i want? The building I want to model is 30ft wide so i was attempting to make 10ft wide modular wall segments. I'm new to all of this so sorry if this question is dumb.

Just choose imperial in the unit setting panel. By doing this, the grid and all length system will give a proper behavior if you use imperial.

There is no different between imperial and metric. But if you want to cooperate with others, start in metric unit will be a better choice in my opinion.


What is the max length of names in Blender? Is there any max char length of names in Blender? I'm storing node names, material names, shape key names etc in a DB and need to setup the proper max length of the DB char fields.

A test suggests that the longest name that an object can have is sixty one characters. I determined this by using the default cube, and giving it the name

  howlongof_anamecant_hiscubeob_jecthavea_nywayaques_tionerasks_a

A material name has the same parameters, leading me to suspect that the same name length is the default for any internal name.

Although you did not ask it, I believe that the total path name of a Blender file is OS dependent, and in Window 7 Professonal 64 bit, is about 256 characters.


Creating a python script that will add objects in fixed time intervals I want to create a python script that will add objects at a fixed time intervals. So for example, when I run my script, I want to add a cube, and 1 second later I want to add another cube at a different location and another second later I want to add another object. I tried using the time.sleep() function, but I found out that I can't use that in Blender, because when I do that, the script adds all the objects instantly after the time has elapsed. This means that the interface of blender can not be updated to accommodate for the time.sleep() delay. Is there a method where I can visually see each object being added to the scene and after a certain time another object and so on, and not all simultaneously?

What is another approach that I can use to accomplish this?

I found a potential solution here: https://blenderartists.org/forum/showthread.php?246876-Python-time-delay-within-script
Based off what I see, it looks like blender only has one thread which is why your script wasn't working the way you expected

(Note: I found it via Are there any other script delays besides sleep?)


View reference image in Wireframe and solid view I am modeling using a reference image. The image is behind the model and I need to see through the model, i.e. have the model in wireframe but the image in solid. Is that possible? I am using mac and Blender 2.9.

Two ways (or more?) to do it.
Use empty images
Add an empty image, it will be rendered as image even in wireframe mode.

Use image as plane
But in preview or rendered mode, limit the viewport display of your model to wireframe:


why are my faces in the cloth simulation going haywire i was following the blender guru couch tutorial , but as soon as i started sculpting the cusion the cusion went haywire , can anybody tell me the solution

i solved it , i had not applied the modifyiers


I made my viewport background black and dont know how to change it back While I was working accidentally got distracted and pressed some keys not sure which ones... I only saw a menu pop up for a second and then suddenly my viewport background became black.

Not sure what you did, but a good place to check is in the World Properties Tab. The settings I have highlighted are the defaults - make sure yours match.


I can't seem to figure out how to make these windows efficiently This is what I'm trying to replicate:

I made the shape of the station but I'm stuck with the oval windows.
Thanks in advance!

Create a cube, subdivide it (smooth), cut it in half, select its middle edge, bevel it, select the bottom half, drag it down.


Animating cape (Blender 2.79) I am trying to do an animation that involves a cape. I decided I would try to use the cloth simulation but I ran into an issue. My normal method for animating with a character involves the character to be in one spot in one frame, and then the next frame they are in a different location. I decided to test this with the cloth simulation to see how it would react. Unfortunately, the jump makes the cape go crazy.

Here's a download for the file: http://pasteall.org/blend/index.php?id=52662
What I want is for the cape to stay roughly in the same position before the jump. What would be the best way to achieve this, or is there another way I could animate the cape?

Holy smoke! You need to slow down the jump a lot! If you make the cape a more solid material, and slow down the jump a lot (Maybe to 5 frames). Also, what would make a better simulation would be to make the cape facing the opposite direction of the jump. AKA, if you jump -5 on the x axis, set the cape to be pointing towards the positive side.


Using Physics vs Rigid body Animation I'm having an absolute fail at the moment.
I'm trying to do a very simple golf club swinging and hitting a golf ball. Before proper modelling I was experimenting with bits and bobs and failed miserably.
I'm thinking that the golf club will essentially be a cube for the head and cylinder for the shaft. Then joined together.  For now, i would like the golf club to then rotate around top surface of the cylinder/shaft and as it comes down the "cube" hits the ball...

I thought i could do physics with club as active element with rigid body contstrained to an empty on the top surface to cylinder/shaft. I.e. the club would fall but teh top of the shaft would be fixed...  However, every combination i have done results in whole club just fallling down.

I could animate it with start position and finish position of club but feel it wouldn't give real dynamics as well..

First of all, does anyone know why my physics wasn't working and it was all dropping down.
DOes anyone have opinions on when to use the phyics rigid body vs animations..
Thanks
Richard

Turned out you needed an empty  and a separate object to "link it to"


Can't select vertices of different meshes in edit mode why can't i select two objects in edit mode?     I am trying to make a face from two different meshes but can't perform the action

Distinct objects can't share faces. If you're using blender versions before the (currently Beta) v.2.80 they can't even be edited simultaneously in Edit Mode.

If you need to make two meshes a single object, in order to be able to bridge vertices belonging to both of them, then in Object Mode select both and Join Meshes (CtrlJ). Then Edit the newly created joint object.


(v2.90) Gradual vertex group shrinkwrap? On this padded-shoulder suit jacket I'm making, I use Shrinkwrap with vertex groups to tightly fit only the sleeves, since the body of the jacket has a good fit already. However, everything in the vertex group is instantly 100% fitted to the arm--is there a way to taper the fit with just the Shrinkwrap modifier? (I somewhat achieved what I wanted via Bridge Edge Loops, but I may need a better explanation of its features to use it well.)

The influence of a Shrinkwrap modifier is weighted by its target vertex-group, if it has one. All the usual tools in Weight-Painting are available to  modify the vertex-weights.. blurring.. normalising..

Once a group exists, and if at least one of its vertices is selected, vertex-weights can be set in Edit Mode, for more control.


Boolean modifier difference not engraving correctly I am trying to make some custom chess pieces.

I am just trying to engrave some images onto the chess piece but when I use the boolean difference modifier, the piece goes crazy and doesn't really engrave it properly.

It seems to cut out faces weirdly and I also have to align the pieces up a certain way, or it won't even apply the modifier at all.

I am trying to figure out how to attach the blend file, but I can't find the button.

Any help with this would be great please!! Complete blender newbie here :(

You have some problems because you need to clean up a bit your meshes:

Select your symbol object, go in Edit mode, select all and W > Remove Doubles.
Also press X > Limited Dissolve.
Select your cylinder, go in Edit mode, select all and W > Remove Doubles.
Give your cylinder a Boolean modifier, choose Operation > Difference, and select your symbol as Object.
It works (well, it will need a bit of topology work)


No UV coordinates Substance Painter Help me with my problem. I cannot solve it myself therefore I am asking you for help. When I made my model, I made the UV after all this I decided to make textures in substance painter, but this message appears in the console.

I had similar problem.

So i had done the mesh in Blender, and UV unwrapped it as well. Export, and same error in Substance Painter.

Solution was to while you export in Blender, be sure to check the Selected Object, and prior to choosing File > Export, be sure to either select all objects in the scene you want exported in the OBJ/FBX file, or delete everything else in the scene.

As I understand it, when you export the FBX or OBJ in Blender, it takes every single item in the scene (meshes, hidden meshes, cameras, stuff like that), and while you have the mesh you wanted to put in Substance Painter, you have all the other objects there as well.

In my case, I had some duplicates on separate layer for "backups", which came with the FBX into Substance Painter, even though I chose the mesh in Blender 3D viewport, I didn't have the Selected Objects checked in export properties.


Is it possible to hide an array individual instance whitout applying the modifier? So, let's say I have an array of a cube in X axis... So I would have 10 objects along X, for example, and I want it not to show the 3rd and 4th generated objects.
Is there anyway to hide this objects without applying the modifier and then deleting or hiding them?
I've tried the mask modifier but it seems only to work on the original mesh and not the "created" ones.

If the array modifier isn't to be 'Applied' your best solution would probably be a straight out case of masking.
.
The clips above are using masks which enclose both (hidden) monkeys entirely so they won't be seen from any angle.  If the cam is to be stationary however, a flat plane mask in front of each monkey should do.
Masking is a subject all it's own and beyond the scope of this question, but basically a mask is a flat plane or a cube or any object that will cut a hole into any part of the scene.
In our example monkeys 2 & 5 plus the green ground plane that's underneath and behind them will be cut out of the rendered output.
To replace the green ground plane you use the same camera to render a separate video of the ground only. (the monkey array and masks are temporarily removed or hidden)
A single frame would be all that's necessary when the cam is stationary)
Make sure to use the same codec for each render.
Both rendered outputs, the one with the holes and the one with just the ground, are rendered using (preferably) LOSSLESS video and those clips mixed in the VSE.  The holed version must contain an alpha layer so the holes will be transparent, not black.
Rendering to a .png image sequence with an alpha layer is one option and it's default 15% compression still works quite well.
The ground plane version is laid into the VSE's bottom strip and the holed version above that.  Set the latter's properties  to "Alpha Over". (press N)
When mixed and rendered, the holes will allow the underlay (the ground plane version) to show through and there'll be no monkeys.
The same is done for the shadows.  They appear on the original ground plane but won't be in the ground-plane-only version so when the masks are switched on, they'll disappear also.
A flat plane mask just above the ground is all they'll need.
Switching the masks on and off in the Outliner will switch the holes on and off.  When on, the two monkeys and shadows will be cut out and disappear.


I want to make inset face planar I make left geometry using inset faces(using 'depth' option) and after many tasks I want make inset face planar like right geometry(removing only 'depth' effect and moving only inner face).
Is there any tool for me?

Keyboard Period . > Set pivot to 'Active Element'
Select center face, (the one to be moved,) Header 'Transform Orientations' dropdown > '+' create a new transform orientation from it
Ctrl Numpad + expand the selection to include the rim.
Keyboard 1 go to Vertex mode
Shift LMB twice, Deselect and select one of the rim vertices to make it active
S Z 0


Why do similar UV islands rotate differently when unwrapped? I have a simple model that is symmetrical on the Y axis. When I unwrap it, with the entire model selected the two identical sides do not share the same rotation:

If I de-select the middle UV island (the long band of quads) and unwrap, I get a more reasonable result:

How come?

Blender by default uses a pretty outdated algorithm for island packing, it doesn't account for cavities in shapes, it creates a bounding box and disregards the rest and also it really doesn't care for angles much, it only looks at optimal solutions, if it's a square, it'll be packed properly, but if it has cutouts or beveled corners blender may align it to those in order to pack it more efficiently (at least according to the algorithm) So there are a couple of factors here:

First your third longest island is touching both sides of the UV space (I marked one visible side by a vertical line). Since it's touching the sides Blender can't scale other islands any more so they're stuck at this size, really their position doesn't matter much it's still very inneficient.

Second factor is Blender's default algorithm doesn't have good tools for evaluating such situations and the efficiency of packing here, if you're looking only at the bounding boxes areas it makes sense to align the second (lowest UV island) to the angle it aligned it to.

This sounds really complicated but it basically means that if you cut the longest segment into a few smaller ones, it might fix it, if it doesn't you might try unwrapping a single poly, pinning it and unwrapping the whole island to fix rotation.

When you're packing you have an option for rotation. But in general if you'd go with a different algorithm that accounts for cavities, simplifies the shape better (or at least looks at 3d angles) you wouldn't have this problem. It is being worked on I read but I have no idea when will it be integrated

There are two good addons for better UV packing that may make packing later much easier but you still need to unwrap it correctly first.

https://gumroad.com/l/uvpackmaster

https://gumroad.com/l/UVShotPacker

If you have any questions let me know


Rendering a stereoscopic image in Blender 2.77 In am interested in setting up cameras and rendering settings to create a stereoscopic image or animated scene.

I have found easily how to export one image where the red and blue channels are slightly off (which is good for stereoscopy that involves red/green glasses).

But what I am trying to achieve is stereoscopy that can be looked at without glasses, for a short period of time, by crossing one's eyes. Such as this image, in which the left and the right views are combined in one image (courtesy of Wikipedia):

I have found stereoscopy settings in the right-hand side menu of the viewport, as well as settings in the Scene properties panel, but my various attempts didn't result in two images side-by-side being produced, but always them overlapping.

The closest I have gotten to what I'm trying to obtain are these settings in the Camera panel:

I quickly run into the limits of the two fields and the resulting images are not rendered with their own colors. The angles of the cameras are also hard to figure out.

Ideally, the two left and right views would have all their colors, and be exported as one image side-by-side. This way, only one image would be exported for each frame in case I create an animation with this technique.

OK, after some fumbling around I found a workable, if a bit hacky, solution for this.

The main issue here is that Blender's compositor, according to this question,  was designed assuming all frames and image are the same sizes, and thus wasn't really made for handling different sized renders or composing images of random dimensions.

Anyway it's a bit of a involved process that will rely on a three scene system Scene A, Scene B and scene Size

Create you scene Scene A regularly (set up your render objects, meshes, lights, etc)
Make sure you add all objects to a certain group with Ctrl + G (that we shall call for the sake of example Group) including lights but excluding your camera objects
Make sure this group's center is at the scene 0,0,0 coordinate
Create your camera object wherever desired but do not add it to the group
Set up your render size and render preferences all as desired
Now add a new scene Scene B to your blend file using the option Copy Settings

In the new scene add a new group instance of the previously created Group
Make sure this group instance center is also at the scene $0,0,0$ coordinate
Go back to Scene A select your camera object and link it to Scene B by pressing Ctrl + L > Make Links > Object to Scene > Scene B
Go back to Scene B and select the linked camera and make it's object unique by pressing U > Object. This will keep the camera settings linked and in sync with the previous one, but allow you to move them independently.
Now Place this camera as many units to the side as desired. If you want them both centered, you may want to consider moving one $X$ units in one direction in Scene A and the other one $-X$ units in the opposite direction in Scene B. If they are somehow rotated in global coordinates you may double press X > X to move them in local $X$ axis.

Your scene should now be setup, now you need to setup the rendering system to automate image assembly.

Add a third empty scene called Size using the New option from the menu. This scene will only exist as a hack to setup an image size. Disable everything in the render layers so it will render instantly. The only important thing to do here is to make sure you setup render size double the width of the previous Scene A and Scene B.

Say if scene A and B have both a rendering size of 800 x 600 (and this must be kept in sync manually) scene Size must have a rendering size of exactly 1600 x 600 so images can be correctly combined side by side.

Add a camera to the scene Size (anywhere is fine, it won't be used much anyway) and set it as active.

Now you must specifically set up compositing in scene Size and configure your compositing nodes as shown bellow so Blender will automatically fetch the renders from the other scenes and compose them into one large stereoscopic image.

You must always render from scene Size from now on to obtain your stereoscopic images automatically, and you will probably have to update each scene's render manually from the little rendering buttons in the nodes themselves (instead of just pressing F12) to render from other scenes, otherwise Blender will probably render them in the incorrect size because it was never meant to render this way.


Bevelling concave curve part results in buggy mesh I want to create some extruded, bevelled letters, and thus have created letters with the Font tool, then converted them to curves.

I have an issue with the letter B, which creates a buggy mesh surface near a concave curve point (selected here).

As soon as I bevel this object a little, the curve part starts to get modelled badly:

There's indeed only one curve vertex, not multiple at the same spot (I thought that might have been the problem). I don't find a way to easily fix this; the bevel should of course not create such a weirdly sticking-out part.

Did I miss a bevel option? Do I have to set sharp edges or something?

What you are seeing are shading artifacts from intersecting geometry.

Very tight sharp corners always cause problems when beveling in graphics software in general, since the software can't automatically handle these hard corner-cases cases unless it is specifically programmed to, or an option exists to clip/trim or extend said bevel options.

Blender has no special tools to deal with these so they end up self intersecting.

I usually solve it with the Offset modification available to the left of Bevel value.

Since beveling offsets the curve "outside" by the same amount of units used as bevel factor, all you have to do is counter this by using that value as a negative factor for offset so Blender "insets" the growth.

Additionally you may want to add an Edge Split modifier to your curve to avoid smoothing artifacts or errors.


Driver Expression Interpolation I have an object that has a driver on the Y rotation. I want the driver to rotate the Y from 0 to 360 degrees in relation to another object's size from 0 to 1.

I usually do this in after effects using a linear() function. What would be the correct expression to make the scale values of the other objects (0 - 1) translate to 0 - 360 rotation on the other object.

Rotation as far as drivers are concerned are in the Radian Units not Degrees, even though on the interface, this is probably what you are used to seeing.

so for the scale (x/y/z) formula it would probably have to look something like the following:

var / (2.0 * 3.14157)


How to stop independent actions on multiple armatures from fighting with each other It's a little hard to explain, so I've created a video to accompany it.
I'm just trying to get the basics of animation actions in blender, but am coming across some nasty problems, that aren't expected (to me).

When I have multiple armatures under one action (move up), and then try to create a second action (move down), it seems that just selecting an armature changes the action in the action view, and even when the channels are locked, the first action is destroyed after I've finished moving the bones for the move-down action. It's as if multiple armatures aren't supported or conflict if used in two actions sharing the same timings/keyframes?

(not shown in the video) It seems that I can get the first action working again simply by selecting the bone and chosing 'move up' again in the animation window.

See the video - what am I doing wrong? When I lock a channel I MEAN LOCK.
https://www.youtube.com/watch?v=GV_ML0Cvaik&feature=youtu.be

Here's the original blend file
badactions.blend

NOTE1: This is a simplistic example. My actual model was a huge steampunk cross bow, launching ships into space, that had many moving parts to draw and release the bolt & position ships.
NOTE2: I can fix the end result by selecting the cube armature again and chosing the 'move up' action in the animation window - that seems to alter the animation data and fix it - but that's totally ridiculous to do.

What I'm trying to achieve is really easy and obvious - yet blender seems to make it hard.

What I'm looking for is instruction into how to build animations without having to constantly double check that actions I've already finished haven't been broken by new actions.

Each armature has its own reference to an Action datablock.  While it is possible for each armature to refer to an identical action (because datablocks are reusable) this would usually only be used when both armature objects use the same armature data (or use compatible armature data with compatible bone names).

It is unclear what you are trying to accomplish and why this behavior is a problem for you.

Just understand that it is inaccurate to say "I have multiple armatures under one action ".  What blender can do is have multiple armature objects which use the same action.  If you want an object to act differently than another object, they need to have different action datablocks in their animation_data.action field


How to randomize Animation Nodes spherical/directional falloff? I want to have a directional falloff effect like in the picture below, but so that the edge is not so uniform and has some "randomness" instead. I'm not asking for how to widen the width of the falloff, but rather how to make it so that some of the objects come down a bit earlier than others, while still preserving the overall directionality of the falloff.

Figured out the answer before posting the question :)

So what you can do is add a wiggle falloff node and mix it with the directional falloff ("add" mode). With the "evaluate falloff" node you can then convert the combined falloff to numbers that are easy to manipulate. The idea is to clamp the resulting falloff so that the top&bottom remain flat, but just the middle is randomized. Then just convert the strengths back to a falloff with the custom falloff node.

It takes some tweaking of the values to get it line up right, but the idea is quite simple. You can see the exact values I used in the screenshot below.

I also added a "map range" node after the clamping, to restore the upper and lower limits to what they should be according to the offset matrix node. (they shift a bit as a result of the clamping)

Hope this helps somebody!


How do I update Blender? I notice the latest build is 2.77, and I only have 2.76. Do I just download the latest version from the blender website, or is there a way to update from within Blender, or what?

Yeah, just download the new version from the blender website. If you're using for example linux and a package manager, then the package manager will update blender automatically* for you, though depending on your distro it may take quite a while from the release date till this update gets pushed through. So it's always best to just grab the latest version from the blender website.


How to make an object "move towards" another object I have my camera tracking an empty and copying its movements. i want the empty to move to a button when it is clicked on, but i dont want the empty to turn at all while moving. just move straight at the other object. I had some basic java "training" with Alice and there it would have been as easy as saying move towards object for some duration or move to an object, but looking up the right command in python is something im still struggling in. i can make the empty move in coordinates or face the object and then move, but thats not what im looking for. This is in the Game Engine and i was looking in game logic. (bge.logic)

I'll admit it has been years since I've done any coding with the bge. But I would suggest looking up vectors. Get the vector from your empty to the object Then set the magnitude of that vector. Something like this:

vectTo = empty.getVectTo(object)

vectTo.magnitude = 2.0

empty.position += vectTo`

Like I said its been years and I don't have blender convinent to test (im really not sure that will compile) but something to that effect should work.


Blender rna_xml serialize node_trees and import I'm looking into serializing node trees as XML for my current project. I saw that there is the rna_xml module that  allows that and here's my current take so far.

import rna_xml
import xml.dom.minidom

# Retrieve XML fixture and create new node tree
def fetch_material(name):
    try:
        return MATERIALS['name']
    except KeyError:
        material_path = MATERIALS_PATH + name + '.xml'
        xml_nodes = xml.dom.minidom.parse(material_path)
        material = create_cycles_material(name, clean=True)
        root = xml_nodes.getElementsByTagName("ShaderNodeTree")[0]
        tree = bpy.data.node_groups.new(name, type='ShaderNodeTree')
        rna_xml.xml2rna(root, root_rna=bpy.data.node_groups[-1])
        group_node = material.node_tree.nodes.new('ShaderNodeGroup')
        group_node.node_tree = bpy.data.node_groups[-1]
        MATERIALS['name'] = material
        return material

# Save material to new xml file (local helper, do not run in production)
def serialize_material(obj, name):
    print("Serializing node tree")
    path = MATERIALS_PATH + name + '.xml'
    f = open(MATERIALS_PATH + name + '.xml',"w+")
    rna_xml.rna2xml(fw=f.write, root_node="Root", root_rna=obj.data.materials[-1].node_tree, method='ATTR')
    f.close()
    return path

This properly serializes the node tree as .xml file but when I load it back I dont know how to get it properly. The only way I found is to load the node tree into a new node group but that results in an empty node_group.

Any of you guys have dealt with this sort of thing before?
Thanks

After studying the source code of that module I realized that it is unable to create new Node objects since it only assigns attributes to pre-existing structures.

I decided to get around that problem by having a collection of materials in another scene in the same .blend file. Hacky as hell but it works.


I need to do a very simple terrain with texture map I know nothing about Blender and I need to do a very simple 3D terrain with texture map.

I have a 1000 x 700 height map:

And I have a 1000 x 700 texture map:

And I want to combine them into a 3D model that I can view. I have done this before, about 8 years ago, in XNA but none of my old code will compile anymore under Visual Studio 2010.

I apologize that this is a very simple question. I'm not a CGI artist and I don't anything about Blender but I know that it can do this simple thing.

What are the steps to do this with Blender?

Thanks for posting the steps but I don't have Import -> images as planes. I just have this:

Am I in the wrong place?
Thanks in advance!

Import the height map using Import images as planes.
Enter edit mode and subdivide the mesh like a 100 times.

Add a Displacement modifier.

Set the texture to use the height map. Set the color space to Non-Color (height maps should be treated as data, and have no "gamma" curves)

Don't worry if the displacement seems exaggerated for now.
Back in the displacement modifier, set the displacement axis to Normal and to use the UV map.
The height for the displacement can be conrolled moving the strength slider.
For a better level of detail add a subsurf modifier before the displacement:

(be careful not to set the subsurf modifer to a high number, 1 or 2 subdivision levels should be enough, otherwise you might end up with an unmanageable amount of vertices and your computer might slow down or crash)
Then assign the color texture image as the color for your material.

Why the funky edges on the surface? Your height map needs a bit of cleanup before doing all of this
NOTE:
Usually the import images as planes plugin is enabled by default. If it isn't, you'll have to enable it manually. In the top menu find Edit > Preferences. Then from menu navigate to the add-ons section and find Import-Export: Import Images as Planes.
To enable the add on check on the box to the left of the add on name:

For versions previous to 2.8 the settings can be found here:


Is OpenCL possible within Blender either via cycles or internal? I have the  Radeon R9 280X video card and was wondering if there was anyway at all to enable GPU rendering with this card? I know Nvidia has CUDA cores and that works. That's good and all, BUT I don't feel like dropping $900 on one of those cards.

I did some research on OpenCL with Blender (which seems to be compatible with AMD cards), but it seems the functionality has been disabled within Blender??

I would like to use cycles with the card, but if that is not a viable option then I'll stick with Blender internal. I just hate CPU based rendering. It takes ages to do the renders.

Blender Internal
BI never had any kind of GPU rendering support, and as development on BI has stopped, probably never will.
Cycles
Cycles only supports cuda at the moment, due to issues with amd/ati drivers. (also see the wiki)
However, there are some experimental tests using the "leaked beta version of what might be AMD's next official drivers" which you may want to try.


How do you make perfect sinoids in a curve? A want to model a several curves to have a perfect sinusoidal structures of specific integer frequencies. Is there any kind of generator for linear waves in curves?

Here is the script that would do this (you can set the value of startX, endX and cycles' while calling drawSineWave based on frequency and increase the resolution to take it closer to the perfect sine wave.)

import bpy
import bmesh
import math

def drawSineWave(resolution, startX, endX, cycles, amplitude):

    bm = bmesh.new()
    step = (endX - startX) / (resolution)
    cycleSteps = resolution/cycles

    x = startX
    prevVert = None
    for i in range(0, resolution+1):
        magnitude = 2 * math.pi * (i % cycleSteps) / cycleSteps
        y = amplitude * math.sin(magnitude)

        vert = bm.verts.new([x, y, 0])
        if(prevVert != None):
            bm.edges.new([prevVert, vert])
        x += step
        prevVert = vert

    mesh = bpy.data.meshes.new('sine')
    obj = bpy.data.objects.new('sineObj', mesh)
    bpy.context.scene.objects.link(obj)
    bm.to_mesh(mesh)
    obj.select = True
    bpy.context.scene.objects.active = obj
    bpy.ops.object.convert(target='CURVE')

drawSineWave(resolution = 100, startX = 0, endX = 4, cycles = 4, amplitude = 1)


Looking for an After Effects feature in Blender (Expressions)? In after effects there is a feature where you can write a quick code to automatically animate something. i.e. say you want something to slightly "wiggle" you can type wiggle (2,30) and it will automatically wiggle when moving the timeline.

Or say I want something to scale in and out automatically, In AE I can just type time*10 and it will automatically scale in and out with the timeline.

Is there anything like this for Blender?

Not that extensive. In the grapheditor you can use modifiers for your animations, like noise, which makes it the selected line(s) of keyframes wiggle. It's very limited.

It would make a good addon tho....


Glossy and no reflection - only shadow Hi. I have square and ball. Square is Glossy BSDF material, and ball is only ball. I have no reflection in square and it is problem. I want reflection effect.

Looks like amount of light bounces for Glossy rays in your scene under the Light Paths rollout is set to 0 and looks like this:

This will make Cycles not to take into account rays which bounced from camera to the surface with only Glossy shader (e.g. plane supposed to be the floor also has glossy added to material nodes but it's mixed with Diffuse shader and Fresnel as the factor, so blackish reflection will be visible under certain angle).

Increase bounces to something more than 0, 8 by default and glossy reflections should appear.

Another possibility - Clamp Indirect under Sampling rollout is set to something really slow, like 0.0001. Then any reflections in the scene will be also black.

These values depend on the scene but generally you don't want them to be less than 1.


Why aren't these objects rotating? Physics question Here is the project: https://www.dropbox.com/s/e3k8811psg7dkq1/PackingPeanuts%202.blend?dl=0 2
I've added some forces on rigid bodies - they are shaking about but not rotating. Does anyone know why?
Thanks


Faces doesn't show up in game? I've got a question.
I modelled a character and importet it into Gmod. I had the problem recently, that some face were flipped.
Then I searched how to fix it and in Blender, it seems that they are showing to the right direction.
But when I'm running the game, the faces on many spots of my character were still invisible when I look direktly from the front...

Here are screenshots of my issue:

This is the edit mode in blender, and the Faces are showing to the right direction o-o

here are they still missing. The characters right eye shows up when I'm turning to the left...

In crowbare, everything seems to be alright too...

so what can I do? did I oversee something there?
(btw it's my first character and playermodel I did ^^')

Silly question; have you tried flipping the normals, and checking that no overlapping faces are present? Its hard for me to see the normals on the left part of the face, and the right looks fine as of where I can see them.

Other than that check that the Vertices are not being weight pulled by other bones. Check it in zero mode in the left hand tool panes when weight painting.


How to use more GPU memory to render faster? When I render a scene the GPU memory usage is only ~10% even less than that (477Mb). Is there any way to use more of the GPU memory and make the rendering process faster?
I render each frame at the time if that helps.

Setup:

Blender 2.8
Ubuntu 18.04
GTX 1060

Thank you for helping.

You could try increasing BVH Time Steps. The tooltip seems to say it it might be what you are looking for.


Having trouble making a keymap work when mouse button is released I'm trying to bind view3d.navigate to middle mouse button so that it's only activated while the buttons is pressed.
I'm having trouble getting it to deactivate. I've tried every option "click", "press", "click drag" for example:

I presumed that didn't work because it needed a command to run on release which would deactivate view3d.navigate. I tried view3d.select as seen below but still no luck:

Any hints on what i should try?
Why am I doing this? I'm trying to replicate other 3D design programs. view3d.navigate allows navigating the viewport with wasd keys and moving the mouse.

Go Preferences and see Keymap.
3D View > 3D View (Global) > View Navigation (Walk/Fly)
set to Mouse , Middle Mouse , Press (or Click Drag)
then
3D View > View3D Walk Modal > Confirm
set to Mouse , Middle Mouse , Release


How to make a curtain In the addon ArchiMesh there is a Japaneses curtain feature, but, it looks straight and does not have the fold that I want in it. Is there an addon that can do this for me? If not, how can I make a curtain (like in the images below)?

Final result:

Add a Plane, scale it as you need, go to Edit Mode, subdivide it couple of times - W > Subdivide and select vertices as shown below.

Go to Top Ortho view and move selected vertices along choosen axis.

Go back to Front view select top edge and in Object Data tab, under Vertex Groups add new Group (+ sign), and Assign selected vertices.

Go to Object mode and add Cloth physics to the plane in Physics tab. Check Pinning and select Group. Select preset Silk and enable Self Collision (Quality > 2, Distance > 0.6) under Cloth Collision group.

Create stripe to tie the curtains and make it wider than curtains. I've used simple torus in this example. Go to Physics tab and set it to Collision. Set Outer and Inner values to the lowest (0.001).

Animate scale of the tie. I've putted two keyframes, first frame and 50. Scale by pressing S > Shift+Z.

That's it. You can add Subsurf to the plane to make it more smoother and add Crease around whole plane with it. Also you will need to modify the tie using proportional editing and make it more stick to the curtains.

You can apply Cloth modifier and reuse them as you want.

Blend file:


Is there a way to make an emission shader effect in blender engine? I'm trying to remake these materials in the blender engine, I can do the grey one of course, but I have no idea how to make the emission ones, is there a way?

The best option is to switch to cycles and use the cycles emission shader. I am guessing you have never heard of it... you can do that by moving your cursor to the top and changing your render to cycles render. next go to your materials panel and click on the box that says diffuse and change it to an emission. If you need clarification on any of these steps just ask.


whats wrong with my uv rendered faces? Please help me, im begginer here, mastahh notice me

This looks like typical Z-fighting. You seem to have doubles (i.e. two faces that are in the same space and overlap)
To remove doubles, go into edit mode, select all faces/vertices, press W and select "remove doubles".


Is there any disadvantage to using smoke adaptive domain? In the smoke simulation settings, there is an option called smoke adaptive domain.  It basically (as far as I can tell) just changes the domain's size at each frame to be just big enough to fit the entire smoke simulation inside.  It can really save some baking time, especially at the beginning of the simulation when the smoke is first expanding from the emitter.

My question is, is there any reason not to use smoke adaptive domain?  I personally can't think of any reason not to.  But it is an option, and it's actually off by default, so I thought there may be some disadvantage[s].

I think the only reason to have it off by default is compatibility, it was a feature added to the existing smoke simulator.

  Added a new "Adaptive Domain" setting for smoke domains: Domain resolution and size adapts to only cover areas where smoke is, so that as small domain as possible has to be calculated at a time.

To enable it when opening an old file would cause a zero sized domain breaking the existing smoke simulation cache, or at the least force existing smoke caches to need re-baking. Leaving it off allows the user to re-bake only when they decide to.


Compositor Backdrop disappeared I have a little, though important issue with the Compositor. I had a Backdrop and everything worked well until I wanted to check what the Viewer Border checkbox does (red in the image). I clicked, the backdrop disappeared and I can't get it back in any way (unchecking the checkbox won't help). I also checked that it is file dependent, in a new file everything is ok. What to do?

Ok, so this is the solution. I had to switch off Sequencer in the Post Processing tab. I had added an image-sequence to the sequencer at some point, which made the Sequencer rendering take over over normal 3D scene rendering. That is why the RenderLayers' node preview disappeared and consequently the backdrop, as there was nothing to display (from the last node in the hierarchy, I checked other nodes and they did display bits and pieces as should be). I somehow connected this behaviour with the Viewer Border checkbox which I checked and I got confused, but it seems it had nothing to do with it. Now that I have the RenderLayers preview and the backdrop back again, I can't replicate the behaviour of Viewer Borders affecting my backdrop.


Squares caused by reflected area light There are squares in my pictures. I do not know how or why this happens. Anyone who has experienced such problems?

First i tough it could be the denoise that made the squares, then I tought it could be collision between the lights or maybe the texture from the table.
I have now tried to render without the denoise, I have removed the light from the candle and moved the table. I still can`t figure out what makes the squares. Same results every time.

I remove gloss from the lamps in the background (bookcase). It removed the squares, but I want the gloss on the table. Any way around this?

I now know that the problem is from the area lamp in the bookcase.
When I turn the gloss off, the problem with the squares are gone, but I want the gloss though.
So I remove the whiskey glass and glass that is in the bookcase. I remove the emissive from the spotlights and turn down the strength from the area lamps. But I still get the squares.
I tried a different angle, but the results remains the same.

Finally!

I had to increase the size of the area of the arealamp. i was set to 2mm or something. So the area was to small and messed up the light.

Want to give my thanks to Bfoot for helping me out! :D

Now I just have to redo every change I made to correct this :P


Scaling the maximum range parameter of BVHTree.ray_cast I'm currently trying to use the BVHTree.ray_cast function for some distance measuring. The code down below is a minimal example of what I want to do. A plane is spawned and two rays are fired in it's direction. Without any scaling, the ray with a maximum distance of 9 doesn't return any hit while the ray with a maximum distance of 11 does. So far, so good.

The problem now is that after scaling the target, both rays return a hit. For the setup given, I figured out that a maximum range of 1.4 doesn't hit while a range of 1.5 does. Now I don't have a clue how the scale the value for the maximum range, so that the behaviour is correct.

import bpy
from bpy import context
from mathutils.bvhtree import BVHTree
from mathutils import Vector

def castRay(origin, direction, maxRange):
    # perform actual ray cast
    location, normal, index, distance = tree.ray_cast(origin, direction, maxRange)

    # print results
    if location is not None:
        print("Location ", mw @ location)
        print("Normal ", mw @ normal)
        print("Index ", index)
        print("Distance ", distance)
    else:
        print("No hit within range of %f" % maxRange)

# spawn new plane
bpy.ops.mesh.primitive_plane_add(size=2, enter_editmode=False, align='WORLD', location=(10, 0, 0), rotation=(0, 1.5708, 0))
target = bpy.context.active_object

# after uncommenting the following line, both ray casts return a hit
#target.scale = Vector((3.0,5.0,7.0))

# setup information needed for ray casting
depsgraph = context.evaluated_depsgraph_get()
tree = BVHTree.FromObject(target, depsgraph)

# setup origin and destination of ray
worldOrigin = Vector((0.0,0.0,0.0))
worldDestination = Vector((20.0,0.0,0.0))

# convert vectors into target coordinate system
mw = target.matrix_world
mwi = mw.inverted()

origin = mwi @ worldOrigin
destination = mwi @ worldDestination

# calculate direction in target coordinate system
direction = (destination - origin).normalized()

# fire rays
castRay(origin, direction,  9)
castRay(origin, direction, 11)

I now found a solution to this problem myself, so I post it here in case someone comes across this question. Instead of building the BVHTree directly from the object and transforming all returned values into the global coordinate system, it is way more handy to transform the object's coordinates once into the global space as it is shown here:

def bvhtree_from_object(ob):
    import bmesh
    bm = bmesh.new()

    mesh = ob.to_mesh(bpy.context.depsgraph, True)
    bm.from_mesh(mesh)
    bm.transform(ob.matrix_world)

    bvhtree = BVHTree.FromBMesh(bm)
    bpy.data.meshes.remove(mesh)
    return bvhtree

The ray_cast function then returns all values in global space so that no more transformation is needed.


How do I apply materials to instances (alt+d) objects simultaneously? I have applied materials simultaneously to individual objects with ctrl+l / materials, but the ald+d objects do not allow or show the applied materials.  How do I apply a material, as I cannot even apply it to one? except the shift+d objects.

To add materials go as you would for other objects. Material properties/new or brows.
The material of a Alt D object is always linked by data until you change it under the material properties shown in the image below to object.
Thank you Robin!


Have object rotate when player does I'm still trying to get the fundamentals of the blender game engine down, but for now I have this:

The camera's position is controlled with W A S D, and the camera rotates to where the mouse is, like in Minecraft.

What I want to happen is when the player presses W, the cart moves forward, along with person while maintaining the same distance away. I thought about just copying the W to move forward from the camera to the cart, but that didn't work. Right now you have to actually push the cart and I don't want that. I also want the cart to rotate when the player does using the mouse using the origin of the camera as a pivot point. At first I thought using a game property, but apparently they're only relative to a single object? I've used a 2-D game engine before where you could make a property (called an Attribute) that was relative to the scene, game, or character. I'd appreciate it if it could be done using logic bricks, as I'm still working on Python. I feel like I'm not explaining this right, so just add a comment if you need clarification.

If your basically going to have the cart as the player's body, then parent the camera to the cart.

In this example, I'm using a pretty blue cube, and not a cart.

This is actually rather simple - you want the camera to be able to look around, and then drive the cube/player/cart in the direction the camera is facing, and have the camera follow? easy. I'm assuming your using the mouse look actuator on the camera.

If you are, delete or disable it for now, because there is a better way. While this works for the camera, it only works in terms of a spectator, free floating camera. This will make more sense if you think of it in terms of a battleship gun. On a battleship turret, the base rotates from left to right, and the barrel, mounted in the base, rotates up and down. Although the barrel can point in all directions, the base remains even. We want a setup similar to this. On the player/physics cube/ cart, put a mouselook actuator which only allows motion right to left.

Why is the Y disabled? In 2D terms, the X axis is left to right, and the Y axis is top to bottom. By disabling the Y, we are only allowing the mosuelook actuator to respond to mouse movement from left to right.

Now, if we push play, we should be able to move the mouse and rotate the camera from side to side.

Now, we can put the same logic setup on the camera, but this time, the mouse look actuator will only respond to mouse motion on the Y axis.

Now, we can put the WASD logic on the physic cube/player/cart/whatever, and it will move forward along the ground in the direction the camera is facing - not into the ground when looking down, or up into the sky when looking up.

Now, for new BGE users, I think it is sometimes helpful to play around with an already working file - see how or why things work. Staring at a blank file can only help someone so much, so feel free to play around with this blend.


How to switch to new gizmo in blender 2.8? I'm stuck with the 2.7 gizmo while running 2.8.  How do I switch to the  new gizmo in blender 2.8?

In the top menu bar > Edit > Preferences > Viewport > Display > 3D Viewport Axis > choose Interactive Navigation. It would make more sense to put this in the 3D View Viewport Gizmo panel in my opinion.


How would you go about creating distorted textures like in Olga Bell's Music Video ATA? I am guessing this is a basic question, but since I am fairly new to blender, I`d be happy for some help:

How would I go about texturing an abstract shape with a photograph so that from a certain vantage-point the texture reveals the original photograph?
The idea comes from Olga Bell`s video ATA

Here are some images:

I have completed a lesson on color displacement which results in a blend that has the same vantage point effect, but follows different principles.

Thanks for your help!

I think they use this technique a lot:

Create your 3D object. I've made a cube to make it simple.
Choose the camera view and Unwrap your object with the Project From View option.
Now as long as you keep the same view the picture will appear correct, but as soon as your camera will move it will deform. It's a little bit like the Camera Mapping technique except that you don't try to make your 3D object match with the picture.


Prefetch maxing out 20+GB of RAM over a 355MB jpeg sequence Pretty new to Blender - I'm having difficulty wrapping my head around how Blender caches image sequences. I have a 355MB jpeg sequence which I am trying to Prefetch and do a camera track on. Somehow Blender is turning this 355MB sequence into over 20GB of cache when I attempt to prefetch the frames. There is nothing else in my outliner.
I've got 32 GB of RAM on my machine, I've set my Memory Cache Limit to 16GB in the system settings under Video Sequencer.
Why is Blender taking up so much RAM for such a small sequence? Is there a setting somewhere I'm missing?
Thanks for any advice you have!

If you are tracking, you need the whole sequence and at full resolution (which conveniently you didn't mention... HD, 4k?).
Something to understand is that, even if your images are compressed as jpgs, blender will de-compress them to be able to use them, so multiply the number of horizontal pixels by the number of vertical pixels, then multiply that by 8(8 bit per pixel), and that number by 3 (Red, Green, Blue), and then by the number of frames, and that is the real memory usage.
Read: Why does Blender use so much memory for large textures?.
Also, not being able to cache the whole sequence is not a problem, as accessing jpegs is not very resource intensive. As long as you have enough resources to read the current frame you are fine.
What really matters is that you have enough RAM left to compute the solve information. So don't use all of your memory in the cache, and leave enough for whatever processing you need to do afterwards.


Fake Bool operation with OSL shader I'd like to use OSL to build a shader that gives a conditional (for mixing materials and such) on whether an object is inside another object and has a lower priority.

For instance, if I were to mix an arbitrary material with a transparent shader, I could make intersecting geometry disappear.

My end goal would be for the behavior to be (more or less) identical to using a boolean to cut out the intersecting region.

This could be useful, for instance, with complicated fluid setups, where several transparent objects are inside each other. (Say, a glass of water)

The Boolean modifier doesn't always work out, and in case of animation, it's not always feasible to manually clean up that modifier's results.

I have a script that certainly does... Something along those lines. But it has a few bugs. Here's the code, explaining my problems:

/*
Goal:
    In case two meshes intersect, render only the one, that has a higher priority.
    Effectively, I want meshes to appear, as if the one with higher priority carves
    out a piece of the one with the lower priority like using a Bool modifier.

Problems:
    1) For unknown reasons, priority checking seems to not work correctly.
        It only even seems to do something with negative priorities, and then
        all that matters is, that said priorities are negative.
        I tried out other operations with mixed results.
    2) I tried I, N, -I, and -N for the trace direction.
        They all give different behavior, and I´m not sure what the right values are.
*/

shader Priority(
    int mypriority = 0,
    // An object´s priority

    output int HasLowerPriority = 0
    // Whether it has lower priority, than the object it intersects
    )
    {
    int priority = mypriority;
    // I did this to see if somehow mypriority isn't updated correctly.
    //It didn't work.

    setmessage("priority", priority);
    // if hit by a ray, this message can be sent.
    int DoTrace = trace(P, I);
    // Shoot a ray. (Try out -I, N, and -N too).
    // They all give different behaviors, none of which appear to be correct.
    // It's supposed to check whether the material the ray came from
    // has a higher priority than the current material, and whether
    // it hit that other mesh on a front or back face.
    // If it's back facing, it has come from inside the other object.

    if (DoTrace) // If an object was hit
        {
        // Get that object`s priority and orientation.
        int otherpriority = 0;
        otherpriority = getmessage("trace", "priority", otherpriority);
        int otherorientation = 0;
        otherorientation = getattribute("trace", backfacing());

        // Then check accordingly
        // Instead of "<", try other comparisions to see how the behavior changes.
        // To me, that behavior seems completely unexpected,
        // with the outcome only depending on the own meshes priority
        // sign and not on otherpriority. As if otherpriority is always 0,
        // suggesting there is some error there. But the script compiles just fine.
        if (priority < otherpriority && !otherorientation)
            {
            HasLowerPriority = 1;
            }
        //else // Pretty sure this is unnecessary too. I only added this for debug.
          //  {
            //HasLowerPriority = 0;
            //}
        }
    }

And here is an example blend file.
Try changing the two objects' materials and the mentioned details in the script.

Also, for comparison, try activating the boolean modifier on the cube so see how it ought to look.
More or less: The Boolean modifier actually introduces what appears to be some Z-fighting. Ideally, this shader would also circumvent that.

This is a partial solution. For simple scenes it'll work fine, but more complex setups will run into problems very quickly.
/*
 * Checks if, for this ray, the object is already inside the named object.
 */

    shader Intersects(
        string Container = "",
        output int Intersects = 0
    ){
        if(trace (P, backfacing() ? -N : N )) {
            string name;
            getmessage("trace", "geom:name", name);
            if (name == Container) {
                Intersects = 1;
            }
        }
    }

This shader returns 0 if there is an intersection with the named object, and 1 if there isn't.
It is adapted from a script by Secrop found here, as well as the Dipper script Robin Betts suggested to me from an earlier answer here.
I essentially just combined the two, while stripping them both down to the bare minimum. I'm not entirely sure, but I believe there is a bug with the getmessage() command. It appears to often do nothing, rendering much of the related logic unnecessary/redundant/ineffective. For instance, in Secrop's script, neither the backfacing() check, nor the material:index check(!) appear to do anything at all.
As far as I can tell, there are no such redundancies in this script.
That being said, it's entirely possible, I'm missing something here. Certainly, adapted from Robin's script, the call getmessage("trace", "geom:name", name); works just fine, so I don't know where the issue lies.
Workflow:
Here is an example setup.

Note, the deformed cutting cube also interacts with the sphere, to close it back up. Without that, the sphere would be missing some walls and it'd render more like a shell, rather than an enclosed surface.
Currently the setup basically has the cube cut out a piece of the sphere, equivalent to the Boolean "Difference". Using different variations of this node setup, you can also get it to work like various other Boolean operations.
Limitations:

The materials here are completely unchanged. As you can see, it may get confused in certain situations. Suzanne looks, like she partially is made of glass or something. Given how she's entirely made of diffuse materials, this certainly isn't supposed to happen. This must be the cube material getting confused about the location of the inside of the sphere.
Here you can see the same scene but with the roles of the cube and the sphere exchanged (just flip the mix shader input for both).

Note, Suzanne does not touch the sphere. If the script worked perfectly, Suzanne's chin would be yellow throughout. It shouldn't be view-dependent, but strictly about whether a mesh is inside another.
There may be ways to fix these issues, but I'm not sure how.
At any rate, that's the reason why this won't be the accepted answer.
The reason I put it as answer anyway is because for relatively simple setups, this will likely already work perfectly.
One simple workaround, that may, however, not always be feasible (depending on your situation), is presumably to have several such masking objects, none of which, I assume, may intersect, all of which affect the meshes they intersect in a uniform way. (For instance, if the setup renders glass walls for one object it intersects, it ought to do so for all objects.)
This next one I'm not quite sure whether there is an issue here:

In this variant, I made the cube, now clear glass, cut out a piece of the now diffuse sphere. To close the sphere, in the intersecting area, the cube generates a diffuse shader matching the sphere. Consequently, those faces will not be glass shader ones.
Now I'm not entirely sure. This would depend technical details. But does Cycles count this situation as escaping the glass to hit a diffuse mesh? Or will it think it was diffuse all along, making it more like the interface between air (vacuum) and this diffuse surface?
I'm not entirely sure it will actually make a difference, but I think it might: Namely in the case of total reflection. If Cycles thinks this is a glass-to-diffuse transition, the right setup, I think might cause total reflection, rendering the diffuse surface entirely invisible behind the internal reflection of the glass. If it rather considers this a case of having been diffuse all along, things will go wrong when internal reflections become important.
Unfortunately, for my ultimate use case, that would definitely be an issue. I'll have to see whether it works there.
Finally, I'm less concerned about it working with Volume shaders, but I did a few quick tests and it actually appears to work fine... To a point. It's certainly easy enough to make something look super weird.


Rotate the contents of a window I am using a .blend file someone else made, and some contents of their properties window is rotated 90° to the left. This setting might be very convenient for people whose eyes are rotated 90° in their heads, but in my case it's making it difficult to work.

How do I make the contents look like this below image?

To do this, Rightclick beside the panel name and choose Align Vertical instead of Horizontal as shown below:

This will be the result:


why grid lines + scale doesn't update, when controlled via python console? I can successfully controll the grid_scale & grid_lines in bpy.types.SpaceView3D.

I know this, because the console tells me that my input has been recieved, for example, when I write: bpy.types.SpaceView3D.grid_lines
the console prints my new value.

But here's my question: Why doesn't the values update in the Blender Properties panel, I mean visually in my current scene? (check my print screen you can see the values haven't changed. - that's the problem.)

I'm new to scripting so a simplified answer would be brilliant.
Thanks / Dan

Difference between a class and an instance.

bpy.types.SpaceView3D is a class, it has a grid_lines property. The blender UI has a window, made up of screens, made up of areas, within each area an active space (what you see in that area). The active space in a view 3d area is an instance of the bpy.types.SpaceView3D class.

Running this code in the text editor will change all 3d view spaces grid lines to 10 and scale to 2

import bpy

for screen in bpy.data.screens:
    for area in screen.areas:
        if area.type == 'VIEW_3D':
            area.spaces.active.grid_lines = 10
            area.spaces.active.grid_scale = 2

in the python console the active space is not a 3d view area, rather a python console.  Similar to above but in console

>>> type(C.space_data)
<class 'bpy.types.SpaceConsole'>

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

>>> space3d = C.screen.areas[3].spaces.active
>>> type(space3d)
<class 'bpy.types.SpaceView3D'>

>>> space3d.grid_lines = 10

If the code is invoked, via a button or menu (for example),  in the context of the 3d view, then the 3D VIEW space would also be context.space_data


Starlight spotlights w/ volume help I'm trying to create something similar to this image's sky-box.

I tried cutting holes into a plane and shining a spotlight through. My attempts end up with the light hitting the ground (which I don't want to happen in the majority of the time, nor where the "god rays" visible in my render image (beginner with volume settings)

There is several ways to get this effect ... but in your example are mixed two light effects. One is vertical lights from stars and second light scattering fromcentral light source. So here are some tips.
SunBeam (postpro)

enable Compositor
use SunBeam node with high Y value to get effect of light comming from top
it depence on image, but sometimes you will need to do a pass for stars if there is some another bright source of light (or for masking reason foreground-background)

Glare (postpro)
similar way is to use Glare node > Streaks > 2

Volumetric
For light scattering

add Cube with Principled Volume shader

For vertical light rays comming from top you can use Volumetric material, but without connection with stars on sky.

use 2D Noise texture node for vertical rays
add Areal light on top


How can I reduce the radius of this distance calculation? I just created the scene shown in this "tutorial" (Is it possible to dynamically reduce the number particles based on distance from camera?), where you see how to dynamically reduce the number of the particles depending on the distance to the camera, but now i find, that the radius is too big and covers the whole plane.
I would like to just have a part of the plane covered with grass, but it should follow the camera over the whole plane.
Is this possible?

Thanks for answers (and sorry for my bad english, but I'm an austrian.)

You can set the variables that scale the radius by hand. Currently the script uses:

maxDist = max( vert_distances )
minDist = min( vert_distances )

But you can use any other value and experiment with what works for your case, like:

maxDist = 5
minDist = 1


Is cycles fresnel node physically correct? Good afternoon.
There have been people in the community saying that cycles' fresnel and glossy BSDF's roughness(i.e the roughness does not affect the fresnel, correctly) are not physically correct. I would like someone, preferably a developer to clarify this please. Thank you.

Nothing is physically correct, it's all approximations. (raytracers don't even implement the wave nature of light...). But you're correct in that Cycles' fresnel node is not as close an approximation as it should be. I'll let Lukas Stockner, one of the Cycles' devs, explain: https://blenderartists.org/forum/showthread.php?390686-Alternative-to-Cycles-for-Blender-users&p=2996756#post2996756

tl:dr: the true fresnel result for a non-smooth surface requires you to calculate it with the direction the ray reflects from the microscopic imperfections of the surface. But this direction is not yet known when the mix shader is evaluated, so Cycles is forced to calculate fresnel for a smooth surface.

There are various tricks to approximate the correct result that make things a little more accurate: https://youtu.be/pNiVB7tRG68 It's not perfect, but on average it will give the same result a correct shader will, so it usually looks fine.


Does re-baking of physics give exactly the same result? I was wondering if re-baking of physics (smoke, fire, clothing) would give exactly the same result ? Or is this a sort of "random" process ?

No, it shouldn't.

If you do want a different random look you need to change the random seed.  The exact location to set the seed varies a little depending on which simulation you are talking about, but just look for a setting called Seed.


How do you stop Blender from looking for an image texture? I have an image texture I'm not using anymore, but Blender keeps the filepath and keeps showing errors, saying it can't find the texture.

if the textuures are really not used, you can find them in the outliner > orphan data

they are "orphan" because they have no object or anything that uses them (quite an amazing naming scheme hahaha)
Then you will find a "purge" button,
this will "purge" or remove all the orphans (sounds wrong I know)

Then, all of the unused materials will be removed from the blend.file
or you can do this to, go to file > clean up > and remove all unused data blocks


How to reduce how much area is affected when manipulating vertices? I want to be able to reduce the amount of green area effecting the edges when manipulating the vertices that are selected.

If someone could answer how to do that I would greatly appreciate it.

You can't decrease this area, because it's just space between Edge Loops.

You can expand it by using Proportional Editing (control size by using mouse scroll).

You can decrease it by adding Edge Loops around chosen area.


Do I need a subdivision modifier to create a hard-surfaced object I'm currently in the process of modelling a handgun, this is one of the reference images that I am using:

Looking at it closely, it looks as if a majority of the edges have a small bevel on them to give a hard surface look to it. I have modelled the basic shapes and details of the weapon, and now I need to make it look like a hard surfaced model. I also have a subdiv surface on the model (currently set to 4, going to make a very high poly version and then bake the details to a normal map for a lower poly model).

My question being, is having the subsurf modifier necessary for a model like this? I intend to go through and add all of the little bevels to the model to represent the same sort of look in the reference image, but I'm just not sure whether the subsurf is even necessary?

I have seen other models without subsurfs, yet they have a hard surface look to them.

For point of reference, this is what I have so far:

To try and summarise/clarify what I'm asking, is it necessary for me to use a subsurf modifier and then go through and bevel edges to create a hard surface look? Or can I achieve the desired look without using bevels and a subsurf modifier?

Also, in the .blend file, if you look at the barrel and the trigger that is the sort of method I was going to use to achieve a hard surface model. Not sure whether it is a very effective and or correct way of doing it.

Thanks.

note I’m not planing on using this for a game, I am baking the detail for a normal map so that when I use it for renders it isn’t super high poly.

This is really a subjective topic and I don't think it can be answered with 100% certainty for you. Some high-level modelers will use sub-d's on a model like this, while others will not; it just depends on the the person and not necessarily the model, although the model itself is a factor.

You also have to consider how the model is going to be used: Is it going to be for a game or animated in some way? Will it have a UV map? Just a still image? If so, how big will the image be and how long are you willing to wait for it to render? A sub-d model will render better generally, but will take longer. All these things must be taken into account.

One thing to note: When you say "hard surface" that doesn't exclude a model with subdivision surfaces on it, and you can have organic models with no subdivision at all -- it just depends on what you are trying to achieve. Just understand that it will be more difficult to get smooth, rounded areas without some level of subdivision.

You'll just have to try it both ways (or a combination of both) and find out what works best for you. There's no rule that says you have to only do things one way. That's the best answer I can give you.


How to start a cycle at frame 100 using modifiers? I want to cycle an animation that doesn't start until frame 100. I want the animation range to loop from
100-130 for the remainder of the animation. Anytime I try to restrict the f-curve to frames 100 onward it only allows me to do it a single keyframe at a time. Obviously I wouldn't want to do this for an entire cycle piece by piece.
When I select multiple keyframes in the graph editor the f-curve options are no longer visible.

Consider the Cycles Modifier ... with the setting [Before Cycles] as -1.
Move the left most keyframe to 100.  Of course you can move multiple keyframes at once.


Why don't bones appear when I add them? I have a problem applying bones to my models.
When I select the option to add a bone or armature, it does not appear in any of the models in the working screen of the program.
I've already activated the addons, tried to uncheck the "hidden" option, activated the viewport display (in front), restarted the computer and reinstalled the program but nothing seems to solve it.

Check if the Bones box under Objects is checked in Viewport Overlays. (There's a dropdown menu next to the small icon of a circle in front of a white circle, usually found in in the top right corner of the 3D Viewport.)


How to connect N number of values to RGB combine node and to have all possible variations I have created a node with 21 outputs which I want to be connected to RGB combine node and I want some way scroll through ALL the variation with ability to know the variation of inputs. Can anyone suggest a way to solve this problem?

Here's the script I came up with. I called the panel "Socket Arranger", and I put it in a new tab called "Socket" in the node editor.

Here's the main logic behind creating the links:

Focus on two groups: 1. the output sockets of one node and 2. the
input sockets of another node.
I created sets from the output sockets. Each set should be unique (it
shouldn't share sockets with other sets). That way, I can consider
each set separately when thinking about how they should be connected
to the input sockets. Therefore, use itertools.combinations.
The size of all sets made from itertools.combinations should be the
same as the amount of input sockets. For example, only 3 output
sockets can connect to 3 input sockets. (I didn't consider
disconnected sockets. I don't know if you need it. Plus it sounds
hard to do haha.)
For each unique set, I'm looking for as many input setups as
possible, so it doesn't matter what order I connect them to the input
sockets. When I dealt with the input sockets, I used
itertools.permutations.
Each unique set made from itertools.combinations contains the same amount of input socket possiblilities (since we're only doing itertools.permutations on the same set of input sockets). So to find the total amount of output/input
combinations, I multiplied len(itertools.combinations) of output sockets with len(itertools.permutations) of input sockets. Basically, in this case, "21 C 3" * "3 P 3" = 7980 unique combinations.
@PGMath was right.
Overall, the code was about mixing a combination of output sockets with a permutation of input sockets.

Code:

import bpy, itertools
from bpy.types import Panel, PropertyGroup, Operator
from bpy.props import StringProperty, IntProperty, PointerProperty, CollectionProperty, BoolProperty
#I make my own term called a 'node map'. I call it a list of tuples with information about how the sockets should be linked. A larger CollectionProperty() stores a list of node maps.'

def updateBeforeFrame(scene):
    '''force update of node setups before the frame is rendered'''
    #This looks repetitive, but apparently this explicit assignment calls the proper "update" functions. Otherwise, it doesn't work, even if you see the index inputs in the Socket Arranger Panel changing
    if scene.inputGroup.combOrIso == True:
        scene.inputGroup.combIndex = scene.inputGroup.combIndex
    else:
       scene.inputGroup.isolateIndex = scene.inputGroup.isolateIndex

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

def linkNodes(self,context):
    '''get all the node maps generated from the "Set Up Combinations" button, and interface with "Combination Index" slider to access the maps'''
    mt = bpy.data.materials[context.scene.inputGroup.mat]
    nOu = mt.node_tree.nodes[context.scene.inputGroup.nodeOut]
    nIn = mt.node_tree.nodes[context.scene.inputGroup.nodeIn]

    intIndex = context.scene.inputGroup.combIndex

    set = context.scene.combSet[intIndex]
    lst = eval(set.miSetString) #convert list earlier converted to a string back to a list
    for output, input in lst:
        mt.node_tree.links.new(nIn.inputs[input], nOu.outputs[output])
    mt.node_tree.update_tag()

def linkIsolatedNodes(self,context):
    '''same as linkNodes, but with the "Isolate String" button and the "Isolate Index" button'''
    mt = bpy.data.materials[context.scene.inputGroup.mat]
    nOu = mt.node_tree.nodes[context.scene.inputGroup.nodeOut]
    nIn = mt.node_tree.nodes[context.scene.inputGroup.nodeIn]

    intIndex = context.scene.inputGroup.isolateIndex

    set = context.scene.isoCombSet[intIndex]
    lst = eval(set.miSetString)
    for output, input in lst:
        mt.node_tree.links.new(nIn.inputs[input], nOu.outputs[output])
    mt.node_tree.update_tag()

class CombinationSet(PropertyGroup):
    '''a holder for each list of node maps generated from "the "Set Up Combinations" button'''

    miSetString = StringProperty()

class IsolatedCombinationSet(PropertyGroup):
    '''same as CombinationSet, but for "Isolate String button'''

    miSetString = StringProperty()

class InputGroup(PropertyGroup):
    '''hold inputs for the script's panel here'''
    #I can set soft_min to 0 for all IntProperties here since when I index any CollectionProperty, it always starts at 0

    combIndex = IntProperty(name="Combination Index", soft_min = 0, update=linkNodes)

    mat = StringProperty(name="Material Name")

    nodeOut = StringProperty(name="Node for Outputs Name",
    description="The name of the node to get output sockets from. (in the Node Panel)")

    nodeIn = StringProperty(name="Node for Inputs Name",
    description="The name of the node to get input sockets from. (in the Node Panel)")

    inOrExclude = BoolProperty(name="Must Contain All Listed?",
    description = "If yes, isolate only the combinations containing all of the sockets. If no, look for items with at least one of the sockets listed. (The original combination list won't be affected.)",
    default = False)

    isolateString = StringProperty(name="Isolate String",
    description="Type in the names of either input or output socket node names, separated by commas, to choose specific combinations. (Leave empty to get the original combination list)")

    isolateIndex = IntProperty(name="Isolate Index", soft_min = 0, update=linkIsolatedNodes)

    combOrIso = BoolProperty(name="Render combination keyframes? (else isolated keyframes)",
    description="If yes, the scene will render out keyframes put on the 'Combination Index' slider. If no, it'll render out the 'Isolate Index' slider.")

class SetUpCombinations(Operator):
    '''set up a list of "node maps"'''
    bl_idname="custom.set_up_combinations"
    bl_label = "Set Up Combinations"
    bl_options = {"REGISTER", "UNDO"}

    def execute(self, context):
        mt = bpy.data.materials[context.scene.inputGroup.mat]
        nOu = mt.node_tree.nodes[context.scene.inputGroup.nodeOut]
        nIn = mt.node_tree.nodes[context.scene.inputGroup.nodeIn]

        nOuNames = []
        nInNames = []
        for socket in nOu.outputs.values():
            nOuNames.append(socket.name)
        for socket in nIn.inputs.values():
            nInNames.append(socket.name)
        miniSetSize = len(nIn.inputs.values())

        comb = list(itertools.combinations(nOuNames, miniSetSize))
        permu = list(itertools.permutations(nInNames, miniSetSize))
        cSet = context.scene.combSet
        cSet.clear()

        for com in comb:
            for per in permu:
                newSet = cSet.add()
                miniSet = list(zip(com, per))
                newSet.miSetString = str(miniSet) #convert to string so can be stored in a StringProperty for long-term usage

        context.scene.inputGroup.maxIndexLabel = str(len(cSet) - 1)
        return {"FINISHED"}

class IsolateCombinations(Operator):
    '''same as SetUpCombinations, but with the option to isolate certain node maps by socket name'''
    bl_idname = "custom.isolate_combinations"
    bl_label = "Isolate Combinations"
    bl_options = {"REGISTER", "UNDO"}

    def execute(self, context):
        iCoSet = context.scene.isoCombSet
        iCoSet.clear()

        stringLst = context.scene.inputGroup.isolateString.strip('[]').split(',')
        for i in stringLst:
            stringLst[stringLst.index(i)] = i.strip()

        if context.scene.inputGroup.inOrExclude == True:
            for set in context.scene.combSet:
                add = True
                for string in stringLst:
                    if string not in set.miSetString:
                        add = False
                        pass
                if add:
                    newSet = iCoSet.add()
                    newSet.miSetString = set.miSetString
        else:
            for set in context.scene.combSet:
                add = False
                for string in stringLst:
                    if string in set.miSetString:
                        add = True
                        pass
                if add:
                    newSet = iCoSet.add()
                    newSet.miSetString = set.miSetString
        return {"FINISHED"}

class SocketArranger(Panel):
    bl_idname = "socket_arranger"
    bl_label = "Socket Arranger"
    bl_space_type = "NODE_EDITOR"
    bl_region_type = "TOOLS"
    bl_category = "Sockets"
    bl_context = "objectmode"

    def draw(self, context):
        lt = self.layout
        iGroup = context.scene.inputGroup

        length = len(context.scene.combSet)
        maxIndex = length - 1
        if length == 0:
            maxIndex = 0

        lt.prop(iGroup, "combIndex")
        lt.label(text="Max Comination Index: " + str(maxIndex))
        lt.label(text="(Max Combinations: " + str(length) + ")")
        lt.prop(iGroup, "mat")
        lt.prop(iGroup, "nodeOut")
        lt.prop(iGroup, "nodeIn")
        lt.operator("custom.set_up_combinations")
        lt.prop(iGroup, "isolateString")
        lt.operator("custom.isolate_combinations")
        lt.prop(iGroup, "isolateIndex")
        lt.prop(iGroup, "inOrExclude")

        length = len(context.scene.isoCombSet)
        maxIndex = length - 1
        if length == 0:
            maxIndex = 0
        lt.label(text="Max Isolate Index: " + str(maxIndex))
        lt.label(text="(Number of Isolated Combinations: " + str(length) + ")")

        lt.prop(iGroup, "combOrIso")

def register():
    bpy.utils.register_module(__name__)
    bpy.types.Scene.inputGroup = PointerProperty(type=InputGroup)
    bpy.types.Scene.combSet = CollectionProperty(type=CombinationSet)
    bpy.types.Scene.isoCombSet = CollectionProperty(type=IsolatedCombinationSet)

def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.Scene.inputGroup
    del bpy.types.Scene.combSet
    del bpy.types.Scene.isoCombSet

if __name__ == "__main__":
    register()

I also added some options to allow you to isolate certain socket set ups to experiment with. I thought it might help you, especially with 21 output sockets. This doesn't work for nodes while you're editing a node group. If I can get it done, I'll try to add that in, maybe along with the "disconnected sockets" scenarios.


How can I see and select the Vertex of the Mesh in Weight Painting Mode in Blender 2.8? I dislike the brush for the weight painting, I want to be able to select vertex and add the amount of weight I want manually. That's something I can do on blender 2.7 but not in blender 2.8, I can't even see the wireframe of the model in blender 2.8 while doing the weight painting.

I'm not sure what you're referring to in 2.7 but in 2.8 you can display the wire with the Viewport Overlay > Wire option, and if you switch to Edit mode you can select a vertex then in the N panel > Item > Vertex Weights, set the weight you want.


How to start playing the video from the green cursor rather than from the beginning of the time-line? In Video Editor mode hitting Alt+A starts playback from the beginning of the timeline.
How to start playing the video from the green cursor?
(I found this question asked on reddit by nightmareFluffy, but it is too late to answer it there.
It's one of the most basic things for video editing and I could not find an answer to it anywhere so I'm posting this question here for others to find.)
My version is 2.79

From the Timeline editor's bottom menu select Playback and tick Follow.
Then Alt+A will play from the cursor.


Import and exported File have different sizes though they are identical I have a .ply file which is 6mb in size. It has about 140000 faces. This is an output of a 3d scan. When I import it into blender and export it again as a .ply or a .obj, the file size is increasing to 60mb, even without making a single change (No modifiers, no change in scale, no change in mesh, nothing!). Can someone help me in figuring out why this is happening? Thanks

What is that blender is adding to the imported file to make it 10 times bigger in file size?

Also, i tried decimating the object to a ratio of 0.1 and still the exported file is 9mb, while the original 3D scanned file is just 6mb.

Blender's .ply importer can handle two kinds of .ply file.

ascii  (plain text -human readable, but large file sizes)
binary (data is stored in a compact way, and must be decoded before it becomes human readable)

Blender exports neither .ply or .obj as binary, so expect larger file sizes as exports.


is it possible to have particles with tails using Cycles? An example of the effect I'm going for can be found here, with the particles going into the brain. They have a glow around them, and a small tail behind them which has a sort of falloff.

yes, you can model a mesh to behave exactly like you described, then assign that mesh to the particle.

To make them glow you can assign a surface emission material or volume emission material
and you can even blur anything that moves to give some realism.

But if you want to have the same effect as in the video, then you can get away without using particles. Just constrain the mesh to a curve and animate it.


How to render curve guided particles as path? The rendering setting is set to 'path' for both particle systems below.

On the left, a Newtonian driven by a curve guide
On the right, a keyed particle system

As you can see, only the keyed one shows path effectively:

Is there something wrong in my setting?
How to show path in the curve guided case?

Finally... the answer is in the documentation.

  The Path visualization needs a Hair particle system or Keyed particles.


Shader Option Missing When adding a material, I'd like to add a shader. Not sure why it's not showing up. Am I missing something? I'm using Blender 2.78

You don't see shader nodes because you are using Blender Render.

Switch to Cycles Render, then you can add shader nodes by pressing Shift+A shader > add shader


unregistering a class I have made a new object for the Add > Mesh menu and I would like to unregister it but when I try to with:

if __name__ == "__main__":
   unregister()

I get the following error:

Traceback (most recent call last):
  File "\add_tetrahedron.py", line 63, in <module>
    register()
  File "\add_tetrahedron.py", line 59, in unregister
    bpy.utils.unregister_class(OBJECT_OT_add_object)
RuntimeError: unregister_class(...):, missing bl_rna attribute from 'OrderedMeta' instance (may not be registered)

I've tried looking for this error but, I can't find what I'm doing wrong. I can't find anything about bl_rna anywhere.

I'm using Blender 2.79b

The register functions look like this:

# Registration

def add_object_button(self, context):
    self.layout.operator(
        OBJECT_OT_add_object.bl_idname,
        text="Tetrahedron",
        icon='PLUGIN')

def register():
    bpy.utils.register_class(OBJECT_OT_add_object)
    bpy.types.INFO_MT_mesh_add.append(add_object_button)

def unregister():
    bpy.utils.unregister_class(OBJECT_OT_add_object)
    bpy.types.INFO_MT_mesh_add.remove(add_object_button)

if __name__ == "__main__":
    register()

Consult python docs for a better explanation

Since there is no main() function in Python, when the command to run a
python program is given to the interpreter, the code that is at level
0 indentation is to be executed. However, before doing that, it will
define a few special variables. __name__ is one such special variable.
If the source file is executed as the main program, the interpreter
sets the __name__ variable to have a value “__main__”.

If this file is
being imported from another module, __name__ will be set to the
module’s name.
__name__ is a built-in variable which evaluates to the name of the current module. Thus it can be used to check whether the current
script is being run on its own or being imported somewhere else by
combining it with if statement, as shown below.

if __name__ == "__main__":
    register()

which when run from text editor in above case registers the class OBJECT_OT_add_object  When run again it has "no idea" that it is the same class as registered before. ( Hence the error if you try to unregister)
If however the class is registered when enabled as an addon it will be in that addon modules namespace my_addon.OBJECT_OT_add_object (ie __name__ == "my_addon") and will be the same class when unregistered from the addon.
This is included to test scripts in the text editor.  Removing it will have no consequence if installed as an addon.
Have a feeling an issue here is:
When testing such scripts it has the tendency to append and append and append the item to the menu.
A solution to this is bpy.ops.script.reload() which in 2.7x has the shortcut F8 or can be run in the python console.  Recommend writing a little script to prepend it to the text editor and console headers for convenience
EDIT In 2.8 reload scripts is also  available via  the Blender > System > Reload Scripts menu.
Import the text script as a module
Further to this. To test a script in the python console.  For example the simple panel template.
This will give the script a "namespace"
>>> foo = D.texts['ui_panel_simple.py'].as_module()

Can call the register method
>>> foo.register()

and then later unregister with
>>> foo.unregister()

somewhat more closely emulating it being an addon.