text:
Best Tile Size for Blender Internal Renderer and Cycles
There've been a few discussions about tile sizes for Cycles, but none that I can find about that of BI. Since it renders with the CPU, does it follow the same rule as cycles where smaller is better (to an extent of course)?
I'm sure it depends a lot on the content of the scene, so in what case are bigger tiles better than smaller ones, other than the general GPU/CPU rule.
Is it more important to stick to powers of 2 (32,64,128...) than it is to keep all tiles the same size?
The differences between render times are often very small, so perhaps a good test would be to render an animation (with a moving camera) and average the times.
I've created an addon that figures out the best size for Cycles and I'd like to extend this to BI as well, though I've not used the renderer for quite some time.

See also 4 Easy Ways to Speed Up Cycles, tip #3. I've had significant (30-40%) increases using those or similar values, though it varies from scene to scene, on a GTX 680.

This concerns cycles only: Tile size can vary widely and has to be changed for optimal performance (if you change resolution or render device). So use the "Render: Auto Tile Size" Addon that comes with Blender. It sets size automatically and takes away the work and guessing. I don't know why this isn't switched on by default.

@nigratruo nice Addon indeed!

I would say it depends a lot on the scene and the hardware.
BI:
Some tests rendering the default cube scene at 960x540 pixels:
Tile size: 32x32 Render time: 00:01.02
Tile size: 64x64 Render time: 00:00.89
Tile size: 128x128 Render time: 00:00.86
Tile size: 256x256 Render time: 00:00.87
Tile size: 512x512 Render time: 00:01.27
A more complex scene at the same resolution seems to go faster with larger tile sizes:
Tile size: 32x32 Render time: 01:53.57
Tile size: 64x64 Render time: 01:46.15
Tile size: 128x128 Render time: 01:45.26
Tile size: 256x256 Render time: 01:43.22
Tile size: 512x512 Render time: 01:43.09
Using the same scene at 960x540, I roughly timed the amount of time it took to render one tile. (This estimate is very rough because the time changes dramatically between different tiles, I just timed one tile):
Tile size: 120x67 Render time: 02:23.89 (approx. 12 seconds per tile)
Tile size: 64x64 Render time: 02:33.31 (approx. 6 seconds per tile)
Tile size: 300x300 Render time: 02:24.60 (approx. 30 seconds per tile)
Tile size: 200x200 Render time: 01:49.57 (approx. 10 seconds per tile)
Tile size: 100x100 Render time: 01:42.43 (approx. 14 seconds per tile) (fastest)

The fastest time here has the same settings as the slowest setup for cycles:
At 500x500:
Tile size: 128x128 Render time: 00:41.53 (fastest)
Tile size: 100x100 Render time: 00:41.92
At 512x512:
Tile size: 100x100 Render time: 00:43.67
Tile size: 128x128 Render time: 00:47.84
Cycles:
Using Mike Pan's famous BMW benchmark scene at 960x540 with 10 samples:
Tile size: 64x64 Render time: 01:51.03
Tile size: 100x100 Render time: 02:02.03
Tile size: 128x128 Render time: 01:49.64
Tile size: 200x200 Render time: 02:00.39

Some tests to see how much varying sizes and using powers of two affect render time:
At 500x500 px:
Tile size: 100x100 Render time: 00:46.86
Tile size: 128x128 Render time: 00:53.42
At 512x512 px:
Tile size: 128x128 Render time: 00:50.54
Tile size: 100x100 Render time: 00:49.46

Conclusions:
To find a general rule for deciding optimal tile sizes for any kind of scene, one needs a lot more testing data with long renders etc.
To really look at this in detail, I think some addon which would send tile settings and render times to a database would be necessary.
IMO, Setting the tile size to ~100x100 or ~200x200 and adjusting to fit evenly in the render dimensions is good enough.
However, from the tests I did above it does seem that maintaining a consistent tile size helps.
Power of two tile sizes seem to have no apparent effect.

Larger seems better on CPU, and that's probably 'cause GPUs got hundreds of units and CPUs only a few cores. Theoretically, 1 tile per CPU core (maybe +1 to ensure all computational power is used) give best render time, whereas a GPU should perform best with hundred(s?) of tiles.

@CoDEmanX, sounds like a logical theory but in reality it's the opposite. A GPU (despite having hundreds of cores) only renders one tile at a time. Bigger tiles gives faster renders. For CPUs (many threads) smaller tiles are quicker.

@gandalf3 Could you expand on this answer since my updated question? Including GPU and Cycles results.

@GregZaal I don't have a cycles GPU (yet), but I'll update this

Not exactly what I was hoping for, but better than the other answers. Here's your bounty.

I guess you need to take cache misses into account when tiles becomes large.

@gandalf3 I wonder, what would happen if tile size is larger than resolution? Would be be set to the image resolution automatically during rendering?

In one case (100 vs 128 in 960x540 Cycles render) the power-of-two tile size reduces render time by 10%, and in another (500x500 render) it increases by 14%.  While that isn't systematic, I would suggest it is at least an apparent effect.

@Amir Yes, that's what happens.

Think of the number of tiles as the number of parallel tasks that the computer splits the rendering into.

If the tile size is too big (too few tiles), then the CPU/GPU gets starved because there are more available computing power that's not being used.
If the tile size is too small (too many tiles), then the overhead of switching tiles becomes a bottleneck. That's why 1x1 tile is not a good idea, even on a GPU with a gazillion cores.
The problem is CPU and GPU behave differently, a \$200 CPU might have 4 cores, but a \$200 GPU could have 100+ cores. So this is why optimal tile size for CPU and GPU are different.

In practice, I find that tile size of 100x100 to 200x200 works well in almost all cases. (I find no evidence that pow2 values perform better)

A Geforce 760 (a $250 USD card) has some one thousand 'cores'. Although I don't think that translates to 1000 logic cores because GPU cores work in some kind of thread blocks. The point is, GPU is still much more parallelized than a comparable CPU.

For each tile, Blender internal will loop over all objects, and if the object bounding box overlaps the tile, all polygons or hairs in that object.

This is potentially slow on high poly scenes.
That's the main difference with Cycles CPU rendering when it comes to performance, both Blender Internal and Cycles have some constant per tile overhead, but only Blender Internal has overhead that depends on scene complexity. So generally you have to be more careful in not making tiles too small with Blender Internal when it comes to CPU rendering.

I would add that all though the graphic card has more cores and can therefore manipulate more data at once than a CPU the limiting factor is the graphic cards memory. So the size of the tile should be less than the cards memory but as close to it as possible.
The computers bus is the limiting factor as the system Ram is generally slower than that of the graphic card.
There is no definitive size but a rule of thumb I use is about four times larger for GPU than CPU.
A final important thing is the tile size should be an equally divisible fraction of the overall rendered image, so all tiles are doing equal work. Having smaller tiles left over take the same time effectively and are wasteful.

My experience with one of my scenes:
A lot of lights, 1920x1080 CPU rendering (my 8 cores processor is faster than my GPU PNY Quadro K4000), Cycles, an animation without geometry changing, only a camera move, compositing.

Its simple: the smaller the faster. 16x16 is always faster for me.
Render tiles from center or top to bottom is equal.
In a scene with an alpha area (a masked part for example), rendering tiles from top to bottom is faster.

Please remember that any GPU will give you very bad results with a 16x16 tile size, as CPU needs them small, GPU needs them big. Use Auto Tile Size Addon which does this automatically, you might get better render results like this.

I discovered that the fastest way to render may be to simply disable the preview, by using the "Keep UI" option for display parameter, or even to render using the command line.
In fact, when you render into the image editor, histograms and curves updates use  some CPU, each time a tile is updated.
It's more obvious when you render a big image (4096x4096) and try to show / hide the "tool shelf".
And if the same tile takes a long time to render, blender performs several times the color conversion from float point value layers to 24 bits RGB screen space (the color management), each time it's updated in the image editor.

Welcome to the site :) While your answer contains some useful information for  increasing render performance in general, it doesn't really the answer the question (namely, what is the most optimal tile size).

indeed, but because I found this thread usefull during my performance quest, I thought I had to share my discovery.

Indeed you're right, having the toolbar open significantly reduces render time (especially render rendering things from the VSE), but as the wizard says, it's not quite related to the question. Thanks for sharing though!

How do you switch off the render preview? I wish I could do that, I'm rendering 4K and it is slower than it should be and the CPU is maxed out during GPU rendering, which is very strange, I don't have anything that needs the CPU, no particle systems, no physics, just a static scene of one frame.Also, I don't see all tiles, most of them are hidden, the render preview is zoomed in and totally useless like this. I'm rendering VR with Stereo (two renders for one frame), maybe this is an issue.


text:
Why should texture resolutions be powers of 2?
It's often said that texture dimensions should be square powers of two (512x512, 1024x1024, 2048x2048...), but what is the purpose of this really? I've given this advice myself and do it whenever I can, but never completely understood why.
I'd like to know how it affects Blender specifically (cycles/BI/GE). Does it save a little bit of memory? Or avoid a few calculations for render time? Or is it just a legacy game-engine thing left over from the days of on-board graphics, an old habit that won't die?
If possible, please provide some test results to back up the theory.

http://gamedev.stackexchange.com/questions/26187/why-are-textures-always-square-powers-of-two-what-if-they-arent

Is this question close to becoming 'not about blender'?

It reduces the over head for cpu/ram. Computer works in binary system, which works well with power of 2. Hence,  requirements.
You can easily check that out by adding textures of varying size in blender, and rendering it.

I believe some older video cards only worked when textures where power of 2, though as I understand it this has not been the case for several years.

Rephrased the last paragraph to be a blender-oriented. I don't really care how other engines handle it.

This site might be the Perfect place to ask: http://area51.stackexchange.com/proposals/61961/computer-graphics

@GregZaal - Can I suggest a way of using this forum to find out what you need to know - construct a reasonably simple blend file that uses BG/Cycles and a texture that in the command window outputs the relevant benchmarks clone it to use a limited number of different textures one POT & 3 NPOT maybe and a) run it b) Post it in a question asking others to run it c) everybody posts the benchmarks with breif HW details. Then we can compare like metrics across multiple machines.

