text:
BI Lighting Mystery: Ceiling is receiving less light than the rest of the room
While testing out a lighting setup for archiviz in Blender Render I encountered a strange problem. The ceiling is too dark no matter what I try.

Here are some things I tried:

Checked that normals are facing the right directions
Removed all modifiers from ceiling plane object
Joined ceiling and room as a seamless mesh
Tweaked all lighting settings I could think of
Tweaked all material settings I could think of
Extruded the ceiling plane to give it a volume

Things to note: The only light sources are a duplivert array of Point Lamps and the ambient light from outside the room. I tried other types of lamps such as Spot and Area, but settled on Point because I found that the shadows looked best with Point. The other lamp types still didn't brighten the ceiling enough, except when I created a dedicated secondary Area Lamp pointed upward at the ceiling - which caused lighting problems in other parts of the room because the undersides of furniture would glow.
I made a special material for the ceiling that is like the rest of the room, except with some emission to brighten it. It looks better with that on than the regular room material, but doesn't look good because it kills the shadows in the corners. And besides, it's a hack and doesn't solve the real problem.
What could possibly make a ceiling appear darker than the walls it touches?

I've tried your setup, but lowered Lamps on Z axis to 2.85. Looks better. Screenshot: http://imgur.com/a/TAjhn

@SergeL Thanks for taking a stab at it! The center of the ceiling looks good, but where the walls meet the ceiling it's still dark. I think the root cause of the problem still persists.

Well your using Blender internal and not cycles so its not perfectly light emulation. Here are the steps to make it a bit better, first decrease the strength of those lamps
( set it to 0.001 or so, there is way to much light in the scene currently).
in the world tab:

enable Ambiant Occlusion
enable indirect lightning
set Gather to Approximate

there are some more problems (placing of lights etc) but above should give you a start for this file.

Thank you!! So it seems maybe having too much light energy can (counter to expectation) cause extreme shadow contrast? I'm starting to understand how to strike a balance between the approximated Indirect Lighting which prevents the room from getting too dark in the corners (but kills a lot of the shadows that give objects their shape), and the Point Lamps's ray shadows that create nice detail on objects, but require a certain amount of light energy to do this, approaching the dark corners problem. I'm still fine-tuning and experimenting, but yes, your answer gave me the start I needed. Cheers.

Here's the improved .blend, in case you're curious to see.

Looks nice, i think you hould tryout Cycles render engine

Thanks. I mostly use Cycles actually. That's why there are some areas of BI that I'm unfamiliar with. But the render time needs to be as quick as possible for this project, and also I'm looking for a clean, almost illustrated look with this, not photorealism.

otherwise you could render it all once, bake it all (shadows) and do camera path trough it in almost realtime BI or viewport render


text:
How to get local axis orientation in Python?
How to get orientation of the local axis in python?

Isn't it the object orientation? Object.matrix_world

As Codemax answered. Thanks to him. Here is an example how i can rotate Localy an active object at Y-Axis.
activeObj = bpy.context.scene.objects.active
activeObjMatrix = activeObj.matrix_world
theAxis = (activeObjMatrix[0][1], activeObjMatrix[1][1], activeObjMatrix[2][1])
bpy.ops.transform.rotate(value=rotateValue, axis=theAxis)

You don't give any details on rotateValue. I take it that's an XYZ vector, like (1.5,3,.71) and in radians?

@Tango it's a float value, in radians. With a value of pi/2 you will rotate 90° around local Y axis. By the way for X local axis and Z local axis just replace the second index in each element of theAxis by 0 or 2 respectively

@Gorgious: Thank you!

You can use a simple theorem of linear algebra to do this:
'Every column of the (3 by 3)transformation matrix is the (unit) vector along rotated(transformed) axis'
You can use the following code to achieve the goal of this theorem:
Import bpy
From mathutils import Vector

obj = bpy.context.active_object
mat = obj.matrix_world
localX = Vector((mat[0][0],mat[1][0],mat[2][0]))
localY = Vector((mat[0][1],mat[1][1],mat[2][1]))
localZ = Vector((mat[0][2],mat[1][2],mat[2][2]))

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:
How to write all characters in a font to a 3D text object?
Can you help with inserting of all characters of a font (for example I loaded an Arial font) into 3D Text?
For example I created a 3D Text object and I need to insert all characters with Python:

All I found is how to insert a specific text:
bpy.ops.font.text_insert(text="texttt")

But I need all characters available in the font.
Also, can I separate characters by languages (english, french, spanish etc.) and other characters (,.<>[]{};:'" etc.)?
Thanks a lot!

By the way, you can also use bpy.ops.object.text_add to add another text object.

Well, it depends on what "all characters" are, but generally you should be able to just loop over a range of code points or character values, casting with chr.
For example, if you want all printable ASCII characters:
text_string = ''.join([chr(i) for i in range(32, 127)])
bpy.ops.font.text_insert(text=text_string)
# [SPACE]!"#$%&\'()*+,-./0123456789:;<=>?@ABC...XYZ[\]^_`abc...xyz{|}~

Here, I just used a list comprehension to go from ASCII 32 to ASCII 126, inclusive. You could use a different range to suit your needs.
You can't really "separate characters by languages" because it's not bijective. Which language does A belong to? Practically every language that uses a Latin-variant alphabet. How about ü? Spanish, German, to name two.
You could separate characters by their Unicode blocks, like Basic Latin (U+0000 to U+007F), Latin-1 Supplement (U+0080 to U+00FF, contains stuff like ¢, ©, §, õ, þ, etc.), etc.
For example, if you wanted two separate text objects:
blocks = { 'basic_latin' : (0x20, 0x7E), 'latin-1-supp': (0xA0, 0xFF) }
for k, v in blocks.items():
    t = ''.join([chr(i) for i in range(v[0], v[1] + 1)])
    bpy.ops.font.text_insert(text=t)

Thank you a lot! It works like a charm!
Small question:
How to get hex characters of 'cyrilic' unicode block?
I was looking here http://www.fileformat.info/info/unicode/block/cyrillic/index.htm
But i have no good result. I used Arial.ttf which has Cyrilic block.
Thank you.

The result:
Latin
text_string = ''.join([chr(i) for i in range(ord(u'\u0021'), ord(u'\u007E') + 1)])
bpy.ops.font.text_insert(text=text_string)
Cyrilic
text_string = ''.join([chr(i) for i in range(ord(u'\u0410'), ord(u'\u044F') + 1)])
bpy.ops.font.text_insert(text=text_string)

@mifth if the text isn't showing up properly, take a look at this question.

The result:
Latin
text_string = ''.join([chr(i) for i in range(ord(u'\u0021'), ord(u'\u007E') + 1)])
bpy.ops.font.text_insert(text=text_string)

Cyrilic
text_string = ''.join([chr(i) for i in range(ord(u'\u0410'), ord(u'\u044F') + 1)])
bpy.ops.font.text_insert(text=text_string)

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


text:
How do I animate spinning arm with spinning end
I have a model that looks like this.

I want to animate it such that the arm with the blade swings around but at the same time the blade should rotate around when it reaches the middle like.

I'm not entirely sure how to set something like this up.

The arm is clear, but which way do you want the blade to rotate?

The blade rotates slightly counter clockwise about the Z axis. If it did not then it would intersect with the brown part with the side instead of the pointy end.

Ya like that how do I set that up?


text:
Unselect hidden mesh after unhide
Is it possible to unselect only the parts that were hidden, after the unhide command (AltH)? I want to keep the previous selection.

While it's not python solution, you can use vertex group for that. Create one, assign selected vertices to it, unhide and deselect everythiing. Then, select vertices assigned to the group.

I did python solution which unhides all verts/faces and leave selection as it was before. http://pastebin.com/H4gzFYEr
But i don't know how to add it to shortcut and to the addon.

There may be a more elegant solution, but i believe this process gives you the result you are seeking.
Select the mesh vertices you are interested in.
Invert your selection (Ctrl + I).
Unhide the hidden mesh components (Alt + H).
Invert your selection with Ctrl I again.

very nice work around. UVed

Here is an addon I made a couple years ago which makes this functionality appear in the toolbox as Reveal Hidden, deselected, updated for Blender 2.80:
bl_info = {
    "name": "Reveal Hidden, deselected",
    "description": "Unhide/Reveal hidden geometry without it getting added to selection.",
    "author": "Zyl",
    "version": (1, 1),
    "blender": (2, 80, 0),
    "location": "Toolbox > Reveal Hidden, deselected",
    "category": "Mesh"
}

import bpy
import bmesh

class RevealHiddenDeselected(bpy.types.Operator):
    """Unhide/Reveal hidden geometry without it getting added to selection."""
    bl_idname = "mesh.reveal_hidden_deselected"
    bl_label = "Reveal Hidden, deselected"
    bl_options = { 'REGISTER', 'UNDO' }

    def execute(self, context):
        me = context.active_object.data
        if me is None:
            return { 'FINISHED' }
        bm = None
        inedit = me.is_editmode
        if not inedit:
            print("Must be in edit mode to unhide w/o selecting.")
            return { 'FINISHED' }
        else:
            bm = bmesh.from_edit_mesh(me)
        if bm is None:
            return { 'FINISHED' }
        for v in bm.verts:
            v.hide_set(False)
        for e in bm.edges:
            e.hide_set(False)
        for f in bm.faces:
            f.hide_set(False)
        bmesh.update_edit_mesh(me, False, False)
        return { 'FINISHED' }

def register():
    bpy.utils.register_class(RevealHiddenDeselected)

def unregister():
    bpy.utils.unregister_class(RevealHiddenDeselected)

Tested, works great. Thanks for sharing. Could it be possible to provide a link to th 2.79 version?

Try this for pre-2.80: https://pastebin.com/ycPwcWs4


text:
Child object doesn't stay relative to parent in BGE
I'm making (another) plane game but the propeller, which is parented to the plane, keeps moving weirdly.
Here is an image of the whole plane, before I go into the game:

Then, when I go into the game, it looks like this:

Which is OK, so far. But now, when I move the mouse to rotate the plane, the propeller detaches from the plane:

Is there a way to keep the propeller attached in the same position on the plane?

If it helps, here is the blend file.

use the parent logic brick with always sensor

@Chebhou This doesn't seem to work - can you explain it further?

This was a simple case of unapplied scale and rotation. The odd thing is blender handles parents with different transforms just fine, but the game engine does not.
As a general rule everything in the BGE should have a scale of one, and no rotation.
All I did is apply the scale and rotation on both the plane and the propeller, then the normal object parent worked as expected in the BGE.
Here is your fixed blend with parent working, plus you had the normals on your plane reversed.
If you haven't seen my explanation on the parenting settings, go read it here.

How do you "apply the scale and rotation"? @David

@Jacob_ http://blender.stackexchange.com/a/6445/2217

actually never mind, I managed :)

