text:
How can I render an edge only mesh as solid lines?
I have a schematic of a raspberry pi that is completely flat, no solid faces, just connected vertices.
Is it possible to render these lines somehow, so that it looks like a 2D drawing?
Maybe with freestyle?

Related: http://blender.stackexchange.com/questions/2784/rendering-with-wireframe, http://blender.stackexchange.com/questions/2838/create-a-rounded-wireframe, http://blender.stackexchange.com/questions/2372/how-to-render-a-pixelated-occluded-wireframe-with-freestyle, http://blender.stackexchange.com/questions/605/can-cycles-wireframe-material-be-coerced-into-displaying-tris-quads-and-ngons (Yes, lots of related stuff :P)

For what it's worth, there are a lot of YouTube tutorials on using Blender/Freestyle to create blueprint-style schematics of objects. https://m.youtube.com/results?q=blender%20blueprint%20freestyle Since you just have a 2D object, it might be more than you need, but they're helpful in general.

Note: This answer is for 2.79 only. For 2.8+ you will have to look at some of the other answers.

The simplest way to render an object that has no faces is to change the material type in the internal renderer to a 'Wire' material:

The mesh on the left, when rendered, looks like the image on the right:

I also changed it to be 'Shadeless' in the shading panel of the material so that it wouldn't be affected by shadows and would be lit equally.

Thanks, this is exactly what I need, I'll accept that as an answer. Just out of curiosity is freestyle capable of that also, or it needs to have a solid mesh?

@marchello I'm afraid I'm unsure of that, I did try it (and failed) but I don't use freestyle enough to know for sure.

Is it possible to change the rendered edge width? Thanks.

How do I set this after the major UI overhaul in Blender 2.81?  I can't find it in Materials Settings...

@PauloCarvalho You have to use one of the other answers. This answer is for the Blender Internal render engine which was removed in 2.8.

@RayMairlot What other answers?

It seems as if freestyle doesn't care for wireframe meshes. Even faces aren't recognized if they have 0 surface area (edge extruded and escaped).
If you want to achieve that effect with freestyle then assign a material to your mesh (with faces) that has Z Transparency enabled. Alpha and Specularity should be set to 0.0.
To make the flat edgelines visible for freestyle, just extrude them all away from the camera. Then select the edges that you want to keep seeing with a Border Select and hit CtrlE - Mark Freestyle Edge. Set freestyle to render nothing but Edge Mark. The transparent material will hide the surplus geometry.

Alternatively you can set the material to Cast Only in the Shadow panel. It works if your scene doesn't have shadows.
Or you can disable Solid in the Layer panel of the Render Layers. Then nothing gets rendered except the freestyle pass. I get the best results if I disable Chaining and set the Caps to Round in the Freestyle Line Style panel.
The advantages: You don't have to display every edge. You can control line thickness and line style very creatively. Dashed lines are possible, to name just one option.

For the sake of completeness, there is also the possibility to use the skin modifier.
It removes faces (if present) from your mesh and builds tubes intersecting at all vertices.
Below a screenshow showing original mesh (manually deleted faces), with skin modifier and last with skin modifier and subdivision modifier.
You can scale the tubing thickness at each vertices (use ctrl+A in edit mode).

You can reduce the polycount adding a decimate modifier set to Planar. In you exemple, I used 5°, from 15k vertices to 1700 without important quality loss.

You can also convert a faceless collection of vertices and edges into a curve:
alt-c convert mesh to curve
Then create, say, a simple circle curve then after reselecting your original curve object, set the bevel object to the circle curve.

Blender 2.9
(presumably also valid for 2.8 versions)
Two-part anwser:

Use Cuves
Use Skin Modifier

Curves:
A simple way is to convert the mesh into curves, then bevel it, what gives the resulting "wire" a solid appearance. In Object mode:

select object and in top menu go to Object > Convert to > Curve
in the Properties Tab under Curve select Geometry > Bevel > Depth. Set a meaningful radius here.

The resulting object can be rendered in any way using the material of your choice.
Pretty easy and fast way.

Skin Modifier
If you really need flat lines to be rendered, I suggest to rather not using curves. Instead, in Object mode apply the Skin Modifier as suggested above by Gunslinger. This way is a bit more complicated in order to achive "flat" lines similar to a 2D drawing. Because the resulting skin first appears like a bold tube. But this can be changed in Edit mode:

Select all
go to Sidebar > Item > Transform. Here change either Mean Radius X or Mean Radius Y so that it gives the desired flat look.

However, this method seems to be computationally demanding for big meshes with lots of edges (compared to the other method) so that it may be slow when it comes to rendering.

In blender 2.8+ :
If you have an edge only mesh like for instance :

Disable all the overlays but the edges :

Setup your animation keyframes :

Resize and frame your viewport as it was a camera :

Set your output as if it was a regular render :

Render the animation with View > Viewport Render Animation :

Result :

Freestyle is unable to output edges, only faced mesh objects are supported. Here is a simple workaround, tested in Blender 3.5:

Convert your object (whether consisting only of edges) to Grease Pencil in Object Mode
Set your view as you like, no camera needed
Optionally set thickness of lines in GPencil Object Data Properties > Layers > Adjustments > Stroke Thickness
File > Export > Grease Pencil as SVG.

authors: Ольга Тарасова


text:
Cutting centered hole in mirrored object with subsurf
My problem, as you can see on the image below, is basically that the subsurf interpolation of the centered hole in that mirrored plane does not transform into a circle as intended.
I know that this is completely correct, since it just takes into account the additional vertex on the mirror axis, but is there any clever way to fix or work around this except fiddling around with the vertices manually?

A quad won't give you a real circle anyway. If you look at your example, the outer holes are still bulging a little in the corners. That's due to the algorithm and can't be helped. Six or 8 sides are much more precise. So, since you have 4 (6 with mirroring) verts in the middle, turn it into a hexagon or use 8 to have a nice clean result. Depending on what you want to do with the hole, an additional facering around the holes can be helpful as well as makeing a nice and undistorted bevel later.

Thank you for the info about the "not-a-circle" problem; i also noticed the bulges, but i thought it was something with my eyes.

One is glad to be of service. Btw, even 6 or 8 verts do not make a mathematically correct circle, but it's close enough 99 percent of the time. The difference to a real circle for 8 verts is roughly 1/1000 of the diameter of the circle.

You can turn the topology around to use a triangle mirrored to get a circle.

In your example after the mesh is mirrored you have a whole with six vertices around it, which is causing the distortion. you need to consider the mesh as it is generated after the mirror modifier.

this does indeed work, but the problem is that i cant put the holes close together since the minimal distance between them in x-direction will be twice the distance between the hole and the vertex on the corner

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
Rendered video randomly twice as fast as audio (preview looks normal)
A very strange thing is happening to me in blender. I recorded footage from cca 10 years old camera (can't tell you the type, don't remember). The footage was 25fps, original dimension 1440x1080. I set up the blender environment according to youtube video called 1 - Blender Video Editing (Setup Defaults) by Mikeycal Meyers and started inserting my clips.
As the tutorial said, I was supposed to match the dimensions and fps of the original with the settings in Blender. But when I changed the Blenders Preset resolution of 1920x1080 to my needed 1440x1080, the video got squeezed from right and left, leaving the picture squeezed and therefore useless. So I changed it back, hoping it wouldn't matter (but it may affect the problem I'm about to describe).
I had footage that was all taken from one camera under the same settings. When I took pieces of the recording and cut them in Blender, after rendering, in a few of these cuts the video is twice as fast as the audio. The rest is fine. Later, I deleted and inserted the "wrong" pieces again. The strangest thing is that one day it rendered fine, and a few days later the latter clip got rendered wrong again.
You can see here:

everything at the right speed - http://www.filedropper.com/8168-9085
second cut is wrong - http://www.filedropper.com/8700-9921

Could you tell what went wrong from this?
Would be very grateful for a solution, this has taken many hours already...
System Information:
RHEL 7.1 (Maipo).
Graphics: Intel® HD Graphics 5500 (Broadwell GT2)
Blender Version: blender-2.76b-linux-glibc211-x86_64

More important is the media information. What is the source media? Frame rate, frame size, CODEC etc. Blender cannot easily mix different frame rates on the timeline (that's why video speeds up). All media should match the "Project" frame rate. When you changed to 1440 x 1080 you either made a square frame or an anamorphic (stretched) frame. If it needs to be stretched you must alter the aspect in the project settings. If you have used a preset dimensions in the project settings then it may have altered the frame rate as well as the dimensions.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
I don't want to render from the Video Sequence Editor
As soon as I have a strip in the Video Sequence Editor it renders from that.
How can I choose between rendering from the Video Sequence Editor and rendering the actual Scene?

Related - http://blender.stackexchange.com/questions/39673/how-to-switch-render-source-vse-or-camera

If you have any kind of strip in the Sequencer and don't want it to be rendered, then:
In the Properties' Render panel > Post processing > uncheck Sequencer


text:
Does Blender have a method to a get PNG-formatted bytearray for an image via Python?
In Blender's Python, I can get the raw bytes that make up an image into a bytearray, like so:
    image = bpy.data.images[0]  # Pick any valid image you like.
    pixels = bytearray([int(p * 255) for p in image.pixels])

But, instead of raw pixel data, I would like to get a bytearray containing all the bytes of a PNG-format image.  This can be compressed or uncompressed PNG, but I need the bytes to represent a valid PNG format as if for saving to a file, not raw pixel data.  Ideally I'd like to get these bytes without actually saving them to disk, and without modifying the user's image if possible (for example they may think the image is a JPG or something).  How can I do this?  Does Blender have a PNG data format helper function that I could use without disturbing the user's image?  If not, is there a code snippet that will convert Blender's internal image representation to PNG format?

It involves understanding of Blender's internal representation of images, right?  I'm asking if Blender has a built-in convert-to-PNG-format helper, or if not then the answer will have to transform the data from Blender's own internal format.

I added these aspects of the question to the original via an edit.

I got this working based on Python code from Stack Overflow here.
Here's the version of that code adapted to work inside stock Blender 2.77a:
import base64
import zlib
import struct

def img_to_png(blender_image):
    width = blender_image.size[0]
    height = blender_image.size[1]
    buf = bytearray([int(p * 255) for p in blender_image.pixels])

    # reverse the vertical line order and add null bytes at the start
    width_byte_4 = width * 4
    raw_data = b''.join(b'\x00' + buf[span:span + width_byte_4]
                        for span in range((height - 1) * width_byte_4, -1, - width_byte_4))

    def png_pack(png_tag, data):
        chunk_head = png_tag + data
        return (struct.pack("!I", len(data)) +
                chunk_head +
                struct.pack("!I", 0xFFFFFFFF & zlib.crc32(chunk_head)))

    png_bytes = b''.join([
        b'\x89PNG\r\n\x1a\n',
        png_pack(b'IHDR', struct.pack("!2I5B", width, height, 8, 6, 0, 0, 0)),
        png_pack(b'IDAT', zlib.compress(raw_data, 9)),
        png_pack(b'IEND', b'')])

    return 'data:image/png;base64,' + base64.b64encode(png_bytes).decode()

Example usage:
print(img_to_png(bpy.data.images[0]))

This will print out a PNG-format data-URI of the image, regardless of what format the image is within Blender, and without altering the user's image.  I suggest using a very small image to test with, so the test output is not overwhelming when printed to the console.

The non Blender code is in fact Blender code :) https://developer.blender.org/diffusion/B/browse/master/release/bin/blender-thumbnailer.py;ad400006d32c4e5ee7ba842a11b164e0d112364c$156