It's probably better to ask a question like this on a dedicated programmers Q&A site since people there are more likely to focus on these things.  Anyways, here are a few considerations that I am aware of.
When textures are not powers of 2, you(or the software you use) will usually have to use special extensions made by the hardware/driver manufacturers if you want them to work consistently.
For instance, OES_texture_npot or ARB_texture_non_power_of_two.
Using special GPU extensions to increase a programs abilities can also reduce compatibility since not every manufacturer is guaranteed to support them all and older machines from the same manufacturer may not support them either.  This means that the software may run fine on your machine but not on the computers of other people.
Here is an excerpt from the PowerVR Performance Recommendations guide.  This is the sort of thing that you will see in various documents from other GPU manufactures as well but the specific details will change slightly between them(ATI, nVdia, PowerVR, Mali, etc..) and even between different generations of cards made by the same company.

Finally, a few additional points should be considered when using NPOT
  textures: • POT textures should be favoured over NPOT textures for the
  majority of use cases as this gives the best opportunity for the
  hardware and driver to work optimally. • A 512x128 texture will
  qualify as a POT texture, not an NPOT texture; rectangular POT
  textures are fully supported. • 2D applications (such as a browser or
  other application rendering UI elements where an NPOT texture is
  displayed with a one-to-one texel to pixel mapping) should see little
  performance loss from the use of NPOT textures other than possibly at
  upload time. • To ensure that texture upload can be optimally
  performed by the hardware, use textures where both dimensions are
  multiples of 32 pixels. • The use of NPOT textures may cause a drop in
  performance during 3D rendering. This can vary depending upon MIP-map
  levels, size of the texture, the texture’s usage and the target
  platform.

Basically, if you stick with powers of 2 then you are guaranteed multi-platform support and good performance, otherwise you may have problems when you try and work with a different machine other than the one you started on.
//------------------------------------------------------
I suppose as a metaphor, we could look at this as if textures and model data are like shipping containers used to transport goods on boats, trains and highways.
If all the containers are the same, then everyone involved knows what to expect, and what to do when they encounter a container that must be shipped.
All the cranes will be able to grab it, and the container will fit into the same slot as all the rest.
If the container is different then the rest of them then there will likely be problems since none of the equipment was designed to deal with this different format and none of the people involved were trained to deal with that situation.
Update:
Here something that was recently posted on the Blender Bug Tracker.

Thanks for the explanation :) but this is a little too much theory to be the accepted answer - looking for a more specific answer with tests to back it up :) Oh and that's a great metaphor, though we have some pretty fancy cranes these days.

source: Stack Exchange

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

sort: votes


text:
If a blend is saved with missing linked libraries, is that data now permanently lost?
Lets say I have an asset named "John.blend" that I link into my animation "Shot_005.blend".
I animate my awesome character, John, over several days and am eventually happy with it.

Unknown to me, someone renames "John.blend" to "John_FINAL_v1_USETHISONE.blend".
A while later, I open up my "Shot_005.blend" file (without noticing the warnings about the missing library, "John.blend", or the empty space in the scene) and make some tweaks to the render settings. I then save the file and close Blender.
The next time I open Shot_005.blend, I notice that John has mysteriously vanished, leaving behind only a ghostly Empty object in his place.

I then realize that the John file was renamed, and attempt to solve my problem by renaming the file back to "John.blend", however upon reloading the shot file, John is still gone (because the library data block no longer exists)

Is there any way I can recover my awesome animation that I spent several days on?

That's a general problem of linking. Same issue here: http://blender.stackexchange.com/questions/16359/how-to-relink-a-linked-object. It seems not to be  possible to edit the path of the linked object at the moment. In the other post Gandalf3 suggested to add your lost object, then copy the empty transformations and apply it to the new one.

i had the same problem when i renamed some folder with dependencies in it. after asking around in #blender irc, i came to see that there is no apparent solution. i could solve it by undoing my renaming of said folder and digging out an older version of the file in one of my backups. that worked. another solution is, as suggested, relink your objects manually and apply the transforms of the now-empties. btw the devs in #blendercoders told me it's a known issue and will be fixed eventually.

Currently there is no solution, but this will be fixed soon, I think. Remember you can open a backup by opening your FILE.blend1, if its the first wrong save or .blend2, if its the second time, you saved it after your mistake. just activate the Failsave Filter () in the Blender Filebrowser to open your Backup File.

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


text:
How to repeat an image which uses Sphere mapping in Cycles
Cycles now supports Sphere mapping for image textures - but how do I increase the scale of the image (so that it gets repeated)?
If I use a mapping node and increase the scale like I normally would, the texture gets all distorted.

Both the cube and the sphere are using the same image texture, with a Mapping node between the Texture Coordinate and Image Texture nodes. The Scale of the Mapping node is animated from 1.0 to 5.0. The cube's texture is using UVs with the image node using the default 'Flat' projection. The sphere's texture is using Generated coordinates with the image node's projection set to 'Sphere' (as in the screenshots below).
Scale = 1:

Scale = 2.5:

This is the desired result, which was made by manually repeating the image texture in Gimp:

I would also like to be able to scale it only on the X-axis so that it does not appear so stretched in the middle.

I think you should be scaling down ?!

Maybe scaling the sphere up is what he's talking about... idk.

@Chebhou also distorted.

Added a gif to explain better.

@Chebhou When using the 'Point' vector type on the Mapping node, scaling up has the same effect as scaling down with the 'Texture' vector type.

The problem is that the texture coordinates node is not outputting a UV coordinates it is a genereted 3D coordinates ranging from 0 to on each axis ( X,Y and Z ) and since the Sphere mapping is not linear like the cube , scaling these coordinates will not get the desired result.
instead of manipilating the 3D generated coordinates I extracted the UV coordinates from the sphere projection and used this as a UV coordinates for the real image which is mapped using Flat projection.
extracting the UV coordinates from the Sphere projection is done by two gradiant image texture ( black to white direction is the same as the U and V axis direction )
here is the node setup :

Now you can manipulate the texture mapping as you want :

Note : you can eliminate the need for two image texture nodes in the first stage by using one image with  red gradient ( horizontal) and a green gradient ( vertical ) in one image
first image : used for U axis

second image : used for the V axis

very clever work around.

That is genius! A bit of a pain, but nothing a little node group can't handle


text:
with bgl deprecated in b3.5+ how to compensate for loss of GL_POLYGON_OFFSET_FILL and bgl.glPolygonOffset
I'm wondering how others have solved this problem now bgl is being deprecated. We have a few places in the Sverchok drawing code where we avoid zfighting between edges and faces by including GL code like
   bgl.glEnable(bgl.GL_POLYGON_OFFSET_FILL)
   bgl.glPolygonOffset(1.0, 1.0)

but now that's being removed, the drawing will look like this

any insights are welcome!

Hello ! You may have some luck asking developers directly over on https://blender.chat/channel/python ?

thanks @Gorgious , I did ask this question there too. no response yet.

This can be achieved using a Geometry Shader.
I used the following references:

https://www.informit.com/articles/article.aspx?p=2120983&seqNum=2
https://github.com/nortikin/sverchok/pull/4983#issuecomment-1704295764
and a generic function to calculate the normal of a polygon.

I am under no illusion that this is the optimal approach, and it definitely needs tweaking regarding edge cornercases.
Vertex Shader

uniform mat4 viewProjectionMatrix;
in vec3 position;

void main()
{
    gl_Position = viewProjectionMatrix * vec4(position, 1.0f);
}

Geometry Shader
uniform mat4 viewProjectionMatrix;
out VS_OUT
{
    vec3 FaceNormal;
} vs_out;

layout(triangles) in;
layout(triangle_strip, max_vertices = 3) out;

void main()
{
    vec3 ab = gl_in[1].gl_Position.xyz - gl_in[0].gl_Position.xyz;
    vec3 ac = gl_in[2].gl_Position.xyz - gl_in[0].gl_Position.xyz;
    vec3 normal3 = normalize(cross(ab, ac));
    vec4 normal4 = vec4(normal3, 1.0);
    vs_out.FaceNormal = normal3;
    vec4 rescale = vec4(0.00003, 0.00003, 0.00003, 0.0);
    vec4 offset = vec4(normal4 * rescale);

    for (int i = 0; i < gl_in.length(); i++)
    {
        gl_Position = gl_in[i].gl_Position + offset;
        EmitVertex();
    }

    EndPrimitive();
}

Fragment Shader
in VS_OUT
{
    vec3 FaceNormal;
} fs_in;

out vec4 gl_FragColor;

void main()
{
    gl_FragColor = vec4(fs_in.FaceNormal.xyz, 0.7);
}

and in this case I wanted to color the polygons based on their computed normal.

As you notice, the edges which are on contours still suffer a bit of z-fighting, but I can live with that for now.

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


text:
Modal Operator double keytrigger (RELEASE triggered twice on Ubuntu)
here the smallest bit of code to show what I mean.
import bpy
from bpy.props import IntProperty

class ModalOperator(bpy.types.Operator):
    """Move an object with the mouse, example"""
    bl_idname = "object.modal_test_operator"
    bl_label = "AA Run"

    modal_counter = IntProperty(default=0)

    def modal(self, context, event):
        if (event.type == 'MINUS') and (event.value == 'RELEASE'):
            self.modal_counter += 1
            print('triggered!', self.modal_counter)

        elif event.type == 'LEFTMOUSE':
            print('ended by finish')
            return {'FINISHED'}

        elif event.type in {'RIGHTMOUSE', 'ESC'}:
            print('ended by cancel')
            return {'CANCELLED'}

        return {'RUNNING_MODAL'}

    def invoke(self, context, event):
        self.modal_counter = 0
        print('start')
        context.window_manager.modal_handler_add(self)
        return {'RUNNING_MODAL'}

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

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

if __name__ == "__main__":
    register()

