text:
How to import 3D buildings from OpenStreetMap to Blender
As an OpenStreetMap (OSM) user, but pretty newbie regarding to Blender (I know the basics, but never used in depth because I get lost) or developing, I would like to 3D print some buildings stored in OSM and maybe make some basic renderings/modifications with Blender. After having done some research I've come to two different workflows but unfortunately none of them work for me, so hopefully anyone can tell me how to improve them or provide another one:
Preamble: download OSM data
I have exported an OSM area into OSM's native format *.osm file (which is an xml file) from their website. Full explanations on exporting an OSM file can be found here. For purposes of this exercise I will be downloading this particular area, which looks like this on this 3D Viewer thanks to the work of the community.

The osm file that I am working with can be downloaded here as well.
Scenario 1: Using BlenderGis Addon
BlenderGis Addon provides a lot of interesting features for GIS users. Amongst others it can import osm files geolocate, terrain analysis... it seems great!
Unfortunately the osm importer only imports 2D information of the geometry, and no other osm information is stored (at least I haven't been able to find it).
I would still need to extrude each object and model their roofs, and I haven't found any fast way to do that. I have just created a feature request on their repo, but despite it seems quite active I do not know if it will be accepted.
Scenario 2: Using Blender Geo Addon
Due to those problems I tried Blender Geo Addon which can import buildings in 3D, judging by this awesome video. It seems it has everything I need, except for these annoying issues (for me):

Only buildings that make use of osm's key building:height are extruded. Unfortunately this key is less used than building:levels which is more approximate but easier to get.
All roofs are flat, something which is not always true in most areas. OSM has some keys in order to store information regarding roofs, such as their type (roof:type) orientation (roof:orientation) and so on. (more details on that on this wiki)
There seem to be many overlapping meshes. (less cleaner than the other solution)

This is the result of the import:

The good news is that all this OSM information is stored as custom properties. The bad news is that I do not know how to work with them.
Regarding issue 1. I was wondering if there could be a way to extrude each object by its building:levels custom property without having to review and extrude them one by one.
Regarding issue 2: I do not have any idea on how to solve that. This is really a problem.
Regarding issue 3: I do not know if that's really a problem.
Final steps
In case I could fix the import problem my idea is to use 3D print toolbox and export the model into stl file.
Can anyone provide any clues to overcome these problems?

Could certainly edit the importer to extrude buildings using same code that is used for height.  It's just establishing what is the level height?  Will post some pix with different values.

Related: http://www.blendernation.com/2016/09/03/owen-powell-maps-terrain-models/#prettyPhoto

@vvoovv Tags are for the question, not a potential answer. Secondly, a tag should only be created if there are a significant number of questions that could benefit from the tag. I don't know if that is true of this tag yet (it might be).

@RayMairlot, I thought the tag was applicable to the question, since the blender-osm addon was mentioned explicitly in the question. The addon was called blender-geo back in 2016. There are a number of questions about the blender-osm addon. I attempted to assign the tag blender-osm to them.

Update 25 January 2017
The OpenStreetMap importer for Blender has been completely rewritten.
Here is the link: https://github.com/vvoovv/blender-osm
A large number of roof shapes is supported: flat, gabled, hipped (for a quadrangle outline only), mono-pitched, half-hipped, round, pyramidal, gambrel, dome, onion and saltbox.
Below are some results of its work.

New York. The original OSM file contained more than 100.000 buildings and had the size 350 Mb.

Moscow Kremlin. The example showcases the support of flat, gabled, mono-pitched, dome, onion and pyramidal roof shapes.

Cool.  re roofs have a look at https://gitlab.com/fg-radi/osm2city/blob/master/roofs.py

Thank you for the link! I've already written some code to deal with hipped roofs through straight skeleton algorithm in another repo. There is a ticket to discuss roof support

A large number of roof shapes is supported: flat, gabled, hipped (for a quadrangle outline only), mono-pitched, half-hipped, round, pyramidal, gambrel, dome, onion and saltbox.

Here are some updates to the script https://github.com/vvoovv/blender-geo/blob/master/io_import_scene_osm.py
Extruded buildings based on building:levels using a level_height setting in import. Also added a scale setting.
https://gist.github.com/batFINGER/87ad90900be589281eeeaa83697d541f
Result So far.

Haven't done much with roofs yet.
Till I add it into code proper this adds some materials / object color to buildings
import bpy
from bpy import context

# CoDEmanX from BA.org
def hex_to_rgb(color_str):
    # supports '123456', '#123456' and '0x123456'
    (r,g,b), a = map(lambda component: component / 255, bytes.fromhex(color_str[-6:])), 1.0
    return (r,g,b,a)

scene = context.scene
# buildings with material

bm = [b for b in scene.objects if "building:colour" in b.keys()]
materials = {}
for b in bm:
    matname = b.get("building:material")
    if matname is None:
        matname = "building:material"
    mat = bpy.data.materials.get(matname)
    if mat is None:
        mat = bpy.data.materials.new(matname)
    mat.use_object_color = True
    if matname not in b.data.materials:
        b.data.materials.append(mat)
    if b.get("building:colour"):
        b.color = hex_to_rgb(b.get("building:colour"))

Might also pay to have a look at osm2x3d to convert to x3d and import from that format.  (Haven't tried)

Wow! thank you! haven't been able to test it yet, since I'm away from my computer. Willing to do so! (once I've done that I will mark your answer). Thanks again.

authors: Дмитрий Евстратов


text:
Scales importing .stl file
I need to import a .stl in blender. First I changed the "Scale" in "Scene" to 0.01 (centimeters), then I chaged "Scale" in "Display" (N-sidebar) in 0.01 too. When I import the stl. file the object appears with dimensions larger than it should be. I don't know what I'm doing wrong.
I've read another posts but I don't understand what to do. I tried scaling the object (X = 0.01, Y = 0.01, Z = 0.01) but then the object becomes smaller.

I don't understand what you want to achieve. Changing the scale in the scene settings only affects what happens when you work with units. The scale in Display only affects the size of the grid floor. And if you scale an object by 0.01 of course it becomes smaller, that's what scaling is for.

Yes, but I read that about scaling in another post. I want my object keep the original dimensions

The dimensions should not change when you import an STL file. What problem are you facing here?

Are you trying to scale the imported object to an absolute size?

You should to know the scale used in the STL file, for example OpenSCAD uses millimeters for all, when you export your work from OpenSCAD to a STL file, the scale will be mm.
So you should configure the scale in the Blender importer to use 0.001 as scale, because, in Blender, if configured the world scale in the metric system, a unit is a meter.
Summarizing:

Configure the world units in Blender as Metric system.
Left the World scale in Blender as 1.000 (1 Blender's unit will be 1 meter)
When importing, select 0.001 as scale for the STL file. So 1 unit in the STL will be a Blender's unit * 0.001 converting the mm of the STL to meters.

source: Stack Exchange

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

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

sort: votes


text:
Is there a way to change default values of properties of operator?
I tried this to change, but no success

Any ideas?

Are you specifically looking to do this with Python?

Possibly related re example operator used https://blender.stackexchange.com/questions/45664/how-do-i-reduce-my-file-size

@RayMairlot No, I just wanna save needed default values of tneeded operators like settings in user preferences. Python solution would be great - I'll write what I want to .py file and drop the file to the startup folder. Python is only possible option here

Updated the tags to reflect this. Generally tags are for the question, not for potential solutions.

@batFINGER Thanks a lot! Useful in my case. But still, it would be great to have a way to change any default value without recoding Blender in C

Also related https://blender.stackexchange.com/a/101355/15543

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


text:
How can I turn a photo into individual mesh objects
I have a simple photo of city lights at night. How can I convert the lights into meshes that I can manipulate.

You could add the photo as a plane mesh. If you want to make the bright areas of the image light up, you could manipulate the material settings so that light colors have a slight emission with the ramp tool.

You can try using blam for reconstruction: https://github.com/stuffmatic/blam

Hmm, this is a tricky one. I've done something similar to this but it might be tricky to do without distorting the image. Here are the options that come to mind.
Cutting up the Mesh Manually:
This is probably the most obvious and most tedious option. Import the image as a plane, and meticulously cut apart the mesh using the knife tool, Boolean operators, or whatever else you can think of. Then separate them into individual objects (p in editmode). The texture should remained mapped appropriately.
Convert to SVG then import
This is what I would probably try first. When you import an SVG file in Blender, it imports the individual colors and segments separately. I know programs exist for converting a standard image to SVG (I can't recommend anything directly sorry) so try to find one and make an SVG version of your image then import that. It will import as a collection of curve objects.
Objects first
This is a weird one. Make your camera the exact same aspect ratio as your image, then set you image as the camera background. Then, create a mesh and edit the mesh so that you have created separate linked sets of vertices floating behind the positions of the lights on the image. Example mesh consisting of individual sets of vertices, but within the same object:

Once you have created all of your individual cells, select everything and use the UV map Projection From View option to generate a UV map that maps the image as seen from your camera. Then apply to the image as a texture for your objects using this UV Map.
Now, separate all the bits by selecting everything in Edit mode, hitting P, and selecting By Loose Parts. You should now have a bunch of individual objects all textured with appropriate bits of your image.

What are you trying to accomplish ultimately? If you want to create the illusion of a 3D scene you might want to look up some tutorials on camera mapping in Blender. Here is one from BlenderGuru.
Hope one of these works for you.

Here's another solution that doesn't require outside software or conversion. In general, we'll use the fact that this is a high contrast grayscale image to displace the white bits, then cut them out from the rest of the image using a boolean modifier.
Step 1: Import your image as a plane (using the Import Images as Planes addon)

Step 2: Subdivide your mesh using the Simple algorithm (subdivide without smoothing), 6 subdivision levels

Step 3: Go to edit mode (Tab), then UV unwrap your plain from top orthographic view (Numpad 7 > Numpad 5 > U > Project from View (Bounds))

Step 4: Add a displacement modifier and add the same image you imported as texture, set displacement mapping to UV

Step 5: Add a plane, then add a boolean modifier to your displaced mesh. Set the boolean object to the new plane, boolean type Difference.

Step 6: Apply all modifiers, by order (from top to bottom). Delete the 2nd plane, flatten almost completely on Z in Edit mode (Tab > SZ0.01).

Step 7: In edit mode, select all (A), then separate by loose parts (P > By Loose Parts).
That's it! The different pieces are now each a new mesh.

Very clever, I love it!

WOW, very cool, I'll give it a go and see what happens.  Good job.

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


text:
Cycles SSS seemingly incorrect colour for thin surfaces or small objects
I'm trying to get a similar material to the plastic of a 3D print which is largely dominated by subsurface scattering (SSS):

However, a very simple SSS test in cycles produces this:

There's an awful lot of lot of blue (I assume back-scattered light) at the corners that I can't get rid of. The same happens at smaller detailed bits of geometry in other tests.
A simple answer is I've buggered up the properties and just need to change some numbers. If this isn't the case,

Is this simply a failure case of the current SSS method in cycles or the lack of some other physical phenomenon that isn't being modelled?
Can this be avoided easily? If it's necessary to set up a complex network of nodes to hide the effect then maybe it's not worth the effort.

[EDIT]
OK, it doesn't look like forward/back scattering has anything to do with it. Small objects simply have the wrong colour, as in the following image. I'm pretty sure if I shaved off a chunk of my model it wouldn't turn blue/green.

Objects on the left have 0 sharpness while objects on the right have 1 which seems to alleviate the problem a little. I would have thought this is the wrong way round given the look (maybe sharpness should be roughness instead).

                              Note about scatter radius in Cycles:
Because of the way this scattering is calculated, when using large radius values, you will notice fringing artifacts that appear as the complementary color to the predominant color of the scattering. Above, you see in the last image a bluish band in the illuminated area. This is an unfortunate limitation. A way to lessen this effect is use multiple passes with different scatter radii, and average them.
for more info: visit:http://wiki.blender.org/index.php/Doc:2.6/Manual/Materials/Properties/Subsurface_Scattering
Example of multiple passes:Brecht's Six Layers SSS

For the default SSS shader node to generate it's correct effect,set the radius RGB levels to low values to get a accurate results,EDITit seems that the scale to ratio is off,the formula should look like this s1.00 = bu1.00,but it's more like s1.00 = bu100.00 or s.100 = bu1.00,just try it with a low level of scale .100 and left the radius level at R1.00G.500B.250 and it gave the same exact results as leaving the scale at 1.00,but lowering the Radius RGB values R.100G.050B.025,no more blueish tint:
Example1:
Scale value:
scale = 1.00
Radius Values:
Red(R) = .100
Green(G) = .050
Blue(B) = .025

Example2:
Scale value:
scale = .100
Radius Values:
Red(R) = 1.00
Green(G) = .500
Blue(B) = .250

Without seeing your current setup (what you've already done), it's a little hard to say exactly what is going on and how to change it..
Here's what I came up with after a bit of fiddling (just trying to match the reference image by eye):

This looks pretty similar to what I've seen, though using the layer weight is a nice idea. I still find the blue on the spikes of the dragon's head looks quite odd. This effect increases with larger radius/scale values. Maybe this colour is physically correct but gets cancelled with a high orange surface reflectance but to me it still looks unnatural.

The reference image in your question also has a bit of a greenish appearance around the spikes.. Also keep in mind that lighting will have a huge affect on the result. Part of the greenish hue in my example is caused by the lighting (there is a blueish meshlight).

Yes, my reference is in a Cornell box with red/green walls but the colour is subtle compared to the SSS issue. I've added a better example image where the problem occurs in small objects.


text:
Batch renderer stops after one render
I am trying to batch render few sequence like 1 to 10 and then 30 to 50 but rendering stops after completing one sequence.
def execute(self, context):
    batcher = bpy.context.scene.batch_render
    sce = bpy.context.scene
    rd = sce.render
    batch_count = 0
    for it in batcher.frame_ranges:
        batch_count += 1
        print("***********")
        if (it.end_frame < it.start_frame):
            print("Skipped batch " + str(it.start_frame) + " - " + str(it.end_frame) + ": Start frame greater than end frame")
            continue
        sce.frame_start = it.start_frame
        sce.frame_end = it.end_frame

        sce.render.filepath = it.filepath

        bpy.ops.render.render('INVOKE_DEFAULT',animation = True)

    sum = 0
    for it in batcher.frame_ranges:
        if (it.end_frame >= it.start_frame):
            sum += (it.end_frame - it.start_frame)
    print("Rendered " + str(len(batcher.frame_ranges)) + " batches containing " + str(sum) + " frames")
    return {'FINISHED'}

if I put this line:
bpy.ops.render.render('INVOKE_DEFAULT',animation = True)

then it renders only one batch
if I put this line :
bpy.ops.render.render(animation = True)

it renders all batch without any issue .. but it freeze blender and doesn't show render progress bar.
I want to see progress bar and do batch rendering.

I'd suggest using handlers for this task.  Below is a script that adds a full set of render handlers, and prints the current frame (if possible) and name of the handler when that handler fires.
import bpy

frame_handlers = [name for name in dir(bpy.app.handlers)
                  ]
def handler_function(name):
    def handler(scene):

        print(f"{getattr(scene, 'frame_current', 'N/A')} : {name}")

    return handler

for name in frame_handlers:
    handler = getattr(bpy.app.handlers, name, None)
    if isinstance(handler, list):
        handler.clear() # clear first for testing
        handler.append(handler_function(name))

System console output for a 2 frame animation render, must have started render  with current frame set at 0. (v 2.91)
0 : render_init
1 : render_pre
1 : frame_change_pre
1 : frame_change_post
Saved: '/tmp/0001.png'
 Time: 00:00.47N/A : render_stats
 (Saving: 00:00.03)

1 : render_post
1 : render_write
2 : render_pre
2 : frame_change_pre
2 : frame_change_post
Saved: '/tmp/0002.png'
 Time: 00:00.38N/A : render_stats
 (Saving: 00:00.02)

2 : render_post
2 : render_write
0 : render_complete
0 : frame_change_pre
0 : frame_change_post

Experiment and see the order the handers are called firing  "render_init"... etc until, "render_compete"
Setting it up
In Operator execute, set the scene settings to first batch, call the render op and add the render_complete handler.
# add the handler.
   bpy.app.handlers.render_complete.append(render_complete)

The render complete handler
change scene settings to the next batch item and call render op again
You will need to keep tabs on which batch is rendered with an active_index property (or similar), (also handy for displaying the items in a UIList widget)  Please note this is just code typed into answer and not tested.
def render_complete(scene):
    batches = scene.frame_ranges
    i = batches.active_index
    if i < len(batches) - 1:
        batch = batches(i+1)
        # set up scene
        bpy.ops.render.render('INVOKE_DEFAUT', animation=True)
    else:
        #clear this hander
        bpy.app.handers.render_complete.remove(render_complete)

Experiment...


text:
How to check if a Blender subprocess is still running in background mode from a Python script?
I have run a blender instance in the background using subprocess.Popen.
Now I want one panel to get visible only if there is a blender instance running in the background.

I'm voting to close this question as off-topic because this is a general Python question, not specific to Blender.

True, when recommending to ask here I wasn't aware this was about subprocesses.

This is no different from regular subprocess use:
https://docs.python.org/3.6/library/subprocess.html
Use the return value of Popen and check it will poll()
See: https://stackoverflow.com/questions/12057794 - though in your case you won't want to wait until poll finished.


text:
link nested collections
I'm trying to get blender working with my coworker so we can both work at the same time. I've got a model that will have Lots of parts. The data is from Rhino an is very high mesh. So I want to keep one file with the object data. We can bring that data in as an linked file so our working blend file isn't huge. The only way we'll change the data is fly around it, maybe open and close a door. Really basic stuff. Although, I need to animate a material on one or two pieces as well.
I've only found one reasonably good resource on how to effectively use links. The problem is they assume I'm already working with a bunch of other people, but we're Both trying to be jack of all trades here and we just split things up as we go.
So in testing things, I Immediately hit a giant roadblock, and I don't quite understand what's going on.
I created 3 cubes, and put each one in a collection that is parent of the next.
I thought there was a way to do some parenting, and have that come through. I tried doing it with some bones, but just can't seem to figure it out. I've found you have to go to Object>Relations>make proxy in order to access the data Some. But I can't figure out a way to access it in a way that would keep parents.
Am I on a wild goose chase? Once I import the data, I want to just save that off how it is. It actually comes in already in nested collections, which seems to be part of the issue. So I have a door with 20 parts or so. The screws are in one collection. The frame in another, the handle in another. And they are nested based on groups essentially, so that each above it is the parent for moving. That's how assemblies work.
I'm not sure how to go about this in Blender, in terms of splitting up the files.
Ideally, I'll have a file for that cad data. I'd like to just link the collections. This way, anything I put in them gets updated. However, since they don't have pivot points or anything, I'm not sure how animating works.
Does anyone have decent resources for this? I'm just plain lost as to where to start figuring out an intended workflow.

Hi. Please make the title of your question specific to the problem you are having and not just the general topic. Thanks.

I thought that Was my question? I want to know how to link nested collections. Sorry, did the best I could think of.

Hi. I guess I'm still not sure of what the actual problem is. You say "I created 3 cubes" etc. but I'm not clear on what happens when you try and link it. Are the collections coming in but no longer nested? You talk about parenting, but parenting isn't quite the same as nested collections. I think the question could do with a very simple example, with "This is what is in the original file" and "This is how it comes in" preferably with screenshots of the outliner to show your example hierarchy.

(Not a full answer but comments have limited characters and i though what i had to say might still be useful)
I (also) don't understand the problem exactly, but it seems to me part of it is that you see collections as the equivalent of sub assemblies in engineering software like for instance Solidworks or NX.
I have no experience with Rhino but i often import stuff from .step files or big projects (thousands of parts) made in programs like Solidworks. But i build assembly hierarchy without collections. I do use collections, for they are handy in various ways, but I use an Empty (or often a faceless circle mesh) as the root of my sub assemblies and parent the parts or objects to that. I'm not sure you can use collections in that way.
I don't like linking objects, because then you can't edit them in the main scene. But I understand linking would be beneficial because then you could have various team-members work on different parts, objects, or sub assemblies in separate files on a network. Instead of needing team-members to open the same main file that holds the entire project on a network, which usually is impossible.
I advice to figure out a workflow where (if you use them at all) collections are only in the main file/scene, and use normal hierarchy for everything else. But of course it depends on how you want to work exactly and your personal preferences.
If I'm in the right ballpark and you want to elaborate on what you want to achieve (or perhaps provide a link to the "reasonably good resource on how to effectively use links") I'd be happy to comment on it.
Alternatively you could look into how the BlenderKit Asset Library add-on works (ships with Blender). I believe it also uses collections to link geometry to a main scene. though I'm not sure how it works exactly or if something like that would fit your needs.
Edit:
The BlenderKit Asset Library works with Instancing of collections with Empties. But ofcourese you can do that yourself also. Maybe that might be helpful.
Press Shift + A, and choose Empty > Plain Axis. Then in the Properties window click the Object Properties tab and under Instancing click Collection. Here you can assign a collection to the empty. If you parent an empty with a collection you can have a hierarchy with collections, and since the root objects are empties, you can also animate them.

That's fair. This project is likely a really good one to start on because the scene isn't very deep. I'm still using collections, but none nested.
I'm having a difficult time figuring out workflow for linked files. We're both working from home and using OneDrive to keep things local. I only have a few moving parts and everything is rigid.
Collections sort of suck because their pivot is automatically at zero. But it looks like you can use bones to animate linked objects, which obviously have a set pivot point.
So for now I'm using one collection and just importing that, then using bones.

Wow, you don't get many characters.
So the bones will be used for animation, and I should only have one object in the scene for my object. Then the others will be lighting, cameras, etc.
if you know a better workflow I'm listening. Took me a while to figure out how to even access anything from there. The collection lets you move an object, but only the whole thing.

I don't understand how you can animate a collection using a bone. I'm curious though : ) If it works for you then i see no problem with it. In any case, I edited my post to give some extra info that might be of use.

If you have a bone in the collection then you can have access to it. Normally, I'd just use parents and dummies to animate hard surfaces. But linking a collection the only thing that keeps parents are bones, from what I can tell. I'm still figuring workflow out. I don't see many people animating a 700MB object though. So not sure about workflow.


text:
Property Update function for properties inside a collection
I have a PropertyGroup Class called PPP, like the Collection Example on this page: http://www.blender.org/documentation/blender_python_api_2_63_release/bpy.props.html
The problem is that one of the properties in the PPP class, pfloat calls an update function "update_func"
I need to be able to tell which ppp has been changed when the update_func is called, normally you would use self to determine it but that does not seem to work it just returns: PPP("")
Any Ideas / what am I doing wrong?

Described behavior couldn't confirmed, see T39798.

I have a solution to this problem using Python Lambda.
Create an an update function called "updateID" with inputs for Self,Context and ID
then when creating your property do this:
update = eval("lambda s,c: updateID(s,c,\"%s\")" %foo)
foo is the unique ID that you use to identify that object inside the updateID function like the properties name.
This will create a unique update function for each instance of the property that simply calls the "updateID" function and plums in the ID variable.

I'm certain you could drop the eval in the code i.e. update = lambda s,c: updateID(s,c,"{0}".format(foo)) or update = lambda s,c: updateID(s,c,foo)

I can't tell whether it's a known limitation or bug, but it definately returns the reference to the CollectionProperty only.
You need a concept of one element in the collection being "active", e.g. have an IntProperty alongside and use it for a template_list() for instance. Then use that number to get the right item:
self[context.scene.ppp_index].pfloat = 1.23

There's actually a reference to the CollectionProperty item returned,
see https://developer.blender.org/T39798

Thank you for the help.
I have experimented with using Lambda it create the update_func If i can get that to work I might post it as an answer.
Otherwise I will mark this as correct if I get no better answers or make no progress.

You should contact the python module owners and ask if a property callback in a collection is supposed to get the collection or the property passed, maybe no one thought of it?

Posted bug report and waiting for developer feedback: https://developer.blender.org/T39798

Awesome, thank you. I am not very good with python/Blender. I was not comfortable with giving enough information about the problem.


text:
What is the difference between a subdivision surface modifier and multiresolution modifier?
I'm currently modeling my game character in Blender (see below picture).
What is the difference between a subdivision surface modifier and a multiresolution modifier? I know they smooth the surface but are there specific characteristics to using each and what are those?

When using the sculpt tool, you will sometimes want to add more detail than your mesh has vertices to support.  You could add vertices by subdividing the mesh, but subdividing the mesh will increase the complexity of the model, slowing blender down, making the model larger, making the mesh less usable for certain applications (like games).
Sub surface allows you to increase the vertices as a modify, but isn't affected by sculpting.  It's purpose is to add geometry to the whole mesh and make a lower poly figure a higher quality without increasing the complexity of the mesh. You cannot move, alter or sculpt the new vertices without applying the subsurface. It wasn't designed for it.
Multi resolution modifier was added to allow you to add geometry for the purposes of adding detail to a sculpt. Vertices in a multi res modifier are affected by a sculpt even when not applied.  This allows you to sculpt with more verts than the base mesh has.  This is useful because you sculpt at a higher resolution, bake out the sculpt as a map, and apply it to the mesh as a normal map, without increasing the actual number of vertices the mesh has.
So, if you're not sculpting, sub surface and multi resolution are logically equivalent, and the preference is for sub surface (less data in memory, easier interface).  If you are sculpting, and want to keep the mesh low poly, but need more detail in the sculpt, use multi resolution and then bake out the normal map (which can then be applied to the surface of the object as a texture in the cycles node editor).

I appreciate the clarity in your response. Very easy to follow, thank you.

This was a really helpful solution for me! It should be accepted as a solution.

From the wiki:

Another way to subdivide is with the MultiResolution Modifier. This differs from Subsurf in that MultiRes allows you to edit the mesh at several subdivision levels without losing information at the other levels. It is slightly more complicated to use, but more powerful.

In other words:
Changes made to the mesh (via sculpting) will be applied to lower and higher subdivision levels as well as the current level. To apply changes to the base mesh you must press Apply Base on the modifier.
This is different from the subserf modifier, where the subdivided mesh cannot be edited unless the modifier is applied.
Baking:
Another advantage of the multires modifier (in certain cases, of course) is the normal map baking workflow:

Model low poly mesh (in this case a cube) and UV unwrap (you can UV unwrap later too)

Add multires and subdivide

Sculpt high res details

Bake normals from multires (bakes the normals from the highest subdivision level to the current preview subdivision level mesh:

Note that you can also bake normals to the base mesh if the preview level is 0.

This is a great step-by-step. Thank you! I am following along and I got this message after I applied seams and unwrapped . I need to read up on how to unwrap and apply a texture, then bake.

@JohnH You must have an image open in the UV image editor when unwrapping (you can select/create the image before or after unwrapping, but it won't be "applied" unless it's displayed under the UV layout while in edit mode). To create and "apply" a new image to an existing UV map, click New in the header of the image editor while in edit mode (with the unwrapped object selected, of course).

Thank you for clarifying the steps. Okay, I've baked the normals from the multires. Now I have to read up on how to apply that normal map to the texture and back to the low-poly model. It's fun learning how all this comes together!

The Multiresolution modifier gives you the ability to subdivide a mesh similarly to the Subdivision Surface modifier.
But the most important difference between the multiresolution and the subdivision surface modifier is that multiresolution modifier also allows you to edit the new subdivision levels in Sculpt Mode.
Another advantage of the multiresolution modifier is the normal map baking. This is useful because you could sculpt at a higher resolution  and apply it to the mesh as a normal map without increasing the actual number of vertices the mesh has.
https://www.youtube.com/watch?v=aQeQfTqfB54&t=43s


text:
Laptop requirements for Blender
I have recently downloaded Blender. But because my laptop is old i'm thinking of buying this HP Laptop (Pavilion 17-e100sv) with these characteristics:
Intel Core i3-3110M Processor-2.40 GHz
RAM: 4 GB - DDR3 SDRAM
500 GB - Serial ATA - 5400 rpm
2GB AMD Radeon HD 8670M graphics card.
Can you please tell me if these technical characteristics are enough for Blender?
If not, what do you recommend in terms of RAM, etc?
Please help out, since I will only buy a new laptop for Blender and I don't want to pay for something and then realize that it will not perform when i render an animation.
Thanks a lot!

Blender should run okay on old hardware for some tinkering. I would only worry about buying a new computer if you experience performance issues with more complex models and rendering (especially Cycles). If you really need a lot of horse power, go for a desktop machine, laptop performance isn't ever great.
See the general specifications:
http://www.blender.org/download/requirements/
Dedicated Nvidia cards are recommended (CUDA support!), you should avoid ATI/AMD from what I've read (buggy OpenCL support etc.).

Thank you so much for the answer, and the recommendation regarding the graphics card. Perhaps i should go for a desktop machine...I am new at this and this site, that's why i didn't find the information and asked the same question. Thanks again for all.

No problem and you're welcome :) Just get a copy of Blender and see how it works and if you wanna continue with 3D stuff. If you can use a portable computer more than a desktop machine, then a notebook is also ok. It's just not as powerful as a desktop computer.


text:
Adjust the camera view actually separate all my objects
I would like to adjust the camera view, so I press the CtrkAlt0 to switch to the camera view window, then I try to adjust the camera window.

Then, I press the G key, and try to move the view window up or down, but finally, I see that all the objects were moved, not the camera view itself:

What causes this behavior?
BTW: I have just tried a very simple blender file (which only contains the default Cube, and I can correctly move the camera view), so are there some settings wrong in my first case? Thanks.
Edit: test blend file

You had "proportional editing object mode" enabled. Toggle it off and it should work as expected.

Dear user2859, thanks, this did fix my issue. I found that this option my be enabled by hitting the O key by accident.


text:
What is μm? It shows up when I add some modifiers
I set the default unit of measurement to mm. The only way I've ever learned to use mu is as a symbol for averages. It seems out of place here to me. What does it mean? I expected it to be the default unit of measurement instead.

Mu is also the prefix for micro, in this case micrometers.

A micrometer is 1/1000 of a meter and is the same as millimeter mm

µ the micro prefix signifies 1 millionth.  https://en.wikipedia.org/wiki/Metric_system#Prefixes_for_multiples_and_submultiples  FWIW in 2.8 with scene units, metric system, mm as length unit this displays as 0.01mm

You might want to check your unit setting about length display method.

If you are using adaptive, the unit will change to better fit in relative concise number. In your case, micrometer.

You can also select None for unit system to avoid any unit displays in Blender

That was my first thought too, I tried it and it was 10um as in his picture, I think it was user error that he misclicked the unit and got confused

µm is a unit of measure just like meter, millimeter and kilometer.
It's not out of place as it's a measurement
You've set the default measurement to mm, so you would expect mm. It's quite possible you selected the wrong measurement by accident.
you showed an image of the solidify modifier showing um, so now I've tried to recreate what you showed, and get the correct measurements in mm, then I selected the um and got the measurements in um.
So the error you are having is quite possible that you have selected micrometers instead of millimeters


text:
Keep editor in focus on mouse out?
When working in the scripting workspace I often move back and forth between the text, command window, and info editors. But what trips me up is focus follows the mouse. So If I'm working in the info editor but then try to ctrl+c something from the info editor while the mouse is over the text editor it does the ctrl+c on the text editor. I don't like this.
Is there a setting to keep editors in focus until another editor is clicked on?


text:
How do you cut a clean hole into an object that has been subdivided?
I can't get it to work using any of the existing answers to this question. I have a box that has been subdivided.

I want to cut a square hole into it. I've tried using Knife Project and the Boolean modifier to cut the hole but I get the same kind of result. In both cases there are weird artifacts in the hole.

In the other questions about this type of problem they were saying something about how the subdivision modifier works better with quads but I'm not sure what that means. They were trying to cut circles and I'm trying to cut a square and a square has four points so I was hoping it would just magically be a quad or something.
Can you advise on how to cut this hole?

Here it seems that the boolean modifier is set before the subdivision. Try to invert that: place the subdivision modifier before. If using knife project (or other cut), you'll need to apply the subdivision firt.

Following the comment by @cegaton, yes you should use bevel instead of subdivision modifier. That will round the edges without adding to many geometry in the faces.

@lemon, tried it but I'm still getting the same thing.

@cegaton, The model is for 3D printing so I don't think a shader will do the trick.

The hole should be completely straight. I just like the rounding effect that the subdivisions give. I guess I could try a different modifier. Bevel looked okay but I liked how doing subdivisions looked better.

So, concerning your last comment: use the boolean after the subdivision. And use a cube to make the hole.

Anyway, if you want to print it, you'll need to have a manifold geometry (so not this hole that is shown in the picture in your question)

Allright, for this particular problem I can actually get it to look the same way with Bevel now that I mess with it enough. I just locked on to doing it with subdivisions and couldn't think of anything else. Thanks for your help folks.

When 'they' say subdivision surface works best with quads, they mean that if you can get your pre-subdiv model to only use quad faces, you get a better result. Generally you would want to make the hole before applying the subdivision modifier.

To avoid 'cutting circles', you need to add supporting geometry around edges that you want to 'harden'. There are many ways to go about this. You can do it manually by simply adding additional edge loops and sliding them into place.

You could also use a bevel modifier above your subdivision modifier in the stack.


text:
A problem understanding Materials and textures
I new to blender and I'm sure that this is a simplistic problem but I said I'd ask here anyway. I have added materials and textures to a model. I want to export the materials and textures from blender to a .png file so that I can import the materials and textures to tabletop simulator.
what do I need to do to make this happen I've had a look around the internet and only found things referring to .png files you already have being added to a model.

https://blender.stackexchange.com/questions/57531/fbx-export-why-there-are-no-materials-or-textures/57541#57541 https://blender.stackexchange.com/questions/13508/how-do-i-bake-a-texture-using-cycles-bake


text:
Bones messes up my model?
I just made a 3D model of a humanoid Darkrai from Pokémon, just for fun, and I wanted to make a little animation with it.
So what I did was;
I made the half of the model and applied the mirror modifier to create the other half.
Everything went well, untill I added the bones to it + with automatic weights.
It just completely messed up the model and I'm quite sad about it.
I'm only a student so I don't know all tricks.
I hope someone can help me!!

generally the basic mesh pose is a T pose, meaning the arms should be in horizontal position, it will help to have a better Automatic Weight parentage, and also give a better result when you rise the arm bones

Thanks for your answer! This helped me alot!


text:
What are the implications for having Python scripts or add-ons licensed GPL incompatible?
If someone writes an add-on and choose a license which is GNU GPL incompatible,
For arguments sake, by adding the clause:

The Software shall be used for Good, not Evil.

Which is GPL incompatible.
For reference, see: jsmin and some of the problems this caused (wikipedia, hackernews).
For the purpose of this question,  it might as well be any kind of incompatibility.

While the Blender FAQ states:

Python scripts – if they use the Blender API calls – have to be
  compliant to the GNU GPL as well. We are currently reviewing this with
  Free Software Foundation though.

My understanding is this only applies when you distribute the script with Blender, not to scripts you write yourself and distribute on their own.
Simply having a file which imports and calls some API's Blender happens to define - doesn't automatically make it a derived work of Blender (as far as I know), Since there could be multiple implementations of the Blender Python API, with different licenses.

So my question is:
What are the implications exactly for using a GPL incompatible license for Python scripts that use Blender's Python API?

Notes:

This question was raised because of comments on: https://blender.stackexchange.com/a/47622/55
Legal questions are admittedly tricky to handle here... its possible this should be moved to opensource.stackexchange.com

I think law.stackexchange.com would be the best place online for an accurate answer, the following should be consider when formulating an answer and not taken as legal advice.
The issue comes from how python works, a python script is often viewed as a simple text file (or interpreted script) by most people, technically it is a source file that gets compiled into bytecode -

bytecode
  Python source code is compiled into bytecode, the internal representation of a Python program in the CPython interpreter. ... This “intermediate language” is said to run on a virtual machine that executes the machine code corresponding to each bytecode.

The action of compiling a script means python scripts are a source code file used to generate a binary code that then links to (or dynamically calls) functions within blender, this means they could be treated as derivative works the same as adding a source file to the blender code base, this makes blender the library file that the python script links to. As well as a plain python script linking to blender, an addon script is compiled into code that blender calls, which would make an addon closer to a derived work than a plain python script used to automate a task.
It could therefore be said that any user that adds an addon to blender is building their own custom variation of blender. Placing the addon in a location that blender can find it, or installing with the install from file button in preferences, causes the compilation of the addon, then enabling the addon links blender and the addon into a derived work.
The LGPL was created specifically to allow a program to link to covered code without having to be released under the same terms as the code being linked to.
In contrast a shell script is read at run time to invoke external programs to execute with given parameters and retrieve the result output from the program. This means a shell script does not generate binary code that links to other code so does not get considered as a derivative work.

This is also my understanding of it. The crux of the matter is that the binding happens on the users system, at run-time. So installing an add-on which is GPL incompatible means the user would be creating a version of Blender which they could not re-distribute. So the implication would be: "By using a GPL incompatible add-on, users will be running a derived work that is not GPL compatible and cannot legally re-distribute to others, unless they distribute separately" - does this seem correct?

If you make an addon only for your personal use, you can keep it to yourself. But if you make an addon and share it with someone else then you would need to comply with the GPL and provide access to source code etc. Using a commercial license would then put you in violation of the GPL. The burden of following the GPL falls to the developer/copyright owner of the addon, by sharing it you allow a user to build their own derivation of blender, but the developer is creating the derived work and sharing it with a user, so the developer cannot prevent the user from also sharing it.

You should be ok by providing a link to download blender's source and not hosting it yourself, but you couldn't use cython to compile your addon and share it without the source. You only need to share with the users of your addon, so a studio creating custom addons should be OK by having the source on a fileserver within the office.


text:
How to set the render-output using arbitrary values?
When rendering, it can be useful to automate setting the output file path using existing data from within the blend file.
Is it possible to use variables in the render output path? eg,
//$(file)_$(scene)_$(camera)_####.png
Either from the interface or the command-line.

Note, this question is similar to How to show render-stamp for arbitrary values?

While Blender has no build-in support for this feature. You can do this using Python:
From Within Blender
Add a script into your file, call it render_path.py (for example).

Press Run Script (only need to do once)
Enable the Register option in the text editor (so it runs automatically).

Here is a sample script.
import bpy

def render_filepath_set(scene):
    scene.render.filepath = '{file}_{scene}_{camera}_####'.format(
            file=bpy.data.filepath.rpartition('.')[0],
            scene=scene.name,
            camera=scene.camera.name,
            )

bpy.app.handlers.render_init.append(render_filepath_set)

From the Command-Line
A similar method can be used, by running a script from the command line, first create a file.
render_path.py
import bpy
scene = bpy.context.scene
scene.render.filepath = '{file}_{scene}_{camera}_####'.format(
        file=bpy.data.filepath.rpartition('.')[0],
        scene=scene.name,
        camera=scene.camera.name,
        )

And run it with:
blender --background /d/untitled.blend --python render_path.py --render-anim

Or, you can avoid using a Python file and simply pass in the script on the command line (using --python-expr).
blender --background /d/untitled.blend --python-expr "import bpy; scene = bpy.context.scene; scene.render.filepath = '{file}_{scene}_{camera}_####'.format(file=bpy.data.filepath.rpartition('.')[0], scene=scene.name, camera=scene.camera.name)"

This isn't practical to manually type in of course, but can be used when running Blender as an automated task (shell script / bat file... etc).


text:
Can Blender's keymaps be used for key (chaining / chords)?
Some applications support key-chaining, also known as shortcut-chords (MSVC and EMacs for example).
This is where an initial shortcut waits for other keys to be pressed to complete the key-chain or chord.
While Blender's key-map editor doesn't support this directly, is it possible to setup key-chaining in Blender?


text:
Object does not cast shadow
In my scene I have a person imported for makeHuman software. A camera installed in the ceiling [0,0,2.5m] and oriented to view the floor (parallel to z axis) and a point light source installed in [2m,2m,2.5m]. In the the light source configuration, i check the Ray shadow option. When i render, the person does not cast shadow. I change the light source location but it does not change the situation!

Could you upload a screenshot or the blend?

@NaioaiStudios, I edited my question

Is there a floor to receive the shadows? I can't see it on your screenshot...

Do you have anything under the character(like a plane or something)? The shadow needs to hit something to be seen.

@Polosson, no I did not added a floor. It seems my error

@Polosson, it is my error

Solved in comments:
A shadow needs to hit something, in order to be seen. Add a plane or another object where you expect the shadow to be seen.


text:
What is the parameter A in the RGB color
I remark that there is a parameter A in the color RGB parameter as mentioned in the image below. What is this parameter and what is its effects on RGB color?.

Related: http://blender.stackexchange.com/q/2261/599

The parameter A stands for alpha, which is the transparency channel. An alpha value of zero represents full transparency and a value of 1.0 represents a fully opaque pixel. The RGB values are not affected by the alpha value.


text:
Weird shading after using solidify modifier
I'm making a simple cuboidal room, but as soon as I solidify my mesh it gets weird black patches around the corners.
If I turn fill rim to off it looks good, but obviously I want to fill the rims. I guess the normals are flipped or something leading to a lighting issue. It also persists in final rendered version
From outside
Notice the dark shade just above the 3D cursor

From inside
Again above the 3d cursor

File.

@cegaton doing split non planar faces did abolutely nothing

@user1062760 It's being caused by those ngons, either add an edge split modifier, shade the model flat or try and get some quads there. The marked answer has several links to similar questions, try to read them all. http://pasteall.org/blend/34575


text:
Selecting masked objects
I am making animations for a zombie and using mask modifiers on different body parts which are separate models to hide in the renderer, however once a full piece of geometry is hidden i am no longer able to select it anywhere to turn the mask off again.. is there any way to select hidden geometry so i can disable the modifier and allowing it to render again?   hope that makes sense

You can see anything in your scene in the outliner.


text:
How to create a Blender shortcut for "Display files as Thumbnails"
When i want to replace a texture for an object, i see my jpg files as a shortlist by default. i can click with my mouse on the thumbnails list to browse my files as thumbnails. but i do this task often , so i need a shortkey for this move.
i have tried to figure out the Python code that is needed for this, but that didn't work out, i don't know why.
i could use some help here.
what do i need to do to get this shortcut ?

In Preferences->Input->Image->Image_Generic->Open_Image
in the shortcut settings of Open Image change the display type to Thumbnails :

thanks for a fast reply , it sounds logical and it should work , but i did exactly what you said , and i still have to click with the mouse to switch to thumbnails. i saved the user prefs . i have blender 2.73 on MBP2013 Mavericks. i should be more specific about the thumbnails. i don't mind to have the page open up in thumbnails , but i was actually trying to search for a way to toggle between list view and thumbnail view by pressing the short key . if that is not possible , i would be glad to have the possibility to always open in thumbnails. hope to hear soon again , thanks

you are right ,that was not for switching but for the default window whenyou click Open Image, for switching i'll have to look around a bit

but i don't mind to have it on thumbnails for a default setting, s long as that would work , i would be happy to keep on using it that way. but that setting didn't work...i will check again if i exactly followed your steps , i think i did.

i double checked , and it is really not working.
i saved the prefs afcourse.
here is a picture so you can see how it looks.
http://tinypic.com/view.php?pic=vqh013&s=8#.VPPvbdzyBFw
the reason why i asked how to do a shortkey is because i would arrive at the jpg browse window from the UV image editor screen layout. where i use my image replace shortkey to arrive in the textures jpg files list browser.
all these tasks , that is a lot of mouse clicking. hooray for the shortkeys
but now how to get it working, i hope to hear from you soon again , thanks

@elmentor since you are using the 'Replace Image' you should apply these steps to the 'Replace Image' shortcut not the 'Open Image' as i did in the answer

yes , it worked . you are the best , that saves me a lot of mouse clicks each time i want to replace a texture, thanks a lot !

today i found another solution to get the texture list to view in thumbnails.
 go to user prefs > file > and check : show thumbnails !
i was actually searching for a toggle between list view and thumbnail view
 but this solution is working great as well.


text:
Seeing holes in mesh while in texture mode
I have just started teaching myself 3D modeling so that I can start making some simple 3D games in Unity. I am already familiar enough with code to start making things, but I lacked the 3D model assets. I been teaching myself Blender and created some very simple models. The problem I am finding is that I get what appears to be holes in the mesh. For example if I put the model into Texture mode I see what looks like a Face that is see through or another color. If I start moving Vertices in Edit mode I can make the hole disappear.
Just wondering what I might be doing wrong to cause this problem. I know you are suppose to try and keep all faces quads so that is what I continue to do.   Basically all I am doing right now is making a flat model in a Top Ortho view and then extruding to add a 3rd dimension to the model. Am I doing things wrong? Just making a simple model of a ghost yet I somehow have this other section that appears to be a different color when viewed in texture mode.

Here is the same model in Solid Shading mode

Thank you in advance for any help with this.

You may consider to share the file link. For example, to upload it here.

Could be normals facing the wrong way. Select all in edit mode and Ctrl-N

Could also be some duplicated vertices, try to remove doubles with all vertices seleted in edit mode with W menu and "remove doubles". It it's not normals or doubles, we'll probably need the .blend

It looks like it could be faces inside the mesh, connecting the wing vertex loop.

I think there mainly are two problems in your mesh.

Face normals are inverted.
You are using material node which is invalid to use by current render engine.

To fix them, you can switch to Edit Mode, then CtrlN to re-calculate normals, then deal with the material node as you wish.

You and the others that mentioned a problem with the normals are correct. This is really my first shot at 3D modeling so I am not sure exactly what I did wrong. I first tried Control N and that just gave gives me a cursor with a white line. Not sure what that does. I found that if I hit N I get the hidden menu to come out. It is there that I found the button that shows you the orientation of the normals. Most were ok but some seemed to be facing inward. I ended up going one by one and flipping them. I don't know or understand what you mean by Material Node. I was just following beginner....

tutorials on 3D modeling. All I really did was add points in a Topdown view and then extrude everything out to add thickness. What am I doing wrong that made so many of the faces in the wrong direction? Just trying to fully understand before I attempt to make more complex models.

It's hard to say what you did wrong. For a short explaination of normals, it's the direction a face is pointing at. Blender uses this to know how the light will bounce on the face. Only one side of a face is supposed to be visible. The normal is supposed to be pointing outward where the surface seen is outside the mesh. If the face is flipped, the bouncing light is "flipped" too, resulting in something visualy strange.  short but hopefully clear.

Creating and editing a shape rarely results in a perfect mesh. We all have to check our normals. I think all 3D artists have had the same problem, wondering why :)

I actually understand now. I just wasn't sure if I was doing something wrong when building the model. I think I am good now. Thank you all.


text:
Stitch 2 mesh parts like in the UV stiching function
I don't know how to 'stitch' these two meshes together. I don't mean a 'bridge', I want the Foot moved correctly into the socket: There is a stitch function for UV maps that does exactly what I want (see the video: https://youtu.be/42XCrtxvhyM?t=519)

As long as the loops match, you can turn on snapping and auto merge in Edit Mode to do this:

Turn on snapping (Shift+Tab)
Set snapping mode to vertex (Shift+Ctrl+Tab)
Turn on auto merge

Then move the part of the mesh:


text:
Problem rendering scene
I have an animation almost completed, and wanted to start taking some records of it.
Problem is that when on camera view, some projects have problems. Here's a screenshot of one:

I'm using blender Render
Another problem I'm getting with this is that, if there's a plane near another, it also gets the problem I described above (Like roads and grass, even if the road is few inches above in Z)

I've fixed this problem. Main reason was that Mirror wasnt applied :( Thanks for the help!

Maybe it's a bug with a modifier on either of your meshes. That's possible. What are all the mesh based modifiers on those distorted spheres?

I have mirror in it (they are on top of a building, which I only modeled half). Could it be it?

Quite possibly. In the second sphere it appears that only half of it appears destroyed. Particularly, the mirrored half. Check to make sure that none of the values on the mirror modifier are invalid. If that does not work, try applying the modifier if you can to convert the mirrored half to a mesh. I am assuming it has not already been applied. There's some things to try for you. Good luck!

@Cafn Can you attach the blend file?

I've fixed this problem. Main reason was that Mirror wasnt applied :( Thanks for the help!


text:
Depth of field is not being rendered in Blender Internal
I have quite an annoying thing, that I don't know how to do.
I'm about to render a small clip, but I don't know how to enable Depth of Field in animations render to make it visible in the final product. It is visible in 3D view, but not in the render. Any help will be appreciated.
Edit: I use the in-built renderer, nothing special. I'm not using compositor.

You need to use the compositor :)
The Camera settings sets an object as your focus point and the Defocus node uses this for calculations. Or, leave it blank and use the Defocus node settings for distance calculations.
In the Render layers settings, ensure you've added a Z pass.

Alright, I set everything, just as you, but I can't make it work.

Nevermind. I got it working, it just not visible in 3D View's render. I have to render it as I would to save it. Thank you!

Ah - you wanted DOF in the live Rendered VIEW. As you've discovered, no-one can help you there. Rendered View (as opposed to an actual render) is meant only as an indicative idea of uncomposited textures and lighting. Because DOF is a composited effect in BI, you won't see this being reflected in the live Rendered View. Nor will you see other compositing effects, such as gamma correction, composited blur, distortions, etc. DOF is easily done in Solid view on the fly, but in rendered view it's a major performance hit. Nor is DOF available in Cycles' Rendered view - same problem.


text:
Can a model be both smooth and flat shaded?
I wonder is it possible to have 50% smooth shading and 50% flat shading in blender cycles, applied to an created mesh?

The 1st image has a smooth shading on it and the 2nd has flat shading , is it possible to have 50% smooth shading and 50% flat shading? or 30% smooth and 70% flat?

You can choose which parts of your model are flat or smooth shaded from the W specials menu. Make a selection of faces and choose Shade Smooth or Shade Flat depending on what you want to achieve.

Just to clarify you can set smooth or flat shading per face, but there is no middle ground, it is either one or the other.

ok ty , that solved my problem:)

Yes it is posible to create this as an effect. Apply a smooth shade to the material then add 2 sub surf modifiers like the image below.


text:
How to set Node's group color via Python?
Could you tell me how to Node's group color via Python?
Something like this:

class AddButton(bpy.types.Operator):
bl_idname = "add.button"
bl_label = "Add PBR Group"

def execute(self, context):
    mat = bpy.data.materials.new('zheight')
    mat.use_nodes = True
    nodes = mat.node_tree.nodes
   # print("execute")
   # print(self.filepath) # /home/addajr/Grafika/3D/textury/metal.jpg
    obj = bpy.context.object
    # change on cycles
    bpy.context.scene.render.engine = 'CYCLES'
    #Add a material slot
    bpy.ops.object.material_slot_add()
    #Assign a material to the last slot
    obj.material_slots[obj.material_slots.__len__() - 1].material = MakeMaterial_1()

    ############ color ############
    C = bpy.context
    D = bpy.data

    compTree = C.scene.node_tree                   # Compositing node tree
    matTree  = D.materials[ mat.name ].node_tree # 'MyMaterial' material node tree

    t = matTree # For this example we'll use the compositing node tree

    ##########   add custom nodes ########
    nodes = mat.node_tree.nodes
    group = bpy.data.node_groups.new(type="ShaderNodeTree", name="PBR")
    print( group.name )

    .
    .
    .
    .
    tree = bpy.context.object.active_material.node_tree
    group_node = tree.nodes.new("ShaderNodeGroup")
    group_node.node_tree = group

    # Turn on custom color
    t.nodes[ group.name ].use_custom_color = True
    t.nodes[ group.name ].color = ( 1, 0.711485, 0.137081 )

    glossinessFactorInput = bpy.data.node_groups[ group.name ].inputs['Glossiness Factor']

    glossinessFactorInput.min_value     = -5.0
    glossinessFactorInput.max_value     = 5.0
    glossinessFactorInput.default_value = 1.5
    return {"FINISHED"}

OK, so you can easily make the script dynamic and refer to the newest group's name since you keep a reference to the group after you create it:
group = bpy.data.node_groups.new(type="ShaderNodeTree", name="PBR")
print( group.name )

So instead of using a hardcoded name like in these lines:
groupName = 'Group'

# Turn on custom color
t.nodes[ groupName ].use_custom_color = True

You can simply use group.name:
t.nodes[ group.name ].use_custom_color = True

Now min/max values are working, but color change is still broken. I get:  in execute KeyError:'Bpy_prop_collection[key]: "PBR.001" not found' I edited a post below

Try using group_node.name instead of group.name in the line that causes you trouble (  glossinessFactorInput = bpy.data.node_groups[ group.name ].inputs['Glossiness Factor'] )

A node group is also a node, so you set the node group's color the same way you do any other node:
import bpy
C = bpy.context
D = bpy.data

compTree = C.scene.node_tree                   # Compositing node tree
matTree  = D.materials['MyMaterial'].node_tree # 'MyMaterial' material node tree

t = compTree # For this example we'll use the compositing node tree

groupName = 'Group'

# Turn on custom color
t.nodes[ groupName ].use_custom_color = True

# Set group's color to pink
t.nodes[ groupName ].color = ( 0.5, 0.2, 0.75 )

Thank you! It works very well, but I have the same problem with dynamic name.

Can you post the operator that creates your node group? It will help answering in a relevant way

Sure, I posted it below:

@McGavish I converted this to an edit since it isn't an answer, please amend your post as deemed necessary.


text:
Exported STL is empty in Slic3r
I am having trouble exporting meshes as .stl files from blender, when I import the exported mesh into Slic3r nothing shows up. However when I import an already existing model into blender and then export that as a .stl, it works fine in Slic3r
blend file
stl file

upload your blend file here: http://www.pasteall.org/blend/

upload your stl file here: https://www.sendspace.com/

in case anyone else is having this same problem 7 years later, I was able to fix it by closing everything, restarting my computer, and trying again.

You need to triangulate the mesh. Select the mesh you wish to export and add a Triangulate Modifier to it. Then in the .stl export dialogue enable Apply Modifiers.

.stl imported to slic3r

GIF

Thank you for your extensive answer, however, it does not work for me. I can reimport the STL and I will see my model. However, in Slic3r I can only see the plane.

@Rogier I added a gif, hopefully that helps

Thanks! When I do it like you do, it does work (also for the cube). I found that as soon as I give it dimensions, in cm's (i.e. 20x20x20cm), somehow there is only one plane left. The dimensions for x and y are gone: so the size in Slic3r is 0.00x0.00x0.20.. Any clue why?

I am glad it worked. Slic3r is not an app I actually use, so I don't know why it is behaving like that.

Which gcode generating app do you use? Because I would really like to get my model into gcode :)

I don't use any. I do not 3d print

Since this does mostly answer my question, I'll accept this as the answer. The missing part (scene scale etc) can be found here: https://blender.stackexchange.com/questions/7503/scale-settings-for-exporting-to-stl-for-3d-printing

For me to get this to work. I changed units to metric. To create a 2cm cube I had to create a cube and set the scale to 2cm. I made sure that I applied the scale to the cube so that it says:
scale x: 1
scale y: 1
scale z: 1
length: 2cm
width:  2cm
height: 2cm
Then I exported selected as *.STL and dragged into Slic3r. From there I applied a scale of "100,000" as "100" was default. YES you heard that right 100k. I'm not sure why this happening but it works for me and I measured my model after i printed it and it's 2cm square. Hope this helped.

Be sure to select your model before exporting to STL.
The export turns up empty when no object is selected.
Check the file size for the STL file after export. It should be bigger than 100 bytes or so. My empty file is 84 bytes.

Thank you for your answer. I did select the object, for some models it does export and for some it doesn't. My STL is probably empty, since it is very small. I added the files to my post.

After reimporting the STL in blender, I can see the model. However, in Slic3r I can only see the plane. Atleast no model...

I notice the same thing. The meshes which Blender can not export as STL are all 84 bytes. Any ideas of how to debug this situation? I've already checked my normals

I have been trying this. My model is in blender units, and I had the same problem.
If your blender model is in blender units, you have to scale x 1.000, as one blender unit is a millimeter in slic3r. Try this and tell us if you solved the problem.

I wonder if this means the model is actually there but it's a 1000x too big so it doesn't show??

I had to combine answers from this post to get Blender's STL exports to work.

Select all (shortcut a) before exporting per Gunslinger or you get the 84-byte empty STL file.
The units do not export correctly per Kyle Mayne. I'm not using Slic3r so I used 3D Builder to adjust the units as shown in this YouTube walkthrough before opening the STL in my slicing program.


text:
Scale settings for exporting to STL (for 3d printing)
I've set my Units (in scene properties) to Metric, and the Scene Scale to 0.01 hoping to get the Blender dimensions it mm's. While the (normal) scale is 1 for x,y,z, the standard cube has the dimensions 2x2x2 cm. When I export this to an STL and open it in a slicing program (Netfabb, Slic3r or Cura) they all give the dimensions: 2x2x2 mm. While exporting, the scale is 1.
What am I doing wrong? I hope you can help me.
Thanks!

Shortly after I posted the question, I got some help in real life (I did not know that was also a possiblity :) )
Apparently, STL's do not have a unit. However, the program interpretating the STL gives it units. In my case Cura and Netfabb both interpretate my STL as mm. This would explain why I always saw the same size (unitless). Because of this, I should also create models in mm's, so I do not have to worry about Scale on STL export.
I want answer my own question to give some more explanation. I am not using the Scale on STL export, but I am using the scene scale. By setting the scene scale to 0.001, I can really make my model in mm's; in the properties menu I only have to think about mm's. With these settings I am able to export my model as a STL, and see it correctly in Netfabb or Cura.

Scaling my model up by 1000 while exporting worked. My units were in centimeters. Here's a link with pictures of what I did: http://imgur.com/WggbP4N

yep, no matter if you change the scale soon (design) or later (export), just remember to do it 0.001 for mm, if the mesh is shown as m (default Blender i guess). Case that you need model in cm but printing in mm, you can play both values... so it's just perfect.

Why would a 3D-printing format not have units?

Because the world is a crazy place @Kyle

The STL exporter doesn't take Scene Scale into account. Import your STL back into Blender (it will have the same size) and drag Scene Scale up back to 1.0, and you'll see how the cube grows relative to the grid.
1 Blender unit equals 1m, but STL seems to assume 1 unit as 1cm.
If you want 1 unit to be 1mm, set Scale on STL export to 0.1 and Scene Scale to 0.001 to make it match the output scale in viewport.
Note that the STL will be 10x smaller if you re-import it into Blender!

Hi CoDEmanX, I found that STL does not use units, it is up to the interpretating side which units are used. In my case Cura and Netfabb use mm, therefore the STL "has" mm as unit. This would explain why I always see the same size (unitless).

STL sucks really bad, I can't believe that this garbage gets still used and no better format exists: Scale is about the MOST IMPORTANT factor in an object, it is ridiculous that STL does not have any support for this. We definitely need something better. Looks like OBJ is better and using Blender, the scale gets exported too and seems to be the right size.

Set Blender in metric mode. Don't touch the scene scale. When export to .stl set the scale to 1000 (in the export menu).
It seems that most slicer use mm.
:)

Could you please elaborate on how to do this?  If the OP (or anyone else reading this answer) doesn't know how to change the units or set the scale this answer is useless to them.

That's the shortest workflow to do it, totally yes, don't touch then set scale on the exporting step.

I had the same question, but my measurements are in inches, and I'm trying to print something to fit something inside of a drawer, so everything was measured in inches. (I probably could have redone all the measurements in mm or converted them, but :shrug: ).
Anyway, I was able to keep all the dimensions the same and build the widget using inches:

And then export the .stl by setting the Scale value in the export box to 25.40 which is mm/inch.
I am on Blender 2.79b.
Quick Edit: I also found this helpful documentation page on the subject.

I have found a fool proof way to make a 5mm cube, and for me to be able to import it into my slicing software (PrusaSlicer based on Slic3r) and it prints a 5mm cube without need for any alterations.
Just to clarify I'm using Blender 2.79,
Go to "Scene" (a few left of the modifier tab)
Change Units from "Unit Presets" to "Millimeters"
When you go to File-Export-Stl
Set the scale (bottom left) to 0.5 and you should be good to go!

to getting right dimensions, set
unit system : metric
scale : 0.001

This works for me. Posting it for others as well as future me.
Using the metric system, with length in millimeters and a Unit Scale of 1. Design the project using actual measurements in mm.

Once the design is complete, change the Unit Scale to 1000.

Export the file as an STL file and select Scene Unit of 1 and also the Selection Only.

Hi. Did you read the existing answers before posting? How does this add anything new to them?

I was able to solve this by selecting File, Export, Stl file format, and Selectihg ASCII (so it's viewable in Notepad), and then increasing the scale (in my case to 1000).   I still believe Scene Unit (select it) is important.   Once I looked at the vertices in Notepad ,they looked "good" and it imported into my slicer (Simplify3D) without a hitch.


text:
Export Track Markers to csv
I am trying to export markers from the Blender motion tracker and found the following script that will do exactly that:
for clip in D.movieclips:
    for track in clip.tracking.tracks:
        fn = 'data/tr_{0}_{1}.csv'.format(clip.name.split('.')[0], track.name)
        with open(fn, 'w') as f:
            frameno = 0
            while True:
                markerAtFrame = track.markers.find_frame(frameno)
                if not markerAtFrame:
                    break
                frameno += 1
                coords = markerAtFrame.co.xy
                f.write('{0} {1}\n'.format(coords[0], coords[1]))

It works but I have two questions:

How can I save the data on my Desktop rather than in folder in MacOS blender content where it saved right now. The following won't work:
fn = '/User/me/Desktop/data/tr_{0}_{1}.csv'.format(clip.name.split('.')[0], track.name)
The resulting values I get do not represent the more user friendly marker values in den Blender GUI. Instead of x/y coordinates in screen coordinates, I get a value between 0/1. How can I convert them to those screen coordinates ?

Thanks for your help

What OS? For windows the path should look like this: C:\\users\\user\\Desktop\\tr_{0}_{1}.... To get screen coords multiply the values with the height and width of your clip. For what application you'd like to export the data?

You can open up a terminal and try it by your own. However I guess it's /Users/username/Desktop/. Also make sure there is a data folder...

Thanks. That part I knew. But now I found the solution. Its the following if anybody every needs it. This is if you start in Applications. : fn = '../../../../../Users/YOURUSERNAMEHERE/Desktop/data/tr_{0}_{1}.csv'.format(clip.name.split('.')[0], track.name)

In Windows, you can access the root of your drive with . In Linux, with /

(modified from this Source)
The script outputs a csv file with the coordinates for each tracker.
from __future__ import print_function
import bpy
D = bpy.data

outputFolder= "/set/your/output/directory/here"

printFrameNums = False # include frame numbers in the csv file
relativeCoords = False # marker coords will be relative to the dimensions of the clip

f2=open('export-markers.log', 'w')
print('First line test', file=f2)
for clip in D.movieclips:
    print('clip {0} found\n'.format(clip.name), file=f2)
    width=clip.size[0]
    height=clip.size[1]
    for ob in clip.tracking.objects:
        print('object {0} found\n'.format(ob.name), file=f2)
        for track in ob.tracks:
            print('track {0} found\n'.format(track.name), file=f2)
            fn = outputFolder+'{0}_{1}_tr_{2}.csv'.format(clip.name.split('.')[0], ob.name, track.name)
            with open(fn, 'w') as f:
                framenum = 0
                while framenum < clip.frame_duration:
                    markerAtFrame = track.markers.find_frame(framenum)
                    if markerAtFrame:
                        coords = markerAtFrame.co.xy
                        if relativeCoords:
                            if printFrameNums:
                                print('{0},{1},{2}'.format(framenum, coords[0], coords[1]), file=f)
                            else:
                                print('{0},{1}'.format(coords[0], coords[1]), file=f)
                        else:
                            if printFrameNums:
                                print('{0},{1},{2}'.format(framenum, coords[0]*width, coords[1]*height), file=f)
                            else:
                                print('{0},{1}'.format(coords[0]*width, coords[1]*height), file=f)

                    framenum += 1
f2.close()

Pay attention to the units used.
The script will output coordinates in pixels, where 0,0 is at the bottom left of the frame.
To use a float values, where the frame has coordinates 0 to 1, change relativeCoords = True
To include the frame number as part of the set, use printFrameNums = True

authors: Влад Сакулин


text:
Single Image Render Fail -- cycles and internal Blender 2.71 and 2.66
I figured it out
but I do have a follow up question...
I answered my own question. If you have images or footage loaded into the Video Sequence Editor, it will only render the frames from that footage. There may be a way to circumvent this, but I don't know how to do that. At any rate, the frame I wanted to render was past the footage, so it rendered a blank frame. As far as I know, I have to get the footage out of the Video Sequencer in order to render the scene.
I found this answer when I went to find a backup of this file and the backup file opened to the Video Sequencing preset and I remembered this little tick. If someone knows how to circumvent this problem so I don't have to delete the footage, that would be great.

Original post:
I looked around to see if this question has already been asked and one fellow had the exact same issue, but was scolded for being too vague and the question was closed. I could understand his question and know his predicament and can only hope I can be specific enough here to ask the same question. I have a good bit of time invested in this blend file and I hope I won't have to redo it.
So, here's the situation:
1) I have a blend file with a lot of objects, materials, and textures, including two character rigs. I have a blocking run saved in the Action Editor of the Dopesheet and would like to render one of the key frames from it to act as a reference in another scene I'm setting up.
2) I have tried to render a single image file from this scene a) by selecting the Render Image selection from the Render menu in the 3D Viewport, b) by clicking the Image Render icon in the Render tab of the Object Properties window, and 3) by hitting the F12 button on my Macbook keyboard. None of these produce the result I'm looking for:  a single image of the keyframe from the scene in this file.
3) I have tried to render the single image in versions 2.661 and 2.71 of Blender as indicated in #2 and have achieved no different result.
4) The problem seems only to be with this file and no others that I checked.
5) I closed all applications on my computer and rebooted. No change with this file.
6) I have not had this issue with this file before. I do not have this issue with other files with the same scene (i.e., as described above with multiple objects, etc. -- same scene, shots are in different blend files)
7) The result I get (see link below for screenshot) the gray and white checkerboard that shows while an image is rendering.
The Screen I get when I try to render a single image file (https://www.facebook.com/photo.php?fbid=10204159710010120&set=a.10204159709770114.1073741843.1147304074&type=3&theater)
8) Recently, I read a post in Blenderguru that made suggestions about changing settings in the Light Paths and Performance tabs to reduce render times. I made these changes in this particular file and other files. I have not had this same problem in the other files. In those files I can render the image with no problem. See link below for screenshot.
Light Path and Performance tabs in the Render Panel of the Object Properties window. (https://www.facebook.com/photo.php?fbid=10204159725450506&set=a.10204159709770114.1073741843.1147304074&type=3&theater)
9) I recently installed Blender 2.71. I still have 2.661, so I tried the files in both versions of Blender. My other files will render, but the one in question won't. I get the result explained above. I have also tried to render it in the Blender Internal Engine -- same result.
10) I have tried to look over settings in the Render panel of the Object Properties window and in the User Preferences. I am not an expert user of Blender or a computer programmer, so most of the options are Greek to me. If I accidentally changed settings, I don't know which ones those would be.
11) If I can't find a solution, I will have to redo the 5 hours of blocking I already put into this, a scene I am quite happy with.
I've tried to be thorough and specific. If I haven't been, so be it. I really appreciate it if someone knows what I could do to fix this or has any suggestions.