authors: Василий Савченко

authors: Оксана Яндайкина


text:
How can I set the render border from Python?
I'm trying to render 1px strips of images. Is there a way to set the render border in pixels?
I'm rendering a total image that is 1440x900 pixels. What I need to do is render it in vertical 1px strips. So 1440 images each 1x900 pixels.
I'm currently setting the border min and border max with python as follows:
render.border_min_x = i/1440
render.border_max_x = (i+1)/1440
render.border_min_y = 1
render.border_max_y = 900

It works okay but I'm finding that the output files vary in dimensions some are 1px some 2px and others 0px (which makes the script crash)
Is python limiting the number of decimal places and that is why the 0.0 - 1.0 scale isn't as accurate as I need.
Any help or work-around?

What for? Could simply splitting it after the render work, or are you trying to optimise renders by splitting the thing between many computers / threads / somethings?

It might be easier to render full resolution and split the image with Imagemagick or similar. (http://www.imagemagick.org/Usage/crop/)
You could write a python script to output each row.

@akupresanin , border_min/max_x/y should range between 0.0 and 1.0 too. I think your min_y = 1 and max_y = 900 are typos ?


text:
Why can't I sculpt on a plane I added a solidify modifier to?
So, what I've done is to model a dagger using a plane.
And to that plane I've added a solidify modifier, however, when I try sculpting it using one of my brushes it only turns into a disfigured piece of junk.
How can I solve this?
I saw a video from a few years back and it looks like that person is scaling the plane, but when I try the same thing it doesn't work (hence why I added the solidify modifier).
I'm a blender noob so don't be afraid to become too detailed in your answer.

Geometry created by Solidify won't be accessible for sculpting unless modifier is applied. If it isn't, you'll be basically sculpting just a plane. Please edit your post with more information about what didn't work for you with Multires / Subsurf modifiiers and include images of current object as well as desired result. Thanks.

Have you applied the solidify modifier? That could help.

You have two options:
Option 1:
In sculpt mode, on the left tool shelf you need to enable "Dyntopo" the lower the number the more detailed your sculpt will be.
Option 2:
In the modifier panel add a subdivision surface to sub divide your plane so there are more faces to sculpt.
Hope that works.

I have tried both, not working at all I'm afraid!
Thanks for the answer though!

There is an easy fix. Just change the axis from x y z in the sculpting menu. You can find that setting on the Dyntopo Panel.

Hello :). You can also add images to better illustrate the solution.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Animation Loop Add-On Problem
So I've worked on a local add-on that would allow me to adjust the start frame and the end frame of the playback loop. I created an enum list with three options: default, A, and B.
Basically want I want to do is:

Adjust the start and end of the playback by selecting either default, A, or B on the add-on
A's playback would loop from 60-180 in the first time and then loop from 120-180. Same with B starting from 180-300 the first time and then from 240-300

If I select 'default' and play the animation it would work perfectly. But if I select 'default' again after I select either A or B, the first playback loop will go from 0-60, and then both start and end are at 120. Every time the animation will go from 0 to 120. Then clicking on A or B is even worse, the animation will run the desired range in the first time, then run from 0-120.
It seems like something is being overridden here. I'm not exactly sure how and why. Can anyone please help?
 def execute(self, context):
    # execute() is called by blender when running the operator.

    ## helper function used to modify the start keyframe of the second loop
    def keep(command):
        scene = bpy.context.scene
        if scene.frame_current == scene.frame_end:
            if command == 'A':
                scene.frame_start = 120
            elif command == 'B':
                scene.frame_start = 240
            else:
                raise TypeError("Invalid Input Command")

    def handlerA(scene):
        keep('A')
    def handlerB(scene):
        keep('B')

    if self.options == 'default':
        bpy.context.scene.frame_start = 0
        bpy.context.scene.frame_current = 0
        bpy.context.scene.frame_end = 60
    elif self.options == 'A':
        bpy.context.scene.frame_start = 60
        bpy.context.scene.frame_current = 60
        bpy.context.scene.frame_end = 180
        bpy.app.handlers.frame_change_pre.append(handlerA)
    elif self.options == 'B':
        bpy.context.scene.frame_start = 180
        bpy.context.scene.frame_current = 180
        bpy.context.scene.frame_end = 300
        bpy.app.handlers.frame_change_pre.append(handlerB)

    return {'FINISHED'}            # this lets blender know the operator finished successfully.

Never mind, apparently changing the start and end key frames in handlers were messy and it would only be changed once. Make the script changes the current key frames and avoid abstracting the handler methods would solve the problem.

Could you elaborate on Make the script changes the current key frames and avoid abstracting the handler methods and then accept your own answer.

authors: Алексей Карсунцев


text:
How to export UV Masks
The setup of what I'm doing I have two scenes

Main Scene

Layer 1 is my background
Layer 2 is just the billboard with UV Map

Billboard material

Here is a photo of my compositing nodes which should describe it better. Anyways I need the UV channel to map the second camera to the billboard. Anyways, I can only get UV when I render in Cycles.
My goal is to render out the UV as a "mask" and store that and then only rerender it in cycles when I need to. I can then do test runs in eevee to check my movements w/ materials.
How can I render out the UV to a format that can be read back in? I tried using an image but it did not work.

Can you show the setup you used when you tried to use an image and say more about why it didn't work?

Sure. Here is an example of my nodes. The bottom right nodes with the file output show how I'm getting the UV image sequence which is just saving the UV out to an image file. Then the rest of the nodes show how I'm trying to read the UV back in and reuse it to map the other render layers. As you can see the resulting image is blank for some reason.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Why is my render image only consists of bright patterns?
It is supposed to be a ball and a structure next to it
but the render image only display this
can anyone tell me why and how to make it normal?

Consider sharing the blend file: https://blend-exchange.giantcowfilms.com/ or provide more info with imagery https://getsharex.com/ , https://ezgif.com/optimize


text:
How to set the animated character's position on the grid floor?
I already animated the action for the character, just realise that the character in the middle of the grid floor, My question is how can i set the character on the grid floor instead of inserting keyframe one by one

what do you mean by "set the character on the grid floor"? If the character is not on the right place, switch to Object mode and move the armature. Also you need to understand that within one action you can keyframe both the armature and the bones themselves, which can lead to some mistakes like the one you've made previously

Select the root bone, go to the Graph Editor, select all keyframes of its "Y Location" channel (double click on the channel's name) and move them up.


text:
armature doesnot follow path after applying follow path constraint on armature object. The body separate from the armature
I face the problem with the follow path constraint which is when i set the armature to follow path constraint,it doest work but the body separate with the armature. Seek for help.

For some reason, you must have moved the mesh away from the armature, so it is not aligned with its armature anymore. The solution is to deactivate the armature Follow Path constraint visibility, bring the armature back to its Rest Position, and align back the mesh with the armature in the global space.


text:
How to get rid of fireflies ?I had tried many solutions but it doesnt work
How to get rid of fireflies ?I had tried many solutions but it doesnt work. I tried to increase the sample count, but it still remain the same. Tried to increase the lighting but it doesnt get rid of the fireflies.

Hello :). Fireflies are often caused by too strong lighting, noise is caused by too weak lighting. Check BlenderGuru's fireflies article - it goes into more depth.

Go to the layer properties tab and tick the denoising box

i tried but it doesnt work

Are you using a principled bsdf?


text:
Isnt any solution to move the 3d cursor and origin to pivot?
I want to place the 3d cursor at the particular place but i just able to place the pivot at that point, i have no idea how to move the 3d cursor and origin to the point. Seek for help

You can position the 3D cursor by hitting or holding Shift and right mouse button in the 3D view, the 3d cursor coordinates are located on the view side panel of the 3D veiw and hitting shift + S will bring up a menu with other 3D cursor options. If you want to make an objects origin point the 3D cursors position just right mouse click in 3D view and go to "Set Origin" also Shift + C will reposition the 3D cursor back to the worlds center.


text:
Is there any solution to let the character follow 2 path which include 2 different action?
In this case, i want to do the cat follow the bezier curve path using walking action first follow by another curve path which using jumping action. Izit any better way to do the that?

It might be possible but it seems a bit complicated, why don't you use the same curve and just play with the Follow Path Offset or curve Evaluation Time to stop or slow down then restart the cat whenever you want?

i have abiit confusing..."Follow Path Offset or curve Evaluation Time to stop or slow down then restart the cat whenever you want?" how does it work?

You can see that if you play with the Offset value of the Follow Path Constraint it will move the armature along the curve, so you can create some keyframes to control the movement of the armature along the curve

also can use the offset value to stop the character and then continue to move along the path?

can we set the frame that start move along the part and the end frame to move along the path?

yes, in the Follow Path constraint, enable the Fixed Position option, then if at a certain frame X you create a keyframe on the Offset, then a frame X+n you create a second keyframe with the same value, it will make the object stop between X and X+n

what you could also do it select the curve, go in the Graph Editor, on the left panel select Evaluation Time, open the N panel on the right, in the Modifiers tab delete the Generator, then in the Properties panel > Data > Path Animation, manage the movement of the object along the curve with some keyframes on the Evaluation Time value

Ermmmm. may i ask about if the keyframes are in dope sheet and not in timeline, it can be rendered?