The output of this operator when you press the Minus key twice is this:
start
triggered! 1     <-- first press
triggered! 2     <-- first press
triggered! 3     <-- second press
triggered! 4     <-- second press
ended by finish

What am I doing wrong? If i set it to listen for event.value == 'PRESS' it's OK, but it seems 'RELEASE' is triggered twice?

Can confirm. If you print event.value, RELEASE is indeed printed twice to the console, while PRESS does only show up once.

Is there any reasoning behind this or is it a bug?

Cannot confirm. The code for me works well on Win7 in 2.74.0. I get only 1 line for RELEASE and same for PRESS (I do get multiple lines printed when holding the PRESS..but thats expected)

I am on Ubuntu 14.04, maybe that's something to do with it.. If I thought it was a bug i'd report it, but it could also be my wonky modal code, I have yet to get my head around the various return sets

I tested this on Ubuntu 14.04, too.

Any idea how to bypass this problem? I tried to play with the timing, but then one must choose an arbitrary threshold: if time.time() - self.press_time > some_threshold

I went for PRESS in the end, it was just as good and didn't require an ugly kludge. Otherwise I'd consider using a dict to store the last event obtained for the keys i'm interested in, if the last event.value for your key is the same as the current event.value then pass or something.

@NoamPeled i've given what I think might be a step towards dealing with the unwanted repeat press..(augmented my own answer)

The problem here was with the operating system /environment, and confirmed by pink-vertex. While this isn't a bug report, it may still be handy to keep around in case others experience it.
The behaviour had me stumped until I wrote the above code to localize what was happening.
This seems to be a long-standing bug in the windowing system that ubuntu uses: https://developer.blender.org/T21528 (dating:  Mar 9 2010)

knowing it's broken isn't good enough.
@NoamPeled asks how one might get a working solution in the case of the windowing system throwing multiple repeat event.values, like RELEASE -- thus  increaseing the potential for the interface to behave in unexpected ways (ie a quick tap of a key could trigger release once or twice, but mostly twice -- at the very least the lack of consistency is the true issue then)
untested and verbose,
# somewhere at the top of your python file
# add any other keys you want to track
event_values = {'MINUS': None}

# your modal operator code (snipped for brevity, see above in the question)

    def modal(self, context, event):

        # somewhere it makes sense
        if event.type in event_values.keys():
            if event.value == event_values.get(event.type):
                pass  # or some other passthrough/ignore
            else:
                event_values[event.type] = event.value
                # do some other useful thing


text:
What are the reasons why automatic normal recalculation might fail
I see this question pop up repeatedly, and people trying to remedy it without discussing and understanding why it happens in the first place. If ctrl+N doesn't work as hoped, what are the possible causes? Are there quick ways to highlight problem areas?
(This question is intended to provoke a canonical set of answers - or community wiki)

On the fence as far as opinion based for some people probably, but I think this could be helpful.

i don't think the answers to this are opinion based, they will all be testable.

As long as people do not post theoretical answers, then yes.

internal faces will usually make it seem as if the calculation has failed.

I hope to give a comprehensive answer in a couple of days if no-one else takes a bite. @MarcClintDion you rightly add 'seems to' fail..

the calculation can fail for models that loop around through themselves like some of the Klein bottles on the following page.  http://blender.stackexchange.com/questions/18955/modelling-a-klein-bottle

AFAIK Any mesh which doesn't have a defined inside or outside. So non-manifolds and manifolds with intersecting geometry.

I had a series of models in a Blender file where the Mesh Normals were pointed both inward and outward. Pressing Recalculate Normals fixed a few of the 15000 faces but not all. Trying to select inward faces failed, nothing lit up after trying to select them.
I found that the recalc would fail if the model had doubles or had Non Manifold mesh.  Deleting the doubles and removing the non manifold meshes was the answer. Once gone, the Recalculate repaired all the inward facing faces.