Select two objects, press Ctrl + A and choose Rotation & Scale to apply it to object data.


text:
Dissolving faces on objects with holes?
I'm having an issue with dissolving the faces on an object with holes in it - I've read elsewhere that this can be an issue.
I'm somewhat of a Blender novice at the moment, so I've mostly been using tutorials, but I've managed to cut holes through a wall using cylinders and the Boolean > Difference modifier.

The problem I'm having is that I am unable to dissolve some of the faces surrounding the holes. The screenshot above is of the object after I've dissolved all of the faces that I am able to, but an attempt to dissolve the others results in a the error below.

could not create merged face.

This is causing issues when applying textures, as they appear completely distorted (I imagine as a result of the split faces).

Did you find a way to do this? Trying to dissolve faces on mesh converted from svg text and find the same error...


text:
Texture also applying to separated object
I am working on creating a hammer in Blender, but I am having a problem. I separated the hammer and the handle into two separate objects, but when I apply textures to one of the items, it applies the texture to both objects. I used P and then selection to separate the two pieces.

You still have the same material on both objects. You can create a new material, if you need an entirely different material.

Or click on the plus button, to make a new material from the current material. Then there will be two separate materials for your two objects.
Documentation about materials.


text:
Is their a way to move multiple vertices gradually at a time?
I have moved multiple vertices gradually but a set of vertices at a time not all at a time, as shown in the animation below (First I moved the four vertices from top, then three, then two and at last the last vertex).
 I wanted to do the same thing as shown in the animation below but all at a time.

You can get the movement you want all at once with proportional editing.

Select the top vertex
Press O to enable proportional editing
Change the Falloff type to be either linear or Smooth.
Press G to move the vertices
While still moving the vertices, use the mouse wheel to change the size of the influence until it covers all the vertices you want to move.

I think that David's solution would work very well for you. If you don't want to affect the nearest vertices just hide them with H. Changing the Proportional Editing type to Connected may be also helpful and work for you.


text:
How to add object to a specific layer with Python?
I have the following code which generates an object:
mesh = bpy.data.meshes.new("Raw Curve")
mesh.from_pydata(self.rawCurve, edges, [])  # verts, edges, faces
mesh.update()

profile_object = bpy.data.objects.new("Raw Curve", mesh)
profile_object.data = mesh  # this line is redundant .. it simply overwrites .data

scene = bpy.context.scene
scene.objects.link(profile_object)

How can I add this object to a specific layer (e.g. to layer 2)?

#add to layer 2 first - needs to be on at least one layer
profile_object.layers[1] = True

#wipe other layers
for i in range(20):
    profile_object.layers[i] = (i == 1)

Here is my current code: http://pastebin.com/bruT7f3r  But it still draws the new object into the 1st layer. What can be wrong?

You need to make sure, that if you set a layer to False, there is at least one other layer the object is part of. It is not allowed to set all layers to False since the user could not select the object anymore in the viewport (he might use the outliner - but this prevents the user from accidently clearing all layers). Thus the first line is mandatory, you have to add it to another layer before you can wipe it from the others. In your script you are probably trying to remove it from layer 1 before adding it to layer 3.

Still placed into the 1st layer: http://pastebin.com/XHUM0G0P

I found the problem. scene.objects.link(obj) have to be executed before the layout stuff.

Just checked the source code - if you link an object to a scene the active/visible layers of the scene get copied to the object's layers.

You added it to Layer 1, then tried to first set [1] to false and then to the layer you needed to True. So say you try to set it to layer 3. profile_object.layers[1] = False fails because it is the only True at that time. I edited the code to set layer 19 to true initially. This should now work because 19 is the last layer to be set in the for loop.

This answer is broken in Blender 2.8+

This doesn't give a good solution either
https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Python_API/Scene_and_Object_API

small utility function I use:
put_on_layers = lambda x: tuple((i in x) for i in range(20))
obj.layers[:] = put_on_layers({2,6,5,11})

{2,6,5,11} is a set, can be 1 or more values, starting from 0 ending at 19.

My favorite syntax is
obj.layers = [ i==2 for i in range(len(obj.layers)) ]

or if you want the flexibility of zeffi's solution
obj.layers = [ i in {2,6,5,11} for i in range(len(obj.layers)) ]

You could also just write range(20) instead of range(len(obj.layers)) assuming blender never changes the number of layers.
The most important thing to remember is don't try to set the layers before the object has been linked to a scene.  The last time I made that mistake my layers assignment had no effect (I assume the scene.link reset the layers value somehow; I am not sure if that has changed in recent blender versions).

I want to import an object directly into a specific layer. I wonder, do you know a solution for that? If so, could you please check out my question here and see if you can offer a solution?


text:
How do I display a property in the viewport without using a modal operator?
I want to display a property in the viewport without using a modal operator. is it possible? I found this, but I did not understand how I can use (I started with python).

Extending the code from Draw and update text in viewport without modal operator in blender
I suggest using a class to handle the handles, and pass context to the callback method.
import bpy
import blf

class DrawingClass:
    def __init__(self, context, prop):
        self.prop = prop
        self.handle = bpy.types.SpaceView3D.draw_handler_add(
                   self.draw_text_callback,(context,),
                   'WINDOW', 'POST_PIXEL')

    def draw_text_callback(self, context):
        font_id = 0  # XXX, need to find out how best to get this.

        # draw some text
        blf.position(font_id, 15, 50, 0)
        blf.size(font_id, 20, 72)
        blf.draw(font_id, "%s %s" % (context.scene.name, self.prop))

    def remove_handle(self):
         bpy.types.SpaceView3D.draw_handler_remove(self.handle, 'WINDOW')

context = bpy.context
dc = DrawingClass(context, "Draw This On Screen")

#dc.remove_handle()  # will remove the handle and stop drawing

to handle the handles, from now on I shall use this on my colleagues :D

Nice approach, but how we can store the reference to the class in order to remove the handle at later time e.g. based on a scene property enabled or disabled by the user?

Give it global scope to update method of some scene property, or what I find a bulletproof "hack"  bpy.app.driver_namespace["foo"] = bar

Sorry, wasn't notified @batFINGER. Updating a scene property requires another static variable in the class which ends up in a mess referencing static variables. I really like your idea, in theory it's super nice but in a real scenario for a addon or something, it does not really help IMHO. Maybe I'm too stupid. Anyway thanks for your hacky batTRICK!

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


text:
How can I execute a .bat file when Blender starts?
I have to start a postgresql server when blender starts. To start the server I use a .bat file I start manually.
I want to automatically start the server (execute the .bat) when Blender starts. I tried this script but it not working. ideas?
import subprocess
filepath="C:\Users\PORTABLE\Desktop\pgsql_binaire\pgsql\test.bat"
p = subprocess.Popen(filepath, shell=True, stdout = subprocess.PIPE)
stdout, stderr = p.communicate()

Dont you need double slashes or forward slash?  c:\folder\file or c:/folder/file

When I use \ or / and I execute the script, Blender not responding!

do you start it and let it run in the background? check if postgresql has started. check this question for starting a process and letting it run in the background. http://stackoverflow.com/questions/1196074/starting-a-background-process-in-python

Would it not be simpler to start both blender and postgresql using the same .bat file. Then point any blender shourtcuts/links you have at that file?

How can I start postgresql since all .blend files?

