text:
Why can't I use GPU rendering in Blender?
Why is it that Blender will only allow me to render with a CPU (GPU choice is unavailable)? Or is it until I acquire a graphics card that is specially built for such a task?
The images below show a Dell System Diagnostics (Video calibration) and GPU-Z results.

Platform: Dell Inspiron 3521 notebook with Core i3 Intel HD Graphics 4000

you have intel integrated graphics. So there is no real graphics card for blender to use. (In most cases blender will not use intel for GPU compute.) However try checking the "CUDA" computing checkbox at the bottom of the driver settings.(your last screen shot)

I think those checkboxes' purpose is only to show the computing capabilities that GPU has, it's not like you can just click and enable CUDA on intel integrated graphics.

@David Uh no, Intel Integrated graphics are real graphics hardware, I'm not sure how you think that works, but you can actually use Intel integrated GPUs for compute tasks, and they speed up SIMD phenomenally, the issue here is that blender has opted not to write the code for Intel OpenCL, not that some how intel hardware isn't capable of speeding anything up.   I doubt you could use AMD implementation with out having to rewrite major sections of code however, so I doubt they are going to do this (and I don't blame them)

Blender Cycles relies on GPU compute languages like CUDA or more recently OpenCL. CUDA is exclusive to Nvidia and while OpenCL is technically cross platform, in practice AMD's implementation is the only one that provides a usable speedup for Cycles.
From the Blender wiki:
https://wiki.blender.org/index.php/OpenCL
Intel GPU’s are getting more powerful but are not a good target yet and CPU based OpenCL provides little or no benefit over CPU based Cycles.
For recent versions of Blender 3.0+ you can also use HIP API for rendering on certain recent models of AMD Graphics cards.

OpenCL allows you to schedule across both CPU and GPU cores (at least on Linux with the open source Beignet driver) which gives a nice performance boost for luxrays.

Intel GPUs provide the same benefit to SIMD processing that any other GPU does, not to mention they actually do support OpenCL quite well, it is unequivocally false that "in practice AMD's implementation is the only one that provides a usable speedup for Cycles"

Blender doesn't officially support rendering with both the cpu and the gpu simultaneously.  In order for OpenCL rendering to be useful it needs to be faster than your CPU.  If blender added support for rendering across devices that would change the equation a bit.  Also, AMD actually paid a developer to work on cycles and optimize it for AMD hardware, so I don't think its too much of a stretch to say AMD has a bit of an advantage when it comes to rendering in Cycles.

I'm quite surprised at the amount of false information here.
First off Intel does indeed support OpenCL, as far as I can see up to 2.1.  Not only this, but I have actual field experience with working with OpenCL on Intel APUs. The implementation works, and works well and will speed your processing the same way any other GPGPU compute technology would.
Integrated graphics (including intels...) offer the same types of performance benefits that one would find in discrete graphics.  They also have some advantages because they are on the same die.  Recently integrated gpus have become capable of doing zero copy operations, which means you aren't limited by bandwidth in the same way you are with dedicated GPUs.  Modern integrated GPUs can access the same address space as your CPU, in OpenCL you release and acquire this memory in a similar way to doing DMA streaming from host to devices in CUDA/OpenCL. In this way, you can often get more of a speed up with certain types of batch SIMD processing than you could with a discrete card.
Additionally these integrated GPUs aren't of some new architecture never seen before, AMD's own integrated GPUs today are based on their discrete graphics line, and modern APUs use GCN for their integrated graphics architecture.
You use GCN drivers whether you are using a 580 or your amd APUs dinky integrated graphics. Bonus here is a picture of what integrated graphics actually looks like.
The problem here is that Blender itself doesn't support all OpenCL implementations  or rather, because Blender has OpenCL code it uses for rendering, the code itself is not platform independent.
If you want a solution to this, there was another question asked here that claimed for you to be able to force the usage of native OpenCL implementation even if you don't have an AMD GPU. Note that I have doubts about this working at all.
When I mentioned the implementation wasn't platform independent, there are few things you have to realize about OpenCL.

OpenCL has a lot of extensions.  So many that it actually can be quite a headache to make cross platform applications in opencl, since many of these extensions are very vendor specific.
OpenCL stands for Open Compute Language, and its main purpose is for heterogenous processing where you many have multiple devices whose vendor don't match but all support some OpenCL specification, allowing you to control and launch programs on each device from a host. OpenCL is not a GPU specific standard like CUDA is. The fact that something supports OpenCL clearly doesn't mean that any program can run on any device. Heck, even the steamlink supports OpenCL, do you think you would actually be able to render in blender on one of those?
Even among GPUs, ignoring OpenCL there are many vendor specific quirks to how they work. Things like wavefront/warp size, or Banked memory size change not only from vendor to vendor can also change from the same vendor.  You also have to account for things like memory coalescing, which your GPU may or may not have utilities to aid with (Nvidia used to take memory in as chunks to help with this, and as long as your memory was grouped in RAM things weren't that bad compared to non sequential access).

I suspect that Blender may never add support for Intel OpenCL, because of the effort and lack of power of their integrated GPUs compared to discrete cards. It wouldn't help the majority of their users, and certainly not their core users.

This was very informative to me, and I thank you for the "OpenCL for dummies" summary, but I still feel that most of this post is a rant and would benefit from some pruning.

The GPU option doesn't show because you don't have a supported dedicated GPU. Intel HD graphics is an integrated graphics solution, which realistically won't work with Blender. Ivy Bridge is the name for the CPU family.

The GPU does exist, otherwise he would have no image displayed,  it is an Intel HD 4000,it is simply an integrated one.

@DuarteFarrajotaRamos I think its clear I was using GPU in the context of dedicated GPU since I said he had an "integrated graphics solution." If you want to nitpick then yes he does have a GPU, but in the context of blender GPU acceleration (which is what he's asking about) he does not.

You should clarify that in you answer then, and rephrase it to reflect that. As it stands it reads as inaccurate.

the "supported dedicated GPU" is definitely the key phrase in your answer.  I have a laptop with both an Intel HD card, and a secondary AMD card, but even if I force Blender to use the AMD card it's not supported.  The manufacturer drivers (Acer) don't support a current-enough OpenCL version to work with Blender and they're not updating them.  I think it's time for an upgrade...

Downvote lifted, much better that way, thanks for fixing


text:
Add a driver to a material property using Python
Is it possible to add a driver to a property in a shader using Python?
I managed to get driver_add working for other properties, but not shader properties. I can also print the property just fine.
selected_node = bpy.context.active_node
selected_node.driver_add("inputs[1].default_value", 0)

Do I need to format it differently for it to work?
The error message says
property "inputs[1].default_value" not found
The property itself is an input field of a Node Group I made by the way.

mat.node_tree.driver_add('nodes["My Node Name"].inputs[1].default_value', 0)

@scurest have you tested it? Doesn't work for me: https://i.imgur.com/Zs8ROCi.png

@MarkusvonBroady Quoted strings in fcurve data paths are "double quoted".

@scurest I fall for this a 2nd time... Thanks :D But still, have you tried it? I don't get an error after fixing the quotes but the field still doesn't become purple.

@MarkusvonBroady Yes, I have tried it. The field isn't purple because it isn't the "canonical" path to that datum, because you used a socket name instead of a number. Starting from a blank file, you can manually add a driver to a socket in the UI, then do D.materials[X].node_tree.animation_data.drivers[0].dath_path to see what data path Blender actually creates.

@scurest interesting... I didn't know this is "legal". I just checked and the driver works, and the actual value in the field is "ignored" (overriden by the driver).

Don't add a driver to the node, add it to the input:
D.materials['Material'].node_tree.nodes['Principled BSDF'].inputs['Roughness'].driver_add('default_value')

D is an alias in console for bpy.data

source: Stack Exchange

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

sort: votes


text:
Set specular map from alpha channel
I'm making an importer for a xbox360 game. Specular data is in the alpha channel of the image. Once I have enabled the alpha for image, blender does: "RGB" + "A" = "ARGB". But I need the "RGB"` to stay "RGB" for diffuse colors, and use "A" for the specular intensity map.
Right now I'm copying the same image with alpha disabled for diffuse, and with alpha enabled for specular, but copying a lot of hi-res textures is not an option.
How do I stop alpha affecting the diffuse colors? Or how do I set RGB for diffuse color map, and alpha for specular intensity map?
[update]
Unticking the "Image sampling -> Alpha -> Use" does not work(the image only becomes darker). Here is the .blend file.

On the image above: At the left, alpha is on - specularity is ok diffuse is not and at the right alpha is off - diffuse is ok but specularity is not

Unticking the "Image sampling -> Alpha -> Use" does not work(the image only becomes darker)

You might want to edit your question to include that information, comments are easier to overlook. (Especially if there are a lot of them).

@oxtvy yes, please be as specific as possible.

unfortunately I don't have enough points to post an image with example

@oxtvy just upload and put the link in the post, I will add it properly for you.

@iKlsR link for image or for blend file

@oxtvy I'd imagine you can add both or just the image.

For your first question, to stop your diffuse texture from using the alpha channel of the image, go to the Texture tab and under Image, untick Use  Alpha.
Here is how it looks now as compared to those above.

If you tick Specular under Influence, Blender will automatically use any specular highlights in the image .
Additionally, you can check parts of your textures you want to be affected and or by how much under Influence in the same texture tab.

"If you disable alpha from the texture, then RGB values would be converted to influence". Thanks for trying to help, but in your image i see specularity on the brows, while the specular mask is actually ignoring that area(see the image in my post).

@oxtvy ok, np. I told you to be as specific as possible.

You could extract the alpha channel in an image editor and save it as it's own file. Load the black and white file into Blender and use it as a specular map(using the specular influence).

Using stencils mean more textures. Blender can automatically pick different channels from an image.. bump, normal etc.

That's true, and that's probably what I would do if I wanted a simple spec map. However, this second method would allow more customization in the editor.

This is for an import plugin, i can't do this manually. The options actually are here, but don't work in the expected way. Maybe this is a regression and i should report this on blender's bug tracker

you could do this this way:
1-on the material panel, put the specular intensity to 0.(anyway here you can change the color of the specular.. but the intensity we want to take that from the tga)
2-on the texture (tga) on the influence panel, activate Color, Alpha, and Specular Intesity to 5 for example.
And that's it.
I hope this can help you.

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


text:
Show image in panel
I'd like to show an image (png, preferably) in my panel. Does anyone know if this is supported through labels or template_XX UIPanels?

I believe the only option is to use a texture preview, which requires an Image and a Texture ID datablock (Texture.image = Image). It can then be added to the layout by using:
layout.template_preview(bpy.data.textures["Tex"])

But there's no control about how it's drawn (not even the vertical size using UILayout.scale_y).

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


text:
How to get a list of edges of current face in bpy
Blender Python question:
I have a list of faces and I need do something with some edges of the current face in a for-loop.
Actually, I need something like this, but with edges.
Thanks in advance.

Standard API
The active face's index is accessible in the standard API (bpy) like:
me.polygons.active

To get the actual polygon, you do:
me.polygons[me.polygons.active]

Note that the index is 0 (first polygons) even if there's no face at all, and it's independent from vertex and edge selection (a face can be active without its edges or vertices being selected).
There's no direct access for a face's edges, you can create a dictionary from the edge_keys however:
import bpy

ob = bpy.context.object

if ob.type != 'MESH':
    raise TypeError("Active object is not a Mesh")

# Get editmode changes
ob.update_from_editmode()

me = ob.data

if len(me.polygons) < 1:
    raise ValueError("Mesh has no faces")

# Build lookup dictionary for edge keys to edges
edges = me.edges
face_edge_map = {ek: edges[i] for i, ek in enumerate(me.edge_keys)}

# Get active face by index
face = me.polygons[me.polygons.active]

selected = "selected"
not_selected = " ".join(("NOT", selected))

for ek in face.edge_keys:
    edge = face_edge_map[ek]
    print("%12s - %r" % ((selected if edge.select else not_selected), edge))

You can also do without such lookup dictionary, may use less memory and perform better, 'since there's just one face we need to find the edges of:
for ek in face.edge_keys:
    edge = me.edges[me.edge_keys.index(ek)]

Bmesh module
You can access the edges directly using the bmesh module (for edge in face.edges):
import bpy
import bmesh

ob = bpy.context.object

if ob.type != 'MESH':
    raise TypeError("Active object is not a Mesh")

me = ob.data

if me.is_editmode:
    # Gain direct access to the mesh
    bm = bmesh.from_edit_mesh(me)
else:
    # Create a bmesh from mesh
    # (won't affect mesh, unless explicitly written back)
    bm = bmesh.new()
    bm.from_mesh(me)

# Get active face
face = bm.faces.active

selected = "selected"
not_selected = " ".join(("NOT", selected))

for edge in face.edges:
    print("%12s - bm.edges[%i]" % ((selected if edge.select else not_selected), edge.index))

# No need to do anything here if you haven't changed the (b)mesh
# Otherwise, flush changes from wrapped bmesh / write back to mesh
"""
if me.is_editmode:
    bmesh.update_edit_mesh(me)
else:
    bm.to_mesh(me)
    me.update()

bm.free()
del bm
"""

Careful, the "may use less memory and perform better" thing doesn't scale to large ngons.  Trying it on a circle of 10,000 vertices, it takes 44 seconds;  so 100,000 vertices would probably take 100 times that long (73 minutes).  Using your lookup dictionary (or any other reasonable method), it's instant.

poly = mesh.polygons[mesh.polygons.active]
for i in poly.loop_indices:
    edge = mesh.edges[mesh.loops[i].edge_index]
    # do something with edge

Note:
If the mesh is in edit mode, the selection might be out of synch. (see api docs)

Cool, should work just as good. Edited my answer to show that a lookup dict is not necessarily needed (can also use me.edge_keys.index(...)). To get the editmode changes, you can call ob.update_from_editmode() in recent Blender versions!

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


text:
Transforming a vertex moves other vertices
Hi I'm new to blender and am trying to model a character. In the tutorial I'm following each vertex moves independently. For example, when moving one vertex only that vertex moves, whereas for me it's moving the other vertices, which is making it harder for me to build a basic model the way it should be.
This is how it works in the tutorial:

And this is what it's doing for me:

Rather than distorting the area it's moving the whole section. I've searched with all the possible questions I can think of but can't find anything, which solves this problem. How can I fix this?

Is proportional editing turned on?

THANK YOUUUUUUUUU! That solved my problem. The "o" key turns it on or off. I shall now enjoy building characters. Thank you again!


text:
Cycles material What is the syntax to access texture mapping location?
I have scripted texture offset through script for blender internal material

loc = bpy.data.objects["RigName"].pose.bones["BoneName"].location.x
bpy.data.materials["MaterialName"].texture_slots[7].offset[0] = loc

What is the syntax to access texture mapping location in Cycles Material
I have the idea of setting up drivers but as i have already scripted it like above showed example for many of the characters so it will help to know the syntax in speeding change to cycles

Let's assume Mapping is the unique name/identifier for the Mapping node in question. To find the unique node name, select the node and view the Side panel (N key).

The code to access the Location vector for Mapping is:
>>> bpy.data.materials['Material'].node_tree.nodes['Mapping'].translation
Vector((0.0, 0.0, 0.0))

or more structured
mat = bpy.data.materials['Material']
nodes = mat.node_tree.nodes
mapping = nodes['Mapping']
mapping.translation = 1.0, 0, 0   # accepts tuple

Hover over the properties and the tooltip will give a hint as to where to find most properties. But for materials, the path is via data.materials and not data.node_groups as the tooltip suggests.

Thanks great help. Please add clarification saying 'mapping' is node-name. And in case of many textures mapped to same material like in my case, one needs to refer to the appropriate node-name of that particular mapping node. Please add screenshot of where to find the node-name. Please correct me if wrong.

I think finding the unique node name would have been an excellent separate question, as it will be generic and apply to many many other cases. Whereas now, someone might still ask that question, not knowing that the answer is also in this question. messy.


text:
Getting a stack trace when addon crashes Blender
I am developing an addon for Blender 2.69, and a specific python library call is causing Blender to crash. I have tried to enclose the call in a try-catch block, but it still crashes. As a result, I can't view the error details in the system console.
Is there any way I could print the stack trace to a file before crashing, or any other way I could access this information?
The problematic library call is intriguing on its own, and I've posted it as a Stack Overflow question here: PIL Image.save() function fails in Blender python

If you really want to invest time to find why it crashes you might be best doing your own debug build of Blender and checking exactly where it crashes in a debugger.
Failing that, blender does write a stack trace on exit (on Linux at least).
Try run blender from a terminal and on crash you will get a message like...
Writing: /tmp/blender.crash.txt
# Blender 2.69 (sub 9), Unknown revision
bpy.data.window_managers["WinMan"].(null) = 'F8'  # Property
bpy.data.window_managers["WinMan"].(null) = 'F8'  # Property

# backtrace
/src/blender/blender.bin() [0x709cf1]
/src/blender/blender.bin() [0x709f7a]
/usr/lib/libc.so.6(+0x353e0) [0x7f617dd343e0]
/src/blender/blender.bin() [0x141ca0c]
/src/blender/blender.bin(RNA_property_type+0x27) [0x141d77e]
/src/blender/blender.bin(RNA_property_collection_begin+0x2f) [0x1424665]
/src/blender/blender.bin(WM_operator_properties_sanitize+0x55) [0x727453]
/src/blender/blender.bin() [0x720de3]
/src/blender/blender.bin(WM_keyconfig_update+0x9f) [0x7240bb]
/src/blender/blender.bin(wm_event_do_handlers+0xa03) [0x718d6a]
/src/blender/blender.bin(WM_main+0x33) [0x70da43]
/src/blender/blender.bin(main+0x44d) [0x70c971]
/usr/lib/libc.so.6(__libc_start_main+0xf5) [0x7f617dd20b05]
/src/blender/blender.bin() [0x709009]

Or you could look into Pythons faulthandler module, which can catch segfaults and report information about this too.


text:
Is the render output linear color or 2.2 gamma?
I know Blender can nowadays use a proper linear workflow. The thing that is unclear to me even after reading the support documents is whether or not Blender saves the output with linear color or does it convert the PNG files to sRGB while saving them?
In other words, when I render (in this case with Cycles) a PNG sequence, are they saved with 1.0 gamma or 2.2 gamma?

This question is not answered in the other topic. I have read it carefully. Can you point out the exact sentence in that topic that answers if the output files are saved as linear on sRGB?

Can you please point out to me where my question is answered in that topic? I have read that topic many times and I don't see an answer anywhere there.

The gamma of the output image depends on what the image format supports. Generally, output to PNG or JPG will result in a non-linear gamma correction (2.2). Usage of the OpenEXR format supports linear colour space, and you would keep your 1.0 gamma value.
Additional info: http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.64/Color_Management

https://docs.blender.org/manual/en/latest/render/color_management.html

At the moment, saving as JPG, Iris, PNG, JPEG, JPEG 2000, Targa, Targa Raw, DPX, TIFF  will apply a sRGB curve (Gamma 2.2) to the image data:

Saving as Cineon will apply cineon colorspace (logarithmic curve) to the image:

Saving as OpenEXR and OpenEXR Multilayer results in linear colorspace (linear render values):

Also see: Colour shift when viewing render outside of blender


text:
Emitter object shows up in reflection/transmission
I'm stuck with this cycles scenario:
-I have a translucent tube inside a glass room
-The tube is being lit by an emitter object, which has ray visibility turned off for "camera"
-The emitter doesn't show up in the camera, but unfortunately it shows up in the glass material
-I can't turn off "transmission" ray visibility, because then the emitter doesn't light up the tube any more
-I would prefer a solution that doesn't require render layers, since compositing is hard because of partially transparent objects
My question is:
Is it possible to limit the transmission bounces for the emitter object, so that the rays hit the tube, but don't reach the glass?
Here is the render:

Here's the .blend:

Go to the Ray Visibility part of Object info in the Properties tab.

I already did..

Ah I see . . . Well that is more of a puzzle

Could you add thickness to the surface of the tube so that it needs 2 Transmission bounces for the light to get through, and turn the scene Transmission bounces down to 2. Then it would not get through the cube surface?

Todd that would work in this simplified example, but the real use case is more compicated -I need a large amount of transmission bounces elsewhere in the scene.

try turning off glossy in the ray visibility settings, if might not do everything you need it to do, but it could be close.

Turning of glossy doesn't help because those are transmission rays.

I experienced this problem not too long ago, and unfortunately I couldn't find a solution. I think this is why many people (myself included) really want light groups. I'm curious to see if anyone has a workaround though.

Cegaton, yes indeed!

I just added a light path node to the emitter material, with the Is Glossy Ray switching between emission and transparency, and got this.

Is this what you had in mind?
Edit: in case you'd ever want to control both Is Glossy Ray and Is Camera Ray from the shader instead of using the Ray Visibility tab in object properties, you can do that with a math node. Connect both Is Glossy Ray and Is Camera Ray to the math node via Add. Maximum also works. You will get zero only if both are zero, meaning you get visibility only if it's neither a camara ray nor a glossy ray, which is what we want.

Indeed! What a simple and elegant solution! You deserve the bounty!

Wow, thank you so much! Made my day :). Glad I could help.

I made something similar to Mutant Bob, but I want to be more detailed.

I put some UV map on translucent tube to have coordinate basis, but you can use other method, like manual calculations with math node based on global XYZ, or UV projection modifier with some addition animated object as projector;
ColorRamp node gave a more or less approach to specific light spot distribution. Or you can draw it manually in texture and place texture node instead.
ColorRamp not using #ffffff for maximum mixing value because it works together with Emission node with strength more than 1.0 - I think this combination provides better control over translucency/emission.

Hope we helped.

Would you be able to achieve your effect by making the material of the tube have a texture that affects an emission shader inside the material?

I'm not sure if I follow.. The tube should have a translucent material. Isn't that part missing from your answer?

You have a point.  Go ahead and include some translucency in your nodes, but my original suggestion of mixing in an emission shader (controlled by a texture or something) still stands.


text:
Console flashes on launching, then closes (ms-windows)
I installed blender on a windows 7 64 bit system.  I opened it one time then went to the tutorials.  in the meantime I had a power failure and when I tried to start blender again I get a dos window that closes itself then nothing.
I reinstalled Blender and get the same thing.  I am going to try to uninstall then reinstall but in the mean time, any other suggestions are welcome.

Welcome to Blender.SE Bill. We can help you but you have to be very specific and include as much information as possible. Does the window print a message? Have you tried installing another version of Blender? It could be a corrupt file etc. Try starting blender from the command line and seeing what it says.

More than likely the problem is that your startup.blend and or userpref.blend file was corrupted. To fix this, just navigate to the user settings directory and delete them.
On Windows, the directory is located at
%APPDATA%\Blender Foundation\Blender\x.x\config (where x.x is the installed version). See this post for more information on how to locate this directory on your os. This can work for both portable copies and installations.
OR
When uninstalling the program, tick Remove all files (second option) to make it delete the directory and then reinstall.

The next time you start Blender, it should start normally and if you tweak the interface and or change the user preferences and save them, it will write out new copies of these files with your new settings.

I ran into this issue, and this worked for me...   I'm going to start making backup copies of these files.  :(

I fixed it on my system (Windows 7 32-bit) with a bat file that has the following content:
set PYTHONPATH=""
"%ProgramFiles%\Blender Foundation\blender\blender.exe" "%1"

Put the above in a file called blender.bat and associate .blend files with the blender.bat file.
Also, make sure that any .blend file pathname has no spaces.

Difficult to say what's going on there Bill, but sounds to me like a registry issue or an over zealous virus scanner that associates the shutdown with the programs running at the time.
A temporary solution
It is possible to run blender without installing it, there are portable .zip archives available from either the main download links on blender.org or daily development builds at builder.blender.org
Unpack any of these zips to a convenient directory, and start blender by clicking the blender.exe from there.

I had the same issue on a fresh install of windows 7 64bit...
I went to the Blender Foundation folder in program files and ran Blender-app and it worked..
Blender 2.73a


text:
How to render very high resolutions without running out of memory?
I tried to render a file at %1000 res first my mouse locked up then it returned to normal, blender entered the render screen but never started rendering. after about 10 mins blender crashed and quit. Is it possible to render a image this good, would having a better PC help, could my PC have run out of free RAM(I think it has 2 GB).

If you want to render scenes that require more memory then your system has, I think your best option is to render the image in sections (tiles).
I think there are more then one script to do this, but I found one here:
http://blenderscripting.blogspot.com.au/2011/07/calculate-tile-render-ratio-snippet.html

Update: made an improved version of the script linked above:
This uses environment variables so you don't have to do manual edits to the file to change settings.
Example usage:
TILE_X=10 TILE_Y=10 PERCENT=1000 blender -b /path/to.blend -P render_tiles.py

You can also save the file with very high resolution and omit the PERCENT var(which will be set to 100).
Once completed, the montage command to join the images is printed.
This depends on ImageMagick's montage command, eg:
Run this command to join images:
    montage -tile 10x10 -border 0 -mode concatenate '/tmp/render_*.*' final.png

(You can use -background none if your render has transparency.)
Heres the script: render_tiles.py
def main():
    import os
    import bpy
    from bpy import context

    scene = context.scene
    render = scene.render

    tiles_x = int(os.environ.get("TILE_X", "4"))
    tiles_y = int(os.environ.get("TILE_Y", "4"))
    resolution_percentage = int(os.environ.get("PERCENT", "100"))

    slice_x = 1.0 / tiles_x
    slice_y = 1.0 / tiles_y

    # use border and crop
    render.use_border = True
    render.use_crop_to_border = True

    # set resolution percentage
    render.resolution_percentage = resolution_percentage

    filepath_orig = render.filepath

    # track progress
    tiles_done = 0
    tiles_total = tiles_x * tiles_y

    for div_y in range(tiles_y):
        for div_x in range(tiles_x):

            render.border_min_x = slice_x * div_x
            render.border_max_x = slice_x * (div_x + 1)
            render.border_min_y = 1.0 - (slice_y * (div_y + 1))
            render.border_max_y = 1.0 - (slice_y * div_y)

            cell_name = "%04d_%02d_%02d" % (tiles_done + 1, div_x + 1, div_y + 1)

            render.filepath = "%s_%s" % (filepath_orig, cell_name)

            bpy.ops.render.render(write_still=True)

            print("Rendered %s (%d of %d)" % (cell_name, tiles_done, tiles_total))

            tiles_done += 1

    print("Finished: %d tiles" % tiles_done)

    print("Run this command to join images:")
    print("    montage -tile %dx%d -border 0 -mode concatenate %r final.png" %
          (tiles_x, tiles_y, bpy.path.abspath(filepath_orig) + "*.*" ))

if __name__ == "__main__":
    main()

This def saved my day sir. Just curious, when I render an image of super high res (e.g., 250k by 250k pixels) on a large-memory machine, I encounter no memory issue, but the rendering never finishes even one sample. Blender uses all CPUs (3600% CPUs) at first and later on goes back to 100% CPUs. Any idea why this happened?


text:
What programming languages can I use in Blender?
What version of Python does Blender use and are other languages available? Also, does Python work the same in Blender as when you write console applications or when working with Pygame or are there any differences? If so, what are the main differences?

Would you care to narrow the scope of your question regarding what differences you will encounter? comparing pygame api to blender api is a rather broad topic and will require either a very long answer or very generalized but short response.

Python 2 is no longer supported, see: How to change the Python version that Blender uses?

Also, does python work the same in blender --- this should really be its own question, its quite a large topic, I answered it but since deleted my post, best ask in a separate Q.

Since Blender 2.5 only Python 3 is supported. From blender.org:

The Blender 2.5x versions feature a completely new Python API based on
Python version 3.2, and is integrated deeply, used for generating
Blender's GUI layouts, for import and export of external formats, and
with access to all user-accessible data and functionality.

What changes across applications is the API - Application programming interface. So if you're used to pygame and console API, now you need to learn Blender API. So yes, the idea is the same, but the API is different.
Here's a Quickstart Introduction.
And here's the full API.

Blender only supports Python3 for scripting, and currently there are now plans to support other languages natively.

There are however a few ways to use other languages from Python.
Use CPython to Execute Other Languages
Its possible to generate CPython bytecode directly.

Hy (Lisp syntax for CPython runtime), This works quite well with Blender.
Mochi

Bridge CPython to Other Runtimes

Lupa (Lua/Python)
Lunatic (Lua/Python) not updated for Python3

Call out to other languages From CPython
You could also look into LLVMPy, PyOpenCL or Cuda for Python, see this answer: https://blender.stackexchange.com/a/3159/55
Execute external processes
Theres nothing special about this, you can simply write out some XML/JSON/ANYFORMAT file from Blender's Python API, then load that file into any other runtime as an external process. operate on it, then read the data back in.
In some cases this is useful, but often its more trouble then its worth to write & read the data back into Blender.

Though I really would recommend just learning Python syntax, while its possible to side-step this, most/all? solutions to do so are not 100%... (no auto-completion in the console for example), defining callbacks to give to Blender... this kind of integration you loose.

Is there any plans for JavaScript/node.js support?

Besides Python 3.x Blender supports:

GLSL OpenGL Shading Language which also supported in the game engine for materials or postprocessing(compiled at runtime by the OpenGL driver)

and

OSL - Open Shading Language for Cycles Shaders (compiled at runtime by Blender's bundled OSL library)

Doesn't glsl code need to be compiled into blender at build time, rather that being added by a user at run time? Which would make it comparable to using C/C++

@sambler I first discovered GLSL here http://blender.stackexchange.com/questions/1335/why-is-the-result-of-this-glsl-shader-asymetric-when-rendering-with-stereo-side (linked .blend file in the last line of the post). The results I had are shown here: http://blender.stackexchange.com/questions/2561/what-is-the-difference-between-embedded-and-standalone-player  the shader worked without compilation like a custom OSL shader.

Blender 2.5 and above use python 3 but latest versions of Blender 2.6x utilize python 3.3 as the main scripting language. See the Blender API documentation. Blender Education & Help has more details if you are new to Blender.
Blender comes with CPython bundled, it is mostly the same default package that you might otherwise get from the python.org downloads, minus a few modules.
The Blender API is significantly different to pygame, but if you are comfortable with Python programming that won't be an obstacle.

authors: Ḟḹáḿíṅḡ Ⱬỏḿƀíé


text:
How can I make curves "stick" to a model?
I have here a gingerbread man I modeled, and I used a path and Bézier curve to create the frosting. But the frosting is hovering over the gingerbread man, so I need to know how to attach the frosting to the gingerbread man. I have already tried using the curve modifier, but it won't give me the results I want.

Related https://blender.stackexchange.com/questions/433/is-it-possible-to-apply-a-bezier-curve-along-a-mesh.


text:
How can I create a pentagram?
For some reason I want to create a pentagram:

How can I achieve this in Blender? (I am asking just for the basic shape ⛤⛧⛥✬✫)

If this were a regular question instead of a peg to hang a tutorial on I would have voted to close it for need of clarification or being opinion-based :D I mean: did you say please in GN or regular curve or mesh object? Or what you need it for afterwards so that we know what to consider while creating it? Or please tell us what you got so far and where you are stuck  ;)

@GordonBrinkmann for legal reasons I can't explain why I need this.

I wouldn't mind if you were a priest in the Church of Satan, I know others, too :)

I'd pay a few dollars to learn what draconian legal reasons could possibly exist that someone couldn't describe in generalities why they needed something

@MarkusvonBroady Is this really a pentagram? XD https://snipboard.io/olpdkS.jpg

@HarryMcKenzie I was worried this might be the case, but at least now I have a confirmation, thanks!

You can create a 5 vertex circle:

Fill between the vertices this way:

Remove the outer edges:

Enable the Auto Merge and the Split Edges & Faces options, press GEnter to create vertices where the edges cross:

Fill everything with F:

Inset individual faces with double i:

Delete the inset faces, edit the topology a bit, extrude up...

Nice, indeed without faces the pentagram won't even be visible.

Geometry Nodes
You can use a 5-point star with same inner and outer radii, but $108°$/ $180°$ twist:

In order to improve topology, consider converting it to mesh and merging by distance:

"Hey, I heard you like pentagrams so I drew a pentagram in your node setup, so you can see a pentagram while building a pentagram"

You even managed to draw a pentagram with only FOUR points in the node tree, for this you get three upvotes from me! :D

A combination of moonboots and the wizard's methods.
Snap is set to 'Vertex' and 'Active', including 'Rotation'. Automerge as in moonboots' answer, starting with a 10-vertex circle:

wow this is magic

What kind of sorcery is this?!

let's burn mister Robin Betts

he's a witch, he looks like one!

You're upsetting the cat! (There, there, Mephistopholes, don't listen to any of the cruel things the villagers are saying.. let's brew them a little something to... um... calm them down.. )

small detail which can also work for the crest of the Abbey of Theleme, or for those pictish tattoos.

Another variation, without snapping. But my sect does not allow me to say more.

You devil... not even the 2 millisecond exposure of the header is any help...

who said we are here to help?

Let me guess, R 180?

s -1 also works

@ruckus don't tell this kind of secrets, please... ; )


text:
Material assignment
I am new to Blender. I'm attempting to learn how to use it to render architectural models created in Sketchup or Rhino.
One of the difficulties I'm having is figuring out an efficient way to assign materials. The file I'm currently working on, for example, has a railing that has about 300 different meshes--one for each vertical rail element. In Sketchup, these items were grouped and put on their own layer, but upon import to Blender this information no longer remains.
So, I'm left wondering: is there a way to assign a material to each of these elements without individually selecting each one?

Is the mesh datablock duplicated as well as the object datablock, or are they linked?

If the meshes have similarities, you could try selecting them with Shift+G and then making them a group.

the part of the question that asks about preserving layers from Sketchup or Rhino should be a separate question, its unreated to material assignment.

@ideasman42 To the extent that knowing this would help me solve the above question I'd say it isn't really unrelated

@jkjenner the issue maintaining layers comes down to formats between applications, and what formats both applications support that also support layers. But since your question isn't going into any details regarding formats, what you already tried, what formats both applications support etc - its hard to answer that part of your question, this is why I suggest to ask another.

Regarding material assignment:

Set a single object to the material you want to assign.
Select all objects to assign materials too.
Shift RMB on an object with the material (if its not still active).
Menu Object -> Make Links -> Materials.

This will apply the active objects materials to all other selected objects.

The step I'm trying to avoid is the second one ("Select all objects to assign materials to"). In Rhino, for example, you can either just assign a material to a layer (with all objects on that layer then taking on the material), or use a layer to select all of the objects on that layer and then directly assign them all a material simultaneously. I'm wondering if there is an analogous function in Blender.

@jkjenner best ask another question. What you talk of are 2 different things, you may want to select all objects from one layer then do some totally different operation on them, but it wouldn't matter what. Blender doesn't have a way to assign materials to a layer possibly because objects can be in multiple layers at once. It sounds like rhino layers and blender layers are used fairly differently. Note that you could have a Python addon to do this if its important and writing such an addon is fairly simple.

At some point, you're going to have to perform the action "select all objects to..." whatever. It's going to happen.
You wouldn't even be able to set which layer those objects are visible in without selecting them first so to make life a bit easier, why not select all the parts of the railing and group them with Ctrl+g or join them together into one mesh (which isn't the end of the world as you'll see in a moment) with Ctrl+j.
If you need to select them all quickly, either use Ctrl+left click to lasso, b for box select or c to "paint" a selection with the circle select tool.
If you join all those parts together, then set the material to what you want it to be for all of them, you can perform a separate on "loose parts" by hitting p and selecting "loose parts". This means that each individual part will separate out into a new object, as it was before you joined them (provided the original meshes weren't broken into pieces before you started).
If you still don't fancy joining the mesh together (and personally, I would, especially as it's so easy to break them apart again) then once grouped (so you can reselect them easily to do this again if needs be by selecting one of the objects then hitting Shift+g and selecting "group"), do as ideasman42 said and link their materials together.
Dealing with lots of objects (or lots of verts/edges/faces for that matter) can be tricky at times, but there are tools to make it easier, joining, grouping, select similar etc.
Hope this helps.


text:
How to access vertex normals from a shape-key in Python?
I am experimenting with WebGL and I have a mesh that is animated via shape keys.
I can get access to the regular coordinates of the shape key pretty easily:
if bm.verts.layers.shape:
    skd_json = {}
    rval['shape_keys'] = skd_json
    for skn, sk_l in bm.verts.layers.shape.items():
        sk_v = [xyz for v in bm.verts for xyz in v[sk_l]]
        #sk_vn = [xyz for v in bm.verts for xyz in ???]
        sk_json = { 'vertices':sk_v,
        #'vertex_normals': sk_vn
        }
        skd_json[skn] = sk_json

However, the mesh I want to draw is smooth shaded, so I want to get the vertex normals for each of the shape keys so I can do some basic Phong shading even when the model is deformed.
How can I access these vertex normals via the python API?


text:
How to identify a keymap conflict?
I can't access the Clipping Border command (Alt+B) with my standard Blender setup. When I load factory settings everything works okay, so I presume there must be an addon that conflicts with this command (I realize I could be wrong).
Is there a way to find the conflicting addon except for turning all of them off and then load one by one?

AFAIK, no. However, it seems possible that something else could be causing this. What happens when you press Alt+B?

There‘s a blank space both outside and inside the frame (which is visible). The projecting cone is also visible when I rotate the view.

Maybe you could upload a screenshot? (It's hard to tell what this might be with only a description)

I‘m sorry, I can‘t do that, this is my first post. When I draw a clipping border around a part of my model, both the inside and the outside of my model disappears. All that remains is the border itself and the projecting cone. When doing this with factory settings, everything works OK.

Strange.. For the image you could just upload it to pasteall or something and someone will add it to your post.

I did what you proposed, and uploaded a file to Graphicall: BlenderClippingBorder.jpg

The two topmost are before and after a clipping border action with Factory Settings, the two lowermost are before and after a clipping border action with my usual setup.

I‘m sorry I brought up this clipping border thing, it was just the x that put me on the idea to check the active addons I use ; the original question remains though.

Sorry for the misunderstanding, I meant post the image on pasteall and put the link to it here.. :P (without the link no one knows where the file actually is, even with the file name, because pasteall generates a number to use in place of the original name.)

Go to File > User Preferences > Input, set the dropdown menu next to the search field to Key-Binding and enter AltB. It should list all operators bound to a key. It includes addon keybindings.

Addons can also capture events in modal operators, but it's really rare that they consume certain events and pass on the rest. So it would be pretty obvious that there's something running in the background, because a lot of actions wouldn't work.

Thank you very much CoDEmanX for your answer. This is a great feature I was not aware of! It will be very useful also for binding and rebinding other keys, and to look out for conflicts. (It did not solve my Alt B-problem though).
BTW, Someone hijacked my question about how to identify conflicting addons and changed it to a question about conflicting key bindings. While the latter undoubtedly is very useful to know, it‘s not at all the same thing.

@user1374 You can rollback any undesired edits. (Click the edited xxx ago link below your post, scroll to the desired revision, and click rollback)

To find keymap conflicts, you can also use the Test Key Configuration for Conflicts operator (accessible with the Space menu), which outputs any conflicts to the Console.

I knew this must exist but couldn't for the life of me find it. Works in 2.81 as well, thanks for sharing!


text:
Is there any open software to provide cloud rendering via P2P?
I'm thinking about the idea of doing a distributed rendering via internet but i don't know where to start. Is there any sort of open software to provide P2P rendering or something like that?

There are Blender render farm services similar to folding@home: (Anyone can volunteer their computer time; the work is done and sent to a main server for collection by the project submitter.)

BURP - Big and Ugly Rendering Project
http://www.renderfarm.fi/
http://www.renderweb.org/RenderWeb/index.jsp (Inactive?)
http://www.vswarm.com/ (messages in forum saying that it appears to be abandoned.)

The list of blender farms I found these on, that also includes normal payed and free render farm services.
(I did not find any that are strictly P2P though. The ones I found are master-slave, but such a setup can be considered "cloud" too, (meaning computers on the internet are doing work for you) but one of them-- the master/main server is in charge of managing the workers and jobs.  A headless P2P distributed farm, like bitcoin or something is likely possible, but is perhaps more complicated than it's worth for now.)
Concerns from ideasman42's answer do apply though, especially privacy.
There are also tools for building your own private distributed render farm: (These can be setup on spare machines, cloud/vps servers...)

http://brender-farm.org (thanks Gwenn)
BURP can also be used as a private render farm. (thanks jesterKing)
"Render: Network Render" A network rendering plugin included with Blender, with farm management tools. Video tutorial on how to set it up.
More listed in this answer by Aldrik

There is also Brender (http://www.brender-farm.org/)

Good point.  I focused on huge, free, public renderfarm services.  With brender-farm.org you can make your own private render farm, running on your own machines/cloud servers.

BURP itself can also be used to build your private render farm. See http://development.burp.renderfarming.net/projects/burp/wiki

In short no, There are lots of small renderfarm projects but as far as I know nothing thats as simple as folding@home - where you can just run an application and immediately join a globally distributed render-farm.
There are a few reasons this is quite involved to setup...

Often the kind of projects where you would want a render-farm have 100mb, even many gigabytes of textures and other assets.
More complex scenes often have high memory requirements for textures, mesh data, physics cache - while its possible to restrict which computers accept jobs, the requirement for high end systems means there needs to be enough free systems online for such a p2p system to make sense.
With a render farm often you want management abilities, job prioritizing, ability to cancel jobs, upload minor changes then re-render, this becomes fairly tricky to manage p2p.
With rendering you can't automatically validate that the output is correct (except for basic things such as totally blank frames or corrupt image data). Systems that return bad images need to be identified & blacklisted - the owner probably should be made aware of this... Maybe the disk has a bad sector, or the graphics card has faulty ram, but somehow it has to be managed.
Aside from personal projects, anyone doing commercial work over a network would likely not want to send their projects to random people online (which limits who would use the farm).
Security issues: if you have Python expressions for drivers its near impossible to restrict malicious code.

While its possible to resolve all the issues I've raised - its a lot of work to get running and well supported.
Some of the issues I raised here don't apply to the cloud - where you have API's to manage systems and better control of what goes on, but in this case using the cloud is really not so different from typical renderfarm setups.

Several years later..
Yes there is! Check out https://www.sheepit-renderfarm.com
It’s a free distributed renderfarm for Blender. You earn points by rendering for others, allowing you to render things yourself afterwards.


text:
Can Blender render animated gifs?
I need to save an animation as an animated GIF.
Can this be done from Blender? cheers.

If you want to use Photoshop: 1. Export from Blender to image sequence (JPG, PNG) at desired image size.
2. Import image sequence into Photoshop (Choose Open image, check the Image Sequence checkbox) 3. Keep colour mode in RGB (ie. don't switch to Indexed Colour, you'll lose the animation frames) 4. Choose Save To Web, choose GIF as file export option. It should indicate number of frames in the bottom of the screen. You can also choose Looping options here. 5. Save file.

Use AnimateGif（Freeware） AnimateGif is a small utility that will quickly create animated GIFs. It has a really simple interface that anyone can use. You may set loop, frame delay and quality options. What's more, it's lightweight, portable and fast! http://xylemstudios.com/products/animategif.php

@Lindsey, this question was edited to stay within the scope of Blender.Stackexchange, It's a good question (as the vote count suggests) but invites answers that involve software that isn't Blender -- this is partially the fault of my original edit to your question. Hopefully how it exists now makes more sense.

@zeffi thank you for the edit sometimes it is hard to know how to define the question so thank you for the help

I think, it might indirectly be done using the Frame Serving feature.

To make it simple as possible: You can render it as an FFmpeg video then go to cloud convert and make it a .gif file

Blender supports .webm as format since 2.81, which is usually preferable over .gif if the target platform/software/website allows to use it.

No, GIF isn't supported. While the encoding library (FFmpeg) used by Blender supports GIF encoding, it's unlikely support for this format will ever be added.
Your best option is to render an image sequence and assemble them in another external application. This is really trivial to do however and you can find some good programs or methods around the internet by doing a simple search.

Why is it “unlikely support for this format will ever be added”?

The Gimp can't handle 1000 layers :-) :-)

@juFo If you are making a multi-thousand frame gif, You almost certainly using gif wrong. :\  If you try to distribute that over internet you'll need basically a video-streaming capable server and connection at which point, why aren't you using a standard video format. #twocents

Just download the ffmpeg encoding library directly and access that via a command prompt. It'll become mandatory sooner or later when using blender. You'll eventually want access to h.265, gif, better containers, and many other libraries and formats that blender hasn't implemented from ffmpeg.

Gifs have always been a great way to help starving freelancers who have to deal with bad connections. Playblasts don't need mp4s.You can share animated work with a client to give them the millionth look at progress. It's seriously asked of on the spot so much sometimes. People want control. A leighweight video with no sound, Good.
You can REALLY use gif. Export is one of many, many things that would result in more people using Blender, like which has already happened.
Also, It's good to be optimistic about the possibilities of the software we all use and want to see thrive with support.

Thanks for my first downvote in 6 years. :). See the edit https://blender.stackexchange.com/revisions/1936/2 that was added by a CORE developer so unless something changes on their end, this is still unlikely to ever happen. Maybe by means of some addon but not officially. If you have an issue, take it to the mailing lists, ranting here won't do anything. Cheers.

Removing the final part of the answer here that suggest doing a google search would improve this answer.

@Kissaki I imagine the Blender team's hesitancy is because GIFs are one, no longer as prevalent as they used to be; and two, for a long time they were strictly guarded by software patents. The last patent ran out in 2006, but PNG gained an open-source-friendly foothold on GIFs in the mean time and while Blender certainly could implement support, there just isn't much demand.

@MichaelEricOberlin in 2014 when that comment was posted gif was still very prevalent for moving images. Nowadays there are definitely better options; namely video formats. But if those are not supported either gif may still be viable and reasonable. If there are no technical downsides, there's upsides still to support gif. Anyway discussing that here is pointless. I'd much rather have a reference to their (Blender) discussion and decision of this for a claim such as "unlikely". Otherwise it's just wild guesses from personal conclusions that do not necessarily fit the projects views.

@Kissaki Fair enough. Blender is open software, of course, and it occurred to me that if there's a demand, it's possible to add GIF support manually or build a plug-in—and sure enough, someone did. https://github.com/doakey3/Bligify Users might take a look at that. I personally have little need for GIFs and it hasn't been updated since 2.80; but necessary changes should be pretty trivial.

I created an addon that allows you to render or import animated GIFs with Blender. The addon is called Bligify.
Render GIFs

Import GIFs

Can't get the addon to render GIF (only frame sequence) on Mac is that expected? I've left a message on the youtube tutorial. Not sure where to leave a bug report ;-)

Sorry about that. I don't have access to a Mac, so coding for it is impossible for me right now. The addon requries Gifsicle and ImageMagick to work. I just packaged the executables into the addon for Windows users, but it's not so easy on a Mac. If you'd like to edit the code somehow to make it work for Mac users, I'd appreciate it. Else, I probably won't get around to it for a while.

Big Thanks! This seems to be right the life-saver tool I was needing (superimposing an animated GIF onto a mostly static clip - say, like an "animated decal")!!

FANTASTIC! More info though...first render the animation as images, then import images to the movie timeline, then use Bligify. Also, if you are trying to render a watermark over theanimation - which you should ;p - then you must select the watermark image layer and the Bligify layer then apply the alpha over effect. If you select the watermark layer and the animated images sequence layer then only the first frame of the animation will be shown in Blender and the result gif

imagemagick's command line syntax can vary between Win/Mac/Unix. I don't know the details, but that might be part of the problem if it's not working on Mac.

I managed to successfully use it on mac, keep up the good work :) For those of you, who couldn't: make sure you install imagemagick and gifsicle, also when you install addon, make sure paths to imagemagick and gifsicle are correct. Bligify 1.3.7, blender 2.79b, ImageMagick 7.0.8-33 Q16 x86_64 2019-03-13, Gifsicle 1.91

Although it looks like the addon(or blender itself?) forgets the paths after blender restart

You can convert a .png sequence to gif with ImageMagick.
Assuming you've already rendered your animation as a .png sequence, install ImageMagick and open up a terminal, go to your output directory, and execute:
convert -delay 1x30 *.png video.gif

This will convert all .png files in that directory to one .gif file.
The delay parameter defines how many ticks each image should be visible. 30 fps (1/30 sec) is used in the example above.

Thanks for this! It's way faster than doing it in Photoshop. Ps gives finer control, like holding each frame for a certain amount of time (to reduce file size), but often I just want to get the GIF made quickly, and this is the best way.

You specified you wanted an in-house solution. As it was stated that's not possible outside of addons that introduce outside elements. You can go the other route though and download the ffmpeg library that is already within blender, allowing you to access it directly through a command prompt or powershell. Google ffmpeg, download the latest stable release, extract, drag the ffmpeg.exe into the folder (or setups paths) of the things u want to turn into gif. Then you can open a command console there and use the generic:
ffmpeg -i input.mkv output.gif

In many situations it may be preferable to make the dimensions and any effects desired in blender vse, with a gui, and export just the desired segment as a .jpg or png strip. If you are committed to high quality gif images you can expand on what your command uses a bit, search google.
But in general some things u might want to pair with it:
ffmpeg -i input.mkv -vf scale=500:-1,unsharp=lx=13:ly=13:la=1.0 output.gif

or use
-vf scale=1920x1080:flags=lanczos
if you want to specify the scaling operation as lanczos or something else, its bicubic by default. But you only scale if you need to change the scale of the input, otherwise it translates over to the output automatically as is.
for jpeg/png the operation is just
-i %d.png
-i %d.jpg
You probably want to set the fps and start number tho so it would be like: For an image strip sequence named 800.png....onwards:
ffmpeg -framerate 24 -start_number 800 -i %d.png -vf scale=500:-1,unsharp=lx=13:ly=13:la=1.0 output.gif

For jpeg the scaling operation uses -2 instead of -1 for the automatic proportional scaling feature. I don't know if crf values work for gif or not but you'd just toss a -crf 18 before the output perhaps.
my pictures8002...my pictures8899
would be -start_number 8002 -i "my pictures"%d.png
i think it was -vframes 8012 if you wanted to only make the gif just from images 8002 to 8012; just toss it after the input in that situation. should work for video format outputs, never tried for gif.

Also can be scripted in Blender, using the external ffmpeg binary. An example is here.

So, I had just run into this dilemma and couldn't get the above answers to work (or were too complicated). I ended up learning how to do it in Krita. In case anyone stumbles here in the future, here's a step-by-step process I came up with. Obviously, you'll need Krita. Once you've installed and linked FFMpeg, you don't have to do so each time and the process becomes quicker. BTW, I'm on Windows 10 64bit.

Install Krita, if you haven't already. It's free.

Download ffmpeg according to your system setup and extract to a safe place, or wherever. Mine is just on the C drive.

Open Krita and create new document according to your image sequence size.

File> Import animation frames...

Now, click Add images and select all your frames, then select OK to import.

Make sure the Timeline and Animation dockers are open: Settings> Dockers> Timeline; Animation.

If there is a jitter at the end of your sequence that wasn't there in Blender, you may need to readjust your start and end frame values. This can be done in the Animation docker.

Once it's all ready for export, simple go to File > Render animation. Here, be sure Video is selected and the first and last frames match what you set in the Animation docker, as well as the other values like dimensions and FPS.

In the FFMpeg, link to where the ffmpeg.exe file is located. Example: C:\Ffmpeg\bin\ffmpeg.exe (where mine is).

Be sure Render as: GIF image is selected and select your output location.

Badda-bing, badda-boom.

Try FIJI (ImageJ) Import > Image Sequence then Save As > Gif
\ plays the imported sequence and Alt + \ adjusts playback options.


text:
Problems with smoke simulation visualisation
When I hit Alt+A to animate the smoke simulation, I just get the particle effect without seeing the smoke. As you can see from the screen shot. I am now using 2.67b. Can somebody please tell me why it's happening as every time I wish to see the changes I have made I have to render the scene which takes a long time and is slowing me down.

As you can see from above left (blender 2.67b) when I hit Alt+A no smoke appears in the simulation. The image to the right with smoke is done with blender 2.62,

Please ask a specific question. Your issue could be cause by a multitude of things. This is more of a debugging thing that is not easily fixed in a question. Try simulating a different object, simulating in a different file (by appending), clearing out the cache and baking again, in different versions and using another persons successful bake. You can eventually narrow down the issue. If you think this is a bug, please report it to the Blender Bug tracker: http://www.blender.org/development/report-a-bug/

I think we are eager to figure out what's causing this @Lindsey, perhaps if you really want to figure this out you could help is a little by giving a step by step list of what you do. Edit the question to include these steps and we'll have more to go on.

It sounds like something might be hidden in the viewport.
Have you checked these places?

In case images don't show up,
they are at https://i.sstatic.net/OYGx8.png and https://i.sstatic.net/cxoXn.png

no images are being displayed on your answer can you upload again. cheers.

@Lindsey hmm.. they work fine for me..? added direct links to the images.

I figured out that, as soon an particle system is involved in the scene and you need to render the smoke / fire, you have to start an animation from frame one to get the smoke displayed.

I started by setting an emitter with a particle system on, I then placed a smoke flow from the physics panel, then a cube around my flow mesh and set this up as a domain, from the physics panel. I baked all dynamics from the smoke domain cache panel. When this was done, pressed Alt A and the animation played as particles rather than seeing the smoke, as shown previously on my screen shot. When I press F12 the fully rendered frame is displayed with the smoke as it should be. I have tried different objects and settings. I have even tried this with the quick smoke simulation all with no joy.

I have also set up the material as a volume and set the denisity to o.o. I have set up the texture as a voxel data texture and evetything seems to be fine except i cannot see the smoke on the 3d screen.,

Maybe this tutorial will help you. Don't wonder too much about its has an explosion as the main topic. It will cover the creation of smoke very well.
http://www.blenderguru.com/videos/how-to-create-an-explosion/


text:
Shadows distorted and enlarged upon rendering
When I render the scene, the shadows of the fish have become distorted and enlarged. I have played around with the shadow settings on the meshes, materials, textures and environment but cannot fix the problem. Any help will be appreciated. Thanks.

What happens when you have a flat ground mesh? I think the issue is that the ground mesh is warped.

@CharlesL Have just replaced the floor of the lake with a flat plane and got exactly the same result.

are you using a spotlight or a Sunlight? is it that you want to shadows not to be several times bigger than the  fish?

@Zeffii I am using a sunlight. yes that is exactly what I want

are the shadows OK when you hide the water?

@Zeffii if I remove the water from the render it is still the same

care to upload an image of without the water, it's easier to see the shadows. Also we have now eliminated the water being part of the problem (likely)

@Zeffii I do not know how to upload image in comments

let us continue this discussion in chat

It appears from your image that you have two lamps lighting the scene. The properly sized shadows from your sun lamp are visible, but you also apparently have a spot lamp near the surface of the water, and that is causing the enlarged shadows. Look in the Outliner panel to make sure you have this spot lamp disabled.


text:
What's the meaning of tangent in the velocity panel in the particle settings?
I wish to know the meaning of the "tangent" option available in particles panel; for a surface in 3D, tangent means a surface. But velocity is a linear, directional entity.
I am currently working on a project which involves emission of particles along the slope of a cone.

Strictly, 'tangent' means a vector that touches the surface at precisely one point. Not the surface itself. So in the particle setting context:
tangent controls the starting force that is applied to the particle parallel to the emitter surface.
Normal controls the force that is applied to the particle perpendicular to the emitter surface.
To put it another way,
tangent = 1, normal = 0 will make the particle emit 'sideways'.
tangent = 0, normal = 1 will make the particle emit 'out'.
tangent = 1, normal = 1 will make the particle emit at 45degrees to the surface.

What if the emitting surface is a plane? All directions are parallel to the surface. In that case what will be the direction of the velocity of the particles emitted, if the tangent value is 1 ?

Then the direction of the velocity depends on the Rotation value underneath is. Try it out with a simple particle system (best to turn off gravity to see things more clearly)

I tried that too...for a plane I couldn't observe any rotation at all...when the ROT value was increased above 0.5, then the velocity direction simply became opposite. But I was not able to fix/find the direction of the initial tangential velocity.


text:
Is it possible to make Blender a Y-up world?
After learning bits and pieces of Maya, 3DS Max, IMAGINE and XSI I noticed that they all have Y-up worlds with Z being used for depth (naturally).
is there a way to make Blender a Y-up world?
and does anyone know why isnt it Y-up in the first place?

would be interesting to find out from Ton himself why he went with Z up.

I think 3DS Max is actually Z-up as well. The reason is explained well here.

Tips for Unity Game Modeling in Blender The link above is what I keep in mind before starting any Blender project I know that will be used for Unity.

Most apps let you choose which way is up.

As far as I know, cannot be changed. .

Blender uses the right hand coordinate system with the Z axis pointing
upwards. This is common with the coordinate systems used by most
common 3D CAD packages and 3Ds max:

Another reasoning for this is that a common convention for real world applications for engineering and science is that X and Y axes define a flat ground plane while the Z axis defines up and down

However, if you work between these software that you mention above, one way you could maintain consistency is to export the object(s) as a .obj or .fbx (or any other similar format, most if not all exporters in Blender have this option) to the other application with the 'up' axis being Y etc.

hmm. so the Z-buffer is really a Y-buffer ? :)

@user232 - No, that is camera coordinates where x and y are on the image plane and z giving the depth.

This is NOT unique to Blender. https://twitter.com/FreyaHolmer/status/1325556229410861056?s=19

Software can still use a right hand coordinate system while defining the ground plane as either XY or XZ.  I see right-handed vs left-handed as a separate issue.

I think I may have misunderstood the X and Y planes. As far as I understand, X and Y represent the horizontal and vertical axes, respectively, in a 2D canvas. Therefore, it seems logical that the Z axis would represent depth, which is why we use the term "Z-depth". However, I am curious to know why Maya uses the Y-axis as the up-axis and the Z-axis as the depth axis, while others use Z as the up and vice versa. Additionally, the term "Z-depth" itself represents depth in the 3D world.

It's obviously not perfect, but here are a few things that will make Blender "act" like Y is up.
Navigation
You could change all the shortcut keys so that Y was sort of the top.
Gravity
Change Gravity to Y direction:

Grid
Finally, remove the grid floor and only show the x and z axis when rotating the view.

You should probably rotate the camera too, while you're at it.

where is the Grid Floor option?

In the properties panel (N).

This answer should be higher up, it at least adds some workarounds that might be useful!

Blender is based on Cartesian right handed system, which is Z-up. From what I've read it's not possible to change that since it's pretty much hardcoded among Blender's various features, but I may be wrong.

you're wrong, you can have an Y-up right-handed coordinate system, or any-up for that matter.

Can you supply source? I haven't used blender for some time now, but I recall it wasn't possible back then (but then, I haven't supplied source either).

Where in math has anyone heard of Y-up (or down, for that matter)? The proper criterion for a right-handed coordinate system is the result of the cross product (z = cross(x, y), x = cross(y, z), y = cross(z, x)), it does not matter at all which of the unit vectors (x, y, z) points "up".

You can have right-handed with Y being up as well as left-handed with Z being up. They are not mutually exclusive. Godot uses Y-is-up and right-handed. Here's a chart: https://pbs.twimg.com/media/DTbWux8WkAUOZZx.jpg:large

@AaronFranke good point

@user1095108 True, but the majority of users of the application are not 'In math'. They are looking for functional convenience, not abstract truth. :)

You may "correct" the vision (on your screen) by rotating the camera, but the more important thing is the calculation of transformations and rotation in particular. They all use coordinate system as Z -up. For example for rotation it uses XYZ as default. I am not sure if you can use XZY and watch your transformations accordingly.
Yes there are Y-up systems, but they are more related to computer graphics histoy rather than maths. When there was only 2D on computer screens, X was the horizontal, and Y was the UP axis. When the third D was added, computer people chose to continue with this and added Z forward, off the screen. But they use their transformation matrices accordingly.


text:
Texture color with vertex paints
I have a black and white textured 3d model. Is there any way I can vertex paint the model and have the vertex paint serve as a way to "colorize" or change the color of the black and white images to what the vertex colors are?
Example: in gimp, you have a black and white image. You go to the top and pick colors > colorize > select a color. It changes the hue of the white while still keeping dark things dark.

With Blender Render engine selected and a regular old non-node-based material, go to the material properties and check Vertex Color Paint. This will make the diffuse color of the mesh equal to the diffuse color of the material times the diffuse intensity of the material times the diffuse texture of the material times the vertex color.
After you're done you can bake the vertex colors to a texture if you want and use the compositor to combine them for use in a game engine if that's your thing. Or, use a shader and engine that can use the vertex color if the texture is tilable.

Is there anyway to do it in cycles?

Yes, just use Input->Attribute node, put the name of the vertex color in and use the Color output. You can also do this to get vertex group weights in Cycles.


text:
How do I make a round hay roof?

I'm trying to learn modeling so I'm pretty new to it. How can I make this hay roof?

i tried using a circle, extruding it some times and merging it at the top but it looks too simple.

i would like to make it look less perfect. make it look more natural like it was made by humans

Use hair particles to make the straws

i have no clue how to use the hair particle. i want to add that AND make the circle have some imperfections so it doesnt look like something perfect.

ill check some tutorials for the hair particle. but i still need help with imperfecting the circle

anyways i fixed it

Image as reference, proportional editing/sculpting, and tip thickness
As you have a reference image, I think the best way to start the modeling is blocking out of the shape right onto the reference image to ensure the similarity of the proportions.
Keep the topology tidy in this phase as long as possible. In my test file I started by extruding and scaling a circle on the Z-axis while keeping an image-type empty behind. Don't worry about the a-symmetry of the reference object, just focus on the overall proportions.
For the tip I went for a grid fill, followed by some smooth vertex operator iterations.

The shape has now some kind of radial symmetry that we would like to avoid. I took advantage of the proportional editing tool to grab the vertices around and various sculpt tools to smooth the shape (or to bump out some parts).

Add to the roof a hair particle system, set the right amount of particles, comb the hairs toward the bottom (in particle edit mode) and use weight paint to adjust the density and length.

Once satisfied with the distribution, start tweaking the parameters of the individual hairs. I went for a long stick type by setting the Tip section equal to the Root section. You can find more info about how to control the shape of the strand in the Blender Manual page:

Finish by setting the Children particles type to one of the proposed modes (in this case I went for Interpolated) to increase the amount of particles.
Play with other parameters till you reach the right look for your job. Here's a possible result:

Note: this is just a presentation of the workflow and the tools I would use for the job. Each one probably requires some time and further research in order to be mastered.


text:
Is it possible to model this padding with "inverted snake scale"-like pattern?
I`m new to Blender. There is a extruded square-like geometry on the surface of the headphones. As the geometry gets close to the boundaries, it changes shape. The shape changes from center to edges.
How do I make this effect?

Look for tutorials about "Tissue" addon, it is shipped with Blender.

it looks amazing thx a lot :)

Here is a different approach with a more non destructive workflow using modifiers.

Use a technique similar to Moonboots answer to start your shape.
Add a plane, subdivide-smooth a few times, poke faces, remove all orthogonal edges so you end up with the lozenges pattern.
Select all diagonal edges and with Ctrl + E Edges menu mark them as Sharp.
Now poke you faces again, and select all face-center vertex. You can do this easily by selecting all Sharp edges from the above step with Shift + G Select Similar > Sharpness, then switch to vertex mode and invert the selection.
Create a new vertex group and assign to it all the face center vertex selected previously, leaving all other out.

You can now add a new Displace modifier to your mesh and limit it to the above created vertex group. This will parametrically control the scales concavity with the displace amount.
Add an Edge Split modifier and tick only the option Sharp Edges to separate each individual scale. Follow it with a Smooth modifier to non destructively control the gap between scales.
Add a Solidify modifier to add thickness, then follow it by a Subdivide modifier set to Simple. This will add some gometry to "hold the square shape" of the scales.
After that you can add another Subdivide modifier set to Catmull-Clark to add roundness.

thank you a lot !!

You could repeat a pattern with Array and Curve modifiers, but as Serge L says, a quick way would be to use the Tissue addon. The next Tissue addon made by Alessandro Zomparelli seems amazing by the way (Blendconf presentation here):
Create a plane, subdivide it, press CtrlE > Un-Subdivide, choose an Iteration value of 1 so that it creates lozenges instead of squares.

Create your module, make it rotate 45° on the Z axis. In Object mode select the module, then shift select the plane. In 2.79, in the Tools panel > Create tab > Tissue, press Tessellate, press OK to validate.

thx a lot guys i think im figuring it out hehe


text:
How can I fix the topology of a heptagon?
I've modeled the following screw on which I have applied a subdivision. I managed to fix most of its bad topologies, but I can't wrap my head around the following scenario. I have this heptagon that I want to convert to quads and I have been googling for help for the past two hour without success. I just don't understand how to fix this.
I am assuming I need to convert the heptagon to quads, but I might be wrong.

could you add your blend file so I can play with the geometry?  (How to add a blend file) Meanwhile, do you have autosmooth on?  You should be able to get away with geometry similar to what you have

Oh, I didn't knew I could upload blend files. Here it is: https://blend-exchange.com/b/gkDrvMeN/

Wow, that is indeed a rough problem.  I can add geometry that moves the issue around but I can't really come up with a way to fix it.

Yes, this is very strange. Even if I extend the three lines to the next side of the screw, the hollows keep appearing at the same place... even though I make the twist more prominent. Thanks for having took a look at it!

I usually work around it with non-square quads.
It works reasonably well with the Subdivision Modifier.

This kind of topology works fine in my opinion but I got rid of all your modifiers (not sure how they are useful):

Faster again. I'm not even surprised anymore :)

thanks but I'm not sure if I'm good as I don't understand what all these modifiers are for  ;)

They add bevels to the screw's edges by using vertex groups. Otherwise the edges become smooth like on your screenshot. I do that to keep my model low-poly.


text:
Compressional wave in a cube
I want to see the propagation of a compressional wave in a cube. I meshed a cube along Y and just added wave in this same direction as follows:

But only the first and the last Y normal surfaces move while the rest of the cube remains completely still. How do you get all the surfaces to move to illustrate the propagation of a compression/dilatation wave through the cube?

You may have to delete the surrounding geometry, that is all the short edges.

i do not think that this is possible...but...surprise me! ;)

In which direction do you want the compression? Longitudinal (along Y), or transverse (in XZ) ?

longitudinal, along Y. For transverse it's ok.

For illustration, you could pass an Empty down the length of the cube, create a vertex group in the cube, (say, 'Prox',) and give the cube a Vertex Weight Proximity modifier, modifying the weights in the group by the proximity of the Empty.
Here, we see the Vertex Weight Proximity modifier, affecting the 'Prox' group, targeted on the plain-axis Empty, and the consequent weights (made visible in the 'Overlay' settings,in Edit Mode).

Those weights can then be used to control other modifiers. For longitudinal compression, you could parent a plane to the Empty, and give the cube a Shrinkwrap modifier, projected in + and - of the length-axis (mine is X) towards the plane, weighted by the 'Prox' group:

If, for example, you wanted a leading compression front, rather than contraction on both sides of the plane, you could get the shrinkwrap to project on one side only.
This, though, is as shown:

For transverse compression, you could use a Displace (along normals) modifier instead of the shrinkwrap.. no need for the plane:

If you needed something more mathematically exact, I'm sure there will be a Geometry Nodes solution. For that, maybe you could provide your wave function.

Warp modifier could let you skip the proximity, if what you want is just a loc/rot/scale transformation.

Hi @Nathan! I'm not very experienced with Warp .. please post an answer if you have time, if not , I'll have a play with it when I do.

Woooooowwwwwwwww

It kind of demands animation demo, and I've never figured out a good, easy enough way to show that here-- do you viewport render and convert to gif using a different application?  Gif is so painful....

@Nathan is right.. Warp gives you the choice of a custom falloff curve, which might be just what would suit this case. I use Bligify to convert viewport animations (Linux)

Hi and thanks Robin. could give you a concrete explanation of the steps to be taken if you have time. I'm trying to figure out empties, weights, and groups, and I'm having a hard time combining these ideas to do what you did.

@Newenda See Edit.

A warp modifier is a nice way to do this:

It measures the transformation from one empty to another empty, and then applies the transformation to the mesh in a given radius, with a specified, even custom curve, falloff.  The radius is measured from the "object from" object, which can then be animated along the length of the curve.  I typically parent the "to" object to the "from" object.  The scale of the "to" object is shown in my sidebar; that's the transformation the mesh is undergoing.

Cheers! Must get my head round this one.

Hi Nathan, nice idea. Where is your second empty on your example ? thx

They're both at the same location.  Both are selected in the still; the active selection is the "to" and the secondary selection is the "from."

tks, But in the blender new version, empty properties is different and dont offer the same menu at all... and cant find a tuto about that.. https://i.goopics.net/JqKra.png

The modifier isn't on the empty, it's on the mesh.  That's version 2.92, the latest release, and there haven't been any differences to empties for a long time anyways.

To add to the very functional answers already here, I would use a Lattice modifier with a moving Lattice object.
This allows for not only compression waves, but also transverse waves and even spacially asymmetric combinations of transverse and compression waves with arbitrary waveforms:

I honestly don't know why my answer is attracting so much UV.. I think both yours and @Nathan's suit the OP better. You have to play with the lattice a bit, to understand the difference between transforming it in Edit and Object mode, but in the end it can do everything in my answer, more simply.


text:
How can I get the outline of a shadow with Freestyle?
For a vector illustration project, I am looking for a way to extract the shadows of objects in Freestyle. Currently I am only able to export the object itself (with Freestyle Edge Marks and the Freestyle SVG Export add-on):

How can I reveal the contour of the shadow with Freestyle?

Freestyle only exports hard geometry. Shadows don't have a coherent outline that can be unequivocally traceable. See https://blender.stackexchange.com/questions/77279/projection-geometry-example

@DuarteFarrajotaRamos thanks for your comment. So you suggest to mimic the shadow with the Knife Project tool, so as to give the shadow a "substance" of sorts?

That might work. Though it involves a certain amount of manual work. Maybe you can do it non destructively with modifiers like Shrinkwrap perhaps

As a workaround, you could try the following:

Import your rendered PNG into Inkscape
use the "bucket fill"-Tool on the shadow, this will rather neatly trace the contour of the shadow (as long as the color is somewhat uniform)
Set line and fill of the traced area as you like
Import the Freestyle-generated SVG on top and move/scale as needed
Delete the PNG

This should give you a pretty good vector image for further usage

@haarigertroll thanks for this workaround. I will try this.


text:
Tips for creating a pumpkin texture
I used the video tutorial by Ryan King to make a pumpkin model and just learned some pretty cool ways to make the pumpkin texture by using nodes, but I don't know many of the nodes and what they can do, so I'm just wondering what nodes I could use to make this type of pumpkin below.

pretty much the same set of nodes, but with different colors and settings.  Experiment with the material and see what happens.

Recommend putting on a couple layers of distortion to get the colors broken up with spots of different sizes.

Maybe to start, try somethings like this. A Wave Texture provides the vertical lines, and a Noise Texture provides the "speckles". Make sure to use UV texture coordinates, otherwise the lines will only cross one axis and won't "wrap around" the sphere nicely.
I used the Noise Texture as a basis for a small Vector Warp of the input Vector to the Wave Texture which makes the lines more fuzzy/random. This plus a small amount of distortion on the Wave Texture itself makes the vertical lines more realistic (less linear and fake looking).
I used the Wave Texture as a basis for a bit of a Bump, but not the Noise. This is just a personal choice, and you can use them both if you wish, just make sure the speckles are "softer" than the waves when mixed.
Speaking of softening, you can see in several instances, I mixed the value going into an input socket (quite heavily) with white first. This is because procedurally generated values are often too "strong" (gives weird effects), and lowering the contrast first often makes things better. I use the MixRGB with white because the slider gives good, precise control.
This isn't the end result, but is should go a good way towards getting you started. Let me know if you have any questions ;)

What is that purple node that is called add. I can't find that when I search it. Is it a separate node I have to install to get?

It is Vector Math @AlexWillis21


text:
Renders get pixelated when viewed up close
I have been using blender for about a year now and have only just started to notice that all my pictures are actually not that HD. If you zoom in on a render just once, you can see each individual pixel colour. I don't know if this this is a big or if it is something I can do or even if this happens to everyone.
Please help as its really bugging me now.
Here is an example of a render that is a bit pixelated:
Save the picture and open it in fullscreen and zoom in just a bit.

The image you uploaded has the dimensions of 960 x 540. This is half HD. Most likely the problem is that your render scale is set to 50%. This means that the actual render size will be 50% of the specified render size.
To fix the problem. Set the scale to 100%, than your renders will actually be full HD


text:
Dynamic creation of properties for export script
This time I have a question about Properties in Blender. I want the operator window of my add-on to have one BoolProperty per action defined in bpy.data.actions and I want them to have the names from bpy.data.actions.keys(). I googled a bit and tried some stuff, but it wont work, theres allways something wrong, so is this even possible and can someone give me some hints on how to do it?
class ExportTSA(bpy.types.Operator, ExportHelper):

    actionprop0 = BoolProperty(name=bpy.data.actions.keys()[0],description="Exporet this action",default=True)
    actionprop1 = BoolProperty(name=bpy.data.actions.keys()[1],description="Exporet this action",default=True)
    actionprop2 = BoolProperty(name=bpy.data.actions.keys()[2],description="Exporet this action",default=True)
    actionprop3 = BoolProperty(name=bpy.data.actions.keys()[3],description="Exporet this action",default=True)

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

        row = layout.row()
        row.prop(self,"actionprop0")
        row = layout.row()
        row.prop(self,"actionprop1")
        row = layout.row()
        row.prop(self,"actionprop2")
        row = layout.row()
        row.prop(self,"actionprop3")

Heres a simplified version of my class, to demonstrate the idea. Instead of making hardcoded props like actionprop0, actionprop1... I want it to be dynamic in a way that it creates an automatic list, assigns the correct names, registers each one and draws them. I also found that you get into trouble when using bpy.data.actions where I used it, after I googled it it turns out that blender seems to be not fully initialized at that point so that causes errors, which might lead to additional problems.

I don't think dynamic property creation is possible. I've tried it before, and Blender always complains:
rna_uiItemR: property not found: [property_name]

An alternative way would be to put the property in bpy.types.Action instead, so every actions already have the property. Then it's only a matter of displaying it.
import bpy

class EX_dynamic_property(bpy.types.Panel):
    bl_idname = 'EX_dynamic_property'
    bl_label = 'Dynamic Property'
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'

    def draw(self, context):
        layout = self.layout
        for action in bpy.data.actions:
            layout.prop(action, 'EX_export_this', text=action.name)
        layout.operator('view3d.print_action_export_status')

class OT_dynamic_property(bpy.types.Operator):
    bl_idname = 'view3d.print_action_export_status'
    bl_label = 'Print'
    bl_options = {'REGISTER'}

    def execute(self, context):
        print('*' * 5)
        for action in bpy.data.actions:
            print("%s:\t%s" % (action.name, action.EX_export_this))
        return {'FINISHED'}

def register():
    bpy.utils.register_module(__name__)
    bpy.types.Action.EX_export_this = bpy.props.BoolProperty(default=False)

if __name__ == "__main__":
    register()

It's easy, and there's not a lot we need to do. Upon execution, the code above will list the property:

Thanks alot, it´s not perfect but it works fine so i´ll just go with it

I've try to change the 'dynamic property' : for action in bpy.data.actions:
With : for action in bpy.data.scenes:
But it doesn't work. Does your solution only work with action or it also work with other bpy.data? (I want to create a dynamic check box panel with the Scene.)

@lucblender: Scene is a subclass of ID, so it should work. That iteration accesses Action class' boolean EX_export_this property, which is added on script registration. Within register() function, you need to substitute bpy.types.Action with bpy.types.Scene.

Sorry for asking question again but is it possible to create a dynamic property panel with string, int, etc... property and not boolean? Edit: I've found it's in registration bpy.types.Scene.RenderTrue = bpy.props.StringProperty(default='Text')

@lucblender Yes, as long as the data type is supported by bpy.props.

In addition to what Adhi suggested, you can use CollectionProperty in your operator to store key value pairs (where keys are name of the action and values are boolean values). For this to work you must...

create a subclass of PropertyGroup that will hold single key-value pair.
populate this collection from Operator.invoke method (you might already have it)

So the code goes like this:
import bpy
from bpy_extras.io_utils import ExportHelper
from bpy.props import *

class ActionSelProperty(bpy.types.PropertyGroup):
    name = StringProperty(name="Action Name")
    export = BoolProperty(name="Export", description="Exporet this action", default=True)

class ExportTSA(bpy.types.Operator, ExportHelper):
    bl_idname = "test.export_tsa_op"
    bl_label = "Export TSA"

    actionprop = CollectionProperty(name="Actions", type=ActionSelProperty, description="Select actions to exporet")
    filename_ext = "*.*" # Only needed if subclassing `ExportHelper`

    def invoke(self, context, event):
        for aname in bpy.data.actions.keys():
            self.actionprop.add().name = aname
        wm = context.window_manager
        wm.fileselect_add(self)
        return {'RUNNING_MODAL'}

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

        for aindx in range(len(self.actionprop)):
            row = layout.row()
            row.prop(self.actionprop[aindx], "export", text=self.actionprop[aindx].name)

    def execute(self, context):
        for aprop in self.actionprop:
            print("%s:\t%s" % (aprop.name, aprop.export))
        return {'FINISHED'}

def register():
    bpy.utils.register_module(__name__)

if __name__ == "__main__":
    register()

In this case,  name is a key and export is a boolean value.
PS: Invoke by searching Export TSA. Screenshots:

This may not be perfect, but you can investigate more! :)
HTH

I tried your implementation and it works, but adhi´s seemed a little bit simpler but thanks anyways, i appreciate the help

Love your answer, this is definitely the right way to do it, though I must admit, adhi's answer is very interesting.


text:
Why does Blender 2.68 appear to still be 2.67b?
When I download 2.68, unzipped it and then opened Blender, I got the 2.67b splash screen. I am on x64 Windows 7.
I am a bit confused. Which version of Blender have I actually got, and how can I tell the difference?

This question appears to be off-topic because it is much too specific.

Hi Craig, welcome to the site :). Sorry for any confusion.. your question has been closed as while it is ok, it is a bit localized and will no longer be really useful or applicable in a few weeks when Blender officially goes to 2.68.

Because 2.68 is currently a release candidate and the renaming of the new version is not done yet.
If you look at the splash screen there is a number after the r.
It is not the same between the 2.67b and the 2.68 RC