text:
2.79 Hair dynamics bake didn't write in cache
I have a big problem with particles cache, when i try to bake my hair simulation, it calculate normaly, but after ended (and it's long) i see 0 frames on disk and my disk cache weighs 1 ko.

I try to delete this, remake with diferent folder, files, nothing do it.
Actually i use 2.79 for this scene because 2.80 have many prob for baking.
But I didn't think to block like this on this stage.
Need help please, I had to forget one thing!

Oh it's ok I have found ! Just uncheck "Regrow" when you want animate hair ! xD

It's ok for me.
For other people, think to not check "Regrow" when you want animate hair, and you didn't loss a time like me ^^
Care this !

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


text:
Smooth subsurface problem

I used a subsurface modifier, but the surface is still not smooth. I'm not sure what is wrong here. My setup is shown  above.

From screen it is hard to tell what the object should looks like. It seems like you have only one face and rest are only edges?

Because you are in edit mode?
If you want to affect object by modifier in edit mode press triangle icon.
For more informations about modifier see manual.

What is this triangle icon? Blender Manual sayes:
Show on cage (vertices-triangle icon) – Meshes only
Depends on the previous setting, if enabled, the modified geometry can also be edited directly, instead of the original one.
Warning
While it shows edited items in their final, modified positions, you are still actually editing original data. This can lead to weird and unpredictable effects with some tools, and should be disabled whenever you need to perform complex or precise editing on the mesh.

@hjadsa: if the answer solved your issue, consider click on check-mark under vote arrows to sign this answer as "solved", so others can easily see it from a list of questions (don't worry you can uncheck it any time in a future).

what is this triangle for

The easiest way is try to press the button :) If it wasn't clear from the first sentence I edit it a bit and added description (What the icon is) from blender's manual. But if it is not your issue attach a blend file via https://blend-exchange.giantcowfilms.com/?ref=be-community-add-2 It is hard to see/understand from your screen what is going on there). Thanks

Also it may help to apply multiple subsurface modifiers to improve the surface quality if you are editing the surface afterwards. If you are sculpting, it may help to use dynamic topology to save memory. Smooth shading will look much better on a more complex surface.


text:
Drawing a distorted spiral Curve
I'm sure this is not very complicated but I'm new in Blender and trying to figure out how to draw this curve I attached.
Basically the form will look like a circle from the top view and have this spirals going down with different density and directions.
What would be the best way to do this?
I appreciate all your replies.
Thank you

Check out spirals in the Add Curve Extras addon.

Thank you batFinger
I actually added those and it's helpful to create spiral curves etc. I need this form to go around a circle, meaning this is the side view of the form and when you look from the top view it appears like a circle. I just don't know how to contract and expand different parts of this spiral form with smooth transitions between them.
Thank you very much for your reply again
Appreciated


text:
How to display overall furniture dimensions?
This is a follow-up question.  I have enabled "Edge Length" in Viewport overlays, however since the furniture designs I work with consist of many many different parts, enabling "Edge Length" displayed all these parts' dimensions.  The end result was clusters of numbers piled on top of one another.  Please see attachment 1 for visual:
As you can see, the bounding box is not displaying the overall dimensions contrary to my intention.  I used "join" to group all the parts, but apparently, the parts were still treated as individual parts by the "Edge Length" setting.
Is there anyway to get overall dimensions in my scenario?  Please see attachment 2 for my objective.
Thank you very much!

Select the object, and in object mode, hit N to bring up a toolbox. Make sure the "Item" tab is selected, and the dimensions are shown at the bottom.

If you want to change the units, click on the Scene button on the right-hand side, and open the "Units" tab.

Thank you very much!

If you want to get something similar to the image you hgave as an example, you can make a separate object with just the edges that you need and display edge length on those:

However that will only work if you are in edit mode of the object.
If you need to make a nice picture with the dimensions showing, it would be best to use MeasureIt addon that can be enabled in the User Preferences(F4 → p), addons tab.
You will have a lot more control on how the dimensions look and will also be able to choose the units without changing your scene's unit settings:

Thank you very much!


text:
NVidia rtx with OptiX doesn’t seem much faster than CUDA. Is this right?
I have windows 10 64 bit, and an NVidia GeForce RTX 2060 super. GPU compute is successfully enabled for the graphics card, and is unchecked from using my CPU graphics. I have tried both CUDA and OptiX on the same scene in Cycles, and while CUDA Has a render time of 6 minutes and 56 seconds, OptiX does 5 minutes and 37 seconds. That is about 1/5 of the time cut off, but with RTX, shouldn’t OptiX be MUCH faster, or is this the norm? My drivers are (or were) up to date, and I have blender 2.93. The same was true of 2.92, though.

Can you share the .blend file and we'll test it out? if confidential IP we can try using a demo blend

@Lowlande52 Will work on doing so…

@Lowlande52 do you mind if it’s on OneDrive instead of blend exchange? It’s not very big, but that might be easier for me at the moment.

@Lowlande52 Here is the file. I’m sorry it’s not on blend-exchange. Technical difficulties https://1drv.ms/u/s!AgH_S_5HSwNXhnB3J_apu3oEDASc

From my experience Optix has been at times even slower than CUDA


text:
Changing the shading type in Python
I'm wanting to change the shader type of the viewport, up the top left of blender 2.8 it has the icons: Wireframe/Solid/LookDev/Rendered
I want to set this in python, when I mouse over it shows: bpy.data.screens["Modeling"].shader.type
So I tried
bpy.data.screens["Modeling"].shader.type = 'MATERIAL'

but this didn't work, I also tried:
shading = context.space_data.shading
    shading.type = 'MATERIAL'

but neither worked, bot said that type 'SpaceProperties has no attribute Shading'

Related https://blender.stackexchange.com/questions/137348/how-to-turn-on-texture-solid-in-python-code-only

You need to get the space you want to change. If you run it from the Text Editor or Python Console, context will point to the Text Editor's or Python Console's spaces. You can loop through all areas and their spaces and change all the ones of type VIEW_3D:
import bpy

for area in bpy.context.screen.areas:
    if area.type == 'VIEW_3D':
        for space in area.spaces:
            if space.type == 'VIEW_3D':
                space.shading.type = 'MATERIAL'

Or if you write an operator and execute it when the mouse is over the 3d viewport you should be able to get the current space from the context:
import bpy

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"

    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    def execute(self, context):
        context.space_data.shading.type = "MATERIAL"
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

    # test call
#    bpy.ops.object.simple_operator()

space = area.spaces.active is the space of same type as area.  The context member if run in 3d viewport would be context.space_data

@batFINGER I fail to follow. What do mean by 'context member'? Are you saying that if the mouse is over 3d viewport the area he needs would be bpy.context.space_data? I thought so, I just did not check, because I am lazy.

I'll add the code for an operator made from the examples to my answer.

Basic OOP: A member is a class attribute in python terms. Start here: https://stackoverflow.com/a/12409963 @MartinZ

OK, thanks. That might help me with my lack of knowledge of the terminology.

I ended up with the following code:

Thanks, I ended up with the following solution:
for area in bpy.context.screen.areas:
        if area.type == 'VIEW_3D':
            space = area.spaces.active
            if space.type == 'VIEW_3D':
                space.shading.type = 'MATERIAL'


text:
imported an obj with jpg texture but it looks burnt?
first use of newly installed latest blender, never used blender before, unlike meshlab and meshmixer my model with its jpg texture looks very dark and 'burnt'. why is the default lighting like this, for a beginner, to have to try and adjust lighting parameters to even get to see the model as normal is scary. What do I have to alter ? Where are the controls etc for this as I will never find them !, but I would far rather have it that the models that look fine in other progs are ditto in blender.
I see the model varies, darker in rhino4, meshmixer as per original, it was made in AliceVisionMeshroom.
I also see meshroom displays without the surface horribles, how become it looks good there and not in blender ?

Steve1

Hi,I have imported the obj again but this time its silver,no jpg images on it, I go to scene at right, and open color management and it says :-

Hi,I have imported the obj again but this time its silver,no jpg images on it, I go to scene at right, and open color management and it says Display De sRGB and color space sRGB so now I am unsure why I cant see the jpg textures and also its already sRGB, but I need to see the jpg textures to see it again but how become its already sRGB and I have made no changes. I am importing a file from AliceVisionmeshroom cache folder called TexturedMesh.obj the same file as before and as opened into other progs and always its got the jpg images on it. this reply box doesnt allow for new para hit enter.

@Steve1 feel free to update your question rather than trying to fit more information into a comment.

I think it is a matter of lighting, where others have a general all round lighting good for modeling/texturing, blender is rendered with the one default sun lamp.


text:
Can blender take a mesh and protect areas of detail before applying a decimator?
Agisoft Photoscan created a 12million face mesh but a lot of that I dont need on pipes and things, but I do need it on some fine detail. decimate if applying 10% of the faces wrecks everything. We can enter a face count but its tricky knowing what will retain detail yet lessen faces, to be honest any lessening is not good on the fine areas that I am just about seeing anyway !  I need to protect the detail areas and reduce the face count of pipes and tyre walls except for raised data on them and other smooth surfaces and such things.
could I import into blender and then do that and what would happen to the mapped image texture ?
Otherwise I am rotating a mesh sluggishly before importing into rhino for surface work where again it will be very slow or crash.
Steve1

Decimate will make everything possible to conserve details. Triming the faces to where they are needed for topology.

Select vertices that needs to be decimated (where you don't need the fine detail) and add them to a vertex group. Then in Decimate modifier, choose this vertex group.

Hi, Sounds promising if I can find out how in Blenders interface I do that. Need to see a tutorial now, any links welcome. Yvain are you saying decimate preserves detail by being clver and knowing where it is itself, or do I have to show it ? Jan method sees human brain decide where the detail is.  Is the process in the user manual I wonder or something that one gets to know about with use. Steve1


text:
Draw geometry on screen using BGL module
I am trying to use the bgl module to draw triangles on top of the Blender interface. My understanding is that glBegin/glEnd are deprecated, and vertex array or display list or VBO should be used instead.
But I can't seems to find the relevant functions I need (glDrawArray, glBindBuffer, etc) in the bgl module. Any insights?
my bgl.glGetString(bgl.GL_VERSION) is 2.1 ATI-1.8.18

come to think of it, I have never seen anyone with anything other than glBegin etc.. I don't think this has extended to the bgl yet, iirc only a part of ghost has it atm.. not sure..

I was afraid of that, but thanks for the comment.  Btw, do people think questions like this are too specific for this SE?

Not at all, this is the only legible on-topic question I've seen all day. Also questions like these are bound to show up sooner or later anyways.

All the available OpenGL calls exposed in the bgl API are: https://www.blender.org/api/blender_python_api_current/bgl.html
(or in https://svn.blender.org/svnroot/bf-blender/trunk/blender/source/blender/python/generic/bgl.c without the gl prefix)
It has a few OpenGL 2.0 calls, but not even all I think.
It's easy to extend it to specific functions, but we are close to the point where it makes more sense to use a full OpenGL wrapper such as PyGL (and that's why the number of functions exposed is a bit stagnated).

Thanks Dalai. Good to get an answer from a dev point of view. I will wait a few more days before 'accepting' this answer.

Any info on when switching to something like pyopengl might happen ?


text:
Game Engine does not conserve momentum
I am trying to setup some physical simulation in the BGE where it would be best if the the total energy of the system is conserved. However, if looks like I can't get the physics engine to keep the energy level even remotely constant.
Things I've done:

Render Settings: Toggled Use framerate
World: Gravity set to 0, played around with the FPS and physics accuracy, sleep disabled.
Dynamics: All Damping set to 0, tried 'rigid body' as well as 'dynamics'
Material: Friction set to 0
Material: Elasticity of Collision set to 1

Here is a test file: Layer 1 and 2 has two separate test scenes. There is a notable increase in the speed of all objects after each collision (as seen in the console window)
Am I missing something? Or am I asking too much from a game-centric physics engine?

If you can't find an answer here, I've gotten lots of good info & discussions on BlenderArtists.org:

This is their game engine support forum: http://blenderartists.org/forum/forumdisplay.php?12-Game-Engine-Support-and-Discussion

Thanks, if this doesn't work out, I will try BA.

I've written a Blender/Bullet simulation of a Newton's Cradle that doesn't conserve energy.  Here's two animations that illustrate the problem:

It's all done with rigid bodies, and the wooden top piece doesn't participate in the physics.  The initial angle of the first ball is an adjustable parameter - 90 degrees in the first animation, 60 degrees in the second.  You can reproduce everything by running this script in Bullet 2.69.  Make sure the Tool Shelf is open to get to the simulation controls.
I suspect that it's all the same problem.

Looking at this my best bet for the cause is collision error.

Wala, the following video shows an amazing tutorial. I am very impressed.
https://www.youtube.com/watch?v=v_SEkirxgNU


text:
How to remove rotation of non planar faces?
I have this object, it is so far no thickness.

However there are some faces where I accidentally rotated the X and/or Y axis so now there are parts standing out on the side.

Is there a way to reset these rotations, so that the whole plane will be flat?

In Edit mode, Select all vertexes, Then press S, Y,  0  This combination scales vertexes to zero on Y axis, and will make faces completely flat in x-z plane

thank you so much! the axis i had to scale to 0 turned out to be z, but i guess that's because i got mixed up in my own description!
worked perfectly in the end, though, thank you so much!


text:
How to access linked objects from a linked collection? (Blender 2.8)
How can I access the linked objects inside a linked collection on Blender 2.8?
Inside the view layer navigator I cannot see the objects inside the drop down.
Linked Collection
  |
  |-> Linked Collection
        |
        |-> "Nothing"

I can link the objects individually but I need to preserve the Collection hierarchy, because:

The scene is quite complex, and I cannot know (easily) which objects are inside the collection I need to link, inside the list of all objects.
If the source collection has new objects added, I need them to be added (which is the behavior of the linked collection).

Any Idea how to do it? Thank you very much.

My problem with more detail:
I'd like to be able to access the linked objects inside a linked collection so I can change the materials for the linked objects as they define here.
I can make it work with Blender 2.8 linking objects directly and using a Library Override for the object, so I can change the material data block. But, I cannot find a way to access the linked collection's objects... to do the same, preserving the versatility of a linked collection.

Edit:
I found in the documentation Making an Instanced Collection Real which supposedly archives what I need, but does not work (at least I cannot make it work) with linked collections:

"Simply select your Instance Collection and press Shift-Ctrl-A to convert the collection into regular objects".
"Note that if the instanced collection was linked from an external file, the Object Data (mesh, materials, textures, transforms) will also still be linked from the original collection".

Edit 2:
I need to use the same source file collection, and be able to have instances with different material overrides locally. So I can have the same objects with different colors in different instances.

I use this:
https://docs.blender.org/manual/en/latest/addons/object/edit_linked_library.html
I set it to appear in my favorites panel. It opens the linked file; and when you are done; you

Thank you for your answer, but the addon does not solve my problem, because it modifies the source file, so every instance of the collection will be the same, without local materials overrides. I can see it wasn’t too clear in my original question, I’m going to edit it.

I see. I think Proxies are what you are looking for. Though Library overrides are supposed to be the newer version of proxies. I am not familiar with them in use though. To make objects that behave as you described, I have remade collections in a new file; while linking the objects themselves into the new file. (Typically this involves recreating the collection structure manually. Then you can use 'create proxy' on the newly linked mesh objects.

Awesome, thank you very much! If that is the way to go I'll have to redo the structure manually. Is kind of strange Blender does not allow to access (at object level) linked collections.

I am not familiar with much as far as coding, so if that's the context of what you are looking for, it may very well be possible; though I wouldn't be the one to ask. I just know that proxies seem to fit the bill of what you are trying to achieve.


text:
How to transform an 2D sketch into an 3D object with other texture in an animation?
The title describes my project really good. I‘ve seen this kind of transformation in an artist film from Erin Sarofsky(youtube.com/watch?v=WWBMd1OvVx4).
I‘ve already seen similar ways in internet, but no one that change this grey pencil texture from a sketch to an realistic texture, or look like transforming to 3D in an realistic way.
Thank You!

Youtube link results in "Private video" and cannot be watched. If the answer below solves your issue please mark it "accepted".

There would be two parts to doing that:

Scale object on one axis to turn it from 2D to 3D

If you wanted to be rotating the object in the process, you may want to parent to an empty to animate the rotation, or you could use a lattice modifier to control the deform while it is moving.

Animate from a grey texture to a realistic texture.

You can animate properties in nodes the same as any other property in blender. Use a mix node and animate the mix value to switch from one material to another.


text:
How can you procedurally generate objects with physics in the same area?
I have a truck and thousands of coins to pile on top of the truck bed.  I basically have the coins stacked in rows and columns.  However, I noticed that the higher the coin drops, the harder the physics are applied and by the end of the simulation, most of the coins are on the floor.
If I drop the coin at a shorter distance, I believe I can make more coins stay on the truck's bed, but if I stack all the coins in one place they just explode out when I run the simulation.
Is it possible that I can generate a few coins at a time procedurally in the same place, so the distance from the coins and the truck's bed is smaller?  Or is there a better solution to what I'm trying to do?
The best analogy I can think to explain the behavior I want is water flowing from a faucet. The water is generated in one place that I can easily turn off and on.  Just need the same thing for coins.

Seems like it would be best to use particle system for dropping the coins from the same height in random directions.

Particles don't act as rigid bodies so they will not take the shape of the coins into account.

Answer to your Q is ...
Addon

for such thing I would use object generating particles and than use addon Copy Particles to Rigid Bodies from Liero (even last version written for 2.8 works in 3.4)

TIP for your current scene ... to make speed of fall constant try to use ...
Force Field

you can add Force Field object > type Drag to slow down falling (like Air). Enable Fall-Off affect higher objects more than lower ones.

As an extension ... here is a comparison ...

Left - Keyframed motion - Cube with Constant speed based on lower Cube from middle RG sim. Speed of both red (30 m) and green cube (6 m) is the same.

Middle - regular Rigid Body

Right - Rigid Body affected by Force Field > Drag ... with Linear adjusted to match end frame with red cube.

From these baked F-curves you can see - Cube affected by Drag is speeding up at the first 6 frames, but than it falls at constant speed (even without Fall-Off).

Oh, that Addon works nicely, at least on my first little test. That's something I wish Blender had built in. But what about the Drag? That's in the Particle Settings, not Rigid Bodies.

Yep, Drag force field is better for this... only problem is, the gravity works against the drag as well, so particles that are much higher will still accelerate more or you set the drag strength that the lower ones are much too slow. I think the addon you mention is the best to get some kind of particle solution. Or just all coins starting to fall from a lower height like Chris' solution. Still, the slide works like drag as well, slowing particles down but still not defying gravity ;)

Drag has Fall-off parametr so you can control what part of coins to affect more and less gradually ... ad the Addon yeah I was a big fan for years :)

Of course, Falloff... my bad. But you could also get away if you just fiddle around with the values as I just found out. I took two spheres, bounciness at 1 on both, and let them fall on a ground (bounciness also 1). One sphere starts falling from a height of 3 meters, the other 28 meters. If I set the drag strength to 0.15 for Linear and 0 for Quadratic, they bounce back from the ground almost to the same height. So it's just a matter of playing with the values to get it working somehow :D

@GordonBrinkmann Small comparison :) if there is not classic cache issue and cache is correct, than force field make speed constant even without Fall-Off.

ok, here is my 20 cent solution (it's cheap, i know, but it works and it is pretty fast):
Of course, the higher the coins fall, the more they react. That's gravity and we all now that. So we can solve this if they fall from an even height - one after another.
So what you could do it, create a slide (this is basically a cube, from which you delete some faces and extrude it)

give it a rigid body passive, shape mesh.
Create a coin (which is basically a flat cylinder), give it rigid body active and array it over the slide, apply the array modifier and separate the object in edit mode by separate -> by loose parts.
then you get:

now, copy slide plus coins, rotate it and you got...right, more coins:

do this how often you want...10 slides.
You can randomize the coins by randomize transform before they fall on the slide so you get more realism in that:

Note: of course, put the camera in that way, it does not see the slides....!

I guess that's the best solution unless it would be possible to "spawn" the coins somehow. Maybe it's not even necessary to place the coins so far above the slides. Gravity will still accelerate them while sliding down but not as extreme as the fall from such a big height like in the original setup.

Marty won't agree with you. I am sure :D

@GordonBrinkmann see my other solution on this page using a Dynamic Driver, but perhaps indeed one could spawn a coin PS instead!

The explosion might come from an object colliding (or intersecting) with your coins in the first place. Also check what type of shape you have applied to your coins in the physics tab. It might help to set them all to 'mesh' instead of 'convex hull' which is the default.
You can use an array modifier in the first place to generate an accurate stack of coins close to the truck. But having a tall stack as you have, it is more likely they will fall, of course, and they should, as this is true to how the physics acts in our real world. Hope some of my tips will help. :)

I didn't have the impression Jeremy was wondering where the explosion comes from, it was more an explanation why he can't let them all start from the same location. And I wouldn't use Mesh if it's not necessary. Like the Blender Manual says: "Primitive shapes (Box, Sphere, Capsule, Cylinder, and Cone) are best in terms of memory and performance but do not necessarily reflect the actual shape of the object." So instead of changing from the default Convex Hull to the less performant Mesh, I'd rather switch to Cylinder, since that's the shape of the coin.

I would add a particle system to a plane above the truck, turn on advanced properties, and then go to physics for collision. Under the render tab in the particle menu, turn render as to object, then select your coin.


text:
What are the differences in using HDRis (created from HDR Lighting Studio for example) to light your scene verses using Blender's Lights?
I'm looking at purchasing HDR Lighting Studio and using it with Blender.  For those that don't know, it's a tool used to create your own HDRi map and using it to light your scene.
As appealing as it sounds, I wanted to know what the differences are from using only and HDRi to light your scene, verses using Blender's Lights.
For example, is light calculated differently?  Is there a difference in render time?  I would think one HDRi map would be more performant over using several Blender lights.
Any insight is appreciated!

I think the biggest difference would be that HDRI's not only provide pseudo-Global Lighting, they also provide reflections. Both of these are not available with direct light sources such as point lights - many of these lights only appear as specular dots in reflections, and due to their limited directionality, do not provide great realism from either a reflection or shadow-casting point of view.

@ChristopherBennett  Sounds like a great benefit.  Thank you for you comment!


text:
How can I create proximity lights in Blender?
I have one point light and one model in my scene, rendered in Cycles.  What I'd like to do is create a proximity around the model, so that when the light approaches it, or any point light approaches it, it gradually becomes brighter.  The closer it is to the object, the brighter the light.  If the light leaves the proximity, it fades, until the light is shut off completely.
I know I could animate this by hand, but I'd like to have it happen automatically, like some videos I've seen where you have a null object, you move it near the model and it alters the models shape, or makes something grow around it.  Just want to have this functionality with lights instead.
The only other alternative I thought of, is if there is some kind of setting somewhere, that I can define the reach of the light.  So for example, I wouldn't have to move the light so far across the screen before it fades out.
Is there someway to achieve what I'm looking for?

You could use a driver for the power of the light:

Select your light, right click in the Power field and select "Add new driver".  Then open a driver editor view and edit your driver type (the button to the left of "var") to be distance, and specify your lamp and the proximity target.  Here, I've set the brightness of the lamp to 1000 divided by the distance, so when the lamp is close, it will be very bright, and when it is far, it will be dim.
Note that this gives the distance between objects, not the distance from the lamp to the surface of a mesh.  If you want the distance to the nearest surface of the mesh, we might make a quick armature to take advantage of a shrinkwrap constraint:

Here, a parent bone has a copy location constraint targeting the light, while a child of that bone has a shrinkwrap constraint targeting Suzanne.  Then I can use the distance between those two bones in the driver instead.

Very nice!  This is perfect!  Thank you!


text:
Help modelling silicone baby fork (lumpy surfaces, lose of details, adjusting measurements of pins)

I've been struggling for over a week trying to model something I thought would be simple.  It's a silicone baby fork.  The client keeps sending it back as I cannot get it quite right.  In my attempts to make corrections, mostly using proportionate editing, the fork as now lost some details such as the curve that sort of forms a bowl on the inner part of the fork.  How do I recreate that?
The measurements of the forks pins are incorrect and I can't figure out the best way to adjust it.  I think I'm close but I need to somehow square off the pins so that they are .5 cm thick.
On top of that, the bowl part of the fork is no longer smooth, now it's lumpy.  I've tried smoothing vertices, I've tried using relax in loop tools, smooth modifier almost works, but then I loose details on some edges.

If there is an addon that can help me with all this, I'll buy it.
Any other tips would be greatly appreciated!  I have less than 3 days to complete the project.
Here's some other photos that may help:

You'll probably need to start over and use a non-destructive workflow. Although, imo, this is a task for a CAD software.

Have you got a reference for the depth of the spork? The thickness is, strictly speaking, not enough info, you don't know the external curvature in depth.

Yes, I have all the measurements (I think), but they were given to me one at a time.  At first it was just the length and the width, then I got measurements for the overall height, then I got measurements for the thickness of the fork head in several areas, how deep it is, etc.  I've had to start over a few times, and I'm trying to keep from starting over again if I can help it.

You should keep it low-poly as long as you're not glad with the general shape, then give it a Subdivision Surface modifier, and only apply the modifier when everything's ok (but always keep a low-poly version).
I would stick to the shape from top view. Make sure that the edges follow the shape so that it will be easy to add edge loops further on:

Use the Proportional Editing option to curve the spoon (hide the part that you don't want to deform):

Then extrude up:

Move down the outer edges:

Then add a Subdivision Surface modifier, add edge loops or bevels to sharp some angles, etc...

It the client is happy moonboots should get paid for this one.  ;-)

haha yeah, I feel like this is still quite a few polys though. I'd imagine the reflections don't look too great, but I could be wrong.

@susu, thanks....  ;)