I forgot to mention that the screenshot for the 1st link above appears immediately as is, and then it just sits there with no other perceivable changes on the screen or in my computer.

Are you using your GPU for rendering? If Cycles can not get enough GPU memory it will not render, and as far as I remember there is also a limit on the number of textures you can use in GPU rendering mode. Also have a look at the system console, maybe you will find an error message there.

Thank you, Maddin45. My memory card is CUDA compatible, but it's capability doesn't allow for me to render using the GPU. I render exclusively from CPU, which is slow and heats my machine up. But I recently upgraded to Blender 2.71 and it works noticeably more efficiently. But I have my mind on getting a machine that will allow for GPU rendering. :)

No problem :) About the video footage in the Sequencer: have you tried disabling 'Sequencer' under the 'Post Processing' tab in the render settings?

Yes, you are right. I didn't see this before, but it does answer the basic problem.

This question is too long for this format.


text:
How do you remove interior faces?
Here we have two overlapping cylinders:

They could be one mesh or two separate meshes. I don't care.
What I would like to get blender to do is remove the interior faces.

I'm having several problems.

Select > interior faces doesn't do anything
Many "answers" to this question tell you to press select while in edit mode but in 2.8 that's how you tell blender to start animating.
Boolean (Intersect|Union|Difference) (assuming the cylinders are two separate meshes, of course) doesn't work and it often generates strange geometry. How you get this out of two circles is beyond me. In the image both cylinders have the same height but usually I have to make one cylinder taller so that it's above and below the other cylinder to get it to work.