I answer my question. Here is a code that works for me:
import bpy
import os
os.chdir("C:\\Users\\PORTABLE\\Desktop\\batfile")
os.sytsem("hello.bat)


text:
'context' error when trying to bevel an object with Python
I need some code to do Bevel-operation within a Python script. Ultimately I need a series of blocks (32) in different sizes and in which each is bevelled on one side to be exported as STL-file for use on a 3D-printer. So I tried to start bevelling a while object to start with, I used the default cube to experiment. Bevelling it manually showed me some interesting API commands in the Blender Info window, which I copied to the Scripting module, but running it brings me into trouble. My first guess was something like this:
# generate the cube and make it selected and active:
import bpy
bpy.ops.mesh.primitive_cube_add(radius=1)
myobject = bpy.context.active_object
print("myobject: ", myobject)
myobject.select = True
bpy.context.scene.objects.active = myobject

# This is copied from the Info window:
bpy.context.space_data.context = 'MODIFIER'
bpy.ops.object.modifier_add(type='BEVEL')
bpy.context.object.modifiers["Bevel"].width = 0.2
bpy.context.object.modifiers["Bevel"].segments = 5
bpy.context.object.modifiers["Bevel"].profile = 0.7
bpy.context.object.modifiers["Bevel"].material = -1
bpy.ops.object.modifier_apply(apply_as='DATA', modifier="Bevel")

# Manually the bevel is done at this point!

But when running the script it fails at the MODIFIER line:

myobject:   Traceback (most recent call last): File "/Text", line 10, in  AttributeError:
'SpaceTextEditor' object has no attribute 'context' Error: Python
script fail, look in the console for now...

Searching through the data objects and Googling hints me that I'm working with a wrong starting point, but how can this (bevel the cube)  be done easily?
Does someone have a simple example to share with me?
P.S. I use Blender 2.78, latest release.

You should avoid using ops when possible, see here. As for you code:
import bpy

# generate the cube and make it selected and active:
verts = [(-1.0, -1.0, -1.0), (-1.0, -1.0, 1.0),
    (-1.0, 1.0, -1.0), (-1.0, 1.0, 1.0), (1.0, -1.0, -1.0),
    (1.0, -1.0, 1.0), (1.0, 1.0, -1.0), (1.0, 1.0, 1.0)]

faces = [(0, 1, 3, 2), (2, 3, 7, 6),
        (6, 7, 5, 4), (4, 5, 1, 0),
        (2, 6, 4, 0), (7, 3, 1, 5)]

me = bpy.data.meshes.new('Cube')
ob = bpy.data.objects.new('Cube', me)
bpy.context.scene.objects.link(ob)
ob.select = True
bpy.context.scene.objects.active = ob
me.from_pydata(verts, [], faces)
me.update()

# bevel the cube
bevel_mod = ob.modifiers.new('Bevel', 'BEVEL')
bevel_mod.width = 0.2
bevel_mod.segments = 5
bevel_mod.profile = 0.7
bevel_mod.material = -1
# we use ops here since there is really no other way
bpy.ops.object.modifier_apply(apply_as='DATA', modifier=bevel_mod.name)

I didn't know this comment on avoiding ops when possible, it sounds fairly obvious, I have some more places where I use it, will take that out, thanks for pointing me there.


text:
Node setup for combining baked Diffuse Indirect, Direct, and Color passes
I am trying to combine the Diffuse Indirect, Diffuse Direct, and Diffuse Color passes after baking.
Diffuse Indirect, and Diffuse Direct are fine When using the add shader, but I can't get the It to output the Color using the node setup below.

There is problem with you nodes. You have a color mix node after the BSDF Shader nodes. That does not work.
Using the same type of setup with three images for Indirect, Direct, and Color this is how the nodes should look. Notice the indirect and direct are added together. Then the color is mixed in with another color mix node set to value with the Fac set to .5.

All color operations happen before the Shader nodes. After the first shader node only other shader nodes can be used.


text:
Is there any way to connect blender to processing?
I would like to produce processing style effects in blender or other traditional applications, either 2d or 3d. I have been looking for ways to connect the language to blender through blender's internal python interpreter. So far I have found nothing. I even looked for ways to call jython libraries within blender, as processing.py is a jython wrapper around the java original, and the closest I have found was some information on blender java. I would much rather use an up to date more feature rich version of blender than a java port. Does any one know of a way to call jython from with in Cpython that would be compatible with blender or a java or javascript to python method that would work? Even the location of a pure python script that works like processing would be acceptable.

Maybe the question is a little off topic for the blender.stackexchange
There is python-osc for talking over OSC between Blender and any OSC supporting program (Processing comes with an OSC library). You could make your own bindings.

Thank you I will look into that. I am just curious though how well OSC handles visual media since it was designed for sound. I guess I will inquire about that over at python-osc.

@yehochanan consider the osc 'stream' more as a way to send higher level instructions from one program to another. Just like OSC isn't used to send samples, but you might send a filepath of a new sample to load - You might send condensed draw commands over OSC or again a filepath so Processing can read instructions from disk. (I/O is pretty fast these days)


text:
Whats the difference between entering units and scaling the model at the end
Lets say I'm trying to model a vehicle, given that I have the length of it. If I enter the length using units, for example I input 4.5 meters into the y axis and start modelling with the blueprints of the car, what is the difference as compared to modelling it according to the blueprints and then scaling it up to size?
Thanks

The result should be the same if you scale your mesh in edit mode. However if you scale the whole object in object mode your object will behave differently when used with particles or in physics simulations. The particles and the forces on the object will be scaled as well. To avoid that problem you can apply the object-mode scale to the mesh by pressing [Ctrl+A] and selecting "Scale".

If you do not scale the blue prints to the real world size (example it says 4.95 meters long but in blender it is much smaller) then you will not be able to input any dimensions. You could model it all off of the blue print then just scale the model later, but while modeling any numbers become arbitrary.

There is no real difference. It just makes it easier to start in the units you're going to be using. This is more for making models you intend to print, or send down the pipeline to another stage of development. As long as you just remember to do it and doublecheck your measurements at the end and apply the scale to the object, it really doesn't matter.
That being said, there are several modifiers and textures that don't scale well. For example, a low resolution texture (not a procedural one) might end up looking fuzzy at a larger size. Aslo, if you have things like particle systems and complex parenting groups, it could mess the relations up, because it uses the math to calculate the relations based on the input. For example, 1000 hairs across one unit is quite a bit denser than 1000 hairs across ten units. Your model would become nine-tenths balder.
EDIT: To clarify, if you're only using hardsurface modeling on one object with simple materials, there is basically no difference at all.


text:
Create a Nurbs Circle Surface using python
I am trying to achieve the following post
I see doing this two ways.
Create a large circle and small circle and fill the inbetween.
Perform the same steps as the GUI programmatically, create NURBS Circle Surface, and  extrude into a smaller circle.
What is the best way to do this? Do the vectors have to be manually inserted to create a square or is there something in python that will create the nurbs circle surface with radius and origin?


text:
Baked texture blurry
I'm new to Blender and I'm trying to bake my model. I watched a lot of tutorials and I think I'm ready to do it.
Wha't I'm doing is here working with blender internal:

create uv map
resize textures in the uv editor
change the EWA filter size to 0.1 in the texture tab -> image sampling. This will render the model in a better way without blur effect
bake my textures

But when I import the model in other softwares (using obj format) I have a blurry model, even if I reduced the EWA filter.
I tried a lot of parameters but the result is always blurry.
This is strange because changing the EWA filter give me a good result in rendering view.
Maybe the problem is the size of UV Map? I did also an image of 10'000 pixel square but the result didn't change. I tried also with little uv map like 1024 px.
Here some screenshots:
Blender Rendered View with EWA filter set default = 1

Blender Rendered View with EWA filter set to minimum = 0.1

Exported model with baked texture : the result is blurry as before the modification of EWA filter

I want to obtain a baked textures result as in the second image with EWA = 0.1

Are you sure that this isn't a problem with the other software you are using?  For example if there are LOD/Mipmap settings that are incorrectly configured.

Hello,
after some test I finally found that the problem was due to the software I'm using to import obj.
thanks.

authors: محمد البطاشي


text:
What are the limitations of Blender for Mac?
What (if any) limitations are there with the current (2.78) and soon-to-come (2.79) versions of Blender for OS X?
I know in the past there have been some features that weren't fully supported (Open Subdiv and micropolygon displacement?), and issues with GPU rendering only working on Invidia GPUs. It's been a while since I've looked at this issue in detail, so I'm hoping to get an up-to-date view of the Blender+Mac landscape.
I hate to ask such a broad question, because I know it can be hard to address every angle... but that's just the trouble I'm having. I don't know how much of my own knowledge is still current, or how much I might not be aware of.
If this question can be answered with a "here is the official place to get all the details about Blender's OS X builds" that would be ideal. I just don't know if there is such a place, on blender.org or elsewhere. Any help appreciated.

The feature support should be the same as any other system. The official MacOSX releases will be built using the available third party libraries which includes the newer features using opensubdiv, openvdb and alembic.
As with other platforms, cuda support is better than opencl. This will depend on what mac you have as newer macs now have AMD and Intel video cards. While technically a hardware issue, the hardware is tied to MacOSX. For Cycles rendering this could lead to render farms being more popular for mac users.
anyway newer macOS users should consider that blender DOES NOT SUPPORT METAL and since Apple is discontinuing OpenCL, reading this statement on blender official website can make you sad when it comes to use GPU rendering specially in cycles render engine:

GPU rendering is only supported on Windows and Linux; macOS is
currently not supported.

... and because of some technical issues (some of these issues mentioned here) it's hard to say that they are going to support Metal (at least soon)

Thanks! Do you know if the Shadow Catcher feature will also be included in the final OS X build? I downloaded a recent build that I believe has it in the Win version but in the Mac version I cannot enable an object as a Shadow Catcher.

There shouldn't be any reason for it to not be supported on osx.As it is only just being done, a few days between builds can make a difference.

Thanks, sambler. It seems the Shadow Catcher is in its own branch at the moment, and that only Windows builds exist. At least, this is what I have gathered from these sources: 1 2 3 Hopefully it will get included in the next official release and therefore be available on OS X as well. Fingers crossed...


text:
How to batch rename bones and their corresponding vertex groups?
If we have modeled a character or device or something that has many identical moving parts (arms, tentacles, etc.), and rigged one instance of such a part, how do we get all of the bones with the same names joined as a single armature, and also get all of the meshes joined with the vertex groups that correspond to those bones?

In the example above, the character has only six legs (the wrong number for an octopus, just to add to the poor guy's problems), but what about something with even more appendages, like a centipede? What about a spider robot with very complex leg rigs? In cases like these nobody wants to go renaming each bone by hand, and then renaming each vertex group by hand.
So, we need an add-on or a Python script for batch renaming. The only add-on I've found for batch renaming is too simplistic - just for renaming at the object level. And although I found and tried a script for renaming bones, I got an error when I ran it. I also found a script for renaming vertex groups, but I haven't found any scripts that handle the mesh and armature data together.
What is the most efficient way to accomplish this?

Usually an armature is the parent of the mesh that it deforms (from using ⎈ CtrlP->Automatic Weights), this means we can get the mesh deformed by the armature by looking at it's children property. We can then rename both the bone and vertex group to a new name that is unique among all armatures allowing a conflict free merge. Adding the rig name to the bone name so that "Bone" might become "Leg1_rig_Bone" seems like a good approach.
import bpy

for rig in bpy.context.selected_objects:
    if rig.type == 'ARMATURE':
        for mesh in rig.children:
            for vg in mesh.vertex_groups:
                new_name = rig.name + '_' + vg.name
                rig.pose.bones[vg.name].name = new_name
                vg.name = new_name

This works perfectly! It's exactly what I needed. You're a genius. Thank you so much.

Have you looked into the Name Panel Addon?
It's a payed commercial addon, but it is open source, hosted on GitHub and you can also buy it from the Blender Market if you wish to show support for the developer.
It is quite a versatile extension, with capable batch renaming functions for objects, materials textures, groups etc.
It also has good batch name copy/transfer and additional UI features for selection and filtering.
Among that it also includes an advanced bone renaming feature, including armatures, bones and constraints and automatic name generator.
Disclaimer: I am not in any way affiliated with the addon author or product, although I do am a happy customer.

Thanks. This looks really useful, and I may purchase it for myself. However, I'm mainly asking this question on behalf of someone who asked me. So I would like to offer a solution to them without telling them they need to buy something extra. I'd still like to know if there is a way to rename rig data for free with a script, even if it's not as full-featured as the add-on.

Well you could theoretically get it for free from the github repo, if you are so inclined, other than this I am not aware of any other method, though I confess rigging it is not something I do at all. I know a couple of other free naming addons, but I don't think they do armature renaming as far as I know Batch Namer and Batch Rename Datablocks

This addon appears to have fallen off of the internet completely.

Go to Edit menu then choose Batch Rename or press Ctrl + F2.

Hi, thanks for the post. This site is not a regular forum, answers should be substantial and thoroughly explain the solution and required workflow. One liners and short tips rarely make for a good answer. If you can [edit] your post and provide some more details about the procedure and why it works feel free to restore it, otherwise it may be deleted or converted into a comment. Perhaps add a few images illustrating the workflow and final results. See How do I write a good answer?


text:
Root bone as pelvis vs ground?
In many rigs I have seen, the root bone is located in the pelvic area. However, where walk cycles are concerned I have also seen tutorials where there is a ground bone (or whatever you want to call it) that is hierarchically above the pelvic bone, but of course physically located at the lowest part of the armature - usually Z:0. This bone serves to position the entire character while walking, jumping, etc. Today I found myself asking: couldn't that just be an Empty instead?

What are some possible advantages or disadvantages of having a ground bone vs using an Empty (as a Parent of the Armature object) to control the character's position?

Having the ground bone as part of the same armature makes it much easier to animate as you can just stay in pose mode for the one armature the whole time. Furthermore actions are designed to be applied to single objects so it helps there as well.
The only reason why you might not have a root ground bone is if you are planning on exporting the rig to another piece of software with different expectations (e.g. matching a default skeleton in a game engine that has the root at the pelvis). In this case parenting to an empty isn't going to be that much help either though as the program likely won't know what to do with that either.


text:
Is it possible to pause and later resume a fluid sim bake?
I have a pretty heavy fluid sim bake going on... by pretty heavy I mean I estimate it will take two weeks to complete! It is likely that during that time I will sometimes want to use Blender for something else, then resume the fluid bake. I understand mesh data for each frame is stored in bobj.gz files, but can Blender use the file from the last frame to pick up where it left off baking?
Thanks

In the  current version of blender it is not possible to resume a fluid bake.

I think you still can try to pause and resume later Blender work by OS utilites. You won't be able to use exactly that Blender window, of course, rather than open another one

Two weeks for Fluid bake seems a bit extreme. While there is no way to pause and resume in Blender, have you considered renting a render farm to do it? Render.st now supports baking on their servers.

Yeah, I normally wouldn't go so high-res, but for this project I cranked up the quality to 1024 (max) hoping the result will be worth it. I'm still considering cancelling it and re-rendering at 512, but even the process of finding the best balance between cost and performance requires time through trial and error, so for now I've decided to wait it out. That's good to know that Render.st supports baking though - I'll look into it.

They don't support baking

You can use the addon flip fluids which you can pause a bake with extra features like seafoam, only thing is that it has a watermark on the demo addon.


text:
How to set the 3D-View clip with an API command?
In a project I noticed a part of my 3D object is clipped. It is easy to correct that in the properties panel (N), View, Clip, End.
I copied the underlying Python command via the scripting Info window:
bpy.context.space_data.clip_end = 50000

but when I run this command via the console it gives me an error telling me that this attribute (clip_end) doesn't exist. In the API documentation, I find this in the section on bpy.types.SpaceView3D, but I can't get it working although my feeling is this should be very easy. So how do I access this property?

The hassle is the context.space_data (generally aka context.area.spaces.active) pertains to the console area, which is in context when you are in the console, rather than a 3d view.
Here is some console code, to find a 3D view in the current (context) screen.
>>> C.space_data.type
'CONSOLE'

>>> for a in C.screen.areas:
...     if a.type == 'VIEW_3D':
...         break
...
>>> a
bpy.data.screens['Scripting']...Area

>>> a.spaces.active.type
'VIEW_3D'

>>> a.spaces.active.clip_end = 500

Thanks, this makes me understand how to get to that place and edit it!

if you run it within a self written operator, you can access the space_data from the context variable and use the clipping vars as expected. The following operator sets clipping near and clipping far, supports undo and live edition of values with F6:
import bpy

def ClipView(context, _start, _end):

    # because you ran it from a 3D View, the path to the clip_start and clip_end
    # work as expected
    context.space_data.clip_start = _start
    context.space_data.clip_end = _end

class ClipViewOp(bpy.types.Operator):
    bl_idname = "view3d.clip_view"
    bl_label = "ClipViewOp"
    bl_description = 'sets clipping values'
    bl_options = {'REGISTER', 'UNDO'}

    clip_start = bpy.props.FloatProperty(default = 0.5)
    clip_end = bpy.props.FloatProperty(default = 50000)

    @classmethod
    def poll(cls, context):
        return context.space_data.type == 'VIEW_3D'

    def execute(self, context):
        ClipView(context, self.clip_start, self.clip_end)

        return {'FINISHED'}

def register():
    bpy.utils.register_class(ClipViewOp)

def unregister():
    bpy.utils.unregister_class(ClipViewOp)

if __name__ == "__main__":
    register()


text:
triangulate faces obj format problem
This is probably a noob question but here goes. I don't remember how to export correctly to my own obj parser.
this is how I want the faces to be exported (How they used to be exported correctly):
f 5/1/1 6/2/1 1/3/1
f 6/1/2 7/2/2 3/4/2
f 7/1/3 8/2/3 4/4/3
f 8/1/4 5/2/4 1/4/4
f 1/1/5 2/2/5 3/4/5
f 8/1/6 7/2/6 6/4/6
f 6/2/1 2/4/1 1/3/1
f 2/3/2 6/1/2 3/4/2
f 3/3/3 7/1/3 4/4/3
f 4/3/4 8/1/4 1/4/4
f 4/3/5 1/1/5 3/4/5
f 5/3/6 8/1/6 6/4/6

But everything I try with the exporter now only gives me something like this:
f 5//1 6//1 1//1
f 6//2 7//2 3//2
f 7//3 8//3 4//3
f 8//4 5//4 1//4
f 1//5 2//5 3//5
f 8//6 7//6 6//6
f 6//1 2//1 1//1
f 2//2 6//2 3//2
f 3//3 7//3 4//3
f 4//4 8//4 1//4
f 4//5 1//5 3//5
f 5//6 8//6 6//6

What am I doing wrong? I have tried converting all quads in edit mode to triangles manually in vain, and tested all export variables. I've tried different versions of blender too.

I do believe this is the 15,000th question on this site!

I'm sorry to hear that! I did search for answears on the web but nothing worked. Would you kindly link me a few you know of?

Nothing to be sorry about, this is I believe unique, just a milestone for those of us that are frequenters here.

Oh! I thought you were ironic! sorry! Wow thats really cool actually! :D

Kinda sad it was wasted on such an insignificant question :P

no question is insignificant , but unfortunately I have limited knowledge on the matter ... congrats blender.stackexchange and crew! 15000 questions hurray!

Well, it could have been way worse :), like a duplicate or a really poorly written question, which come along from time to time :/

In the Wavefront file-format, the second number for every element for a face is the texture-coordinate
The quick way to get it running:
Select your object, go into edit-mode, press U and select Unwrap.

When exporting, make sure you have Include UVs selected.

Outcome (only faces):
f 2/1/1 3/2/1 4/3/1
f 8/1/2 7/2/2 6/3/2
f 5/1/3 6/2/3 2/3/3
f 6/1/4 7/2/4 3/3/4
f 3/4/5 7/1/5 8/2/5
f 1/1/6 4/2/6 8/3/6
f 1/4/1 2/1/1 4/3/1
f 5/4/2 8/1/2 6/3/2
f 1/4/3 5/1/3 2/3/3
f 2/4/4 6/1/4 3/3/4
f 4/3/5 3/4/5 8/2/5
f 5/4/6 1/1/6 8/3/6


text:
I have a model and a normal map, can I bake Ambient Occlusion from both?
So I know how to regularly set up ambient occlusion baking in Blender, and I have applied the normal map using Blender Render. However, whenever I try to then bake AO, it does not take the normal map into account, giving me the AO for just the model.
Is it possible to bake the AO, taking into account the normal map, so that all the details are baked into the AO map also?

I'd say you can't by just using low-res mesh (there's no geometry actually, just emulating it); however this should be resolved by baking AO from high-res to low-res into 1 texture, baking AO from low-res into another one and compositing them. This is one of methods discussed here.

In order to bake AO, you need the high-res mesh. Maybe there's a way to convert the normal map to some kind of displacement map and then bake from that? Edit: Apparently CrazyBump can do that? http://www.crazybump.com/

..or Materialize.. the route would be normal map > height map > displacement in hi res geometry > bake AO.

you need to bake in AO from the geometry, not the normal map...you can bake out the original mesh or possible apply the normal map as a displacement to the current mesh...just add a multires modifier before the displacement and subdivide it a few times.

I stumbled upon this topic as I was seeking an answer for the same question.  Though it's an old question, it came up in my search, so I felt I should answer.  After reading this and going back into Blender, I realized that you can now do this thanks to the Ambient Occlusion node.
Simply add a new Ambient Occlusion node into a diffuse node and to the material output.  Route your normal map into the normal map of the Ambient Occlusion node.
Bake as you normally would, (creating an image for it to bake to, etc.) choosing diffuse, and color in the bake options.
Some tips I found on baking.  Set your samples low (it supposedly makes a difference) in your render settings and set your tile size (I usually use auto tile size) for your render tiles to the same size as your map, ie 1024x1024 or 4096x4096 (assuming your GPU has the memory to handle it).
Boom, hit bake, come back 20 minutes later (depending on your resolution) and you have a bonafide AO bake with details from your normal or bump map.  Great for adding extra contrast detail using normal or bump maps.

So this is something I stumbled upon entirely by accident, but it reliably works and is extremely easy. If you take an rgb mix node, change it to an overlay mixer and overlay the albedo and the AO such that you get properly shaded albedo, and then bake to the AO map, it will bake in the normal map detail like it's geometry. I know it doesn't make literally any sense why that would work but it does. I hope this helps out anyone else struggling with this.

Very late at the party but still, i just realizied that if you plug your normal map into the Displace socket of the Output node, when you bake your AO it will include AO derived from the normals.


text:
I for insert frame is disabled or changed
while opening the insert frame menu i accidentally pressed a button that made blender ask me to select a key which i left or right clicked to and now i can't use i to insert keyframes on my armature.
the "I" Key still works on everything else besides the objects i did this to.
any way to reverse this?

after looking into it i found the I key was actually deleted in the insert keyframe menu likely because i clicked instead of gave it a key using the system preference.

Using space to search for and restore the shortcut key i fixed it

Try going to scene settings (icon with the light, cylinder and sphere) and make sure the "keying sets" tab is empty.

Its definitely empty


text:
pan with RMB instead of MMB?
I've got a bunch of Logitech MX mouses (mice?) which work great for most applications. However for some reason pressing MMB to pan and rotate, causes Blender to zoom in even when I'm not scrolling the wheel. Really annoying.
I'd like to use the RMB or LMB as the rotate / pan selector. So MMB becomes only zoom in / out.
Is this possible? I'm looking through Input but not seeing a remap for MMB -> RMB or LMB.

Zoom is Ctrl-MMB - maybe the driver is set to do ctrl click on the MMB? In blenders input settings, change a mouse input and MMB to set the shortcut, does blender show it as MMB or Ctrl MMB?

You're rightly looking in File > User Preferences > Input - it is indeed there, just obscured:

Just set Rotate View and Move View as you like.

I tried to do that, but right-clicking still opens context menu. What's the quickest way to switch RMB and MMB buttons so that MMB opens context menus (in all kinds of views) and RMB would rotate the view wherever that's possible? (I'm on 2.9)

Okay, so 'emulate 3-button mouse' gets me the ability to option-LMB to rotate. That will work. ~


text:
Why doesn't the Graph Editor show my keyframes and connecting lines
I have a Graph Editor open alongside the dopesheet, as you can see in the screenshot (following). The Graph Editor is not showing my keyframes or the connecting lines. I have checked to make sure the eye icon is turned on. I have also check in the previously asked questions and didn't find an answer. This seems really simple, but I don't know what else to do.

The screen shot is a little low res, so it's hard to see.
Your keyframes in the dope sheet are in the 340 to 410 range but the graph editor is set to show the -200 to 200 frame range.
I think if you press the Home key while the cursor is in the graph editor the view should zoom to your keyframes.
Alternatively your keyframes are simply out of view on the y-axis of the graph editor and the Home will also solve this.

Thank you. I understand what you mean about the range. I looked all around and tried different things before I took the screenshot. Sorry for the low-res. It is what it is. I do the best I can with what I've got. I solved it.I needed to select "View Selected" from the View menu in the Graph editor. I've never had to do that before so I'm not sure if it was changed in the factory settings in 2.71. I recently updated, so I figure that's the most likely explanation.
(https://www.facebook.com/photo.php?fbid=10204231949056051&set=a.10204231459683817.1073741845.1147304074&type=3&theater)

The item under view menu in graph editor is missing/not there anymore in v.2.92.
I had to do the same thing of 'Show only selected channels' but from the timeline panel. Posting just in case someone else has the same issue.
Edit: Oops. That is incorrect, I had to first do that in timeline but the keyframes still didn't show up in Graph Editor. The actual way to unhide it was under the 'Filter' button in Graph editor menu.


text:
Can I model a house in a way that I can turn details on and off?
I am building a model of my house with a view to using it to explore different changes as part of a major redecorating project. I have done some work using sketchup, but have run into problems because (for example) adding a skirting board affects the wall, such that removing the skirting board leaves a gap at the bottom of the wall. If the alternative skirting board is smaller, then I have a gap.
I would like to model each room as a simple box to which I can then add (as different scenes?) different skirting boards as well as other fixtures and fittings.
Also I would like to be able to have a view where the walls go semi-transparent to I can show details of wiring or plumbing, but still see enough of the walls to see where the wiring or plumbing is.
I'm a bit of a 3D noob, but have used sketchup enough to get frustrated at its limitations. How would you recommend using parent / child, groups, layers or scenes for this?

There are several ways to go about this. You named most of them in your question actually.. You could use parenting, and you could even use multiple files, however here are the most practical ones I could think of:

Hide and show objects as needed
You can hide the selected objects with H, and you can unhide all objects with AltH. You can also use the outliner to toggle visibility, which combined  with the Groups view, you could use to hide/unhide groups of objects (you can group the selected objects with CtrlG).
Use multiple scenes
For an object you want to appear in more than one scene, select it and press CtrlL> Objects to scene, then select the scene you want it to appear in (aside from the current scene).
Note that modifying the object in any scene will update it in the other scenes as well.
Use layers
You can move the selected object(s) to different layers by pressing M and selecting the layer(s) you want the object to appear on (use Shift to select multiple layers).
Any objects on at least one of the visible layers will be displayed (unless hidden in some other way).
Some useful shotcuts for handling layers:

Pressing numbers 1..9 (0 is layer 10) will set that layer as the visible layer. You can use Shift to keep the existing visible layers visible, and you can use Alt to operate on layers 11..20.
` will toggle all layers visible (press it again to go back to the previous layers)

This is probably the most intuitive option (also arguably the fastest, as you can use convenient shortcuts like M), however you are limited to 20 layers and layers cannot be named (I sometimes write down what is in each layer with the text editor).

I assumed this is just for real-time display. If you want to animate and render this, then that's something else..

thanks, really useful, certainly for now I'm not planning animation. Layer limitations really useful to know up front. Big learning curve ahead!

Yes you can model your house so that you can turn details on and off. You would probably not want to use different scenes, as in Blender, "scene" describes something larger that what you interpret it as. Also, rather than making walls "go semi-transparent", it would probably be easier to make two walls occupying the same space in the mesh, one normal, and one semi-transparent. When you wanted to hide the interior details (like wiring), you'd turn on one, when you wanted to see the wiring, you'd turn on the semi-transparent one, and turn off the solid one.
The same principle would apply towards the skirting. You'd make the various types of skirting you want to consider separate objects, and turn it on or off for display as needed.
This is not the only way to achieve these effects, though.
Blender has the capabilities to do what you want, but in my view, you don't know Blender well enough to achieve the effects you want. I"d suggest you consult my answer at enter link description here, and take one of the online courses I link to there to learn more about Blender before you start trying to do the model of your house. Because of the complexity of the project you wish to undertake, I think it will take much less time in the long run to learn Blender, and then make the model, than to try to make the model and learn Blender at the same time.


text:
Is it possible to use inverse kinematics and Quaternions in Blender?
Is it possible to use IK bones to update quaternion rotation values in Blender?

Yes, you can insert a keyframe and use 'Visual Rotation', this uses the pose with constraints applied, to set the rotation of the pose bones.
Note that if all you want is the quaternion values (without applying keyframes), Python can get the final matrix can calculate them.


text:
Proxied armature groups participating in rigid body simulations
I have a multi shot production where the main character is going to be smashing a few things.
Our pipeline follows the standard set-up of a linked asset (main character) into an animation/lighting/rendering file. The main character is meshes that are deformed by an armature which is grouped in the main character file.
The group is then linked and proxied in the animation file. As he swings his tail around I want him to hit other objects participating in the rigid body (RB) simulation. This is where it breaks.
You can proxy a linked object and apply RB setting to it. Unfortunately it doesn't bring the RB settings across from the source file, but that's OK, it's only a couple of clicks to set it up again.
But if you proxy an armature/mesh group then you cannot add the RB settings, you can only add a force field or RB constraint. To make things trickier - it is a deforming mesh as well.
So does anyone know a way around this limitation? Appending the character is not an option (then we will lose any updates to the character).


text:
3D scene not visible in render
I can see the test scene which comprises of the 3D text Loom-Tastic in the VSE, but when I render it disappears, Why?
VSE

RENDERED RESULT

here is a link to my
blender file

I noticed that the loom - tastic text wasn't rendering. this was due to the fact that the wrong layer was selected in the test scene:

Change the selected box to the one the green arrow is pointing at, and your problem will be fixed

Thanks David, that worked! How do I know which scene layers to select?

The one shown in the image is correct. you can see what layer your object is on by looking for the orange dot on the render layers tab at the bottom of the 3D view.


text:
How can I make a old metal material?
I have this model of an airplane transporter and I need a material for it. I already tried bunch of tutorials and even downloaded ready material, but it's all for smaller objects and my plane is supposed to be enormous. How can I achieve the effect of an old material on a really big object (I want that look you have on all big machines in films (like that flying fortress in avengers etc.) and in other people's models)?
here is my plane (about 50m ground to top)

I can't just scale the texture up, because at this size it is clearly visible that the texture is repeating itself all around the model, no matter if the texture is seamless or not. Is there a way to tell blender to slightly modify the texture each time it is repeated?

It's all about scale, think of a bullet hole, if the model is 2inches high then the hole will be quarter the height of the model, but if the model is 50 feet high then the hole will be a tiny dot on the side.

Something like this? http://gunslinger-studio.deviantart.com/art/Orca-carrier-400394882

yes, something like that

Stay tuned and I will give you some starters. Will have to go to work first. :-)

@Aky-her, you write that you have "tried a bunch of tutorials"; if this one on youtube was not one you tried, it looks to me like the first four steps discussed here would be worth watching, and the fifth step on lighting if this is a display model, as opposed to use in a game. I suspect that if it is for use in a game, the lighting of an aircraft will be dependent upon the Game Engine you are making to model for use in.
But you also write that your model is 50 meters high; that suggests to me based upon the screenshot you provide with the answer that the length is on the order of magnitude of 200 to 300 meters, and that the wingspan is 250 to 300 meters. This would require a really, really large piece of metal to make it all from the same texture!!! Other vehicles on the same order of magnitude are some of the ultra-large cargo ships, like the Malaccamax and Chinamax sizes. But these ships are not made from a single piece of metal; they are fabricated from many much smaller elements, so a repeating texture might not be such a bad thing, in this case. If it were me, I'd suggest finding a number of textures, perhaps 12 or more, and use those at random to texture smaller parts of your object. These not be 12 separate textures; rather you might use a texture that is larger than what you intend to use, and map different elements of your model to different parts of the texture. Thus gives the model an overall visual cohesion, but still reduces the appearance that you are using multiple exact copies of the same texture.
In fact, I would suggest that using a very large texture that would be convincing, would be unconvincing in the long run, because viewers would expect to see some repetition in any very large object.

To make a texture seem larger and less repetitive, you can use two (or more) of them, on top of each other. They should be blended together, either at constant alpha, or a noise function. This can be done in a bitmap editor (gimp or photoshop) or in the node editor.
One of the tricks is to repeat them with different period. So if texture A repeats 5 times, texture B could repeat 4 times. The two patterns will interact and blend together to create something that looks much less repetitive.
Here is a repetitive texture:

And another:

But when they are blended together they appear less repetitive.

Of course, it gets better if we add a third at a different period. To spice it up, we can blend them using a noise texture. Example here:

I also used a node group from "Project Magno / Tears of steel", the open movie project with cycles. It is an box map that blends different textures from 3 different directions. Instead of making a complicated UV-unwrapping.


text:
Bevel a Procedural Texture?
Is it possible to bevel the outline of a procedural texture?
This would be the desired effect (result prepared with an image editor):

For example, we have the default Brick Texture, and its Mortar Size can be thickened, but there is no built-in parameter to taper off the edge with a bevel to give it a more rounded look.

Bricks with the default settings (left) and thickened mortar (right)
The best idea I can think of is to stack Brick Texture nodes of different Mortar Sizes to create a stepped gradient. That however has resolution limitations, plus using that many nodes may negatively impact render time.
So I am wondering if anyone with a bit more vector know-how than myself knows of a way to generate a vector curve that transitions between two mortar sizes to achieve the result more elegantly. Any ideas?
Here is a concept image - the blue curves representing the vector transition:

This is not possible by default. it will take some complex work arounds if possible at all.

I have pondered how to do this exact type of thing in my head for a long time.  As far as I can figure out it is not possible.   Cycles has no concept of an entire texture, just the color of the pixel of the texture at the particular point given by the mapping coordinates of the point where the current ray has stuck the object.  (If that made any sense at all.)

@PGmath Nice to know I'm not the only one pondering. I just added a concept image to the question, but I don't know that it helps or changes anything. It seems like there ought to be a way to push vector data through the brick texture on its Z axis and bend it toward a target (the smaller brick faces). But I get what you're saying as well, and I'm not surprised that people are saying it's probably not possible. I had to ask the question though to ease my curiosity.

I think OSL would be ideal for this ?

Based on a modified version of this OSL bricks shader, I added a smoothness parameter that generates a smoother transition from the mortar color to the brick color (Currently will work in the desired manner only with values ranging from 1-10. Will probably improve algorithm tomorrow).
# include "stdosl.h"

shader brick(
    float BMWIDTH = 5,
    float BMHEIGHT = 5,
    float MORTARTHICKNESS = 0.1,
    point Vector = P,
    int   smoothness = 1,
    color Cbrick = color (0.5,0.15,0.14),
    color Cmortar = color(0.5, 0.5, 0.5),
    output color Col_Out = color(0.7)
)

{
    color Ct;
    point Nf;
    float ss;
    float tt;
    float th;
    float sbrick;
    float tbrick;
    float w;
    float h;

    float x = Vector[0];
    float y = Vector[1];

    float smoothnessFac = 0.1;
    for ( int i = 0; i < smoothness; i++ ) {
        float MWF = MORTARTHICKNESS * ( 1 + i * smoothnessFac ) * 0.5 / BMWIDTH;
        float MHF = MORTARTHICKNESS * ( 1 + i * smoothnessFac ) * 0.5 / BMHEIGHT;

        ss = x / BMWIDTH;
        tt = y / BMHEIGHT;

        if (mod(tt * 0.5, 1) > 0.5)
        {
            ss += 0.5;
        }

        sbrick = floor(ss);
        tbrick = floor(tt);

        ss -= sbrick;
        tt -= tbrick;

        w = step(MWF,ss)  - step(1-MWF,ss);
        h = step(MHF, tt) - step(1-MHF, tt);

        if ( i == 0 ) {
            Ct = mix(Cmortar, Cbrick, w*h);
        } else {
            color current = mix(Cmortar, Cbrick, w*h);
            Ct = mix( Ct, current, 1 - i * smoothnessFac );
        }
    }

    Col_Out = Ct;
}

This is awesome! Nicely done. Any idea why the scale is so different from the Cycles Brick Texture? I made a cube and plugged the same vector data into both textures but the OSL texture is huge and I can't seem to get it to line up with the Cycles one. (I tried to layer them with a MixRGB node on Multiply so that the brick color variation of the original Cycles texture gets included)

There's something of a workaround, but it stops you from being able to tweak it. Turn all the settings black and white and render it with a shadeless node (hook it up to the emission color) on a plan large enough for your texturing needs. Render and save the image. Blur the edges in an outside image editor, making sure you keep the blurring within the boundaries of the white bricks. Alternately, for a sharper bevel, apply 50% gray to the inner edges of the bricks. Even a gradient out to the black. Then reapply the texture as an image texture displacement.
The gray is what gives it that level difference.
I hope that helps.

I think the OP is looking for a procedural method, his example was made using this method.


text:
How to control the timing of Absolute Shape Keys?
I understand that Absolute Shape Keys are for creating a deformation sequence, and are more practical than Relative Shape Keys when many deformations need to happen one after the next. The trouble is that I'm not sure how to set the timing to match my desired animation length.

1. Why do absolute shape keys increment by 10?

What does the 10 represent? Am I correct in understanding that it is not keyframes, nor seconds, but rather some arbitrary value that gets calculated as a result of the keyframing of the Evaluation Time slider. Why 10 instead of 1?
Furthermore, can this value be nudged to make a shape key come earlier or later relative to the others? The active/selected shape key shows two triangular arrows to the left and right of the value, but they can't be clicked.
2. Why do absolute shape keys need to have their timing reset? When to reset and when not to reset?

3. how can we keyframe a looping animation of absolute keyframes? How can we find out what frame number needs to be keyframed in order to make that animation loop smoothly? And does the first shape key in the list need to be duplicated down to the last position in the list in order for the tweening/morphing to loop?
The best documentation I've been able to find on absolute shape keys is in The Blender Manual, but it's pretty vague. It basically says "reset and drag the slider". And none of the shape key tutorials around the web that I've seen cover absolute to a useful extent.

Controlling the timing of absolute shape keys
You can add keyframes for the "Evaluation Time". The easiest way in the UI is to hover over the Evaluation Time slider and press "i". This will map your defined shape keys to particular frames in your animation.
Attempted answers to your other questions

The "frame" for absolute keys does seem to be separate from the usual meaning of "frame" in Blender and not related to keyframes. Not sure why it increments by 10 or why it's not editable, but it ends up not mattering much because of the fact that you can set the eval time and make keyframes for it.
Resetting timing seems to be an organizational tool. If you delete one of the shape keys, you'll have a gap of 20 in the eval time from one to the next, and resetting lets you get back to a list that increments by 10. If there's a deeper reason, I don't know it.
As far as I can tell, the best way to loop is, as you suggest, duplicating the basis keyframe for the final keyframe. I tried setting a final keyframe with evaluation time set to zero, and the result was my object rapidly undoing all of its shape changes, one at a time, on its way back to the basis shape key. To connect the loop after making a keyframe for your final shape key, I'd try making one more keyframe for your basis shape key in the very next frame to stop the intermediate values of eval time from getting animated. (If you want to avoid the doubling of a frame, you could also set eval time to a fractional value corresponding to what the shape of the object would be at that frame if it were continuously morphing.)

The timing of absolute keyframes can be adjusted by the evaluation time value.
For instance if your frist base key frame is set at 0 you can set the next interval by adjusting the evaluation value to what you would like then add the next key frame.
Note I have no clue how to adjust the intervals of existing key frames.


text:
BI "Front/Back" vs Cycles "Facing" - Angle of Incidence in Blender Internal
In Cycles the Layer Weight node has an output called Facing.
In Blender Internal the Geometry node has an output called Front/Back.

Do these perform the same function and just have different names, or are they doing something different?
Thanks

Do these perform the same function and just have different names, or are they doing something different?

No, they don't. They perform something different:

Facing output from Cycles Layer Weight node gives angle of incidence. You can read about this node and how it compares to the Fresnel node here: Relation between Fresnel IOR and Layerweight blend?
You can make it from scratch in Blender Internal node material like this:

Front/Back output from BI Geometry node is the same as Backfacing output from Cycles Geometry node and gives a binary true/false (1/0) if a face is oriented to the camera with it's normal or not.

Thank you, that's helpful. Do you know if there is any way to get Layer Weight data into a BI node setup? Or is "angle of incidence" not applicable in BI?

Thanks for that edit! That's just the info I was looking for!

@Mentalist If this is something useful in BI you can also rephrase the question so it's better searchable to how to get incidence angle in Internal;)

The Cycles Layer weight node is used to emulate Dielectric materials, useful for example for layering diffuse and glossy shaders to create a plastic material with Fresnel effect. It's used as a factor mask between 2 shaders when they are combined with the "Mix shader" node.
Whereas Geometry node for the blender internal is used for specifying how light reflects off the surface. This node is used to change a material’s Normal response to lighting conditions. Use this node to feed the Normal vector input on the Material node.
Answer So no they are not the same thing.
The weight node affects how 2 shader composite on top of one another. The Geometry node in Blender Internal uses the material's setting to overwrite your mesh's normals.
However there is a Geometry node that is in Cycles that is similar to the Geometry node in Blender internal. I have created a small blend file for your reference.

Also check this video out ... it shows how the Cycles geometry node is used.
https://www.youtube.com/watch?v=lOSoGvw97XI

This is not accurate. The Layer weight node also specifies how light reflects of the surface, and is useful for every material, not only dielectrics. Geometry node has other outputs besides the Normals which gives it far greater usage than you state.

Well he was specifically asking about "Front/Back" option of the geometry node vs the Layer Weight "Facing"  is he not?


text:
Best settings to reduce cycles memory consumption
I'm trying to render a very complex scene with blender and it seems to be using too much memory. I've already tried using tile size as a multiple of total resolution and spatial bvh splits.
Can anyone recommend any settings that can reduce memory consumption of the scene?
Note, I'm talking about a still render.

GPU or CPU? (see the wiki on GPU rendering)

My GPU and CPU do not have much difference in their render time.So,help for any of them will do.

Not sure this is such a useful question to ask, AFAIK there are no knobs to tweak to give better memory performance. A more useful question could be to give the use case that causes excessive memory use, then ask for ways to resolve.

@YashAggarwal memory wise, CPU and GPU behave a bit differently, the GPU has it's own memory (and usually has less than the system memory used by the CPU)

Here are some hints for better memory usage.
Though with only general info its hard to give a good answer.

Avoid floating point textures where possible - typically EXR, HDR.(includes 16bit PNG, TIFF, JPEG2000 which are converted to floating-point), these use 4x memory.
Avoid displaying textured objects in the viewport (OpenGL-GLSL), this will load textures into memory which is not shared with Cycles - so the textures get loaded twice.
Use instanced objects where possible.
Take care using subsurf, curve-render subdivision levels.

The only other suggestions would be to reduce memory use from the rest of Blender.

Render in background mode. or...
Reduce undo steps (undo can use a lot of ram), you could even dissable undo.

There may not be a whole lot you can do, if you already checked that you don't have excessively high geometry or high-resolution textures, perhaps you just have to render less complex scenes or buy more ram.

Is the power of 2 texture trick relevant for cycles?

Thanks,I reduced the subsurf of most of the objects and it finally rendered.
@gandalf3 - I've not found textures with power of 2 having much effect in cycles with my other projects,but i'm not sure

Can the jpeg texture also affect the rendering quality? I face this weird texture issue (https://i.sstatic.net/sqxXg.png) when rendering on GPU vs CPU machine.

If you are rendering Fur, pay close attention to the Cycles Hair Settings-Root.  the difference between 0.10 and 0.20 made render possible with enough fur and children to look good.


text:
Why are some faces in my mesh darker?
While rendering a mesh with smooth shading on, I get a dark region/shadow on certain faces.
The effect is more evident when smooth shading is applied to a mesh containing ngons, with the ngons turning black when rendered.
The blackening effect is visible in the viewport too.
How can I solve this problem?

Check your normals. If some of the faces are turned inside out, pointing inward into the inside of the mesh, they can be seen as dark areas.
You can recalculate the normals in Edit Mode using ShiftN or under Mesh > Normals > Recalculate ... (The entire menu can also be accessed by pressing AltN).

After recalculate normals.

Note that normals will only be recalculated for selected faces, so you probably want to select all (A) before recalculating.

For modern versions of blender (2.8+) the key to access the normal menu is alt-n NOT ctrl-n

Face Normals
In Blender, each face has 2 sides: one is considered the outside and one is considered the inside. The Face Normal indicates the outside face.
Blender displays faces differently depending on whether or not the normal is facing the viewer.
If you want to view your normals, you can open the Properties panel (N) and in the Mesh Display section, click on the Face Normals button:

(NOTE: Vertices also have Normals. You can view those by clicking on the Vertex Normal button here)
You can then flip normals of selected faces while in Edit mode by:
3D Viewport Header -> Mesh -> Faces -> Flip Normals
Or, if you want to quickly fix all the normals in your mesh, while in Edit mode you can use Recalculate Normals:

3D Viewport Header -> Mesh -> Normals -> Recalculate Outside (CTRLN)
3D Viewport Header -> Mesh -> Normals -> Recalculate Inside (SHIFTCTRLN)


text:
Setting the context for cloth bake
I'm having trouble using bpy.ops.ptcache.bake().
I get the error message bpy.ops.ptcache.bake.poll() failed, context is incorrect no matter what I set the context to. I tried using bpy.context.area.type="PROPERTIES" but I still get the same error.
How can I set the context in order to bake a cloth simulation in a script?

Related: http://blender.stackexchange.com/questions/4963/baking-smoke-on-headless-machine?rq=1

You need to override the context for the operator to work. similar to this answer on baking fluid or smoke, you can bake the cloth cache for every object in the file which has a cloth modifier like this:
import bpy

for scene in bpy.data.scenes:
    for object in scene.objects:
        for modifier in object.modifiers:
            if modifier.type == 'CLOTH':
                with bpy.context.temp_override(scene=scene,
                                               active_object=object,
                                               point_cache=modifier.point_cache):
                    bpy.ops.ptcache.bake(bake=True)

Thanks. I missed it for some reason. What should I replace domain_settings.point_cache with? since a cloth has no domain (I took out that last If, btw, for the same reason.

Ok, so I tried using only modifier.point_cache, but now it starts baking, then gives me the same error as before, only before it it says things like PyContext 'window' not found or PyContext 'region' not found. Any tips?

@Shef It works for me. AFAIK those PyContext messages are just warnings, including the context override for those is not actually necessary in this case.

ptcache.bake(override is no longer supported in v3.4.  Can someone update this answer?  thx

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


text:
Is it possible to append objects to the same layer as they are in the source file?
When appending objects to new .blend file, is it possible to make objects to retain their original layers?

Do you mean you want them to all append on the same layer, or for each object to append on a different layer?

Sorry, each object on the same layers that stay in the previous blend file. always, when I append the blender file, the objects append all in the one layer only.

When you click append, select all your objects then in the lower left hand corner, there should be an option panel. Untick the Active Layer option.


text:
Why is my object in blender bigger by approximately a factor 10 than in my CAD program?
I export my CAD models, which I create on Creo 2.0 (originally called Wildfire 5.0) as STL files, and import them into blender.
But when I compare their sizes, the objects shown in blender are usually bigger than the objects shown on my CAD program by approximately a factor 10.
Did blender confuses the unit? Because when I exported the object as an STL file, it didn't give me an option to set the unit. Is there a default unit for STL files?
The units I usually work with on Creo 2.0 are mm.

Blender's default unit system is None, so it uses its own "Blender Units" (BU). But if you switch it to Metric in the Scene tab (Properties Editor), you'll notice that nothing changed. And 1 BU will now be 1m.
With Metric enabled, there will be a property available called scene Scale. You can set it to 0.1 to correct the scaling problem (granted, it's really 1:10). But I worry not all exporters will respect it.
So it might be better so Select All objects (A) and scale everything down (S, type 0.1, Enter). Make sure the scaling center is the scene origin (0,0,0), e.g. reset the 3D Cursor (N-sidebar, right-click on one of the 3 value fields and click Reset All to Default Values, or press ShiftC) and use it as Pivot Point (press .).

Thank you, I did reconsider the scaling option, but I just want to know why it converts mm (it's original unit) to m when it is imported into blender as a STL file

Seems like there is no unit system specified in STL, but either or both, Credo and Blender may do some conversion or make assumptions about the scaling. The factor 1:10 is weird though, maybe 1 unit = 1mm in Credo export, but Blender imports 1 unit as 1cm (1:10)? "4) Generally STL file has no UNITS attached to it so its always good practice to send overall part sizes along with your STL file" (source)

authors: Вася Сукачев


text:
How to superimpose a lot of textures in one material in the BGE?
For my game I realized that blender doesn't allow us to superimpose different textures on one mesh. I'm forced to create only one texture for each material.
What I would like to is being able to let the choice to the players to chose between different "skins", and different complexions on the "skins" like some spots, scars, tattoos, etc.
So I need to be able to superimpose different textures on one material.

@gabring Before answering you I will examine these two options because I didn't knew anything about GLSL.       Thanks a lot.

@gandalf3 i'm sorry about my english I'm a french canadien ahah. Thanks for the correction.

@gabrign I will use the multitexture.

after experimenting different things, I've finally find out how to do it !
To superimpose different textures on one material, you need to go to the very end of the texture panel, in the influence tab you will find the blend option. For the background texture you let this option to "mix" and for your others textures put this option to "add" and it will mix yours textures. (you won't see it in your "texture" viewport shading but you will see it in rendering). If you let the blend option to "mix" for the others textures you need to put them under the bacground texture. This last option won't mix your textures but it will put your last textures on the previous textures. So if you want to see the background texture under the others textures, yours others textures need to have some transparent (alpha) in their images. With these two option you can change the opacity
of your textures with the difuse:color option of the influence tab.


text:
Smooshing faces against each other: Making features coplanar, while preserving surrounding geometry
How can I make the base of the pyramid coplanar to (smooshed up against, so they are flat against each other) the slanted face of the wedge (pictured below)?

The objects and their origins need to stay the same.
If all of the pictured geometry were part of one object, and #1 was not a requirement, how could this be achieved? (If this were a mesh level transformation instead of an object level transformation)

Multiple objects:
For this you can use custom transform orientations again:

Select the face and press ⎈ Ctrl⎇ AltSpace:

In object mode, select the object you wish to align and press Align to transform orientation in 3D view > Header > Object > Transform:

Once the object is aligned, use transform snapping with face as the snapping element.
If the bottom of the spike thing is already the closest face to the target, then closest should be fine as the snapping target. If not, use the 3D cursor trick as explained here.

I think you should be able to use transform snapping for rotation too, but for no apparent reason there is an inexplicable gap when snapping without a pre-aligned model..

I've reported this as a bug.

Single mesh:
A similar approach to this can be used:

A custom transform orientation aligned to the target face will help too.


text:
How to access bake margin from python?

I'm building a color ID baker and I'd like to access the margin slider on my addon. I've looked in the API and gone through numerous attempts, but I can't quite figure out the python command to change it, much less implement it elsewhere.

The bake settings are a collection of settings available in bpy.context.scene.render.bake.
So, to access the Margin you would do:
bpy.context.scene.render.bake.margin = 16

This was a little tricky to find, but there were a few hints.

Hovering over the Margin property showed the tooltip, which revealed that the bake options were going to be in the Scene's properties.
Baking is linked to rendering, which made me think to look under the bpy.context.scene.render settings.

The best way to explore the Api is via blender's Python Console editor and use Autocomplete to see the available properties of a given class, e.g. typing bpy.context.scene. and pressing Ctrl+Space will reveal:
>>> bpy.context.scene.
                      NWBusyDrawing
                      NWLazySource
                      NWLazyTarget
                      NWSourceSocket
                      active_clip
                      active_layer
                      alembic_export(
                      animation_data
                      animation_data_clear(
                      animation_data_create(
                      appended_header
                      as_pointer(
                      audio_distance_model
                      audio_doppler_factor
                      audio_doppler_speed
                      audio_volume
                      etc......
                      etc....
                      etc..

Epic! Thank you Ray :) It sucks being a noob.

I ran into this same problem and tried Ray's above method, but no matter which parameters I supplied, i.e. 8 px vs 16 px, the resulting UV map showed no difference.
After a lot of tinkering I found that the proper line to access the Margin property is:
bpy.data.scenes["Scene"].render.bake_margin = 8

My answer still works for me. All that using bpy.data.scenes["Scene"] does instead of bpy.context.scene is that it uses a specific scene ('Scene'), instead of the current one.


text:
Texture space vs. poly count: Which is optimal / best practice in a game engine?
The model I'm building here is for a game engine.

Is it a better practice to 'glue' mesh parts together to save UV space? Or would it be better to conserve poly count? What is best practice from a professional perspective?
I have here a model that is very large. After trying to split the materials up (accounting for 512 pixels per meter) I ended up with more materials than I wanted. I thought that I might be using up too much texture space.

To narrow the answers down, it would be good to know which engine you are aiming for.

I didn't know that was relevant! lol. I'm using Unity 5 and building for PC 64.  After some time dwelling on this it occurred to me I was dealing with an extreme case of the above example. Perhaps it's a part of modeling skill to find a good balance (?) and not such a conundrum.

Technical Investigation
Most modern 3D game engines and GPUs can technically deal with a very high polycount. The main reason why game companies cut them down is to make games playable on lower-end systems and also consoles (once they are 3 to 4 years old, they can't keep up with a modern high-end PC) and mobile platforms. Therefore it's important to plan for the game engine and also the hardware platform you are aiming for.
One problem that remains across all platforms and all 3D game engines is that too many materials put a high load on the system. Loading and processing materials produce draw calls, therefore you want to keep them as low as possible by reducing the materials to the bare minimum for each model.
If you want to go deeper into the topic, I highly recommend to read Simon Scheibt's "Render Hell".
Modeling 3D Game Assets
If it comes to the question of "good practice" or "best practice", you possibly get more than one answer, depending on who you ask.
Reducing polycount has been the subject of controversial debate for a long time. Some people say that triangles are bad in general (even for assets that aren't animated), others tell you the complete opposite.
Personally I follow the rule "If it doesn't change the visual appearance of a model (geometry and shading), it's not necessary".
My "working model" is composed entirely of quads. Then I create a copy of it and add detail for the high-poly version. A second copy will be the final low-poly version, where I eliminate all unnecessary vertices by sliding them across the edges without changing the geometry.

Another good method to keep the polycount down without loosing too much detail is to compose assets out of several submeshes, when necessary.
While it's always nice to have a "clean topology" there are certain cases where it simply doesn't make sense, for instance if you have to add many additional loopcuts and vertices for the sake of keeping your asset as "one mesh".
One Mesh (including submeshes) and one Material per Asset
Simply put, that's the second rule I try follow, whenever possible. Big models like buildings are problematic when it comes to texture space. In this case I'm a big fan of the modular approach (as known from the Elder Scrolls since Morrowind and Fallout 3, NV and 4).
Another method of adding detail to diffuse maps without creating insanely big textures is using secondary maps or detail textures. Modern 3D game engines like Unity 5 and UE4 are capable of cross-blening a second material onto a model, when the camera comes close to it.

Thank you metaphor, that's a very thoughtful answer. My workflow is similar to yours already :) I very much appreciate the insight into this. I haven't reached a polygon limit in Unity before, but as common practice I try to keep my models low. With all this in mind, I think I'll try glueing my mesh parts together in most places to save texture space, and not worry so much about topology or poly count. My model is a huge sci fi door and it's almost the size of a building.


text:
Is it possible to color-code the tabs on the toolshelf?
One thing I've been wanting to do is color-code the tabs on Blender's toolshelf, either with an existing addon somewhere, or by myself in Python. There are so many great addons going on the T-panel that I can't read what's on the tabs anymore.
Ideally putting an icon on a tab, or at the very least making each a different color, would help a lot. If there isn't an addon, can I do within Blender's Python?
My knowledge of Blender's Python API isn't great but is improving. I'd definitely make this a goal but I'd like to know first if it's even possible.

In blender's preferences for the 3DView theme settings, almost at the bottom, you will find the colours used for drawing the tabs.

This is a global property that is used by every tab and the only way blender offers to alter the tab panel colouring. You could adjust your theme so that the Tab Active and Tab Inactive colours are lighter so that there is more contrast with the text to make them easier to read.
In general blender doesn't offer ways to adjust the UI as far as colours go, almost every colour used is defined within a theme so that the UI stays consistant.

That really sucks :P

I think tabs with colors or icons would really help the tool panel a lot. It should be just like the Properties panel imo. The toolshelf is always a war zone. I would much rather have an icon or a visual reference rather than text, but thanks anyway for the answer!


text:
2D flow simulation over a surface
I'm very new to blender but keen to learn more. I have used a lot of 2 and 3D modelling packages as well as a number of GIS applications.
I'm just trying to work out if I can model a fluid flow over a surface, ie a DTM (digital Terrain model) which I understand needs impotent as a tiff or similar image file.
What I want to do is simulate flood water across a surface/DTM.
If so, is there somewhere that would help me get started?

Will you add more to your question, making it more specific? Also when you say DTM do you mean "demographic transition model"?


text:
Why does undo select all channels in graph editor?
I select any channel (with only show selected option or\and with show only selected curve keyframes option on) then modify keyframes on f-curve, then press CtrlZ for undo and all channels become selected again.
Which settings have influence on that? All versions of blender on my PC have same behavior.
Here is a gif of the problem.

Looks like it's undoing till the moment when you deselected all the other FCurves and selected only one to edit. "All versions of blender on my PC have same behavior" which versions are these? Do you use the latest one?

these are 2.76-2.79. It happens with bones in pose mode. When you insert a couple of keyframes on any control of rigged character then go to graph editor you see that all channels and keyframes are already selected there so you are maybe right about undoing it to the start.. But in object mode if i keyframe cube for example, channels in grapheditor are deselected and after undo channels stay deselected... So it happens with bones only


text:
Cannot rip multiple disconnected vertices
I've searched the internet, and have seen the code which generates this error.  While I've been a programmer for more years than I can remember, I'm still quite new to Blender (and I have a feeling, this can go on for quite a while in spite of handling a massive learning curve. ;-))
Anyway, I am making a model of my home, and I decided I wanted to separate the inner walls from the outer walls to place them in separate layers.  Everything was going fairly well using rip.  I would run across some duplicates, or the occasional mismatch in closeness which weren't merged.  I handled by either merging, then ripping, or removing duplicates.  However, I came across one wall section which just won't rip not matter what.
To me, I'm thinking that somehow Blender thinks one or more of the vertices belong to one piece, like the inner, and the other one or more of 4 belong to the other side, like the outer wall.  And I'm getting the error message "Cannot rip multiple disconnected vertices", which according to the code, could be fixed, but apparently has yet to be done.
Details are included in the code as follows: "When calling edge split we operate on tagged edges rather then selected, this is important because the edges to operate on are extended by one."
So, this appears to be a problem with referencing the edges and what face they belong to, or some such thing.  In a couple of cases, I deleted the faces, leaving only edges and vertices, and the rip worked, in another I had to excise a piece of the inner wall, and then grab and move the edge close, without merging the vertices, to keep the concept of separating the join, or basically unwelding (as I've heard some say).
But, this problem seems to show up a bit, now that it's reared its ugly head, and I'm hoping someone can tell me how to fix the problem mentioned in the code, or explain the difference between a "tagged" edge, vs a "selected" edge.
I have a feeling if this was an easy fix, it would have been fixed in code at creation; so, I'm presuming it's not an easy fix.  This really impairs the Rip function, which is a very nice feature, from my understanding this is a new feature, and I feel fortunate that it exists at a time I'm just starting out in Blender.
So, is there any help out there on either fixing the specific problem regarding why there is a 'tagging' vs 'selected' problem.  I do have a lengthy workaround; but, it would be nice to either see this fixed, or I could report it as a bug, or maybe something totally different?

if it is a bug and you can reproduce then it is worth doing a bug report https://developer.blender.org/ .

What version of Blender are you using?  Can you isolate the portion of the model that is causing problems and upload it to PasteAll.org with the link pasted in here?  Are you using "rip", "rip-move"(also just called 'rip'), or "rip-move-fill"?

I think it would be beneficial if you could include an image of the mesh you are trying rip or even upload a blend file to http://blend-exchange.giantcowfilms.com/

Thanks, I would have filed bug; but, I'm impatient, and I found workarounds!  I cut out a piece of the inner wall [delete], then deleted extra edges still connected to outside wall.  At best it was a clean removal, at worst it left a missing face in the outer wall.  Those that worked, I was able to select four vertices that were in common to both inner and outer wall, and it ripped just fine; Selecting the common face didn't work, giving the standard error about faces, so I used verts. I used "rip", don't know about rip-move-fill.

I think your problem is that you select all edges which together constructs a face, thats not possible, you have to unselect one edge to Rip that face, but then its same than Split-command to face.

I zoomed in very close and found that what I thought was one face was actually two faces, each having 3 vertices in common and one vertex each face  not merged and independent. So one corner vertex that I though was one vertex was two vertices, so the two faces could not be ripped.  Does that sound right?
What I had done when I made them was assume all four vertices of an extrude were close enough to merge (when snapped) with the four vertices of the other object, but they were too far apart and only three vertices merged, one vertex did not merge, The merging planes not being parallel.

Thanks guys, I think the problems were multiple, when I made the join, I extruded faces that were not parallel with the joining face and some vertices merged, and others didn't.  I probably need to loosen the tolerance for the merging vertices next time, even in carpentry 1/16" off is OK ;-) But, Blender can do thousandths of an inch, my merge vertex tolerance was too tight, if that can be set, not all vertices were merging when I joined during face extrude at build time, later I could not rip, I think. But, thanks for the suggestions.  I'm still new.

"some vertices merged, and others didn't" Are you saying that some vertices merged without you trying to merge them, due to their close proximity? Rather than adjust the proximity values to avoid accidental merging, it would probably be better to turn automerge off entirely, in the options settings.