@HISEROD, yes it's very low poly but it's the hardest part, once you're good with this it's easy imho

@moonboots I think you misunderstood, I thought it looked a little too dense. usually when you have a lot of faces on a relatively large curved portion, you get lumpy reflections (coming from a car modeler so I'm super picky lol).

@susu I have been practicing and watching tutorials.  I tried a few of his products before being hired, and they were good, it's just this particular one along with a few others have been quite difficult for me.  I've approached the problem several different ways, and I'm reaching a deadline, and just do not know the best approach to fix this.  I just needed some additional help.

no problem, I hope it helps  ;)

@moonboots - you make it look so easy!  It helps to see your topology.  They say to start with a shape that most reflects a part of the model, so I had started with a subdivided square, squished it down and deleted the top half, to sort of form the bowl of the spork.  I think tried modeling everything else around that.

@moonboots - thank you very much for your help!

There must be several ways to do it, the one I've used can be very convenient


text:
Where can the viewport clipping parameters be changed?
Zooming in to inspect texture details in 3D view clips some closer faces like shown in the image. It's not the camera view so changing camera settings doesn't help.
Where can the distance to the clipping plane be adjusted?

Is there a way to set this value for default, so it would be the same for every workspace and blender start file?

https://blender.stackexchange.com/questions/8553/why-does-part-of-my-model-disappear-when-i-zoom-in-on-it-in-the-3d-viewport/ https://blender.stackexchange.com/questions/5201/how-do-i-increase-the-render-distance https://blender.stackexchange.com/questions/4946/where-can-the-viewport-clipping-parameters-be-changed