Am I making a reasonable request here? For more context, this is the mesh that I would like to clean up the interior of.

The cylinders are just because I've given up doing this with more complicated meshes. How can I remove as many of the vertices/faces from the inside of this mesh as possible? Thank you.

You're making it very complicated, there are several ways to make your object, the simplest would be to bevel the angles of a rectangle. Then you may need to work the topology but it depends on your final goal.

How did you do that? To me it looks like you added edge loops to the edges of the rectangle and deleted their line segments on the front and back faces. Then you just did bevel? Is that right? Were there any special settings you had to use on bevel?

I just select the 4 corner edges and bevel with ctrl B. It's a much easier solution than yours but you could as well fix your solution with some snap and vertices auto-merges.

When I select the 4 corner edges and ctrl+b it doesn't add any additional edges. e.g.https://i.imgur.com/MaUOJ1s.png.

press "+" to add more edges, or play with the parameters (Segments) in the operator box (bottom left in 2.8)

*claps excitedly! That did it. Thanks!


text:
Where did my bones go?
I know they're still there, I can see them in the object hierarchy window, I can add and remove vertices to their component groups, but I cannot get them to display in the viewport. What did I do to cause this?
Blend file:
https://www.dropbox.com/s/vuvf2lpxyv5veq9/HK_HollowKnight.blend?dl=0