yes, I think in the Timeline you'll only see the keyframes of the selected object, whereas in the Dopesheet you can either see the keyframes for selected or every objects, depending on the activation of the Only Include Channels option, but what does it have to do with your problem?


text:
Applying Dupli-Objects
Is it possible to bake dupliverts into one mesh for the BGE? (I have a large ground landscape that I use as the parent to duplicate trees, and the BGE doesn't support most modifiers.)

You can see some more info here..

You can turn all the duplivert objects into real objects by selecting the object with dupliverts and choosing Object> Apply> Make Duplicates Real from the menu in the 3D view, or Ctrl+Shift+A .
Then select all the individual objects and press Ctrl+J to make them a single object.


text:
Why does the material show 'unexpected' transparency effects?
Some of the trees leaves have issues with transparency, why is this?

The material settings:

Image (by Krzysztof P. Jasiutowicz, source :

By looking at your render, I would check for doubled up leafs, as in z fighting.

@David the incomplete transparency shows a quadrangle shape this shouldn't be z-fighting. Added the edited image (original was JPEG without transparency)

The Alpha value might not be 1...

@someonewithpc, close to 1 but not exactly 1 was it (fumbled too much on the node settings)

@David z-fighting made also sense for overlapped leaves from particle system. After I changed the emission from verts to faces the issue disappeared.

@NoviceInDisguise As it currently appears, yes. Who is going to answer the question? Should probably have been two separate questions.

@David yes you were first

@someonewithpc. could you add the 2nd part as an additional answer?

For this particular problem it seams like your shader, and image's alpha are not the problem, but rather z-fighting. When there are doubled up faces with transparency  the z-fighting will not have the characteristic black look, but rather strange transparency artifacts (much like your render).
To fix the doubled faces, check your particle settings to see if there any duplicated leaves. If there are more particles then places to emit them, then they will get doubled up.
Here is a cube with 8 vertices, the particle system number for both is set to 32. The only difference in the two is for cube on the right I gave the particles some randomness.

It seems like the problem is that the Alpha channel of your image is not 1; This leads to some translucency sneaking through where it shouldn't. To fix this, you can use many methods, but, probably the best is to use a Brightness/Contrast node:

If you put that node between your image's alpha and the Mix node, and set the contrast to a rather big value, such as five, the problem should be fixed.

In cases such as this I find it cleaner to use a math node set to something like greater than. That way the output is clamped to 0-1, and you have an easy way to control the threshold precisely.

Yeah, that works as well...


text:
Different animations for different scenes for a linked armature
I have a simple scene containing an object that is parented to an armature.
I made a copy out of the scene by choosing the "link objects" option, because I want to be able to edit one scene and have the change automatically reflect in the other scene.
The problem is figuring out a way of giving the same armature different animations in each scene.  If I animate the armature in scene 1, scene 2 will automatically have the same animation. I tried to link a different action to the armature in the action editor, but the action changes in both scenes.
Is there a way for me to link an object from a scene while still animating it individually? Proxies don't seem to work if I'm simply linking from another scene in the same file.

When you link an Object from one Scene to another all changes are transferred from one Scene to another, even animations. That is because the same Object and Armature are used. There is a quick way of fixing this for your case: Add a new armature object in each scene, then select each one of them and make sure they use the same Armature. You can make the selection here:

All changes to the Armature in Edit Mode will be transferred to all other scenes but changes made in the Pose Mode will be Scene specific.

Wow, that actually sounds like a really great solution! I will test it extensively tomorrow!

Damn, I tried this and ran into a problem: Everything you described works great until this step: how do I parent the mesh to this new armature in Scene 2, without also automatically parenting the mesh in Scene 1 to the same armature?

Hi! I did some more testing and got past the first problem by creating also a new mesh object to which I linked the original mesh in the object data tab. Now the only issue is the shape keys: is there a way animate also them separately in both scenes?

This is a known limitation of current Blender versions, no way around it except making all objects unique, as far as I know. This is being worked on for future versions of Blender.


text:
How can I make an object show up on different layers
How can I make an object show up on different layers without having to copy it? E.g. I have an object animated and I want it to show up on multiple layers.

I know I just asked it again so you don't have to look up the answer there (It is not mentioned in the accepted answer). It shouldn't be an exact duplicate. Thanks for answering

Shift + LMB on the layer boxes in the Relations section of Properties->Object.

Or in 3d view hit M in Object mode, and Shift + LMB on the layer boxes there

Select your object, hotkey m, and then Shift left-click on whatever layers you want it to appear in.

NOTE: if you do have your object in multiple layers, you'll generally also want to add the camera and lights to those (multiple) layers as well when compositing.


text:
Can a custom filter read property value and use it?
the built in filters has some settings, like motion blur has amount. but it' cant be assign with logic bricks.
now a custom filter, can it read a value somehow (python code wont work? or would it... like own["blur_amount"] ? )
the shaders is C code it looks like, and doesn't need to have .py extension AFAIK.
anyways, this would be so awesome, also for built in filters. so we can enable/disable and maybe script with python the transition.

Yes you can have a game property in a GLSL shader.
Here is a good read on making exactly what you want, a blur filter with a controlled blur amount from a game property (plus blend file).
From the script linked above, you can just use the property name blur_amount in the GLSL script.
Declare the var like this, then use blur_amount however you want to.
uniform float blur_amount;


text:
in Game Logic, can Object A use Object B's sensor?
Is there a easy way for Object A to use Object Bs sensor using the logic bricks? or do I need to have an always sensor on Object A, and run a custom python script?

Maybe I'm reading this wrong, but, it looks like you just need to select both objects, and connect the sensor from objectB to a controller from objectA.

:P wow, I was trying to start using globalDict to save a global variable and have it play animation on the other object! This was almost to easy! thank you!


text:
Path not filling correctly
I have some paths that have been imported via SVG from Illustrator, and as I was splitting them up, some would fill and some wouldn't. Even after removing extra points and ensuring there wasn't any redundancy or open ends, the path still won't fill.
Even weirder, if I translate certain points enough, it will fill.
Unfilled:

Filled after severe deformation of an anchor:

What gives? I fixed the G earlier but now the T (consisting of only straight lines) won't fill. I have one other letter with many more points and I'd rather understand why it's doing this before spending more time fiddling with it before it works.

Could  you upload a .blend file where this is happening? It's hard to say what could be the cause without looking at it closer.

@gandalf3 <Surely>. In the blend file I included the other letter I mentioned as well. I haven't verified the U yet but I'm pretty sure it's closed (it was closed in AI so unless it imported weird it should be)

The object has a scale of over 40,000. If you apply the scale (CtrlA> Scale) everything will work correctly:

Is applying a transformation kind of re-setting the 'baseline'?

@Qix Yes, in a sense. It applies the object transforms (in this case, scale) to the actual mesh data. When you scale an object in object mode, the mesh data is not changed, but it will be distorted according to the scale in a non-destructive way (like a modifier). Since your object was scaled up by such a huge amount, you were probably seeing the result of some kind of precision/rounding error.

Aha, that makes a lot of sense. Thank you :)


text:
getXYZ() returning incorrect values?
Given a plane like this:

I want to sort the vertices from left to right, top to bottom (for use in the BGE).
However, vertex.getXYZ() and vertex.XYZ give incorrect values for several vertices. I've checked the plane for doubles, yet a number of verts return the same locations.
from bge import logic

own = logic.getCurrentController().owner
vertlist = []

def sort_verts(k):

    if k['XYZ'][0] < 0:
        return k['XYZ'][1]+.0001
    else:
       return k['XYZ'][1]

for mesh in own.meshes:
    for m_index in range(len(mesh.materials)):
        for v_index in range(mesh.getVertexArrayLength(m_index)):
            vertex = mesh.getVertex(m_index, v_index)

            print(v_index, mesh.getVertex(m_index, v_index).getXYZ())

            vertlist.append({"XYZ": vertex.XYZ.copy(), "index": v_index})

vertlist.sort(key=sort_verts)

#for v in vertlist:
#    print(v['index'], v['XYZ'])

I've commented out the sorting part, as it doesn't seem to be causing the problem.
Running the above in the BGE outputs the following:
I've commented a few of the duplicates, there might be more.
Blender Game Engine Started
0 <Vector (-1.0000, 1.0000, 0.0000)>
1 <Vector (-1.0000, 0.9310, 0.0000)>
2 <Vector (1.0000, 0.9310, 0.0000)>
3 <Vector (1.0000, 1.0000, 0.0000)>
4 <Vector (1.0000, -1.0000, 0.0000)>
5 <Vector (1.0000, -0.9310, 0.0000)>
6 <Vector (-1.0000, -0.9310, 0.0000)>
7 <Vector (-1.0000, -1.0000, 0.0000)>
8 <Vector (1.0000, -0.8621, 0.0000)>
9 <Vector (-1.0000, -0.8621, 0.0000)>
10 <Vector (1.0000, -0.5172, 0.0000)>
11 <Vector (1.0000, -0.4483, 0.0000)>
12 <Vector (-1.0000, -0.4483, 0.0000)>
13 <Vector (-1.0000, -0.5172, 0.0000)>
14 <Vector (1.0000, -0.3793, 0.0000)>
15 <Vector (-1.0000, -0.3793, 0.0000)>
16 <Vector (1.0000, -0.3103, 0.0000)>
17 <Vector (1.0000, -0.2414, 0.0000)>
18 <Vector (-1.0000, -0.2414, 0.0000)>
19 <Vector (-1.0000, -0.3103, 0.0000)>
20 <Vector (1.0000, -0.7241, 0.0000)>
21 <Vector (1.0000, -0.6552, 0.0000)>
22 <Vector (-1.0000, -0.6552, 0.0000)>
23 <Vector (-1.0000, -0.7241, 0.0000)>
24 <Vector (1.0000, -0.5862, 0.0000)>
25 <Vector (-1.0000, -0.5862, 0.0000)>
26 <Vector (1.0000, -0.7931, 0.0000)>
27 <Vector (-1.0000, -0.7931, 0.0000)>
28 <Vector (1.0000, -0.1724, 0.0000)>
29 <Vector (-1.0000, -0.1724, 0.0000)> # same as 35
30 <Vector (1.0000, -0.1034, 0.0000)>
31 <Vector (1.0000, -0.0345, 0.0000)>
32 <Vector (-1.0000, -0.0345, 0.0000)>
33 <Vector (-1.0000, -0.1034, 0.0000)> # same as 34
34 <Vector (-1.0000, -0.1034, 0.0000)> # same as 33
35 <Vector (-1.0000, -0.1724, 0.0000)> # same as 29
36 <Vector (1.0000, 0.0345, 0.0000)>
37 <Vector (-1.0000, 0.0345, 0.0000)>
38 <Vector (1.0000, 0.1035, 0.0000)>
39 <Vector (-1.0000, 0.1035, 0.0000)>
40 <Vector (1.0000, 0.1724, 0.0000)> # same as 42
41 <Vector (-1.0000, 0.1724, 0.0000)> # same as 45
42 <Vector (1.0000, 0.1724, 0.0000)> # same as 41
43 <Vector (1.0000, 0.2414, 0.0000)>
44 <Vector (-1.0000, 0.2414, 0.0000)>
45 <Vector (-1.0000, 0.1724, 0.0000)> # same as 41
46 <Vector (1.0000, 0.3103, 0.0000)>
47 <Vector (-1.0000, 0.3103, 0.0000)>
48 <Vector (1.0000, 0.3793, 0.0000)>
49 <Vector (-1.0000, 0.3793, 0.0000)>
50 <Vector (1.0000, 0.4483, 0.0000)>
51 <Vector (-1.0000, 0.4483, 0.0000)>
52 <Vector (1.0000, 0.5172, 0.0000)>
53 <Vector (-1.0000, 0.5172, 0.0000)>
54 <Vector (1.0000, 0.5862, 0.0000)>
55 <Vector (-1.0000, 0.5862, 0.0000)>
56 <Vector (1.0000, 0.6552, 0.0000)>
57 <Vector (-1.0000, 0.6552, 0.0000)>
58 <Vector (1.0000, 0.7241, 0.0000)>
59 <Vector (-1.0000, 0.7241, 0.0000)>
60 <Vector (1.0000, 0.7931, 0.0000)>
61 <Vector (-1.0000, 0.7931, 0.0000)>
62 <Vector (1.0000, 0.8621, 0.0000)>
63 <Vector (-1.0000, 0.8621, 0.0000)>
Blender Game Engine Finished

What gives?

I just noticed that the BGE seems to think there are 64 vertices, but my plane only has 60 according to the count in the header.
What could cause this?

How many materials do you expect? 1,2 or more?  This relates to the unexpected count of 64.  How many faces of each material?

@atomicbezierslinger 1. There should always be only one in my particular case (and there is only one in the example, I checked that). Even stranger, it correctly gives 4 verts if I delete the extra edges in the plane.

Take this with a cellar of salt.  2013.  https://developer.blender.org/T34550

@atomicbezierslinger Hm.. That may relevant still. The result seems vary based on how I construct the plane. If I do more than 15 loopcuts at once, it returns extra verts. If I loopcut + subdivide (for e.g.) it works fine. Very strange indeed.

getXYZ() returns the position relative to the origin of the mesh. The vertex count and the duplicates are related. Basically it's nesscesary for the GPU in some cases (related to face normals) to duplicate some verticies. BGE does that for you without you noticing, until you count the vertices that's it. Don't worry about it and handle the duplicates as if they where the same vertex.
If at some point you want to modify the normals then you'll have a problem.

@elmeunick I see, so this is expected behavior. If you care to write that up in an answer I'll be happy to accept it :)

From elmeunick's comment:

getXYZ() returns the position relative to the origin of the mesh. The vertex count and the duplicates are related. Basically it's necessary for the GPU in some cases (related to face normals) to duplicate some vertices. BGE does that for you without you noticing, until you count the vertices that's it.
Don't worry about it and handle the duplicates as if they where the same vertex. If at some point you want to modify the normals then you'll have a problem.


text:
Add menu for primitives in Blender 2.8
Is there a way to bring back the add menu that pops up in the bottom in Blender 2.8 when adding primitive object to your scene to change vertices?

Just expand this little tab on the bottom left corner of the 3D window.

If you click away and there is no more collapsed box at the bottom of your 3d viewport, you can go to Edit - > Adjust Last Operation. It will bring the options for tha last operation back when it is no longer on screen. As soon as you perform another operation the options will change to that operation though.

Simply put: No. You only can get back these options like in the answers above mentioned. Blender does not use the system of adjustable primitives like other 3D spftware. You can add a primitive of course, but after adding, it's just a simple mesh object. There are exceptions, like in the Archimesh addon, but the standard behavior is as mentioned.


text:
Access Audio Strips Sample data in Python for a Cross-Correlation
I want to perform an Audio Cross-Correlation in Blender (like with numpy.correlate) to align two Audio Strips. But I can't figure out how to access the Sample Data of an Audio Strip inside Blenders Python Console. How can I access the samples via Python? The Developers access these samples in the sequencer_draw.c. But with a Python Sound Object like bpy.data.scenes['Scene'].sequence_editor.sequences[0].sound I cannot access the waveform data.
I cannot use an external program like the syncaudio Add-on does as only one of my Audio Strips is based on a WAV-file, the other one is from a MTS-file and is already properly imported into an Audio Strip by Blender. And the Audaspace API as well doesn't allow me to access it.

The audio Sample Data doesn't seem to be directly accessible via python.
However, there is a workaround that suits my needs:
I can use Bake Sound to F-Curves which actually results in an already project frame rate based curve. This will add an .animation_data.action.fcurves entry for my Object I added my FCurve to with an attribute sampled_points. These sampled points have lots of FCurveSample entries that include a co Vector. Each is a pair of my frame and the corresponding sound hull curve point. Iterating this Vector I can "extract" a value for each frame which is enough to perform a cross-correlation on:
fcurves = bpy.data.objects['Empty'].animation_data.action.fcurves
samples = []
for value in fcurves[0].sampled_points.values():
    samples.append(value.co.y)

Afterwards I can delete the FCurve again.
When I do this twice, I will get two sample-lists that I can feed into correlation = numpy.correlate(audio, video_strips_audio, 'valid') to perform the cross-correlation. Afterwards I can get the time shift difference between the two sound files by correlation.tolist().index(max(correlation)).
Though this doesn't work directly yet when the second sample-list starts before the first one, but I'm working on this to get it right as well... This depends on the optional mode parameter from the correlate function. I will update this answer when I get this working in general.
Why I do all this: It allows me to automatically shift two Audio files between each other until they match and can be synchronously played back even though they were recorded at the same time but their absolute start time was a bit off. So I can timewise align two or more cameras that recorded simultaneously but weren't started recording thogether. Or a Camera outputted video files audio track and an Audio Recorders Sound file.
The main advantage using this method is, that I don't need to use WAV-files only as with the mentioned add-on, but can rely on any media format including Video files that Blender can already handle via ffmpeg internally as opening a Sound file to bake to an FCurve will be handled the same way any other media/movie file I want to add to the Video Sequence Editors timeline.

Converting any sound that blender can open to wav using blender or audacity et al,  is not a huge disadvantage IMO.   The "rate determining step" is baking the fcurves.   Theoretically (haven't tried) converting and using syncaudio could be quicker.  On the other hand having to build syncaudio from source could be troublesome for some.


text:
How do you bring back the object properties console?
This has eluded and frustrated me for too long.

After adding objects like a Sapling or a gear you get a panel inside the tools menu-bar with options to control the object that you just added.

If you select another object, make changes in the same object(rotate, scale, etc.) or click anywhere in the viewport, the panel disappears. I've never been able to find it once it's gone. I've been trying to follow this tutorial and this happened multiple times and each time I have to start over. So,
Where is the panel and how do you get it panel back?


text:
Adding sliders from UI to pie menu
I've seen some sliders working in pie menus but the one I'm trying to add to my pie script isn't showing up. Its the 'autosmooth normals' slider from the Object Data tab, under Normals (in the Properties panel).
I'm trying to call it directly in the pie menu without making a new class since its already loaded by the main UI:
row.prop(mesh, "auto_smooth_angle", text="Angle", slider=True)

Are sliders like this one not able to be displayed in pie menus?

is the console printing out any error message? where have you seen a slider working in a Pie menu? it could help to have a look at the code of that pie menu to see how they are doing it.

Here is a link to the early pie menus attempt from several years ago.  It has an Auto-Smooth slider, the Addon code should have something for you. http://blenderartists.org/forum/showthread.php?267414-Pie-Menus-%282-66%29-Update-01-28-13.

I assume you are familiar with the following current thread?  If not... http://www.elysiun.com/forum/showthread.php?348496-Addon-Wazou-s-Pie-Menus


text:
Bake Video to Sound
I have a video clip. I want it to match with the speed of the music. Whenever there is a beat in the music the speed of the video should increase and visa versa. Can anyone help.

You can add a video clip as a strip in the VSE. Then you can add a speed effect strip to it. The speed effect strip can be altered by animating the multiply factor of the speed value. Then you could import a sound and use the Bake Sound to Fcurve function. Use this curve to drive the multiply speed.


text:
how does FBX exporter mark hard edges?
When I export FBX with default settings, I mean 'Smoothing' option on 'Geometry' tab, which by default reads 'Normals Only', this setup makes the whole mesh smooth-shaded and marks certain edges sharp.
When I change this option to 'Faces', I receive unmodified mesh.
Both meshes are identical visually, but first one, smoothed, has less vertices count because of that smoothing.
I tried looking at the code, but it is very complicated for me. The only thing that I understood, that 'Normals Only' represents switched off smoothing in exporter, so it appears to do nothing with smoothing, when this option is selected.
But exporter uses some mesh functions like calc_normals_split.
How this exporter does this thing with edges? What is that magic function?

To summarize, FBX supports two kinds of smoothing:

Smooth groups (inherited from 3DMax), i.e. groups of faces that have smooth edges inside, and sharp edges on their boundaries.
Normals per vertex per face (aka split normals in Blender), where the whole mesh is set smooth, but shading of each face is influenced by its vertex (or corner) normals - two faces sharing a common edge which vertices have different normals will show a sharp edge (if shader system of target supports it of course).

no one answers my questions :(
so i investigated a bit. this option really switches modifications of smoothing off, except that exporter turns on autosmooth for mesh.
and on importing fbx those edges seems to be marked as hard, just according to their splitted normals.
but that's only my opinion, because i still fail to fully understand the code of this addon.

So, normally, when nobody tries to answer a question, it's almost always because nobody really understands what's exactly the problem. Screenshots do help a lot.


text:
What is the fastest way to texture bake a full scene?
I am familiar with the concept of baking in cycles to use it in the bge.
Can I somehow bake the whole scene without having to select one object each time?
If yes which is the fastest way so I won't have to waste a lot of time?
I don't care if the CPU will work overtime.

At least part of textures can be baked with Texture Atlas addon into one image.

Depending on your intended volume either by doing it manually or making a script that handles the bake.
You will need to manage at least the following:

texture resolution for each baked mesh object
which objects to bake (you probably don't want to bake glass / transparent objects / illuminating surfaces / gfx like light halos etc
setting up lightmap bake UV layer (most likely you have the default UV used for getting the texture itself tiling correctly)
setting up an image texture node for every material in the object being baked and make a new image for it and make the node selected
saving the texture on disk with naming convention that allows you to read the images into a new, realtime baked materials that correspond to the mesh objects when you start BGE

If you plan on making more than 1 or 2 levels, to me it definitely calls for script assistance.


text:
What do the 'Custom shape' options on the Sapling Tree Gen add-on do?
I downloaded Sapling Tree Gen 2.78 and I can't find any help.
What do the 4 lines of Custom Shape mean?

If you change shape to custom shape, these values will be active.
When you point your mouse on it it says these are the values for Base, Middle, Middle position and Top respectively. You can change those, using your mouse and drag these fields to the left or right or enter number between 0.01 and 1

Why are you editing my answer, i think you want to edit your question?

to add pictures

Yes I want it but when i add comment I can't attach pictures. I am sorry

I can delete it if you want.

it's okay :) you can add it in your question under 'edit'

I am sorry I have to go out. I will contact you tomorrow. Many thanks

@FacebFaceb If you type [edit] it will render as [edit] which, when clicked on, takes you to the question in 'edit' mode. It can be useful to give to users who may not know how to edit questions.

@RayMairlot thanks, but the user knows how to edit my answer though

Yes, but they didn't know how to edit their own, which was my point. That link takes them to their question.

@RayMairlot ok, i changed it to [ edit ], but it doesn't link. Btw, how can you use bold, or letters like your '[ edit ]'?

There are no spaces between the words and the square brackets. Code formatting is 'backticks' ( ` ) surrounding the word.

I mean I have added '[ edit ]' to the OP's question, or should i do it as comment under their question? I did intended to type '[ edit ]' instead of [edit], because the latter won't show the brackets and I wanted to ask about the syntax

Let us continue this discussion in chat.


text:
How do I align the view to the local axis of an object?
How can I get standard axis views (Numpad 1,3,7,9) in local axis instead of global? The motivation is simple, I was using these view for modelling my object, now I moved it, but want to edit it again.

Press Shift in combination with any of those number pad numbers to align to the local axes of the selected object.
Note that this will only work if you have rotated your object in object mode and haven't applied the rotation. If you have rotated in edit mode or applied the rotation then you can select a face (or vertices or edges) of the object and use Shift+1 (3,7,9 etc.) to align the view relative to the axis of the selected element.
If you use Ctrl+Shift in combination with the numpad numbers you will align to the opposite view of the object's axes, e.g. bottom, back instead of top, front.


text:
Reverse directions of spacemouse
I tried Blender today but my Spacemouse operated in reverse direction. Where can I change this setting?

You could try adjusting mouse settings in User preferences > Input (You can open the user preferences with CtrlAltU, or File > User preferences:

Invert Wheel Zoom Direction inverts the zoom direction when using the mouse wheel in the 3D view.
Invert Zoom Direction inverts the zoom direction when zooming by pressing CtrlMMB.

You could also try the solution posted in this thread on Blender Artists:

RESOLVED: I received an answer to this question from Tehrasha in the
  Blender.org forum.
Tehrasha pointed out that one of the buttons on the 3D mouse displays
  a settings menu with options to invert the axes.
This works for me. The only thing on my wish list now is to remove the
  need to hold down SHIFT for panning actions, as this breaks the smooth
  flying effect of the 3D mouse (it interrupts any rotation). It's odd
  that zoom (forward / back) works regardless of SHIFT state.

Clicking the left button of the spacemouse showed a nice menu letting me invert all axes. Ty sir!

The ~nice menu~ turned out to be the the driver in some kind of mini-mode when not started. Guess I'll just save a profile for Blender.

Benefitted from becoming aware of this use preferences side panel with its own settings using the trackpad on a 10.13.6 macOS and I wanted Natural Trackpad Direction.  Seems you have to manually make it match the OS setting.

For 3D Connexion MouseSpace and Blender 3.1.
Configuration menu
Use the left switch:

This panel is displayed:

There are two important settings, axis direction and axis allocation.
Invert axis direction
Invert Axis Pan/Orbit switches are used to change the sign of the joystick input to pan and rotate the camera.
The natural way is when the switches are not selected: Pushing the joystick right or turning it clockwise exposes things on the right and hide things on the left.

Selecting the switches is what make the axes feeling "inverted", it seems to be the default configuration.
Instead of moving the center of the view field, the joystick moves what is visible, e.g. rotating clockwise moves the image to the right, so a portion of the image on the right is hidden and a new portion appears on the left of the field of view. That's like piloting a plane with the stick inverted.
Choose how height is controlled
Swap Y and Z Axes controls which mouse axis is used for Blender Z axis, e.g. to pan/dolly the camera up/down, that is to change its height or the height of the viewport center.
Without this option selected, Z is controlled by moving the joystick up/down which seems logical but is a bit difficult to coordinate with another axis.
When selected, height is controlled by moving the joystick forward/backward which may seem more natural in the end as this allows to control the camera displacement in the screen plane by using axes in the same mouse plane (horizontal plane).
Swapping Y and Z consequence is to change the Y axis control too. Y axis for the camera means dollying back/forward (which in Blender is used to zoom, while a true zoom would be to change the focal length).


text:
How do you make a lamp light up glossy surfaces?
Working on a candle project to practice:
Under the 'world' properties I have turned the strength down to 0 (thus making it pitch black). I then added a lamp to the workspace and adjust its strength to 1-2 (doesn't matter) and it starts lighting up the candle. If I adjust the strength too high the candle starts getting over-exposed looking and just stark white, but the ground remains mostly black. You can BARELY see the ground's reflective surface, but the sun lamp seems to have no affect on the ground.
If I remove the Glossy BSDF property from the ground the ground then reacts to the sun lamp as expected, immediately getting brighter to match the lamp.
What could be causing this? Shouldn't reflective surfaces still brighten up a bit when a lamp hits them.
On the left you have the exact same image, nothing changed except for the properties of the ground with (left) and without (right) the Glossy BSDF characteristic. (which expands beyond the entire image).

I think your problem is that light is being reflected of the ground plane, but not into the camera. (see specular reflection)

Shouldn't reflective surfaces still brighten up a bit when a lamp hits them

It's not a matter of "brightening", the light has to hit the plane and then get bounced into the camera.
Diffuse objects scatter light, so they bounce some light into the camera regardless of the angle. Completely glossy objects (no Roughness) will bounce light without scattering it at all, and slightly rough glossy surfaces will scatter light slightly:

To visualize this in 2d:

As you can see, the camera will not receive any light from the (slightly rough) plane. Except for light reflected of the diffuse object:

Workarounds:
To work around this, you could:

Add more lights. You could add a light in front of the camera and behind the object which bounces light off the plane into the camera:

Increase the world background brightness (in the real world there is almost always some ambient light) You could make it so the world appears black to the camera while actually emitting a little bit of light by means of the Lightpath node:

Add a tiny bit of diffuse reflection to the glossy shader:

The diffuse shader input color brightness controls how much diffuse is added. (black is none)
Mix some diffuse reflection into the glossy shader. (with a mix shader) Note that this is slightly different than adding.

Replies to comments:

Thank you for this great response! Unfortunately, adding additional
  lamps on the far side of the object has absolutely zero affect on what
  the ground looks like. The ground has not seemingly changed one pixel
  with the addition of another lamp or with the moving and re-adjusting
  of the lamps and their strength. It HAS affected the candle though,
  and the candlestick has a glossy finish, so I don't understand why the
  planar floor won't do what the candle base is doing.

It depends on the angle of the surface and the camera. (and the type of lamp)
To get a feel for this you might want to try playing with the view (with viewport rendering on) with just the plane and a couple lamps to get an idea of how this works.

I should add that I wanted the candle to appear to be the only light in the room. I made the flame an emission source and that lights up just fine, but when the candle and candlestick are lit up but the floor is not it just looks weird

In that case you probably don't want to add extra lights. (you might even want to remove all the lights except for the candle flame)
Keep in mind that in an actual room there is some indirect lighting from the walls and other objects. You could set the world to a very dark color (but not black) to simulate this.

In the end you were right. I had my floor as a glossy surface, with a roughness of .100 which apparently makes the surface too glossy to reflect light? I had to make it a .2 or higher to get any sort of light reflection off the object. Although I feel like even a polished brass sphere should glow when a light hits it.

Again, an object is only visible when light bounces off it and into the camera. AFAIK, there is no such thing as "too glossy to reflect light", it's just not reflecting light where you want it. (i.e. the camera)
The reason increasing the roughness makes reflections more visible is that it scatters light in more directions, increasing the probability that some light will enter the camera.
I think the solution you want here is to mix some diffuse reflection into your glossy material. This will bounce light in pretty much every direction, making sure everything is visible to the camera.

If I had any questions left, I'd ask if there's a way to adjust the
  intensity of an emission source that isn't actually a lamp? As it
  stands I have the flame set as an emission 'texture' but i put a lamp
  inside the object and adjusted the lamps brightness to compensate for
  the flame's lack of brightness.

I'm not sure what you mean by emission texture, but if you are asking what I think you are asking:
You can make an emission shader that appears the color set in the Color input while emitting more light than a Strength of 1:

Only an emission shader with a strength of 1 and 20:

With the above node setup:

Example renders:
Completely black world with some diffuse mixed with the glossy materials:

Completely black world with only glossy reflection:

Only glossy with a mesh light (selected) affecting the glossy floor:

Thank you for this great response! Unfortunately, adding additional lamps on the far side of the object has absolutely zero affect on what the ground looks like. The ground has not seemingly changed one pixel with the addition of another lamp or with the moving and re-adjusting of the lamps and their strength.
It HAS affected the candle though, and the candlestick has a glossy finish, so I don't understand why the planar floor won't do what the candle base is doing.

I should add that I wanted the candle to appear to be the only light in the room. I made the flame an emission source and that lights up just fine, but when the candle and candlestick are lit up but the floor is not it just looks weird

In the end you were right. I had my floor as a glossy surface, with a roughness of .100  which apparently makes the surface too glossy to reflect light? I had to make it a .2 or higher to get any sort of light reflection off the object.
Although I feel like even a polished brass sphere should glow when a light hits it.

Have you tried putting it in an actual room with diffuse walls? In the real world they are responsible for reflecting light back to the object.

@leigero It depends greatly on the angle of the camera and the reflecting surface. See my edits.

Thanks again @gandalf3 I couldn't have done it without you. I tweaked a lot of stuff, took everything you had into consideration and i have it working beautifully. If I had any questions left, I'd ask if there's a way to adjust the intensity of an emission source that isn't actually a lamp? As it stands I have the flame set as an emission 'texture' but i put a lamp inside the object and adjusted the lamps brightness to compensate for the flame's lack of brighness.

@leigero I'm not sure what you mean by emission texture. Why not just change the Strength of an Emission shader? If my edit does not answer your question, you might want to try asking a new one.

I recommend that you do a real-world physical setup and make sure that what you're imagining should happen is what would actually happen.  You may be trying to get an "accurate" outcome that isn't actually accurate.
Also, pretty sure some of the reflection stuff discussed in other comments/answers here is wildly incorrect, but I am not a thing to lighting that a linguist is to language.


text:
How do you make an xray material (or similar)
I's there a way to make a material such that when viewed through another object it appears differently?
Example:
object 1 is a black sphere
Object 2 is a glass plane
When viewing the black sphere through the glass pane the sphere becomes translucent, or in some way changes the texture that is visible THROUGH object 2, but anywhere that object 1 is directly visible to the camera it remains a black sphere.
Is this even possible using standard blender tools or will this require scripting and mods?

If you want this to work only on specific magic glass, this cannot be done with shaders and is very difficult and time consuming with render layers:

shaders have no clue which glass it is looked through, it reacts to all of them or none of them.
render layers have problems with refraction and transparency and influencing other (background) objects if the xray material emits light. Also intersecting x-ray objects with non-xray are a problem. The materials setup for them are complicated and dependent on object indexes and worth a separate answer if you want to know. It's basically setting 2 render layers to output the same as below.

The solution is to use multiple scenes:

1st one normal
2nd one duplicate with all "x-rayable" objects having x-ray shader

Then you just composite them together through a mask from the magic-glass. So the magic glass is like a portal window to an alternative world with x-ray objects:

Oh no! There are Suzannes trapped inside those spheres.

To save some time rendering you can make use of adaptive render region addon in the 2nd scene and render only around the magic-glass object.
Also if there is no visible light (direct or indirect) coming through or reflected off the magic-glass into the 1st scene, it's good to give it just plain black or holdout shader, so it renders faster. It will be replaced with the 2nd scene anyways.

There are several ways to approach this, the most flexible is likely compositing and renderlayers. However, it is possible to do this from within cycles:

If the incoming ray has bounced more than once and it is coming from a transmissive object (such as glass), it will be translucent. Otherwise it will be diffuse.

You really are a wizard. Your name couldn't be more appropriate.

Not to make this more complicated, but what if this effect were intended to work only with the certain piece of glass? Perhaps there are several but only one has the 'spy' properties required to reveal the objects true nature.

There is a very nice tutorial on the light path node from Bartek Skorupa: https://www.youtube.com/watch?v=MTFxyNzI5EE

I've thought about this and have 2 ways I have come up with doing this.  You'll decide which one to do based on your skill level and if it's a multiplayer game or not.  Either way it will require multiple scenes set up exactly the same except for the objects you want changed.

If it's a single player game, have the game change the scene when the character puts the glass to his/her eye so that he/she see's the new scene. The  easiest way to do this is just having the scene change to the new one and making the glass be a pair of glasses you can put on and take off.
If it's a multiplayer one you can do the same thing, although it's more difficult because you have to make all the characters have 2 locations.  One in the normal scene and one in the glass only scene.
If you want to get real creative and are reasonable at coding you also could set it up so that the glass works as a video camera and have a camera in the second scene that will stay in a relative position in the second scene to the glass in the first scene.  This way you can hold the glass up and see the normal scene around the glass and the changes through the glass.
Again, if it is going to be multiplayer you are going to need to set the players up so that they are always in 2 positions, one in the normal scene and the other in the secondary scene.

Side note, another bonus to the 2 scene set up is you can set the second scene to have a mystic look to it so that it looks like the glasses are seeing through the dimensions, or you can just copy and paste the scene with your new changes so it looks just like the other, it just gives you a lot of flexibility this way.


text:
Reset Active Operator
I want to write a Handler that runs code only when the user stops translating an object, using bpy.ops.transform.translate (the 'G' key). So while the user is sliding the mouse around, nothing should happen besides the object being translated. But when they exit the modal operator (by left-clicking or pressing 'enter'), my code should run.
My approach:
@bpy.app.handlers.persistent
def detect_change(scene):
    op = bpy.context.active_operator
    opname = op.bl_idname.replace("_OT_", ".").lower() if op else ''

    # On entering translate mode, start checking for exit
    if opname == "transform.translate":
        waiting = True # This will be some sort of persistent variable.
        return

    # If not in translate mode, then run code
    elif waiting:
        my_function()
        waiting = False

# Add the handler
bpy.app.handlers.scene_update_post.append(detect_change)

The only problem is that after exiting the translate modal operator, the active_operator remains at transform.translate. It doesn't switch until another operator is called.
Any way to either force the operator to update to None or to detect exiting the modal operator?

You may wanna look into Macros, but there is no real reliable way to achieve this. http://blender.stackexchange.com/questions/3032/alternate-between-user-input-and-automation-in-one-step-script

So the idea would be to call the macro instead of directly invoking transform.translate? A bit inconvenient for the user to have to remember, but I see how that could work.

Keep in mind that in macro calling a modal op and then a regular op, the regular op will be executed before the modal op. Waiting for a modal op to finished is not officially supported. But you may be able to circumvent it with another modal op, that needs to be invoked and wait for the event that ends the other modal op (yes, this is really hacky not and never fully reliable).

Oh weird. In that case, I'll hold out. I wonder if there's room for post_operator and pre_operator Handlers? (I know they don't exist, just wondering if it would be useful addition).

window_manager.operators keeps a log of the recent operators. Not sure if it is useful and what it does.

Not sure exactly what it does, but what I need is actually an indicator that the operator has finished

@supergra If you've figured out an answer you should post it, I need a similar solution.

No, I gave up. Never figured it out.


text:
Clone Stamp affecting opposite side of model?
Relatively new to Blender! I have a textured model, and I'm trying to clean up some messy seams. (Long-term I should have placed my UV seams in less visible locations, but at this point, I'd rather use the clone stamp to fix things than repaint my entire model)
When I use the clone stamp, I set the source with the 3D cursor, but when I go to paint, the area I'm trying to paint is not affected, but instead, the opposite side is painted in unpredictable ways:

No clue why this is happening or how to fix it, the only modifier have applied is subsurf, and I can't find any mirroring options that could be affecting the clone tool. Any help is appreciated. (Using blender 2.8)

you should check your normals, if the faces are red, flip them

Did you apply scale to the object, and do you have a mirror modifier on or do you have texture paint set to symmetry on x axis?

User Moonboots Had the (rather simple) answer, I had some flipped normals affecting where the clone tool was cloning!


text:
Hair passing through emitter at high velocities
I'm working on an animation involving a hair system on a fairly angular object, the goal is to use hair dynamics to make the object "shake" like a dog, and have the hair behave accordingly.
Everything works quite well, but at particularly high velocities during the shaking motion, the hair clips through the mesh, revealing the emitter. I have tried the solutions proposed here & here. I haven't seen great results with either solution, but the latter is especially destructive and will often cause my hair system to completely flip out..
The clipping:

Best solution so far has been to bump up the stiffness of the hair like crazy, but I still have some clipping occurring at the highest velocities, I'm unsure what else to try, any other options or directions would be appreciated. Maxing out the damping / clamping obviously stops the clipping from occuring but this virtually freezes the hair, ideally the hair is still quite flowy / bouncy. Hair dynamics settings included below:

Hair Dynamics > collisions > Quality > set it to a value like 5 or higher
Cache > cache step > set it to a higher value like 2 or 3 if your movements are fast
always bake the cache for your animation .
if your problem solves don't forget to  like and accept this answer


text:
Baking smoke on headless machine
I have a linux vps that has some spare resources left from main activity. I can not get the GUI working, but I was thinking if there is a way to use it for baking with python script.
I see that there is an operator:
bpy.ops.ptcache.bake(bake=True)

But what is the right context for it?
Also if anyone has ideas to get the GUI working under Ubuntu VPS, that would be much appreciated.

Baking smoke is very similar to baking fluid, so I will quote brecht's answer:

It's a bit more complicated than it could be because fluid simulating baking is only exposed as an operator. That means it expects an active object in the context, which is usually provided by the user interface that is not available in background mode.

However, it is possible to override context manually, see this answer as well as the documentation.
For a smoke simulation, this might look like:
import bpy

for scene in bpy.data.scenes:
    for obj in scene.objects:
        for modifier in obj.modifiers:
            if modifier.type == 'FLUID' and modifier.fluid_type == 'DOMAIN':
                if modifier.domain_settings.domain_type == 'GAS':
                    with bpy.context.temp_override(scene=scene, active_object=obj):
                        # bpy.ops.fluid.free_all() # if you'd like to free existing bakes first
                        bpy.ops.fluid.bake_data()

updated for blender 3.4+. for pre-mantaflow version (<2.82) see this revision
This will bake the selected cache for all domain objects in the file.
You can then run this python script in blender with
blender --background /path/to/file.blend --python /path/to/script.py

Or the short way:
blender -b /path/to/file.blend -P /path/to/script.py

Thanks a bunch, it works. I tried to fiddle with Brecht's script too, but got the override part wrong.

At least on recent blenders, it seems that you need to explicitly specify an external cache for blender to work with, otherwise headless baking won’t work (although it would create a blendcache_* folder automatically if run with a gui, I think). I might have misinterpreted something here though.

You may add bpy.ops.ptcache.free_bake(override) just before the bake. I came into a case where the bake wouldn't do anything (.blend copied from local computer without the cache)

unfortunately, override has been deprocated by v3.4.   Can someone update this answer?

@james_t I've updated my answer, thanks for the heads up!

oh wow, thanks for the update.  This ex-java programmer still pulls his hair out with bpy !!!


text:
Stacking cycles renders in the compositor?
There's a blog post going around about a plugin that uses ImageMagick to stack Cycles renders together.
Why can't we do this in the compositor, and with a still frame?

Is there a way to "get ahold of" the image that's in the buffer before it gets refreshed?
Is there a way to average that image with the next refresh IN the compositor?

I've tried separating RGB, adding the components and dividing by two, and re-combining the RGB, but I think there's some clipping going on because that makes a very dark image.
It's relatively easy to animate the seed value, render a bunch of the same image, and average them together in GIMP, and that looks nice, but can we do this in the compositor and/or as we're rendering? I.e. average one sample with the previous one.

Focus Stacking refers to a different thing entirely - stacking multiple images with a shallow DoF in order to create a more deep DoF in a particular area. This is not the same as Image Stacking to combine noisy images in Cycles.

I guess focus stacking is a lot easier to do ;-) Just don't use any DoF...

@Matt AFAIK focus stacking is only used in photography, to use it in cycles (or any CG application) is pointless when you can just disable DOF.

Yes, that's what I meant by saying it was "easier" ;-) It was a bad joke.

@Matt ah, now I get it :) I edited your question and removed the mention of focus stacking to avoid confusing anyone.

I wouldn't say it's pointless in CG - if you want a larger focal area but still a lot of DoF, you can use it.

You can use the File Output node to do this, however there are some issues.
Node setup: (click for full size)

The pink highlighted value in the Math node is a Driver that returns the current frame number. You can quickly create this driver by typing #frame in the value field:

You can also do this for the Seed value in Render settings > Sampling as a quicker way to get a different seed each frame than animating.
Creating:

Add the composite nodes and #frame drivers.
Set the file output node Base Path to a directory that is not the main output location set in Render settings > Output.
Optional. Change the subpath (i.e. the name, though you if you have / or, in case of Windows, \ characters in the subpath field, blender will create new sub-directories accordingly.) of the output image slot by selecting the file output node and pressing N> Properties region > Properties > File path in the Node editor:

Render the first frame. All that is actually necessary is that a file called image0001.png (where image is the subpath of the output image slot in the File output node, 0001 is the scene Start frame, and .png is the file extension for the output format selected in the File output node) is created in the location specified in the file output node.
Click Open on the Image node and navigate to the placeholder file in the File output node output location, and click open.
Change the image source to Image sequence, set Frames to the number of frames in the scene and set Offset to -1.
Render the animation (CtrlF12)
The last frame in the output location specified in the File output node will be the finished image.

How it works:
This node setup uses this solution for averaging the images:

If you render 5 images with 10 samples each, the second image should be mixed with the first with a factor of .5 (or an alpha of 50%). This will effectively result in a 20 sample image (as you pointed out, it's not quite the same as 20 rendered samples, but it's reasonably close), so the second image should be mixed with a factor of .33 (alpha of 33%) and so on.

The node setup uses the File Output node to output the averaged result of the previous frame and the next frame to a separate directory.
The images written to that directory are read by the Image sequence node on the next frame and used for averaging with the now current frame. The result is again written to that location with the file output node, read again, averaged with the current frame, written again, and so on.
Problems:
On the first frame there is no image for the image sequence node to read, this should not be a problem since on frame one the mix factor is 1/1 = 1 so only the raw render will be used.
However, there is a bug/limitation that causes the file output node to output a completely transparent (or black if you are only saving RGB channels) image for frame one, due to the lack of an image for the image sequence node to read. The image sequence node then gives a transparent result, which sets the transparency of the mixed result to 0.
Also see this related post.
This causes a problem next frame when the image is mixed with the false black/transparent image, which causes darkening/decrease in opacity. This darkening will be quickly mixed out to be unnoticeable in subsequent frames, but it does mean that the image is not 100% accurate.
As a workaround, you can either:

Add a Mask node and an Alpha Over node to to ensure the top input of the Mix node is always filled and always 100% opaque: (click for full size)

Or render the first frame by itself and replace the incorrect black image with the raw render of the first frame manually. Then render the animation starting from frame 2.

Result:
Rendering 15 frames at 10 samples gives this result:
A single 10 sample frame:

The final combined result:

A 150 sample render:

Would be nice to show a render using 150 (15x10) to prove that your method is indeed the same.

Awesome!! This is exactly what I was hoping to discover! I'm going to do some experimentation and see what I can do with it.
Ultimately, Cycles does something really similar already, so there's not much point to it, but I have noticed that the outliers seem to be much less extreme than what Cycles produces, i.e. the image will still be just as noisy, but it will suppress radical pixels (fireflies of all colors ;-) ) resulting in a pre-render that's a little easier to judge.

@gandalf3 IMHO, the bug you mentioned seems not strictly a bug. That's because the offset value you set is -1, and the relevant frame# to that is 0000, which doesn't exist in the sequence folder, I'm afraid, which causes the Mix node cannot receive a valid data for the first image input. So, I think a better way is to render an image0000.png in step 4, which will solve the black issue, and no need to render from Frame 2, too. FYI.

@LeonCheung I think it is a bug, as the viewer node gives the correct result. The mix node should not need to receive any data for the first frame, because it only uses the renderlayer input (mix factor of 1)

@gandalf3 try toggling "Use Alpha" on Viewer node, to see if you still get it. And, Unless you get it from the preview area right ON the View node, then somewhere in the node tree is still problematic. I'm certain that you cannot really get it from Viewer node. However, it could be possible that what you saw is not from the File Output folder, but the pre-rendered output in the real render (or temp) folder.

@LeonCheung Nope, it definitely works from the viewer node. Here is a screenshot.

@LeonCheung Regarding your alternate workaround: That would work, but as far as I can tell it is essentially the same as the one I put in my answer, just shifted one frame backwards.

@gandalf3, I know what you mean, and I did feel the strange thing that you felt, however, could you explain this? Also, I also made a screenshort to show how the Alpha of Image 1 controls the final alpha output, despite of the Mix fac value, even though I set all fac to 1.000. And in fact, my previous advice indeed simply a frame shift, but it can make sure that the node tree could always reference the valid input data (an real existing images) for per-frame compositing.

let us continue this discussion in chat

gandalf3's answer is great, however when you already have a sequence of images rendered out the setup is very simple:

The red Value node is where you enter the number of images you're stacking. The end result will be the average of all the images.
To quickly create those Add nodes, I recommend the Node Efficiency Tools addon (which can be enabled in the User Preferences) - just select the images and press Ctrl+Plus(+)

Interesting. How does adding compare to mixing? How does it compare to a straight render? Care to add some examples?

It's exactly the same as mixing - it's just basic math: my method is like (5+5+5+5)/4=5, where the mix method is like (0.255)+(0.255)+(0.255)+(0.255)=5.There are enough examples I think

I could be mistaken, but the plugin blog post mentioned in the question is my Progressive Animation Render addon: http://adaptivesamples.com/2013/07/22/progressive-animation-render-addon-and-image-stacking/ - I've been meaning to take out the requirement for ImageMagick and use the compositor instead, but I haven't had the time to look into it properly yet.


text:
How to take a screenshot of blender from within another thread in Python?
I am desperately trying to stream Blender's UI over HTTP:
import bpy

from wsgiref.simple_server import make_server
import threading

def app(environ, start_response): # The routine called by WSGI
    if environ["PATH_INFO"] == "/screen": # If a screenshot is requested
        bpy.ops.screen.screenshot(filepath="/tmp/screen.png", full=True) # Take the screenshot -> RuntimeError: Operator bpy.ops.screen.screenshot.poll() failed, context is incorrect
        start_response('200 OK', [('Content-Type', 'image/png')]) # Send the stuff over
        data = None
        with open("/tmp/screen.png", "rb") as f: # Ugly hack to retrieve the image
            data = f.read()

        return [data,]
    else: # Get the HTML-page that updates the screen
        data = b"""

        """
        start_response("200 OK", [("Content-Type", "text/html")])
        return [data,]
httpd = make_server('', 8083, app) # Standart httpd
print('Serving on port 8083...')
thread = threading.Thread(target=httpd.handle_request, args=()) # Run it in the background, kill after one request
thread.start()

I am trying to use Blender's built-in screen.screenshot -operator to get an image of Blender. It works when ran from outside the server. The server does also return valid HTML. However, when I try to combine the two (return the screenshot over http), it breaks down. I get the following message:
RuntimeError: Operator bpy.ops.screen.screenshot.poll() failed, context is incorrect

I can't figure how to avoid this. The code works when taking a screenshot with platform-specific means, but it is much too slow for use (upwards of 200ms). I understand that running a HTTP server inside Blender is not usual.
The whole mess is running on an ArchLinux box (x86_64).

You can use other libraries such as ImageGrab( http://effbot.org/imagingbook/imagegrab.htm) or PyScreenshot (https://pypi.python.org/pypi/pyscreenshot), but if streaming is what you want, dedicated streaming tools and libraries will likely do a better job. After all, there's much more to streaming then just sending out frames (buffering, compression, control over framerate, etc).

Yeah, I tried ScreenGrab, but the fps is awful.


text:
Making an Interface in blender game engine
I am learning how to make interfaces in the game engine, and I have set up 2 buttons: an exit button and a play button. When one of the buttons receives a left click, it either closes Blender or goes to another screen with a monkey.
The problem is that both buttons are doing the same stuff at the same time. They're switching scenes and closing the program, and the biggest problem is that I don't have to click on the buttons at all. When testing, I can click anywhere in the Blender and it does this.
Here is the .blend file if you need it.

The Mouse Sensor when set to Left Button will send a positive pulse whenever the left mouse button is clicked. To get it to trigger only when over a specific object you have to add another Mouse sensor set to Mouse Over and plug it in to the same And controller as the click sensor. Like in the image below.


text:
How to make a fullscreen toggle button in the BGE?
I am making an options menu in the BGE and I want to know how to make a button that toggles fullscreen on and off for the blender game?

Would it be acceptable to just have the cam move into a closer position that would make it appear that the menu was fullscreen?

This is simply done with a small python script using the bge.render.setFullScreen() function.
cont = bge.logic.getCurrentController()

if cont.sensors['MouseOver'].hitObject.name == 'Cube' and cont.sensors['Lclick'].getButtonStatus(bge.events.LEFTMOUSE) == bge.logic.KX_INPUT_JUST_ACTIVATED:
    if bge.render.getFullScreen() == True:
        bge.render.setFullScreen(False)
    else:
        bge.render.setFullScreen(True)

You then add the script to your button with these logic bricks.

The MouseOver and Lclick mouse sensors are used to start the script when the button is clicked.
Look through the Blend file for a full working example.
(*Note* you will need to start the Standalone player for full screen to work.)

Thank you this worked i just needed to rename some of my stuff to make it work i had a plane named Fullscreen so i changed the part of the script that said cube to Fullscreen and as for my sensers i just renamed them to what you already had in the script which was Lclick and MouseOver

In order to do exactly that and not quickly toggle back to windowed, with a keyboard sensor named keyboard:
from bge import render
def fullScreenMode(cont):
    if cont.sensors["keyboard"].getKeyStatus(events.F11KEY) == logic.KX_INPUT_ACTIVE:
        if render.getFullScreen() == False:
            render.setFullScreen(True)
        else:
            render.setFullScreen(False)


text:
How to make a popup Menu in the BGE?
I want to make a button that when clicked opens up a popup menu, say like an options menu or something. After the button is clicked to open the popup menu I want to be able to click something in the popup menu.
How can this be done?

Have your first button in the game trigger a new object (lets call it menu2) to be added to the game, or play a animation to move menu2 on screen. Then on menu2 have several other objects parented to the menu, each with logic set up like in this question.
In the blend file you will find the object menu2 has a animation to move it in to view. That animation is triggered by the first button (a cube). The trick to playing the animation is to have the Action Actuator on the menu. The logic bricks look like this.

So every time there is a click on the cube it triggers the animation to play on the menu. You can have logic bricks go between objects, just select both objects and they will show up on the logic brick editor.
BGE menu demo blend file.

hey im sorry to say this but how do i trigger an object?

@sketcherskt look through the logic bricks in the blend file, let me know if you need more help with something.


text:
Inverse Kinematics - saving, loading file and showing animation in BGE
I'm working on a application where I want to save animations as a script where I write only changes in positions.
something like :  L_Hand L_Arm -0.015 0.20 -0.18     (Start_of_Chain(dynamic) End_of_Chain(static) X Y Z)
and show it by inverse kinematics algorithm (something like CCD).
So questions is:

Can I directly save the animation in some file format like my script?
(because I haven't good view about all file the formats blender can export animations)
Can I load that file and show animation in BGE application?

My main idea is about saving and loading animations not frame by frame, but
only in script. Then show the animations in the BGE.

Properties like

L_Hand L_Arm -0.015 0.20 -0.18 (Start_of_Chain(dynamic) End_of_Chain(static) X Y Z)

could be easily described by XML or JSON. These data could be then dynamically read and applied to "channels". For correct use see current Blender API.


text:
Changing default bake output format and quality
Working with 2.68a (r58537).
When I try to export a UV bake, I'm always presented with the format set as PNG, it would be amazing to set the default as JPG/100% quality. Also when I export to dae (Collada) it always exports them as PNG.
Is there a way to change that default setting?

forgot to mention that ive set jpg in global settings.

I tried to make your question a bit clearer. It seems you are asking two questions, though closely related, it may be good to split them.

When saving baking image as an external one, go to UV/Image Editor menu > Save As Image (F3), pay attention to the left hand tab, there is the place to choose the format you need.

As for the Collada export issue, I think it's because you didn't choose to use other format for saving images before that, or didn't even save to an external file. :)

Thanks Leon, the above screen is what i use to save. What Im looking for is a global setting where its always JPB/100%. On DAE exports one can select to export the UV textures which is what I do, in all cases its the PNG 24BIT. Im looking for the place to set everything to JPG.

Ah, I see. Then I'm afraid there isn't any solution currently without further coding. However, Suppose you really got no internal way in the end, you may consider using external batch image converter (format PNG -> JPG), then rename the extension name in all dae file in batch text editor (text "PNG" -> "JPG") after exporting. I really want to help raising a bounty for you on this question, but I didn't find the entry... So, good luck. :)

@LeonCheung Bounties are only available after the question has been around for a while. (3 days IIRC)

@gandalf3  Many thanks for the information! :)

To change any default setting, open a new Blender and change only that setting, then go File > Save Startup File. This will make Blender open in the state it's in now, including settings, models and preferences, every time.
In your case, simply change the Output render settings (afaik all file dialogs related to images use these settings by default) to what you want:

And then save it as the startup file.

If you screw anything up accidentally, you can always Load Factory Settings from the File menu to revert back to the original default settings.

Only for renders it seems. (I tested with a AO bake and it was still defaulting to PNG. See my deleted answer)


text:
How do you restrict the left click rate in the game engine?
In my game I have an action performed whenever the left mouse button is pressed. Is there a way to restrict how fast the player can click? Right now the event will trigger as many times as they can press the button, but I would like to put a cap on that so that the action can't be spammed so many times per second.

Are you using logic block exclusively, or are you also doing some scripting?

I have a ray sensor and mouse sensor fed into a python brick for the action, and the the mouse sensor also fed into Nand-->sound to play a sound effect.

What if I give the object a boolean property set to true and have python check to see if it is true. If it is make it false and set back to true after the a python timer has gone after a certain time. Does python have its own built in timer? If so, how accurate would this method be?

Using timer.sleep() uses to much processing.

Don't use timer.sleep() It doesn't actually use processor, it yields it's processor time to the OS either for the specified amount of time, or until your process receives a signal that it needs to process. This is not what you want. I'll add more detail to my answer...

I'm afraid I'm not familiar with the game engine side of Blender, but the principle would be to have a timer (or other condition) that gets checked on each mouse click. If the timer has expired (or other condition is met), then the click triggers whatever action it's liked to, and resets the timer. If the timer has not yet expired, then the click is ignored.
If you doing some scripting, then you want to use lastClickTime = time.time() to store the time of the first click. Then use time.time() - lastClickTime > 1 as your condition. Time.time() will give you the current time (in seconds since 1970). If the current time minus your stored time is greater than 1, then at least one second has elapsed.
So (SUUUUPER pseudo-code... this won't actually do anything):
#somewhere else you initialized lastClickTime to zero
OnClick():

  if time.time() - lastClickTime > 1:
    #do the click thing and...
    lastClickTime = time.time()

  else:
    #do nothing..

So you handle every single click you get, it's just that you don't have to DO anything when you get a click. If your timer has expired, do what the click is supposed to do and reset the timer. If not, then just do nothing.
Note that time() is a member of the time external module, so you have to import the time module in order to use the time() member.
Time.time() only gives 1 second resolution. There are ways to get sub-second resolution, but the principle is the same. You'll just use getRealtimeClock() or something like that, instead of time.time().
It is also possible to use timer properties. After playing around with Cobra's method, I found that this works reliably and allows you to use the full accuracy of the timer property.
Fire = cont.sensors["Fire"]
fireRate = own["fireRate"]
#adjust the value to be >= to your liking
if fireRate >= 0 and Fire.positive:
    # Do not set fireRate = -1 That does not work.
    own["fireRate"] = -1
    #anything you want to limit the action of

Worked perfectly, except it seemed that I had to import time. Just a side note.

Quite right. Edited answer.

You can create a timer property in the logic editor panel and name it whatever you want. Say - "dTimer". Now when your game runs it will run. And in your python script do like this -
if mouse_click.positive and own["dTimer"] >= 2: #2 seconds
    #do whatever you want
    own["dTimer"] = 0 #Reset the counter to zero

As soon as you reset it to 0, it will start the counting from 0 again. You can debug the property if you want.


text:
RTX 2070 I can't open Blender
I've installed another GPU card RTX 2070 in the second PCIex16 motherboard slot. Not a SLI connection. Both cards were previously installed in this machine separately with the drivers updated for both. Blender doesn't want to open. A video card and driver with support for OpenGL 3.3 or higher required. Why am I getting this message? TY.

I have the same problem. I can't update anything because I use a laptop. You can still open Blender 2.79, and if you can't update your drivers to 3.3 or higher, then you must use 2.79.

I would like to make it work in 2.81. Recently started in Blender and never used 2.79. Hopefully someone out there knows the trick.

Make sure that you start Blender with one of your dedicated GPUs (Nvidia Control Panel) instead of the integrated GPU in your CPU. Alternatively, if you want to use your integrated GPU, check if it fulfills the minimum requirements for Blender 2.8x and try to update the graphics driver from the manufacturer's website.

I have a Ryzen 5 2600x cpu with no integrated video chip. I always start the computer with the monitor plugged in my RTX 2070. If I use only one card everything is fine and Blender opens without problems. If I install another RTX 2070 in the second PCIe 16 slot Blender doesn’t open with the message for OpenGL 3.3 or higher. Why is this happening? Motherboard B450 Tomahawk

Here is how I made it work. I had to flash the bios. If you are like me playing with the settings all the time you need to reset the bios by taking out the little round battery on the mobo. Depending on your mobo, the flash reset button next to the usb slots on the mobo didn't work for me, it might work for you. After that blender will open and both cards are seen in Cuda and Optix. Indeed there is some work but I'm pretty happy with the result right now. However render time is not cut in half though. More like 35% less with two cards.


text:
Four GPU's versus two GPU's
I'm asking this theoretical question because obviously I haven't tried it. Is 4 GPU's of 4 GB better than 2 GPU's of 8GB specifically for Blender rendering in Cycles since the app allocates a tile to each GPU in the process? Did anyone experimented or knows which combination is faster given that the motheboard, CPU and memory can handle both of them? TY


text:
Open Layout window on a second monitor
Is it possible in Blender to open a completely different window and place it on a second monitor? The same way we can open a shading or uv window and split the screen, but to have that shading window placed on a different monitor. Thank you for your help.

Hold down the Shift key and then drag from the top right hand corner of the 3D viewport
as if you were wanting to split the screen, this will result in opening a smaller floating window of the 3D viewport which you can then drag to your second monitor and then set full screen.
Or Open the Window menu at the top left and choose the New Window option.

I really appreciate it.

@Daniel You can mark the answer as accepted ✓ if it solved your problem :).