It's in the 3D View area's Properties N menu > View tab:

It doesn't affect Orthographic view, where there's no view distance.
How to set the the view port clip parameters per Python script is described in an answer to the question "Setting camera clip end via Python".
Older Blender 2.7:

I've found that if I turn clipping all the way down (so I can get as close as possible) produces weird graphical glitches where polygons look like they are displaced or missing.

@DavidS. See http://blender.stackexchange.com/a/1387/599

I'm using Blender 2.75 and adjusting the end value is fixing this issue in orthographic view, for me at least.

What are the disadvantages to having a large clipping plane?

@AaronFranke The depth-buffer (also called z-buffer) loses accuracy when you have a large range of potential values across different magnitudes. This can result in what is called "z-fighting", where the depth coherency of the render is compromised because the machine can't accurately calculate the true depth of individual pixels in the scene. (https://en.wikipedia.org/wiki/Z-fighting)

Where is this menu in Blender 2.8?

As I searched a lot for this pane, here where I found it on Blender 2.8:

Click on the small arrow on the top right

Then a pane shall open. Click here on view.

There are the view clipping settings. Observe the view horizon and change the end value.

No the horizon is more far away.


text:
Are there more standard patterns besides diamonds which will preserve quad only meshes?
In order to bridge two edge loops having an unequal number of edges the diamond pattern can be used. Video tutorials by Jonathan Williamson.
Are there more patterns that preserve the quads?

Steps:

Select 3 vertices (Image 1)
Merge at Center
Select another 3 vertices connected to the ones selected in step 1.
Merge the in 3. selected vertices. (Image 2)
Remove the superfluous (single edge) edge loop (Image 3, to illustrate how the edge flow is redirected)

Usually one can catch such topologycal tricks by watching
the vertices (poles) neighbour count. In your example there
is a cube which has one vertex with 5 neighbour and another
with 3. The following example shows one where these poles
are neighbours. As Hount House notet in his comment,
sometimes they are called N-poles and E-poles.

When avoiding triangles, you can reduce or increase edge amount
somewhere by the cost of doing it somewhere else. In your example
on the same side you loose one and another edge. In my example I
added a new edge in the right side, and had to redirect the loop
Flow to the top. When simply removing an edge loop, you take
one edge from one side and one from the front side.
Generall, when using only quads on manifold meshes, every sub-mesh
of it (for example strangly subdivided planes like these) must have
even number of border edges (only one face connected). So a hole
with odd number of edges cannot be filled with quads.
Maybe I am getting too wild now. I am currently
working on a trees retopology, where you can see,
that I mostly only have the usual poles or E-poles.

A similar example to yours (two edges taken
from bottom side), but with another loop Flow:

Must note the tutorial in this related
question. I Recommend to watch all episode.

You have also poles with 3 neighbors. Someone once coined the phrase E-poles and N-poles because E has 5 and N has 3 strokes. It's the old 'cube on a subdivided plane' topology where you have E-poles at the base and N-poles at the top.


text:
Do some Bone Constraints only work with Root Bones?
While the Floor and Limit Distance constraints work well with the root bones of an armature. I don't get them to work with other non root bones. Is there any reason for that or do I miss a detail?

In this setup the armature shown on the right has a Limit Distance constraint when moving the slider Distance the whole armature moves. What I would like to achieve is that the tip is moving but a constraint at the right tip targeting the left tip seems to have  no effect.

The Limit Distance constraint influences the location of the bone. All the bones (except the root bone) are children of another bone in the armature. Because of this you cannot move them (the location is also greyed out in the properties panel). If you want to allow the tip to move, you should un-parent the tip, create an IK constraint on the bone beneath it, and target the tip bone. That should make it work.

Another possibility is to set a Children Of constraint to the left bone targeting the controlling right bone.


text:
How can I composite Eevee and Cycles together in one animation sequence?
I have a character model that I’d like to render in Cycles only and the rest of the scene in Eevee.
This was suggested to me by someone I had contacted sometime ago.  He said to speed up render times, they’d render their characters in cycles and the rest in Eevee but I cannot remember where I spoke with the guy, otherwise I would ask him how he does it.
I’ve searched the internet but all I’m finding is that it’s not possible to composite Eevee and cycles together.
There must be someway to achieve this!
Does anyone have an ideas how this might be done?

you can use the Compositor to mix movies made with Eevee and others made with Cycles

Most likely the unknown someone said: render the characters in cycles (as EXR image sequence), Then, in the compositor bring the rendered image sequence and composite them together with the scene rendered in eevee...

It can be done with separate scenes within the blend file. Andrew Price does the trick in order to render with different compute devices in this tutorial: https://youtu.be/9L8qOq1Shiw?t=3896

Name your first scene "Cycles" and organize your outliner like this:

Add a scene and select Linked Copy.

I'll name the new scene "Eevee."
Set up the Eevee scene's outliner like this:

In the Eevee scene, set up the materials of the objects in the Cycles collection like so:

Be sure to set Blend Mode to Alpha Clip (unless otherwise necessary).

Back in the Cycles scene, set up the compositing something like this:

And be sure to enable transparency in the film settings:

Whenever you render from the Cycles scene (the one which includes the Eevee render in its compositing nodes), both scenes will render automatically.

..and you've gone to the trouble of testing it with motion blur.. :D


text:
Blender: How do I unpack a linked instance to make changes to it?
Sorry, but I'm not too sure what the process is called. I basically created an exterior scene full of linked instances by going to:
File>Link>Selecting Blend File>Collections>Selecting the Collection
So basically I'm linking collections from another blend file that I use as a library of models I'm using for this project.
I copied that scene which will be for an interior shot. Now what I want to do is tell Blender, to unpack one or two of those linked collections back into the current scene, so I can edit them for that scene only.
I need to make changes to the glass shader of the windows for example, and delete parts of the land that isn't going to be seen out the window.
How do I do that?
I've tried a few things. First thought, was to right click the object and select "unlink" but that deletes the object from the scene. Looking online, I thought I had it figured out and that the process was to make it local. So I've tried going to Object>Relations>Make Local, but it doesn't seem to do anything.
Any help is appreciated! I've been working on this project for so long, didn't realize it would get so tricky!
Thanks!

Related (prior versions to 2.8) https://blender.stackexchange.com/questions/77705/how-do-i-convert-my-linked-group-objects-to-be-local-objects

If you have imported a linked collection, you need first to select it and CtrlA > Make Instances Real, then select one of its objects and in the header menu > Object > Relations >  Make Local > Object & Data.

OMG!  Thank you!  I can't believe it was this easy!  I've watched several tutorials on instances, but none of them explained how to make the instances real in order to make changes!  This is a life saver to me!  Thank you for your prompt response!

...and that's why we're glad we have moonboots here :)

ah ah thanks, we are all learning from each other  ;)

I've found that the current answer breaks any parenting relationships, so here's an alternative for Blender 3.4:

Select the Linked Collection you want to make local.
Go to Object > Library Override > Make
Select the Collection again
Go to Object > Relations > Make Local > All


text:
How can I control playback of video textures?
I’m working on a video in which photographs inside picture frames come to life but I do not know how to control the playback of the video textures.
I already have the video texture loaded in the picture frame. Right now it plays immediately when I start playback in Blender.
Here’s what I want to do.
I have the camera animated to approach the photo.  Until the camera reaches it, the video texture is “paused” on the first frame.
When the camera focuses on the photo, I want the video texture to play.
Finally, I want to pause the video on the last frame.
The camera then moves over to another picture frame and the process repeats.
What is the best way to do this in Blender.
Thank you!

https://blender.stackexchange.com/questions/163661/image-sequence-customizing/163692#163692

https://blender.stackexchange.com/questions/36748/how-do-you-animate-image-texture-materials-in-blender-cycles-with-keyframes/36793#36793

https://blender.stackexchange.com/questions/61308/same-video-on-each-face-but-with-different-time-delay/61339#61339

Select the object with the material. Go to the Properties window, click the Material Properties tab, and extend the Base Color settings by clicking the little triangle. Now you can see a field for the Start Frame value.
Alternatively select the material in the Shader Editor window and change the Start Frame value in the Image Texture node.

Thank you!  I didn't realize it was that easy!


text:
How to lock the view to prevent rotation of the view camera?
I was wondering if it was possible to lock the view (similar to quad view), so that the view doesn't change if I accidentally bump the middle mouse button.
Is there a setting I can change or a script that can do this?