You've selected your object and toggled to local view, which only allows to see the selected object: Header menu > View > Local View > Toggle Local View (or numpad /)

Thank you so much, that was exactly what the problem was!

You messed up something with the workspace. I couldn't find out what, because in the menu the bones are checked in, but after I added a new Layout workspace I could see every bones.


text:
How to squeeze and stretch a pipe? Organ (intestine) animation
I'm doing my assignment which I have to create an animation of organ(intestine)'s digestion.
I have to make organ (let's call it 'pipe' from now on) interact with excrement inside of itself.

The pipe should be squeezed(tightened?) a little bit before and after excrement passes the pipe, and as the excrement passes the pipe, that part should stretch(bulge?).
bowel movement? peristalsis? don't know the exact term...
https://www.youtube.com/watch?v=Ujr0UAbyPS4
https://www.youtube.com/watch?v=6CoIDScAzog
links above are ideal animation I want as a result...
I'm a real beginner, and I learned basic modeling, sculpting and rigging tutorials.
But I have no idea how to do this.
Should I use IK rig? or soft body collision..?
I don't ask for full solution. I just want to know the direction.
I't would be great if there're some tutorials how to use those tools...
Help plz...

I proposed the Cast modifier here: https://blender.stackexchange.com/questions/123276/messed-up-intestine-animation-with-lattice-modifier  if you give it a vertex group it will work fine and easy


text:
x3d import in python
I have a huge amount of .wrl files. They mostly contain a single mesh.
I want to write a small python script that loads each of these files, then reduces the contained meshes and saves it to a new file (ideally again a .wrl, but not necessary)
My script so far
import bpy
import os

for i in os.listdir("C:/PathToFiles"):
    if i.endswith("n.wrl"):
        fullPath = "C:/PathToFiles/" + i

        bpy.ops.import_scene.x3d(filepath=fullPath)

        bpy.ops.object.select_all(action='SELECT')
        bpy.ops.object.delete()

        continue
    else:
        continue

The saving part is missing for now.
When first trying this I got the error message "blendata not defined" in line 2223 of import_x3d.py. I corrected this by replacing all occurences of blendata with bpydata.
Now it crashes with error in line 2044 of import_x3d.py with

ValueError: matrix * vector: len(matrix.col) and len(vector) must be the same

Since I have no real insight into the script or the .wrl file format I am kinda lost. Any suggestions?

I'm not entirely sure that it does the exact right thing but...
I edited the lines 2044 and 2045 to following lines in the import_x3d.py script in order to fix the error message I got. Basic idea is to just prolong the uv vector to 4 components and then copy the first to back to the target.
tmp = texmtx * luv.uv.to_4d()
luv.uv = tmp.xy

The scenes seem to be loaded, but I have not checked the UV coordinates in detail since for now I don't care that much about them. I may later.


text:
Record water / liquid simulation animation to then transform it?
is it possible to record an animation created through water liquid simulation on a plane. Then fix this transformations that where recorded so you can transform the object without recalculation the water simulation.
Example:

I have a ball falling onto a horizontal plane causing a wave animation.
Then I rotate the plane 90deg to make it vertical. But the simulated wave, stays exactly as it was (and is now horizontal)

Is there a way to achieve this?


text:
How to animate object rotation on a single local axis when local and global axis not aligned?
In the animation I want rotation locked to a single local axis like when you press R then X twice to rotate.
An example would be a wheel rotating on an axle.

Then what is the question? You already wrote how to do it.

@someonewithpc They said they want it locked, presumably so it can only rotate on that local axis and no other.

It says "when you press r then x twice". That locks rotation to the local X axis.

@someonewithpc that locks the rotation for that rotation operation only. In the object panel there are permanent transformation locks, but I am not sure if they are local or global.

it does interpolate and the axis lock is lost

You can simply use the Copy Rotation contraint:

Create a new empty;
Select your object, switch to Constraints tab in Properties Editor, add a Copy Rotation constraint, set the empty as Target, toggle Offset, set Local Space as the owner space (current object).
Then you control the rotation by rotating the empty.

Tip: For quick constraint creation, you can also first select the empty, then holding Shift to select your target object, then ShiftCtrlC -> Copy Rotation.

turns out it doesn't work when my cone mesh is a child of another object.... anyway to keep this working when the cone is a child of another mesh/parent?

I found a very simple solution by playing around.
Go to the timeline. Insert a Delta Rotation Keyframe at the start.

Then go to the object panel and chance the Delta Rotation values of the particular axis you wish to rotate. And then just add a new Delta Rotation keyframe. There you have a very simple animation of a rotation on a single axis.

I would add an armature to the object. The armature only needs to have a single bone that is aligned to the objects axis and you can parent your object to the bone without bothering with weight painting. The bone can then easily be animated on it's axis and if you use Euler rotation you can have one f-curve to adjust the animation.

Transform locks can also limit the possible rotations if you only want to rotate on one axis.


text:
Blender isn't importing mtl correctly with obj?
I'm a new blender user, but have used other modelling programs before.
I've downloaded a model file and unzipped it.
When I import the obj into blender, it is my understanding (from here: How to import a .mtl file?) that the mtl should just import itself with it. However, when I import the obj, I just get a grey model with no texture. Is it actually importing the mtl but I'm not seeing it? Also for the record, I have changed no settings in blender.
Picture for reference:

did you ever figure this out? I've got an OBJ with MTL and PNG files but Blender seems to ignore them. Both MTL and PNG have the same file name and are in the same directory... the only posted answer wasn't much help.

You need to have your viewport shading set to Textured to see any textures or materials on the imported model. Press AltZ to switch to textured view or alternatively, open the properties panel with N and under Shading, tick Textured Solid.

(Click the images for a higher res.)

Try copying any accompanying .PNG files into the same directory as the .MTL file, then edit the contents of the .MTL file to remove any directory references relating to the .PNG files.
Import the .OBJ file again, and F12 render.

Could be that the only light in your scene is inside your imported model (was with mine!). Either move the light or delete it to see your model with textures

This doesn't really look like the problem.


text:
How to export to .obj with separate map-channels?
I'd like to export a .blend file with a UV-mapped texture, a displacement map and a normals map in 3 separate channels to an .obj file. Tried it with 3 UV Maps in 'Object data' but only 1 map will be exported. 3 separate objects with 3 separate maps or separate layers aren't working either. Do i need nodes...!?

GuruGanesh, when I saw your name, I thought of a comic I made about Ganesh's mount...see if you like it

The .obj file format only supports a single UV map per object. There is no way to export an .obj file from blender with multiple UV maps. What you should do is use another file format such as FBX which does support multiple UV maps per object.


text:
Deform Text Objects in Blender to fit into other object
I would like to take a 3D Text Object in Blender and Deform it.
Such as that it fits into e.g. the outlines of Curve or Object.
I tried with the deform modifiers cast and curve. But I could not deform it so the 3D Text is(and fits to) within the boundaries of another object (Curve or Object).
Thank you for your help.
Update:
Here a pictures what I want to achieve in 3D, but in 2D.

did you try text on curve option on the text object

thanks. i missed that. But that does not solve the problem. it smashes the letters into each other and I want that the letters are adapted to the space of the object or curve.

can please add an example picture to show what exactly you are looking for ( even a hand drawing )

you can try the lattice modifier but it is not that tight

shrinkwrap modifier maybe? Im not an expert on it though, I dont know if it can also shape something into the (flat)shape of a face or many.

You might try the Mesh deform modifier:

Add a cube around your text and subdivide so that there are vertices where you want control points  to be:

Add a mesh deform modifier to the text and specify the cube as the control object.

Click bind and deform the control object in edit mode:

Thank you Gandalf3. This is super handy to know. But first if I want to apply the modifier, I get the message, I cannot apply modifier to this Object. It binds correctly, but nothing happens to my text (so bind works, but apply not). Apart from that, which maybe is an error on my side that I have to find, it does not really solve my problem. It is better than before, but I would like the text to get the form of an object. In 3D and not modify in 2d. Sorry, but thanks for the tip, this will be very useful.

@user413734 you'll have to convert it to a mesh

Is there any reason or downside that you did not use a Lattice modifier?

@David I couldn't get the scale to match. I can never get lattices to be the right size..


text:
What render engine to use with the VSE?
I'm trying to figure out which render engine to use for the VSE only..
I'm unsure that something changes but maybe... the cycles one can use the GPU instead of game and internal?

You can use either - it could depend on what you will be rendering. For simple single colour text objects either one could be used, if you are rendering a realistic object that needs to look like it is a real item in front of the camera,  then you may find cycles will give the desired result.

I'm rendering just 2D videos from an hardware camera, nothing 3D releated :)

There is a quite important difference when you render Video footage only:
Only with Blender Internal you have the option of using Anti-Aliasing.

And there is a bit of a speed gain or loss depending on your settings there. But it makes a huge difference as soon as you activate a Scale function of at least one Strip. Cranking the samples per pixel up there didn't really affect my image quality nor speed, so you could leave it at 5, but switching it off completely results in a performance increase, but a visible image quality decrease on edges.
GPU Usage is only available in Cycles though. And depending whether you want to include rendered footage from a Scene as well and what effect  you want to achieve (basically more photorealism vs. speed) you need to select your Engine accordingly.
So in your case I'd suggest you'd use Blender Internal.

You can use either - it could depend on what you will be rendering. For simple single colour text objects either one could be used, if you are rendering a realistic object that needs to look like it is a real item in front of the camera, then you may find cycles will give the desired result.
The active render engine is only used to turn a 3D object into a 2D image, so if you aren't adding any 3D rendered element to your video then the active render engine doesn't matter, the VSE itself doesn't use the render engine when mixing the final video.

What about GPU use though?  There is no GPU option when BI is selected, but I'm pretty sure the VSE can use the GPU.

When displaying the vse preview you have the opengl preview option which could benefit from the gpu. Various effects strips may use the GPU through opengl but I don't know of any specific GPU support in the VSE yet. Pretty sure cycles is the only place to directly make use of the GPU.

That's interesting.  I'll have to test it again, but I'm pretty sure I've used my GPU (Quadro m4000) to render VSE output where all I used it for was to mix some audio and video.