While working in a 2D view my Apple Magic mouse is too sensitive, causing me to rotate the view accidentally - switching to an old school mouse with a wheel for scrolling helps prevent any accidental 3D view movement. But having 2 mice on the desk isn't ideal.

Short answer - no.
However this may help...

I assume that you may have a view rotation that took some time to setup, if this is the case you could...

Add an empty, Enable Align to View
Then use 'Shift+Numpad1/3/7' to change the views aligned to the active object.

Quad view allows you to lock/unlock the view rotation.
This is intended so you can maintain top/front/side views with one user view, but theres nothing stopping you setting up the rotation you want, then locking the view.

If you really want to do this with a script by writing an operator that intercepts view rotate and makes the choice to run or not, but I wouldn't recommend doing this since its fairly involved for such a small change.

Note, when checking align to view, I noticed the viewport would flip direction, committed fix (will be in 2.68) http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57038

One way you might want to go about this would be to:

Align Active Camera to View with CtrlAlt + Numpad 0.
Lock Camera to View.
Select the camera and lock it's transformations.

"lock it's transformations." is a dead link.  This is why Stack Exchange sites don't allow links as answers, always include the info in the answer

You can't lock the rotation of the view but you can lock the pan of the view to always center on the 3D Cursor.

Omg you have helped me understand an issue I've had in one scene for ages.  That lock to object box had a selection and I'd no idea how this happened. THANK YOU

Update: Ok following comment from @Duarte Farrajota Ramos,  I have created an AddOn for you:

Save the following text in a text file(Example): lockViewRotation.py
bl_info = {
    "name": "Lock View Rotation",
    "blender": (2, 80, 0),
    "category": "View",
}

import bpy

def draw_lock_rotation(self, context):
    layout = self.layout
    view = context.space_data
    col = layout.column(align=True)
    col.prop(view.region_3d, "lock_rotation", text="Lock View Rotation")

def register():
    bpy.types.VIEW3D_PT_view3d_lock.append(draw_lock_rotation)

def unregister():
    bpy.types.VIEW3D_PT_view3d_lock.remove(draw_lock_rotation)

if __name__ == "__main__":
    register()

In blender go to Edit->Preferences -> Add-ons and Click the "Install..." button and chose the previously saved file

Go to the "Community" tab and search for "Lock View Rotation" Addon and enable it (If you dont find it then close the properties panel and open it again)

Now you will have an option "Lock View Rotation" in your View Lock section so you can create 4 views dragging the  corners to split the current view in 4 (top, bottom, right, and perspective) and set the new Lock Rotation on the first 3.

Original Answer:
I have accomplish that in this way:

First Go to to you blender installation path (generally C:\Program Files\Blender Foundation\Blender 2.90\ in my case). And search for the file called: space_view3d.py in Blender 2.##\2.##\scripts\startup\bl_ui\space_view3d.py

Copy this file to a different location (as you wont be able to edit it directly)

Edit this file and search for the line containing: class VIEW3D_PT_view3d_lock(Panel):

this line is the definition for the "lock" options.

Go at the end of the: def draw(self, context):   (this is the definition of the draw function for the "lock" options )

Add the following line indented at the end of the function (be careful with indentation):

col.prop(view.region_3d, "lock_rotation", text="Lock Rotation")

In my case the final code looks like that:

class VIEW3D_PT_view3d_lock(Panel):
        bl_space_type = 'VIEW_3D'
        bl_region_type = 'UI'
        bl_category = "View"
        bl_label = "View Lock"
        bl_parent_id = "VIEW3D_PT_view3d_properties"

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

            layout.use_property_split = True
            layout.use_property_decorate = False  # No animation.

            view = context.space_data

            col = layout.column(align=True)
            sub = col.column()
            sub.active = bool(view.region_3d.view_perspective != 'CAMERA' or view.region_quadviews)

            sub.prop(view, "lock_object")
            lock_object = view.lock_object
            if lock_object:
                if lock_object.type == 'ARMATURE':
                    sub.prop_search(
                        view, "lock_bone", lock_object.data,
                        "edit_bones" if lock_object.mode == 'EDIT'
                        else "bones",
                        text="",
                    )
            else:
                subcol = sub.column(heading="Lock")
                subcol.prop(view, "lock_cursor", text="To 3D Cursor")

            col.prop(view, "lock_camera", text="Camera to View")
            # Show the Lock Rotation option on View Properties
            col.prop(view.region_3d, "lock_rotation", text="Lock Rotation")

I just have added the last 2 lines, the first line is just a comment, and the second one is the one that's adds the "Lock Rotation" check box to your view locking properties (as specified before)

Replace the original file.

Relaunch Blender

Now create a new Workspace, based on General Layout using the little "+" symbol at the top right  for the different workspaces, name it as you want.

Then create 4 views dragging the  corners to split the current view in 4 (top, bottom, right, and perspective) and set the new Lock Rotation on the first 3.

Suggest instead of editing blenders UI (IMO a slippery slope) define a draw method with the change def draw_lock(self, context): and append it to the panel bpy.types.VIEW3D_PT_view3d_lock.append(draw_lock)

Thanks for a simple script instead of a link leading to the void!

Check out this add on by Jason van Gumster(fweeb)
Described like this:

It locks the 3D View to whatever viewing angle you’re currently using, kind of like the ortho views when you use Quad View… but this works for any arbitrary viewing angle.
[...] I discovered that the feature is actually in the Blender Python API, there’s just no way to access it in the UI.So I fixed that.

Link dead 404 not found

What was the add-on's name?

Here is an Viewport lock addon, may be the addon is a real decision for Your issue? https://blenderartists.org/t/wlock-an-addon-for-blender-2-8-which-allows-to-lock-3d-view-rotation-using-hotkey-default-alt-w/1163353
This addon allows to lock 3D view rotation (only 3D view) using hotkey. As an additional indicator a 'lock' icon is displayed (can be set up or disabled in Preferences).

Hello and welcome. We are looking for answers that give some context and explanation of how and why they work. Could you edit your answer and add a short description of what the addon does and why it works?

This add-on is awesome. Blender should really have such a toggle in the View menu


text:
How to use dynamic topology for terrain modeling
I tried to get some hills and valley on a 2x2 Km plane with dynatopo, but it is invisible as it seems to be limited in the height it can produce. How can i get it to make bumps that are realistic for that use (100m big or even more) ?
Notes: I know the solution using subdivided planes and proportional editing but it is not as powerful and flexible.
As it as to fit the rest of the scene, I can't realistically work on a 2m plane and then scale to 2Km every time to check if it's ok and then back to 2m to polish, that back and forth is way to time consuming.

Try applying scale to the object, with CtrlA > Scale.
There shouldn't be any limit to the height you can sculpt, but object scaling might make the sculpting influence too small. Also this is probably a general sculpt mode problem not specific to dynamic topology.

thanks, it works indeed. Setting the strength to 10 gives also really interesting effects, which were not there before applying scale :) (totally buggy but really nice)

If you created a plane of 2000 by 2000 blender units you are probably experiencing precision errors.

It was 2000meters, but I guess it's the same as I didn't use any factor in world tab, only switched to metric. But those precision error don't come with strength set to 1. Anyway, nice bug so don't remove it ;)

If you do not apply the scale of the object/mesh (ctrl+a select scale) before sculpting; brush strength will seem like its too light, thats why you only see effects when you set the strength to high numbers like 10.
you also need to set you your clipping distance to a higher number if your working with a 2x2 km plane. (Press n on the viewport to open properties shelf and on the to view section set clip end to a high number/depends on your scene units and scene scale)
dynatopo is meant for scketching the rough geometry and is not very suitable for full details.You can always create a basic topological skecth from dynatopo and then reproject it to a new plane with "shrinkwrap" modifier (be sure to select "project" from drop down menu inside the modifier)
after that you can go as high as 45 million polys on multires sculpting.(depends on the system) i can work with 63 million for example.


text:
How can I make parts of a menu context sensitive in Python?
I am attempting to make a custom menu in Python that is context sensitive. Such that it's contents vary depending on which mode your currently in (e.g. Edit mode or Object mode).
However, when using an if and elif statement it doesn't work, and simply doesn't show those parts of the menu.
What am I doing wrong?
class QuickObjectOptions(bpy.types.Menu):
bl_idname = "object.display_options"
bl_label = "Quick Object Options"

mode = bpy.context.object.mode

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

    if mode == 'OBJECT':
        layout.operator("object.shade_smooth", icon='SOLID')
        layout.operator("object.shade_flat", icon='MESH_UVSPHERE')
    elif mode == 'EDIT':
        layout.operator("mesh.faces_shade_smooth", icon='SOLID')
        layout.operator("mesh.faces_shade_flat", icon='MESH_UVSPHERE')

Note: I've only pasted the relavant parts of the script above to keep it simple. The "import bpy" and register functions are definitely there ;)

Answering my own question via vitos1k on IRC.
In order for the the if/elif statements to recognize the variable it needs to be placed inside the draw function.
Correct code:
class QuickObjectOptions(bpy.types.Menu):
bl_idname = "object.display_options"
bl_label = "Quick Object Options"

def draw(self, context):

    mode = context.object.mode
    layout = self.layout

    if mode == 'OBJECT':
        layout.operator("object.shade_smooth", icon='SOLID')
        layout.operator("object.shade_flat", icon='MESH_UVSPHERE')
    elif mode == 'EDIT':
        layout.operator("mesh.faces_shade_smooth", icon='SOLID')
        layout.operator("mesh.faces_shade_flat", icon='MESH_UVSPHERE')

Declaring a variable outside a function makes it a global variable. Therefore mode is initialized when the object is created but not updated when the value of
bpy.context.object.mode changes.

Ah that makes more sense. Thanks for the extra info @stacker

Note that this is even disallowed for addons, bpy.context is restricted to accessing only a few members. In this case its just annoying but if you store types that wrap internal data - you can cause crashes on further access if that data happens to be removed.

On that line mode = bpy.context.object.mode you can drop the bpy, because you already have context. so mode = context.object.mode


text:
How to smooth shade an object while retaining hard edges?
I frequently come to the problem of having a mesh with parts I would like to render smooth and "hard" edges connecting them.
How can I set the mesh to show the sharp edges but render everything else smooth?
In the example I would like the sides of the individual cylinders render smooth but the intersection between bottom and top to be sharp/flat

Thanks for the answers, I guess both are really good depending on the situation.

There are a few ways to do this but the quickest and most efficient (in your case here) is to just smooth it the same way, using Shade Smooth and then adding an Edge Split modifier to the mesh.
From the wiki

The EdgeSplit modifier splits edges within a mesh. The edges to split
  can be determined from the edge angle (i.e. angle between faces
  forming this edge), and/or edges marked as sharp.
Splitting an edge affects vertex normal generation at that edge,
  making the edge appear sharp. Hence, this modifier can be used to
  achieve the same effect as the Autosmooth button, making edges appear
  sharp when their angle is above a certain threshold. It can also be
  used for manual control of the smoothing process, where the user
  defines which edges should appear smooth or sharp

Here it is as you have it above..

With the modifier added

Additionally, you can see some more tips here for getting good quality on hard surface models. BlenderCookie has a tutorial (archived) on getting nice sharp edges.

I love you brah

While what iKlsR says is indeed the most efficient, it's often preferred to either add edge loops on both sides of the hard edge, or bevel it (Ctrl + B). When smooth shaded this produces a more realistic surface since there's seldom any truly sharp corners in reality, and also catches specular highlights nicely showing off the model better.

Note that the Edge Split modifier shouldn't be used when beveling or using edgeloops to sharpen corners. Edge Split physically cuts the model to fake a sharp corner, whereas beveling actually creates the corner.

It is perhaps useful to mention to the reader that the EdgeSplit modifier and Bevelling operations are not mutually exclusive techniques. Doing manual bevels helps guide the transition from smooth to flat  in those sections where EdgeSplit produces unnaturally abrupt transitions.

As of this commit (will be in blender 2.71), blender has support for split normals.
This is basically like the old Autosmooth, but it works in Cycles and the viewport in addition to BI.
If you don't know what Autosmooth is, it behaves like the edge split modifier, but without actually splitting edges:

There is no edge split modifier used in the above screenshot.

This is amazing. It fixed all my shading problems caused by subdiv / 1.0 creases at once.

This should actually be the top answer, or the accepted answer should be updated.

as of 2.80, does this work with Eevee too?

@Luciano yes, it should. The setting is in the same place as well iirc

Another thing that you can do is - In Edit mode hit W  and there you have Shade Flat and Shade Smooth You can just select the parts of your object that you want them to be smooth and press on Shade Smooth.

Under 2.8+ this is accessible through both Edit Mode and Object Mode Right Click context menu.

The following method is probably best for real-time (e.g. games) and low-poly work in particular.
Gandalf3 mentioned the new Autosmooth feature, but I'd like to add that with it enabled, you can manually select faces, edges and vertices that you would like to be hard - the Autosmooth 'Angle' setting merely creates a base smoothing to work from. If you then go into edit mode and look in Shading / UVs > Shading, there are options to mark vertices, edges and faces. With Autosmooth disabled, you can see the edges/vertices you have marked, but they will not be rendered flat, but when Autosmooth is enabled, they will be rendered correctly.

As Gandalf3 mentions, unlike the split edges modifier, Autosmooth does not physically split elements in order to get hard edge lighting, so is ideal for low-poly work, and seems to be designed for better compatibility with the FBX and OBJ formats, which are commonly used in games.

Another simple way to do this would be to select the faces that you want smooth (in this case the non-horizontal surfaces) and select Shading: Smooth in the tool panel. Then, select the faces that you want sharp (horizontal surfaces, in this case) and select Shading: Flat.
It probably won't give as nice results as Greg's method, but it might be quicker and simpler.

This is a useful method if you need a lowpoly mesh to import into i.e. Unity. Just make sure to import tangents.

@NoviceInDisguise It seems to work fine for me in 2.73: https://i.sstatic.net/4XqVR.png

Just to be complete:
The first and original method to achieve that is still there: Autosmooth.
It works like an Edge Split set to Edge Angle. The drawback is that the effect isn't visible in the viewport. The modifier is somwhat superior by now.

This answer is now outdated.


text:
Cloth sim : collision with external linked group meshes
I have a scene, with some assets linked into it. Among them is a rigged character, linked by a group instance. The rig is well "proxied", and animated. I modeled a scarf, and wanted to make a cloth simulation. The part of the scarf which is around the neck of the character is parented to the neck's bone, and defined as "Pin" in the cloth parameters.
Now, I don't want the scarf to go through the body of the character, so I came back to the character's blend file, added a collider to the body, saved, and re-opened the scene. Nothing changed. The scarf still passes through the body. There is no cache applied.
Am I missing something ?

I just tried something else, which works... (with Blender 2.67b, however)
I created a new empty blend file, and linked both the character AND the scarf into it. I had to re-configure the cloth settings of the scarf because it seems these ones aren't linkable, but worked like a charm. And since it's the final "workflow" we're looking for (i.e. linking both the scarf and the character, into another "scene" .blend file), it's great !
But, it might be a bug of the 2.67 (before "bugfixes" releases)...


text:
How do blender units and meters, feet, or yards correlate?
If I'm using blender game engine, how do blender units work in relation to gravity, acceleration, or weight?  Is there a rough physical world equivalent?

I think it's usually 1 BU = 1 meter with regards to physics simulations.

What do you mean by rough physical world equivalent. Units are used in the bge the same way they are used in the 3d view.

in relation to gravity, acceleration, or weight.

@jmm I appreciate that you read multiple questions from me probably (the 3d printing and the blender units/real world thing).  They are separate though.  With 3d printing unit conversion would be arbitrary and would depend on the specificity required on the model.  This question was more concerned with physics simulations and how they interact with gravity.  I can add this to my question if you think it would be helpful.

Blender units
The Blender units system is a decimal unit system that can be whatever you want it to be. By default, it's implicitly considered meters. If you go to the scene tab in the properties panel, then to the gravity section, you can see that the rate of acceleration due to gravity is (0.000, 0.000, -9.810). 9.810 is the rate of acceleration in meters per second squared. So as you can see, it's implicitly considered meters. Now, if you change this value to -.0981 and every rigidbody's mass to 1⁄100 of what it was, you would now be working in centimeters and grams (or the cgs system).
Metric units
First off, let me start by defining a list of metric measurements that Blender uses.
Length

(km) kilometer [1000 meters]
(m) meter
(cm) centimeter [1⁄100 meter]
(mm) millimeters [1⁄1000 meter]
(µm) micrometers [1⁄100000000 meter]

Mass

(ton) metric ton [1000 kilograms]
(kg) kilogram
(g) gram [1⁄1000 kilogram]

If you go to the units section in the scene tab, you can see that there are three different options ("None, Metric, Imperial"). "None" is Blender units. If you select metric units, Blender will explicitly use metric units. Check back in the physics panel, and you'll now see (0m/s2, 0m/s2, -9.81m/s2).
For another example, select a mesh and hit n in the scene view to bring up the properties panel, go to the transform section and then dimensions. If you change one of the x, y, or z dimensions to a large number, you will see that it now uses the kilometers instead of meters. And if you change it to a ridiculously small number, like .000002, it will use micrometers.
Imperial units
Imperial units are the worst to work with. Also known as the British units. This is what backward America uses. Let me again define the units that Blender utilizes.
Length

(mi) mile [5280 feet]
(ft) foot [also symbolized with a single quote: ']
(in) inch [1⁄12 foot] [also symbolized with double quote: "]
thou or mil [1⁄12000 foot]

Mass (technically weight)

ton [2000 pounds]
(lb) pound
(oz) ounce [1⁄16 pound]

Separate units
If you are using metric or imperial units, you can use the 'separate units' checkbox which makes Blender separate out a unit of measurement into two separate units of measurement of the same system.
For example, without 'separate units' toggled, a field might display something like 2.538m. But with 'separate units' toggled, it would display 2m 53.8cm
Scripting
One thing you should note is that when working with scripts, and you use a function like bpy.ops.mesh.primitive_cube_add(location=(1.0, 1.5, 2.0)), which creates and positions a cube, the values are in Blender units even if you are working in metric or imperial. So this function, when using the imperial system, would place a cube at (3.281', 4.921', 6.562') or  (3' 3.37", 4' 11.1", 6' 6.74") with separate units.

Can you add a credible link to the source of this information?

That would be me. I fired up Blender and just learned all of this. Sorry.

When you're using the weight units in the Imperial system, does Blender convert them into mass using the setting for gravity, or does it just assume standard Earth gravity for this calculation?

Aaand my answer is blown out of the water. +1!

@Gwenn exactly. It assumes standard earth gravity. Kind of how we weigh things in pounds to see how much mass it has.

Note that units are really useful only for sims. If you're creating a solar system, you'd maybe  say 1BU = 1000km. Blender uses internally floats, so you have only limited data range and precision to work with. Likewise, if you're working on microscopic scale, you could assume 1BU = 1mm for the same reason.

@jesterKing precisely!

1 µm is 1⁄1000000 meter, not  1⁄100000000

Uh, wouldn't the gravity be more in the cgs system, not less? After all, it's the same value, but smaller units.

By default, 1 BU = 1 meter. Proof: the strength of gravity.

Earth's gravity is about 9.81 m/s2 (or 32 ft/s2, if you prefer) downwards.
Now, if you aren't using any physics simulations, 1 BU can be anything you like, and if you're using physics simulations, then you can tweak the strength of gravity anyway to match with the scale you've chosen.

But, in my experience, it has always seemed as though Blender's gravity has been too light. I always end up setting it to 20 or 30. This could be because I build all of my models too big though.

@Gwenn: Probably because you're building all your models too big. For instance, the default cube is two meters long, wide, and high, which is a BIG cube.

@Compro01. You need to assume that the time unit is second. It could also have been animation frames for example.

@user877329 - Not my answer.  I just fixed up some formatting on it.