text:
How to pass a soft object through a narrow channel?
I found an excelent Q/A about Some examples of shape key sculpting vs lattice?. @moonboots suggests in his answer to use a Lattice in order to deform an cylinder object:

How does that work? How can I pass a soft object through a narrow channel like @moonboots does in his answer?

What you've posted there is no soft object passing through a channel, it's actually a Cylinder with a Lattice Modifier moving through a Lattice object.

Add a Cylinder to your scene or whatever object you want to deform.
To be deformed smoothly it needs enough geometry, so subdivide it either in Edit Mode or with a Subdivision Surface modifier.
Add a Lattice to your scene (Shift+A > Lattice)
In the Lattice settings, set the Resolution W to at least 3.
Go to Edit Mode and scale the middle vertices down so that they narrow the Lattice in the center.
Add a Lattice Modifier to the Cylinder and under Object choose the Lattice.
Now you can move the Cylinder up and down and it gets deformed.

EDIT: I'm too slow. The above solution is correct, this is just a shorter version.

This can be achieved using the Lattice deform modifier.

Create a Lattice object (ShiftA, Lattice). In the properties tab, set the U, V and W resolution to a sufficiently high number (I used 5).

In Edit mode (Tab), select the middle layer of points in the lattice (C to enter paint selection mode, then paint, then Enter). Scale them down (S) to define the deformation the Lattice should have.

Add the Lattice modifier to the object you wish to deform, and select the Lattice object you created. Note: you need to ensure that your object has enough vertices for a smooth transformation. If it is too low-resolution, you can add a subdivision surface modifier to increase it.

Your object should now be deformed by the lattice. As you move it through the lattice in object mode, it will appear to squeeze through the narrow region.

Another way is to use simulation. A cloth simulation using pressure behaves a lot like a soft body and can illustrate the effect you want to show.

Details

Create the geometry for the channel and the object to pass through.
On the physics panel for the channel, add collision physics.
On the physics panel for the object, add soft cloth physics. Settings shown below:

Animate!

Example Blender 2.92 file -


text:
'Object does not have geometry data' error when running headless?
I have the following blender python script:
import bpy
from random import randint

#how many cubes you want to add
count = 10

for c in range(0,count):
    x = randint(-10,10)
    y = randint(-10,10)
    z = randint(-10,10)
    bpy.ops.mesh.primitive_cube_add(location=(x,y,z))
    print(f'Cube added at coordinates: {x}{y}{z}')

bpy.ops.export_mesh.stl(filepath="C://Users//diego//OneDrive//CFD//output.stl")

And it works perfectly when called by blender --python script.py
but fails when called by blender -b --python script.py, I get the following error:
Error: Object does not have geometry data
Error: Object does not have geometry data

Blender quit

This does not happen if you don't have the default cube/light/camera in your startup file (I don't know why). So putting this at the start of your script to remove all objects
while bpy.data.objects:
    bpy.data.objects.remove(bpy.data.objects[0], do_unlink=True)

appears to fix it.

It worked, thanks!
It makes sense that those were the two objects without geometry, but the fact that it worked with the ui really misled me

Quoting from https://docs.blender.org/api/242PythonDoc/API_related-module.html :
Background mode examples:
# Open Blender in background mode with file 'myfile.blend'
# and run the script 'script.py':

blender -b myfile.blend -P script.py

# Note: a .blend file is always required.  'script.py' can be a file
# in the file system or a Blender Text stored in 'myfile.blend'.

I have tested it but you can try adding a file in your command line options

Those docs are from 2.42, released in 2006. A .blend is definitely not required in modern Blender. But it doesn't hurt to try I guess...

I've tried using a .blend file (saved the default cube scene, and even deleting the cube) but unfortunately it didn't seem to matter

source: Stack Exchange

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

sort: votes


text:
MacBook Pro 2018 - No render devices for OpenCL (2.91.2)?
I am using a 2018 Macbook Pro and I cannot find hwo to setup OpenCL to accelerate my renders.
Is there any way to make that work?

Have you enabled your devices in user preferences? (I know in my image it says "No Compatible GPU's Found - I don't use OpenCL) Your devices should be listed here - Enable them and they should become accessible from the Render Properties menu.

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


text:
Geometry Nodes align
How can I align a Cylinder with the normals of the surface? I want it to be aligned with the points on the surface as well.

I edited my answer. Apart from placing the nodes in the wrong order, your general idea seems to he correct, it's just that the Align Rotation to Vector node doesn't use the normal attribute (yet?).

UPDATE: The answer below is for Blender 2.92, in the experimental build 2.93.0 Alpha this already works. Keep the nodes in the order described down here. Set Vector to Attribute and enter the value vertex_normal (or choose it from the dropdown menu).
For Blender 2.92: Not the answer to get it working (because it doesn't in this or older versions), jut a quick explanation of how to setup the nodes and what they do.
The Align Rotation to Vector node rotates the points of the plane object according to values you enter in there (if Vector option set to Vector instead of Attribute). Which means, you have to put it before the Point Instance node to have an effect on the rotation of the instanced objects.
However, this only rotates all points into the same direction for X/Y/Z given by the three values entered there (all set to 0 would mean, the rotation isn't changed at all).
So Attribute must be the option to choose I guess - and this is the point where someone should take over who knows how to get the vertex normals. I don't know and can't find a list which attribute names Blender understands, but in my opinion the attribute which gets the vertex normal must be put in there and it should work as you want it.
I just watched a Youtube video on geometry nodes and talking about the attributes it was mentioned that the normal attribute is still a work in progress and yet only used by the Point Distribution node.

Typing in "normal" as the attribute works for me for the Align Rotation to Vector node

How? It doesn't do what is desired to do, you could only align all instances in the same direction. If you've got a working solution, please add it as an answer here.

My apologies I mistook what you said about the Point Distribution node.

That's a pity, I was hoping there is a solution to this...

I've updated the answer.

Hey. Trying to follow the instructions but the list of attribute names is just empty for me. What could be wrong?

It looks like "Point Instance" node deletes all attributes from the input geometry.

Which version you're using? It's not yet working in 2.92, you have to get 2.93 Alpha.

and of course blender GNs has completely changed in 3.0 so you can no longer choose Attribute!!!  sigh

@james_t Well, that's how it goes. Not all answers on this site can stay valid or relevant forever...


text:
how to project fake caustics on 2d image?
I have a 2d underwater background (see images attached) on which I would like to project some fake caustics (such as this: https://www.youtube.com/watch?v=j17dGVw3_gM), could anyone recommend a good way of doing this?
I found that a lot of tutorials explaining how to create fake caustics work when there is geometry involved but I can't find anything when it is for 2d images.
Looking forward to hearing from you!
Thanks a lot!

"Can't find anything when it is for 2d images." If your 2D image is part of 3D scene then surely it is applied in some form of geometry, even if it is a simple plane. If that is the case then the same techniques should apply, no?

Hi @DuarteFarrajotaRamos, you are right, I am trying now. I need to reprogramme my brain to think in terms of 3d as I came from a 2d background. Thank you!


text:
Can I import images as planes without them being affected by the lighting in the scene?
I am working on a 2d short film and planning to do the FX and compositing on Blender. My problem is that when I import an image as a plane, the image becomes reliant on the lighting in the scene. Is there a way to have an image in the 3d scene that doesn't rely on the lighting in the scene? As in, can I import an image in Blender, delete the light from the scene, and have the image look exactly like I had it in photoshop? (see images below to visualise). I hope this makes sense.
Looking forward to hearing your thoughts.
Thank you!

I'll have a chat with the others to see what the consensus is .. I'm not sure that this is actually a duplicate if you take more of the specific details into account? It's a toss-up .. see my answer here, on the dupe.

In the Shader Editor, plug the Image Texture node into a Shader > Emission that you plug into the Output:

You can simply plug the texture in the Material Output, no need for an Emission shader.

Yes I know, since the latest versions

Yeah, well since 2.80 now which is more than 4 years old if you count that as "latest versions"  ;)

Sure but it's always better to know the basic nodes, plugging directly into the Output is like plugging an Emission

I guess I'm a bit sensitive here :D It's maybe just because I'm always annoyed from that one youtuber who (despite using Node Wrangler) always plugs any node output into the Emission Color of a Principled BSDF only for previewing purposes instead of Ctrl+Shift+LMB which is so quick and handy... he doesn't want to create a shadeless material what is asked for here, it's just a quick preview. That bothers me each time. Sorry to project that huff onto your answer :)

plugin into the Emission of the Principled BSDF doesn't even give the same as Ctrl Shift LMB or as a simple Emission, it's still a mix between Diffuse (with Specularity) and Emission

hi @moonboots and Gordon Brinkmann, thanks so much for your answers. If I could just ask one more thing: I have a fake caustics effect on that 2d BG (see the vertical lighter lines on the second image) and the moment I plug the Image Texture into the Material Output, I get the desired effect of the light not affecting the BG but the fake caustics effect disappears along with it. Is there a way to retain it? thank you very much for your help!

Hello could you please pack your images (File >External Data > Pack Resources), save and share your file?

Hello @moonboots, I just uploaded the file here:  thanks a lot!

I'm not sure why you're using 2 planes, they are overlapping which creates a problem of Z-fighting, the image disappears, why don't you use one plane only?

hey @moonboots, I am very new to Blender which means everything I do with the software is clumsy at the moment. The reason I split it in two planes was to have the one caustics effect that goes on the side of the pool and a different shaped caustic effect going on the bottom of the pool to give the impression of two different planes. I don't know how to do that in one plane...

So shouldn't the plane be perpendicular rather than overlapping?


text:
Do cameras in blender give an accurate representation of a shot as if it were shot with a real camera in live-action?
Hello Blender Community,
I am prepping a live-action film shoot taking place in a swimming pool.
I have built a 3d replica of the location in Blender in order to be able to place my cameras in the set and find the shots I need ahead of the shoot.
My question is, does the field of view/ focal length in Blender match the same given focal length in reality. Aka, will the cameras in Blender give me an accurate visualisation of what the shot will look like at the live-action shoot?
I have attached a few images to give an example:
If at the live-action shoot I put my camera like in screenshot 2, will I get the same exact shot as in screenshot 1? (Providing I have built the 3d set following the correct measurements of the real location)
I hope this question is not too confusing.
Thank you for your help

No.
Focal length is only optics parameter, you should get the right sensor size for reconstruction. Blender has some presets for you:

You can also make a video from the camera, make 3D tracking and get a estimated field of view from it.


text:
Is there a way to import .svg files into Blender so it honors the .svg layers and will look the same without plane collisions?
I have an SVG file that is all outlines and imports nicely into Blender EXCEPT that each segment imports into the same positional plane so what looks correct in the SVG file shows the letters merged together where they intersect.  I know why it does this, but it'd be nice if the imported SVG would look the same without this issue, after all that's what the layers in SVG files are for.
I know after importing I can edit the layers and adjust their Y position to shift one set of letters in front of the other but I was hoping to avoid having to do this since I'd like to have a workflow that works for a lot of these situations.
I cannot use booleans and cutting out the shape of the intersecting "t" from the "D" isn't an option, I need each letter's shape fully in tact so they can be used further in an animation.
So, is there a simple way to import SVG files with layers so they don't collide or will I have to resort to adjusting the positions to duplicate the layering in the SVG?
Here are the images to help show what I'm referring to:
SVG File: Notice that the "t" is in front of the "D"

Blender rendering of the SVG file imported:

Could you link a sample svg?

See https://blender.stackexchange.com/questions/51962/when-importing-svg-from-inkscape-losses-of-color-and-definition and https://blender.stackexchange.com/questions/52825/svg-curve-incorrectly-rendered/ I know of no way to Z stack objects natively, maybe sort them in Z after the fact with something like https://blenderartists.org/t/distribute-objects-addon-another-array-addon/1218859 , it wont attempt to conserve any original Z ordering, objects will be sorted arbitrarily, although if they are read and created by their Z index it might coincidentally be correct

As far as I know, the SVG layers hold no 3-dimensional information. How should Blender decide how much height difference there should be between the layers? They are 2-dimensional with zero height, so that's exactly how Blender stacks them above each other. Because even if Blender might be able to give them the correct order, the height is still 0 and that causes Z-fighting.

SVG do have the concept of layers, although they carry different meaning. They can be translated to Z depth in 3D. But since it's a subjective translation, you'll have to use a custom made importer

I know this is an old thread, but I just made a quick tutorial on how to distribute the intersecting SVG layers using a free add-on. Thought I would share here in case someone is still looking for a quick way to do this. https://www.youtube.com/watch?v=oWMfOWDGxLY

I know this is an old thread, Thought I would share here in case someone is still looking for a quick way to do this.
While this doesn't fix the imported SVG immediately, I found this way to distribute the intersecting SVG layers using a free add-on called "Align and Distribute" much quicker than having to manually offset the curves, especially when you are dealing with quite a few layers.

Download & install the Add-on
Download here https://amanbairwal.gumroad.com/l/AlignAndDistribute
Or google "Align and Distribute by Amandeep"

Import the SVG into Blender

For the distribution to work, you need to offset one of the curves. Select the last curve in the outliner and move it up in the Z axis.

Open the side panel (Press N).

In the "Item" tab, expand "Align and Distribute".

Select the "Z" axis under the distribute section.

Result: All layers will be distributed (and equally spaced) between the first and last layer.
I made a quick tutorial on how to do this.
Google "blender svg distribute shico" or click the link below
https://www.youtube.com/watch?v=oWMfOWDGxLY

This does not provide an answer to the question. Once you have sufficient reputation you will be able to comment on any post; instead, provide answers that don't require clarification from the asker. - From Review

The community generally focuses on providing solutions using Blender’s built-in features and FREE add-ons. Paid add-ons are not typically used as default solutions unless they are specifically mentioned by the person asking the question

@HarryMcKenzie I haven't tested it, but the addon seems to be free, and unlike the other answer, there is a step by step guide written. Do you really think it's not helpful for others?

@quellenform it was $3 when I made the comment as seen in this screenshot which he may have changed to $0 but when I attempted to download I cant get it for free. Also the issue is that they can easily change it back to $3 after we finished reviewing it so it should probably not be considered  valid answer. Well it can be argued that it's better than no answer. It's tricky.

I'm sorry if my comments came off as spam, it is my first time posting here. I understand why my first answer got deleted, so I followed both Robin and Harry's suggestion to not just include the link and provide more details to the answer. I didn't mean to double post. And as for the add-on, Harry is right, it could change, however at the moment it is still free, even though it suggests the 3-dollar price, you can still type 0 and get it for free, I just tested it again.

@HarryMcKenzie I have just tried it out: Just enter "0" in the purchase amount field (even if it says $3+), and you'll get the addon for free. I agree: The answer is only valid as long as the addon is free.

@quellenform yeah i tried it again and probably a caching problem since it just got changed to zero so the display has not refreshed to $0 yet.


text:
Randomise the endpoints of parallel curve lines (Geometry Nodes)
I'm looking for a solution how I can switch start and endpoints of parallel curve lines randomly with Geometry Nodes.
What I have so far is this:

10 parallel curve lines, divided into 10 segments by resampling it.
Now I want to somehow reassemble the start and endpoint of the lines. Imagine 10 cables plugged into a router and than randomly switch the cable into another slot.
It should look like this:

a) is what I have so far, b) would be simple but fine, c) would be great, to have 2 offsets in order to define where the switch should happen.
Any (simple) solution? Any help will be much appreciated!

You could use one of geonodes [sorting] options to randomly sort the available coordinates:

You can adjust Set Position: Offset to make the crossing more readable:

Wow that was fast, thank you so much Markus! That's exactly what I was looking for, even with an offset, great work!


text:
Script isn't removing all color attributes
I'm trying to write a script for blender that will remove all color attributes from a mesh.
This is what I've got:
import bpy

scene = bpy.context.scene

for obj in scene.objects:
    print("Checking to see if " + obj.name + " has any vertex colours.")
    if obj.data.color_attributes:

        print("It does!  I guess I'll delete them")
        for attr in obj.data.color_attributes:
            print("removing " + attr.name + " ...")
            obj.data.color_attributes.remove(attr)

    else:
        print("It doesn't!")

This appears to work fine, but if the mesh has three or more color attributes it doesn't remove all of them.  Where am I going wrong?

Same result as you. I don't know why, I guess it's a matter of order.
But this works fine, it successfully removes it from last to first.
import bpy

scene = bpy.context.scene

for obj in scene.objects:
    if obj.type != "MESH": continue
    print("Checking to see if " + obj.name + " has any vertex colours.")
    if obj.data.color_attributes:

        attrs = obj.data.color_attributes
        for r in range(len(obj.data.color_attributes)-1, -1, -1):
            attrs.remove(attrs[r])

The reason it works is because in the OP they're deleting items of the list while iterating over it. Here you're using the item indices, beginning with the last one and ending with the first one, so when you delete an item the subsequent indices are still the same ,whereas when you iterate over the indices in order (0, 1, ... n) and you delete an item, the subsequent indices are all shifted by -1. so every time you delete an item, you miss the next one. Another solution : while obj.data.color_attributes: obj.data.color_attributes.remove(obj.data.color_attributes[0])


text:
How can I select visible loose edges during cloth animation?
I'm working on converting a mesh by adding cloth physics. The simulation is going OK, but when I run it, I can see there are some edges that sort of hang loosely off the rest of the mesh from cloth physics being applied. They aren't connected to any faces. But it's really hard to find them individually in edit mode because the mesh returns to its original pose with no cloth physics.
I think these loose edges are messing with the self collision on the mesh. I've been painstakingly going through clicking on edges and trying to delete the ones that aren't supposed to be there, but it's going to take a long time if I do it this way. Is there any way to tell Blender to select those loose edges while still on object mode, or to apply the cloth physics during edit mode so I can easily select and delete them?

If you activate the addon called Mesh: 3D-Print Toolbox, you can open the N panel > 3D-Print > Clean Up > Make Manifold, the floating edges will be deleted


text:
Texture is extremely desaturated exclusively in the texture paint tab
I edited the uv coordinates of the model, and when I switched back to the texture paint tab the texture became extremely desaturated. I may have accidentally clicked an option I didn't intend to, but I have no idea what to look for.
This is how it looks in the texture paint tab.

In the shading tab, as well as all others, the saturation is correct.

Hello could you please pack your image and share your file? https://blend-exchange.com/


text:
BGE: Can Python do more than the Logic Bricks?
In Blender, as I'm sure everyone knows, there is a game engine and I've been neglecting it. I don't have any big plans for it, just to see what it can do. But there's two ways two ways I can do this:
1. Python or
2.Logic Bricks

I don't know Python, but I was wondering, does Python have any more capabilities than the logic bricks? Would I be limiting myself by using the logic bricks? Are all of Pythons(and really all coding languages) logic represented in three drop-down lists of Sensors, Actuator, and Controllers?
Sorta Related Question
Which is more efficient for performing simple actions, Python, or Logic bricks?

You can do quite a bit with logic bricks, but if you want to do really well, go for python in the long run.

@X-27 So, does that mean python can do more than the logic bricks?

Yes a python script can do more than logic bricks. Most likely you will use both.
There are three types of logic bricks - sensors, controllers and actuators. Sensors are used to input data to the game engine such as keyboard and joystick or internal data like collisions that you may want to react to. Actuators perform actions, they may start an animation or they may alter a property. Controllers then provide a connection between the sensors and actuators.
Controllers are where python comes in, a python controller allows you more control between the input and the action. In the simplest form you may use a python controller that does a test before starting an actuator or maybe dynamically adjusts a sensors properties and at the other end of the scale you can go all the way and just use one python controller which is connected to an always sensor that looks at all of the input and alters all game data itself.
So start by using logic bricks to get your game running and then when you get stuck with something that just doesn't work the way you want it to, create a python controller for it.

Good answer, but you might want to include that python isn't organized into sensors, controllers, and actuators; and that the OP would be limiting himself by not learning python (two of his questions).

Could you give an example of something that python can do but logic bricks cant?

The BGE's logic (describing behavior within your game) is based on SCA (sensors-controllers-actuators).
It is an event system that let you describe WHEN happens WHAT.
It will be configured via logic bricks. The build-in bricks allow easy configuration of static behavior. The majority of operations can be done with build-in logic bricks.
There is still a huge amount of logic that requires dynamic processing (e.g. find the closest object in a set of several objects). This is very hard with the build-in logic bricks. Therefore you can create your own custom bricks. You describe the behavior with Python. This allows you to use the full power of this programming language (but you need to learn it first).

But there's two ways two ways I can do this:

Python or
Logic Bricks

Knowing the facts from above will hopefully show you - there are no two ways. It is the same way. You can exchange some of the two options (e.g. you can create a custom brick to do what build-in bricks already do and you can use several build-in bricks to do what Python code can do). Quite a lot can't be interchanged and you have to use Python or the Logic bricks unless you choose a complete different design.

Are all of Pythons(and really all coding languages) logic represented in three drop-down lists of Sensors, Actuator, and Controllers?

For unknown reason you can only create custom controllers. This means you need to let the controller act as actuator and/or sensor (inefficient). It can act as all three brick types at the same time.
Be aware it is still a controller. It will be executed with all other controllers (after the sensor evaluation and before the actuator run).
Remarks:
Some people tend to avoid logic bricks and try to implement an own event system. This is not recommended. When you are not happy with the framework  the game engine provides you might better change to a game engine that fits your needs better. The BGE is no "script only" engine, nor a "configuration only" one.
My recommendation:

Learn to use the bricks
Learn to use Python
Learn to judge when to use what (and use what you think is correct)

I hope it helps

Python is itself powerful in BGE, and for advanced developer, Python opens a window to a even bigger world of possibility.
What I did was to program all computationally intensive and complicated communication functions in C++, using Boost.Python as a [C++,Python] interface.  Compile the code as a DLL (dynamically link library), and use python in BGE to import and interface with the DLL functions.  The DLL can have access to any objects the BGE python have access to.
This approach really allows you to do anything you can imagine.  I was managed to run intensive math crunching, serial communication and udp broadcasting in BGE with this approach.

BGE offers several advantages over other game engines (Unreal, Unity, etc) because it allows you to build assets that the other game engines can't match.  That said, BGE suffers a huge negative based on the fact that it doesn't provide for a rich development environment.  The logic bricks are great for beginners and there's nothing wrong with supporting them and making them even better but, in the end, an original game is going to take a large amount of custom work (inventory, UI, configurable controls, etc) that the logic bricks do not support without a nightmare of nodes and lines.  A programming language, on the other hand, does these things with ease.  Blender should absolutely allow for a full Python control system and offer logic bricks as a streamlined solution built on top of that system.  Why?  Because, without full scripting support you can't, for instance, build the ultimate RPG control camera that allows you to simply attach it to the cube in your scene.  Instead, you have to look at the developer's code and figure out which sensors to hook up and what to call them and you have to do this for every object that could appear in your scene.  That is in violation of the liskov substitution principal and, frankly, a rookie mistake.  What we need is a way to attach fully functional behavior to any object, along with configurable parameters to control that functionality.  Secondly, we need a fully featured IDE to develop that code in.  Sadly, neither is possible in the BGE without extreme effort.

Is this an answer to the question (logic bricks vs python) or a rant at the BGE?

Python can do a lot of things that bricks cannot...some fancy screen space AO for example, and bricks can turn into a tangled mess the more complex the game, the more useful python becomes. I personally try to avoid the bricks as much as possible, unless 3-4 bricks < the lines of code required to accomplish a task...
e.g.
if I just want to activate an animation of a sign based on the distance of the player...I will use bricks....
if I want to dynamically make the sign sway in the wind, I will use python...less lines of code versus the amount of bricks and additional objects may be needed with their own bricks.
I really do not care for the bricks tbh, but they do have some nice functionality for creating spawners or simple tracking of objects..but some simple math does the same things...
I fully recommend you look for resources online for python and vector math
bricks are fine for mario, but for skyrim you need python.

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


text:
Why is Blender's V.S.E. Slow?
What I know about blender's V.S.E. is that it can cache a certain amount of frames before dropping frames(Related). But, on my Ipod I have video editors like Imovie, and Cute Cut and there is never a delay with the videos, even with different FPS. (maybe because Cute Cut and Imovie have a MCFI?) So what method do they use, or does Blender just use an out-dated version of Caching? Also my Ipod has much smaller RAM so it wouldn't be able to Cache much. Then when I'm finally done making a video why do  have to I render it? With other Video editors, like lightworks or Filmora or Imovie or CuteCut or WindowsMovie maker or pretty much everything else, I export it. So is Blender's VSE outdated- or the opposite, it's so good that normal pc's can't handle it? Which begs the question, why not have a dumbed down version for normal pcs?
Wow, ok that's a lot a questions, sorry, but to narrow it down to one(two) question(s):
How does Blenders VSE work, what makes it so slow?

Look at this video https://www.youtube.com/watch?v=KZl1xS9Lmvw&index=8&list=PLjyuVPBuorqIhlqZtoIvnAVQ3x18sNev4 , there are the answers for your question .

@cegaton I see your point, but Blender is an apple, orange, kiwi, and banana smashed into one big fruit blob and I want to compare the orange part to a normal orange because obviously there are some comparable differences because they are still both video editors

@cegaton I can't honestly say they handle them well.

Short answer:

There is no “rendered” cache.
Not all codecs are equal.

As to the first point, every single operation, including shifting resolutions from your source file to destination, alpha overs, etc. are all done in real-time. This means that if you stack twenty strips with Alpha Over, every one is calculated on the fly.
As to the second point, codecs are designed with different design goals. Some are to compress the data size, some are for streams, some are for other nuanced things. These codecs can put more or less demand on a system depending how they were designed.
Typically, you shouldn't be doing manipulations and effects work in an NLE anyways, so it isn't much of an issue; use an NLE to get your beats, but use other tools for your grading or effects work in a non-realtime environment.
To maximize the VSE's ability to perform, you might want to try a few things:

Keep your rendering output dimensions precisely the same as the dimensions of your input file. Some DSLRs for example shoot 1920x1088, and using 1920x1080 will result in a costly scale every frame.
Use temporary simple effects strips to block in your complex work. Worry about keeping the frame rate high instead of how it looks. You can do the heavy work later in a compositor.
Don't bother grading or adding more processing. Again, save that for when you are finished so you can grade it more precisely in a proper tool, at proper deeper bit depths.
Keep dissolves and overs to an absolute minimum. The VSE can keep up if you avoid stacking many together.
Use a codec designed for quick seeking and decoding. A non Group Of Pictures (GOP) codec that stores all I frames is ideal.

As someone who decided to try and take a piece to broadcast with Blender, I can tell you that it can be used effectively, albeit with some effort and planning.
Hope that helps you along...

To add to the answer above...
The Sequencer only uses 1 CPU core
Blender's Sequencer doesn't use all the available power on your computer. The video engine roughly uses one CPU core, and that's it.
Note: I'm talking about video, image strips... scene strips are different as you directly render a 3d scene using the engine of your choice.
Blender's Sequencer was developed decades ago, and it seems its renderer wasn't re-written since then. Other professional video editing program will likely uses all CPU cores together with the GPU to provide faster preview and renders.
It's not as bad as it seems
In my experience, rendering performances are mostly an issue for real-time preview. Regardless of the codec, Blender will likely struggle with HD and certainly with 4k video. But you can edit comfortably with proxies: smaller resolution videos that use the right codec. See Mikeycal's proxy tutorial on Youtube for more info.
Rendering will often take a while. But as Blender keeps your other CPU cores free, you can keep working while it exports your video in the background. I edited over 200 videos with Blender so far, mostly tutorials, and actually appreciate that it doesn't lock your computer up. Also that it doesn't crash!

In the tutorial, he clicks on "Blender rebuild proxy and timecode indices using the job system". He doesn't say what it does but this may be it. I'd suggest using other software, such as Filmora as it's doesn't require a proxy.

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


text:
Is there a method to create bl_info using variable?
I have noticed that when creating addon, if the bl_info is create with variable. The script will break the addon system. Causing disappear tab after restarting blender:
desc = 'Run script in any space with given name of script'
import bpy

bl_info = {
    "name": "Run specified script in all context",
    "description": desc,  # Here, a variable. (And WTF is this code highlight?)
    "author": "hikariTW",
    "version": (0, 1, 0),
    "blender": (2, 80, 0),
    "location": "TextEditor",
    "support": "TESTING",
    "category": "Interface",
}

Is there any workaround or this is normal when dealing with static examine of script when Blender try to list them out?
The test is done in Blender 2.83.4

Further testing which also break addon:

f-string and str.format
formatting with const-like 15 'foobar' without variable.
Conditional Expression: "foo" if True else "bar"

Have you tried "description" : f"{desc}", ?

Nope, any string format with any kind of variable even pure int or str. Including f"{desc}" and "{}".format(150). It seems that it need to be pure text formatting without any statement.

Oh, alright. Are you dynamically pulling the description from another file / module or is it for a translation ?

Just simply want to separate code into different part for better formatting.

No
Sure this is a dupe, have searched and searched,
For want of a better reference

https://developer.blender.org/T53617
bl_info must be declared in the module.
This is because bl_info is extracted without executing code.

ie the bl_info dictionary is grepped out of the addon module top level file (foo.py or foo/__init__.py) as a string where the  locals will not be available.

Thanks for the link, but shouldn't Blender handle the exception carefully and indicate that there is some invalid bl_info rather that just failed to fetch data and make whole addon panel failed?

Wish I could find when this was previously asked as IIRC it was well explained, on how the dictionaries are used to build the fake modules list. Yep could add some exception handling for this..... yet again the addons panel can  already be a ponderously slow beast.  Adding an exception test for something that as demonstrated  doesn't work, is fixed by not doing it.

.. have my nose in dynamically creating addons.  The concept of having a single tools umbrella addon has kinda taken a big  hit with the association of addons with workspaces, and currently end up with all or nothing. Might write a q re this one day.

@batFINGER - Do you happen to have a link where you discuss this idea of a "single tools umbrella addon?"  It sounds immensely interesting as I was trying to make something along that line (if I understand correctly).

So it seems like Blender is using ast.literal_eval() for finding bl_info without execute whole addon content.
As the references said, using eval to evaluate arbitrary addon would be extremely dangerous. And the potential corrupt code will also make Blender vulnerable to malware.
Reference

literal_eval() — ast — Abstract Syntax Trees — Python 3.8.6 documentation
Using python's eval() vs. ast.literal_eval()? - Stack Overflow
Ned Batchelder: Eval really is dangerous

This can be done with a workaround, especially if you develop externally and have an automated reload system like the amazing Blender Development VS Code extension created by Jacques Lucke.
As an example if using the above mentioned extension, you can create a "templating file" and have it write out your template to __init__.py, with whatever variables you want:
import datetime

timestomp = datetime.datetime.now().strftime('%y,%m%d,%H%M')
version = tuple(int(x) for x in timestomp.split(','))

text = f'''# AUTO GENERATED - do not edit if you value your time and/or sobriety
import bpy

bl_info = {{
    'name' : 'RenderNextSlot',
    'author' : 'Human McAuthor',
    'description' : 'Always render into a new render slot, instead of overwriting the current render slot.',
    'blender' : (4, 0, 1),
    'version' : {version},
    'location' : '',
    'warning' : '',
    'category' : 'Render'
}}

from . import auto_load
auto_load.init()

def register():
    auto_load.register()

def unregister():
    auto_load.unregister()
'''

with open('__init__.py', 'w') as f:
    f.write(text)

Now, every time you reload the add-on, the __init__.py file will be re-generated with your updated variables.  If not using the extension, you just need to run your template code whenever you want your bl_info updated.


text:
How to display EnumProperty control like radio buttons, while keeping the selection exclusive?
I have an EnumProperty set up on the Scene in the register function:
def register():
    bpy.types.Scene.my_enum = bpy.props.EnumProperty(
        name = "My enum",
        description = "My enum description",
        items = [
            ("FIRST" , "First one" , "Description..."),
            ("SECNOD", "Second one", "Some other description")
        ]
    )

Now, elsewhere in the code I have a Panel, which is to display the 'enum' for selection:
class SomePanel(bpy.types.Panel):
    bl_idname      = "some_panel"
    bl_label       = "A panel"
    bl_space_type  = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context     = "render"

    def draw(self, context):
        layout = self.layout
        scene = context.scene
        layout.prop(scene, "my_enum")

So far so good, the control draws correctly, but not the way I want:

Thing is - I wanted a different appearance - I didn't want a dropdown field, instead I want a radio-button like field, as the one found for example here:

... where I can choose one of the options regarding the color mode (BW , RGB or RGBA).
I've found that I can put the "ENUM_FLAG" in the options field of the EnumProperty definition:
def register():
        bpy.types.Scene.my_enum = bpy.props.EnumProperty(
            name = "My enum",
            description = "My enum description",
            items = [
                ("FIRST" , "First one" , "Description..."),
                ("SECNOD", "Second one", "Some other description")
            ],
            options = {"ENUM_FLAG"}
        )

This too worked fine, the result I got now is this:

But now I can activate both buttons at once using Shift, and that's what I want to avoid:

So How can make the selection exclusive? How to force Blender to switch from one option to the other (or in other words: How to disable the Shift functionality)?

I struggle with the title of this question, it seems to me it should include " giving visibility to all items at once" (like a radio button array).

@zeffii Perhaps it could sound this way, but I've considered putting all the context in the title to be an overkill.

@zeffii Is it better now?

Remove the options = {'ENUM_FLAG'} to remove multi-select. You can then set a default.,, eg default='FIRST',

@luke1985 I don't know if there's a 'better', only time and upvotes will tell. I agree context-overkill could happen, but if you don't mention options={'ENUM_FLAG'} then non-exclusivity isn't even in the realm of possibilities for the enum. hence my thoughts about the title.

Booleans have toggle=True, and Enums have expand=True
layout.prop(scene, "my_enum", expand=True)

The most extensive UI cookbook is still this one though the layout docs are definitely useful after you've struggled a little. Other than those two sources I find it best to read through the draw functions of the add-ons supplied with Blender (you probably did this already.. if not, do)

Almost all UI layout that you can interact with is described in Python, so if you see a UI feature you like dig through its source.

Oh, thanks for that link - for now I've been using only the official reference guide and this site plus the existing addons source (and to be honest with you, I already found the answer while writing the question - in the netrender addon source - but I wanted to share the knowledge for such a, hopefully, common case).


text:
How to access depth (z) buffer data of a render result from python
My issue is that I want to access the buffer data from python, pixel after pixel, for being able to use it for arbitrary computations. How can I achieve this?
(Please dont tell me about exporting to different kinds of formats like exr etc, because I want to do computations  in place).
Also I'm talking about blender 2.68 or higher.

Image.pixel is not available for Render Results, nor does it contain depth-information.
You can get the depth in Node Compositor / Cycles, but I don't believe it's possible to read with python in-place.

Yes, this is possible. You can use this trick to get the rendered pixels:
https://blender.stackexchange.com/a/23309/13212
However, instead of connecting the image output of the Render Layers to the Viewer's Image input, you can connect the Z output of the Render Layers. This will give you the depth pixels for each pixel four times (in each color channel)


text:
Can't import DWF File. seems like python addon error
I'm using macOS Catalina 10.15.3, Blender version is 2.82.
I installed the addon via user preferences, and would like to import a dwf file.
(I converted it from DWG using ODA File converter to 2010 ASCII DXF Version).
Here's the error message.
Traceback (most recent call last):
  File "/Applications/Blender.app/Contents/Resources/2.82/scripts/addons/io_import_dxf/__init__.py", line 542, in execute
    proj_dxf, proj_scn, self.represent_thickness_and_width, self.import_atts, dxf_unit_scale)
  File "/Applications/Blender.app/Contents/Resources/2.82/scripts/addons/io_import_dxf/__init__.py", line 120, in read
    errors = do.entities(os.path.basename(filename).replace(".dxf", ""), new_scene)
  File "/Applications/Blender.app/Contents/Resources/2.82/scripts/addons/io_import_dxf/dxfimport/do.py", line 1633, in entities
    self._recenter(scene, name)
  File "/Applications/Blender.app/Contents/Resources/2.82/scripts/addons/io_import_dxf/dxfimport/do.py", line 1400, in _recenter
    bpy.context.screen.scene = scene
AttributeError: 'Screen' object has no attribute 'scene'
location: <unknown location>:-1

Is this any problem I can fix? Or just wait for the update?

Hi. What add-on? Dxf?

Questionable if the addon is for 2.82.  Rather than setting screen.scene as in prior in 2.8 set window.scene. (Explaining the error message)  Can you provide a link to the addon you installed?

https://docs.blender.org/manual/en/dev/addons/import_export/scene_dxf.html.   this is the link I can find.


text:
How to render my animation
Can someone please help me render an animation? I'm facing trouble and I'm completely new to this..
LINK to the File : https://www.mediafire.com/file/74y5js2cnke6ha9/Cinematic_Movie_Text_Animation.blend/file

What have you tried, what did you research, what has failed?

Render Menu and Output Settings

Can you please tell what you are having trouble with?

This forum is to answer specific questions, not generalised wishes. Please don't include emails etc as all communication should be through the here.

You should not add any personal information like your email and description should be clear and also the question should be clear.

To render an animation.
1st press 0/Ins key to go to camera. But here we can see that camera is not capturing the text, we need to adjust that first.

This view you are seeing without camera is perfect to set the camera.

Now to set the camera to the view you are seeing, HIT Ctrl+Alt+0

Select the type output of animation like Image Sequence, ffmpeg(video) etc., and also set a location for storing tmp.

Now, play with the settings like renderengine, sampling etc., and then hit Render>Render Animation (or) F12 to render animation.

Wait for the animation to render.

I'm still a bit confused. Can you help with mac commands?

I'm not a macbook user but here : https://blender.stackexchange.com/questions/105052/what-are-the-keyboard-shortcuts-on-mac-os-for-blender hope this helps you

Thank you so much


text:
bmesh transforming multiple objects into a single mesh (separate objects)
I am trying to duplicate multiple objects resulting in the same location/rotation relative to each other. I can get my code to work for a single object but when multiple objects are used obviously the objects get transformed N times (N number of multiple objects). Is there a function that I am missing or a different approach?
import bpy
import bmesh

bm = bmesh.new()
for i, o in enumerate(bpy.context.selected_objects):
    bm.from_mesh(o.data)
    bm.transform(o.matrix_world)

me = bpy.data.meshes.new("Mesh")
bm.to_mesh(me)
obj = bpy.data.objects.new("Object", me) # https://docs.blender.org/api/current/bmesh.ops.html
bpy.context.collection.objects.link(obj)

bm.transform transforms every vert.
Question code will be getting an accumulative effect of transforming every current vert in the bmesh by each objects world matrix.
Instead, only transform the newly "from_mesh'd" vertices
import bpy
import bmesh

bm = bmesh.new()

for i, o in enumerate(bpy.context.selected_objects):
    bm.from_mesh(o.data)
    bmesh.ops.transform(
            bm,
            verts = bm.verts[-len(o.data.vertices):],
            matrix=o.matrix_world,
            )

me = bpy.data.meshes.new("Mesh")
bm.to_mesh(me)
obj = bpy.data.objects.new("Object", me) # https://docs.blender.org/api/current/bmesh.ops.html
bpy.context.collection.objects.link(obj)

Related
https://blender.stackexchange.com/a/149269/15543

Thanks a lot! I didn't know that you could apply the transforms to verts! Thanks again :)


text:
Can I make custom force field that only rotates particles around an object?
Hi I want to make particles only rotate around an object. And I also want them to follow a simple equation
$$
F \propto {1 \over r^2}
$$
where $r$ is the distance of each particle from the object. Is there any way I can achieve this goal?

Somewhat related https://blender.stackexchange.com/questions/118441/gravity-simulation

with that I can simulate gravity but if i want to simulate any other force which is kinda like that but its equation is different or value is different, then what can I do?

Because you need the formula I would try it with drivers and the copy the objects and move them as you need it

I don't think you can do that with the built-in particles without a serious hack/patch. If the amount of particles is not too large and you only want them to move according to your rules, no interactions, Animation Nodes might be pretty interesting for you.

how much particles? can you suggest me some good YouTube videos about animation nodes?  @FrederikSteinmetz

We have some, but they're a bit older, search for blenderdiplom on YT. How many particles they can support depends on your setup and computer. 1000 should be no problem, 10,000 might be somewhat of a limit.


text:
I cant run a particle related script. It says "bpy_struct : item.attr = val : sequences of dimensions 0 should contain 4 items, not 3" in line 28
So I was trying use this script from reddit https://github.com/JaredTS486/Blender_Particles/blob/master/particles.py
Then I encountered this problem where it says
bpy_struct : item.attr = val :
 sequences of dimensions 0 should contain 4 items, not 3

Here my code for material is
def makeMaterial(name, diffuse, specular, alpha):
    mat = bpy.data.materials.new(name)
    mat.diffuse_color = diffuse
    mat.diffuse_shader = 'LAMBERT'
    mat.diffuse_intensity = 1.0
    mat.specular_color = specular
    mat.specular_shader = 'COOKTORR'
    mat.specular_intensity = 0.5
    mat.alpha = alpha
    mat.ambient = 1
    return mat

red = makeMaterial('Red',      (1,0,0), (1  ,1  ,1), 1)
yellow = makeMaterial('Yellow',(1,1,0), (1  ,1  ,1), 1)
blue = makeMaterial('Blue',    (0,0,1), (1  ,1  ,1), 1)
green = makeMaterial('Green',  (0,1,0), (0.5,0.5,0), 0.5)
white = makeMaterial('White',  (1,1,1), (0.5,0.5,0), 0.5)
black = makeMaterial('Black',  (0,0,0), (0.5,0.5,0), 0.5)

What should I do?

Re-jig the script for RGBA
The script was written in 2013 a time when the now defunct blender internal render material colors did not include the alpha channel, as demonstrated by a simple test in python console
>>> D.materials['Material'].diffuse_color[:]
(0.800000011920929, 0.800000011920929, 0.800000011920929, 1.0)

This is what the error is telling you. In case above for diffuse_material property of material has 4 elements not 3.
Edit, and test in python console to suit current status.
Somewhat related Pixel to voxel in Blender 2.92
Note. Will run into more errors, once again testing in the python console using TAB to auto complete, will show that the specular_shader option is also a thing of the past.
>>> D.materials['Material'].specular_
                                     color
                                     intensity

(Alternatively use a pre 2.8 version of blender)


text:
Parts not moving along armature
I have tried to animate this model i got.
However there is a problem, some parts of the creature are not moving along it's body. I don't have much experience with blender and i have searched, yet couldnt fix this issue. Could someone try to explain to me what's wrong?
Here is the file for the project: https://drive.google.com/file/d/1WfydBMDL2nNs2JKs1LuquqDOcaexJbgj/view?usp=sharing

The mesh is non-manifold, all the hair is separate meshes, it must not help the parenting, you should correct that in Weight Paint mode. First select the armature in Object mode, shift select the mesh, switch to Weight Paint mode, in the Brush panel disable Front Faces Only, in the Falloff panel click on Projected:

Then CtrlLMB to select a bone and paint:

Thanks alot man! Appreciate it.


text:
subdivison not working properly in render

following a blender guru tutorial but the subdivision on the front side of the model is not displayed properly, please help me as i am starting new in this software

Hello please share your file: https://blend-exchange.com/

Hi, Nishchay Gawai .. welcome.. Can you describe the display you are expecting? Would that be a wire-frame overlay on the model?  (enabled in Properties editor, Object tab, Viewport Display)

as you can see in the image the front side of the anvil is not subdivided as in not smooth, you can see the sharp corners in the rendered image


text:
Place character on chair from picture
can you can import a picture of a chair and import a 3d character made in blender and make it sit in the chair from the picture (like photoshop)?
Thanks for your help

You could try to use the fSpy software and addon but it won't help in every situation (if it's hard to find the vanishing lines, if the objects are not perpendicular, or aligned with each other, etc). What you can do is create a chair that looks roughly like the one of your picture, create a space that looks roughly like the one of your picture, put the camera in front of your scene:

Enable the Lock Camera to View option, select the camera, evaluate its Focal Lens from your picture, enable Background Images, select your image in order to always see it as a background when you are in camera view:

Put the chair where it is supposed to be, rotate it accordingly, move your camera until the 3D view matches the image perspective:

Now you roughly have the correct camera point of view, lock it, import your character, put its feet on the ground, hide the other 3D objects...
To render the scene with the picture as background you have different solutions, like using the Compositor to overlay the character on the background image.


text:
Applying all transformations not working even after saving
I am still new to blender. I am following a tutorial to build a scene and every time I open the file the objects keep moving to another location. I fix the objects and put them all into place then apply all transformations and save then I go to open the file and they are still in the incorrect positions.
All positions are set to 0 and scale to 1 when I apply the fixed transformation but the location doesn't save for some reason. I checked the transformation options and none of the boxes are checked under "affect only". Is there anything else I need to be doing?

Your values are green, which means that you've created some keyframes on the Location, Rotation and Scale, that could explain your problem?

That was exactly it, thank you! @moonboots

Your Location, Rotation and Scale values are green, which means that you've created some keyframes on them, open the Timeline window and delete these keyframes.


text:
tear problem in sculpt mode
I don't know why this issue is happening.
there's a tear on the object's face
Can you help me solve this problem?

Ok so the first thing that comes to my mind is normals. Try going to edit mode > a to select all > Shift+N to recalculate normals. Also, please provide more details if possible. Like what were the last actions you took before this happened. We might be able to narrow down the problem. This sometimes happens after remeshing.

If it's not the normals, it's hard to tell without the .blend file.
Please use https://blend-exchange.com/


text:
Import external py script into blender script?
I wrote a py script for a custom export. I'd like to append that script to my blend file and call it using some parameters. The following script is one folder above my blend file:
from sys import path
path.append('//../fbx_collection_export.py')
from fbx_collection_export import export

When running it, I get the this error:

ModuleNotFoundError: No module named 'fbx_collection_export'

Q: What am I doing wrong and how can I fix it?

Add a directory path to the system  path not a filepath. (Not a relative path either) See https://blender.stackexchange.com/questions/5287/using-3rd-party-python-modules

thank you @batFINGER that was the issue

Please add your solution as an answer, not as edit to your question.

from sys import path
path.append(bpy.path.abspath("//")+'/../Scripts')
from fbx_collection_export import export


text:
How to load an image from disc and assign it to a newly created image texture node?
I'm trying to load an image from jpeg file and to add the material to the cube using the following code:
bpy.ops.image.open(filepath="/root/carteid_dini.png", directory="/root/", files=[{"name":"carteid_dini.png", "name":"carteid_dini.png"}], relative_path=True, show_multiview=False)

# get material reference
mat = bpy.context.view_layer.objects.active.active_material

# get texture reference
tex = bpy.data.images.get('carteid')

# create node and assing the texture to it
image_node = mat.node_tree.nodes.new('ShaderNodeTexImage')
image_node.image = tex

mat.node_tree.links.new(image_node.outputs['Color'], mat.node_tree.nodes['Principled BSDF'].inputs['Base Color'], verify_limits=True)

cube = bpy.context.active_object

if len(cube.material_slots) == 0:
    bpy.ops.object.material_slot_add()

cube.material_slots[0].material= mat

When I run this code, the newly created texture is unfortunately not loaded and the image is not selected for the 'Base Color'.
Q: How to load an image from the disc and and assign it to an arbitrary image texture node?

I don't know how to share this question via email from the web interface

You can use BlendDataImages.load() to load and assign the image to the texture node in one go. Following demo is based on Control Cycles material nodes and material properties.
Make sure there is a material assigned to the object in context and the file path is correct:
import bpy

# Get the active material of the object in context
mat = bpy.context.object.active_material
# Get the nodes
nodes = mat.node_tree.nodes
nodes.clear()

# Add the Principled Shader node
node_principled = nodes.new(type='ShaderNodeBsdfPrincipled')
node_principled.location = 0,0

# Add the Image Texture node
node_tex = nodes.new('ShaderNodeTexImage')
# Assign the image
node_tex.image = bpy.data.images.load("//your_image.exr")
node_tex.location = -400,0

# Add the Output node
node_output = nodes.new(type='ShaderNodeOutputMaterial')
node_output.location = 400,0

# Link all nodes
links = mat.node_tree.links
link = links.new(node_tex.outputs["Color"], node_principled.inputs["Base Color"])
link = links.new(node_principled.outputs["BSDF"], node_output.inputs["Surface"])

In case you'd like to use an image that has been loaded or even is packed already, you can get it via image data-block and assign that reference to ShaderNodeTexImage.image:
...

# Add the Image Texture node
node_tex = nodes.new('ShaderNodeTexImage')
node_tex.location = -400,0
# Get the image and assign it to the Node.image
img = bpy.data.images.get("Image Name")
if img:
    node_tex.image = img

...

Related:

How to assign a new material to an object in the scene from Python?
Control Cycles/Eevee material nodes and material properties using python?

AttributeError: "ShaderNodeOutputMaterial" object has no attribute 'image', any idea why?


text:
How to attach an animated object to a rig?

I have an animated emergency light that should stick to the head of a little robot. Is this possible without rigging it? The robot is rigged with bones.

Yes it's possible

Select the lamp
Shift+Select the armature
Enter into Pose mode (Ctrl+Tab)
Select the bone you want to attach the lamp to
Ctrl+P and select 'Bone relative'

Bone relative or just Bone should be fine yes, like noted in the other answer

Parent it to one of the bones that are not deforming anything. Select the light, Shift select a bone in pose mode, Ctrl+P = Bone.

Thank you guys! You are amazing!


text:
Why does the curve modifier cause the object to move to the left?
I'm having the same issue as user A Allen in: Problem with curve modifier

When I am in Edit mode, the curve modifier doesn't work but when I go to Object mode, the curve modifier works but the object (the rail) moves to the left.

I tried setting the same origin point to the curve and the object, which fixed the problem for him, but that didn't fixed the issue in my case. What am I doing wrong?

Blender file: https://www.mediafire.com/file/qynzjxr4bxzs5h9/Hokkaido.blend/file

Please elaborate on how "the curve modifier doesn't work"/the issue. What is the desired result you're looking for? (maybe add a link to the page you quoted from)
If i had to guess though, i think value of the Count in the Array modifier might be to low. Seems to me that if you were to increase that value the array would follow and cover a longer part of the curve.

@brockmann Link provided

@Fjoersteller It looks like it doesn't do anything in the edit mode and it moves the object towards -Z in any other mode

In order to show the modifier's effect in edit mode, you have to enable the second to the left icon in the modifier header that looks like a square with a bright dot in the upper right

And you can set the array length to "Fit Curve" if you don't want to guess the number count

Open the file you provided. Add a array modifier to the RoadSegement object. Make sure the Array modifier is above the Curve modifier in the modifier stack/list. (I suspect this is what might have gone wrong) and finally set the Count in the Array modifier to about 570. Does that work?

@Fjoersteller Yes it worked - I tried switching them around earler, but it was before I set the same orign point for the objects.
Thank you so much

No problem. Glad it worked : )


text:
Why my domain is rendering just like a box in preview?
Even when I setup the simulation using 'quick smoke' I always get just a box in the viewport:

I tried to re-install and reset the settings and tried to use many different volume materials. In many tutorials they recommend to add a principled volume and everything should be fine but in my case I always get the box and I don't understand what I'm missing here.
Q: Why my domain is rendering like a box in preview whenever I do smoke simulation?

So you are opening a brand new blender file with a default cube and do quick smoke and you see just a box in rendered view? is that right? if yes, can you please provide your blend file and tell us, which version u r using?

I don't know why but after reinstalling blender 2.91 smoke is visible in the render view after I increased the density. but the render animation preview shows the same cube shape as the above image.   here is the file

now I'm suddenly facing another issue with the same file path tracing in render view flickering.

can you please check whether your cache path is ok? [1]: https://i.sstatic.net/ynfwh.png

Related: https://blender.stackexchange.com/questions/167526/cant-preview-smoke-simulation-on-blender-2-82

@brockmann: his blend file is already on replay...did not help... :(

Good to know @Chris

@Bobbybharadwaj: i tried. I am sorry, i have no idea why this happened.

I'm actually a beginner so somethings I'm not sure about but my cache path is ok.

thanks for helping at least now render view is kinda ok. The only problem is rendered preview I guess not a big issue :)


text:
Transparent Mesh when rendering
I am using camera tracking to make a short film and in render viewport you can see what I am trying to add (yes, those are butterflies).
After rendering the scene the butterflies appeared transparent

As you can see in the first image my material is very basic on the butterfly.
Here are my compositing nodes:
They are the default camera tracking nodes... in blender internal.
I am using blender v2.77 on windows 10 with the cycles render engine.
A similar, yet, unanswered question: Why won't objects appear in motion tracking?

How are you compositing the render with the video? Can you give us a screenshot of your compositing setup?

@cegaton how do you that?

@cegaton any ideas?


text:
Star Trek: Impulse Engine Material in Blender
For those of you who are not familiar with which part of the Enterprise is the Impulse Engines, it's the red parts:

Google Images
The photo doesn't display it great, but it should help get the point across. The Impulse Engines are a multiple squat little hexagons separated by thin strips silverish, hull-colored strips. Each hexagon emits light and is a slightly different Saturation (think HSV color definition) of red. If this were a gif, you would see that the Saturation changes overtime for each hexagon, so it appears that they twinkle.

Seeing as I would love to not have to model each little hexagon and add a different material for each, I would love if someone could figure out a material that looks similar to these.
A .blend for you to play with:

@cegaton I am familiar with these two posts. Thanks for reminding me of them. In fact, I was already thinking along the lines of one material (see my title). Do you know any posts that would provide for the lines between the hexagons? Or how to separate the colors into hexagons? Would you consider writing an answer? Thanks again.

@cegaton Sorry for being unclear. I meant purely with nodes for my material.

@ShadyPuck the .blend seems to be missing the background image.

@RichSedman Apologies. It's a simple star background that can be found here. I do love your answer. I just haven't had a chance to read it. I promise that once I will, I will accept it.

No worries - just thought I'd better let you know. I also had to tone down the subdivision surface modifier as I'm running on only 2gb memory and that was a bit high. Nice starship model :-)

This problem has been a really interesting one to work on. At the start I didn't think this would be possible with 'pure' Cycles nodes - without resorting to OSL - but was surprised to discover it is. I've certainly learned a lot along the way.
Here's the material :

(glare added in compositor)
And here's the node tree (click to enlarge) :

The pattern can be generated by measuring the distance of each point being sampled to each of a number of fixed reference points in a similar way to how the Voronoi texture is produced. By carefully positioning the reference points we can generate a hexagonal pattern.
Starting with a single reference point (held in a Combine XYZ node), the vector between the reference point and the texture coordinate can be calculated simply by subtracting one from the other using a Subtract Vector Math node. This is passed into both inputs of a Dot Product Vector Math node to generate a scalar distance (actually 'distance squared').

This structure can be replicated for multiple reference points and the results of each combined using a Minimum node. This will effectively return the distance (squared) to the closest reference point.

Greater Than nodes can then be used to compare each individual output with this combined 'Minimum'. This will produce 3 outputs that will be '0' if the corresponding reference point is the closest, otherwise '1'. These values are also passed through Subtract nodes to invert their output. We now have two sets of 'mask' outputs - one set that's 0 if the corresponding reference point is the closest, another that is '1' if the corresponding reference point is closest.

To be able to control the edges of the cells (rather than having a gradient emanating from the centre) we need to be able to detect the boundary between one cell and the next. The boundary occurs at the point where the distance to one cell equates to the distance to the next closest cell. This can be achieved by determining the minimum distance to all of the reference points excluding the one we already know to be closest. Subtracting the closest distance from the next closest will give a measure of the distance to the cell boundary - this will be zero at the boundary (where the distance to each reference is the same) and increase as we move further towards the centre of a cell. For the first reference point we can do this as follows :

Note the multiplication by the mask - this is to ensure that each value is only used when the point being measured is closest to the corresponding reference point - the output will be zero outside the corresponding cell.
Replicate a similar structure for each of the other reference points - in each case this will need to combine the outputs from all reference point distances of the other reference points excluding the one corresponding to the 'current' one - which we know will be the actual minimum if the mask will include that point - ie,  the first combines 2 and 3, the second 1 and 3, the third 1 and 2. Since each of the resultant outputs are masked to zero when the sample is outside its cell we can simply combine them all as shown :

To be able to colour the individual cells we need to be able to determine the vector coordinates of the corresponding reference point. Again we can use the masks to pick out the relevant value for the closest reference and these can be simply combined to produce a single vector. In this case, the 'anti-mask' (set to 0 where that reference point is closest, otherwise 1) is most useful as it can be used in a Multiply Colour node to multiply the vector by zero when it is not the closest, otherwise allow the vector through unchanged.

For a hexagonal pattern we need to position the reference points in a grid representing the centres of the cells. By calculating only those reference points that are closest to the point being sampled we can re-use the above nodes to cover the whole texture space. This would technically be possible with only 3 reference points but becomes much simpler if we replicate the node structures to work with 5 cells at a time.
To position the cells, the 'grid' coordinates are determined by dividing the texture coordinate by the horizontal and vertical pitches (chosen as 1.5 and 0.866 to generate the correct spacing for regular hexagons) and rounded down to integers. Modulo 2 is used (which returns '0' for even rows and '1' for odd rows) to determine the Row Type and Column Type to allow alternating rows to shift across in the hexagonal pattern.

Once the location in the grid is known, the Generate Point Coordinates Frame calculates the locations of the "nearest" reference points. These are multiplied by the Horizontal and Vertical pitch to get coordinates that can be used with the current sample point to determine the distances. This can be illustrated as follows with the current sample point indicated in white with the 5 nearest cells shown :

The cell border can be adjusted via the Edge Offset and Edge Power values. Larger Offset results in thicker borders to the cells while the Power affects the hardness of the cell edge. Negative values can give some interesting effects (eg, Offset = -0.5 with Power = 1.0 provides a quilted effect with soft borders, while a small positive Offset and Power 0 gives hard narrow lines between cells).

For the cell colours, a noise texture is used to generate a value between 0 and 1 based on the cell vector and this is multiplied up and passed through a Modulo 1 node to generate a (mostly) linear distribution. An Offset is added to allow it to be animated and the result passed through a further Modulo 1 so that the value wraps around at the edges of the 0 to 1 range. This is then passed through a colour ramp to generate the final shade for each cell. Using the cell coordinate as a basis for this colour generation ensures each cell is coloured consistently.

The maths used to manipulate the grid and dynamically position the reference points works fine with positive coordinates - so plain old 'Generated' coordinates should work well. However, switching to Object coordinates will result in negative values which upset the calculations. To work around this you need to increase the Location of the Mapping node to avoid the negative texture coordinates.
Blend file attached.

Amazing work! There is something that's bothering me. With bigger scale, for example 50, 50, 50, whole thing looks just like diagonal stripes going from left to right. Not so random.

Thanks :-) Just tweak the constants in the Multiply nodes in the top-right frame. Those are the random number generator 'seeds'. Alternativey, use a more sophisticated random number generator.

it's not my question, just an observation :) Honestly I don't understand 1/3 what's happening there.

Hehe. It looks worse than it is! I never noticed the lack of randomness - I was more concerned with getting the hard bit of the hexagons actually working :-D Now I'll have to do some work on better random number generation ;-)

I was trying to avoid using a Noise texture for efficiency but looks like the simplest solution is to resort to it after all. I guess it's the most foolproof way of generating random noise.

Updated answer to use Noise texture. Thanks @LukeD - that does look much better :-)

Absolutly amazing :) I'm gonna dig into this step by step as for now many nodes are magic for me. I first saw here 'Modulo' for example.

Updated answer to include details of how this is achieved.

Would love to see someone put a bounty for this answer!

@RichSedman Truly unbelievable. This is so complex but works so well! I have not finished yet, but will send a picture when I do. This has helped me advance so much!

this is just a self contain version of the previous post.that should be easier for beginners with blender.

you can simulate this with textures, via nodes: Prepare several image files (better PNG because they can store transparecy) with the pattern you want (hexagons, squares,...). Those several images will need to be sequencial (change colour between them - example, you extract the frames from your hexagon's GIF file). After all PNG's are ready, you select the faces where you want these images to be applied, and while in Edit mode, press U to UV unwrap them. Unde UV Image Editor, Edit vertices and faces position to match as you want your image sequence. On nodes, instead of importing an ordinary image texture, you import an image sequence (these way you have control on lights on/lights off you made on your PNG files). You can also add an emission shader, and keyframe diffent values of strength in time, so it changes the intense of brightness of those lights. You might try with this node setup sample:

authors: Александр Просняков


text:
2.77 Headless Smoke Baking
I just downloaded 2.77 yesterday and am trying to bake a simple Cycles smoke scene composed of a box domain, sphere flow, and two obstacles. Note that I have a peculiar setup; I build my .blends on a MacBook and then send the files down to a headless Linux box (w/ i7 and GTX 970; I use the i7 to bake) in my basement. In the past, I have used the python script and CLI arguments described here, but now I get an error. It starts out like it's supposed to with the usual preamble, but then when it starts to load the noise tile files, it Blender quits. I am also familiar with Fluid Baking and Dynamic Paint baking, if that influences your answer.
I know 2.77 is a huge update and now allows smoke to be rendered on the GPU. Could something have been tweaked that renders the aforementioned script inert? If that has been done, is there a new script that could be devised that would work? All help welcome!
Thanks.

When you say blender quits - does it say it's done or does it crash saying segmentation fault or similar? Are you setting FFT noise on the mac and the linux version is built without fft support? The cycles smoke rendering support isn't going to effect the baking process - baking is generating the data that gets sent to cycles.

No, it was Wavelet. Thanks for letting me know, though. Blender starts up fine and then it spits out "Blender quit." As I said, the process is headless and from the command line, which is UI-less. Blender can only crash through words, not pictures, and I have yet to witness what that would look like. I do appreciate your reply and would appreciate anything else you stumble across. @sambler


text:
Blender Import with materials (textures)
I admit I am a newbie at Blender. (sounds a bit like alcoholic anonymous).
I need to find a suburban scene, (a few buildings, roads, maybe some street signs).
I found this one:
http://tf3dm.com/3d-model/environment-23742.html
Which will do in a pinch.
Download formats are FBX and OBJ (and an MTL file).
But with Blender 2.7, when I import I do not get the textures.
I have gone through the 7 hours of http://www.lynda.com/Blender-tutorials but this one is a bit beyond me. I am probably missing something basic.
What I want is something quick (in terms of my time) and free, since this is a proof of concept.
(Here is what I get with OBJ import, and two hemisphere lights behind the camera).

UPDATE
Ok, I tried again with FBX, textures in same directory.
With the OBJ import, all I had to do was set the VIEWPORT shading to texture.
With the FBX (you can see below) if I set the viewport shading to RENDER it I see the textures, but not with Texture rendering (as I said, I am a newbie). There seems to be a odd difference between the handling of OBJ and FBX. but it is good to get this going.
Unfortunately, this model does not work for me, since I need export to Babylon.js, and that does not work well with this sort of TGA and multi-texture format files (see the firestorm I started in the Babylon.js forum)
http://www.html5gamedevs.com/topic/17001-missing-manifest-from-blend-exporter/

Related - http://blender.stackexchange.com/questions/24020/importing-obj-with-mtl-and-image-not-working-properly. Also make sure you set up textures to be seen in viewport

Possible duplicate of Importing OBJ with MTL and Image not working properly

I have downloaded the files you linked to.
I extracted the zip file and (using blender 2.75) used file, import FBX and opened the FBX, hit F12 and no textures.
Closed blender.
Within the zip, there is a .RAR file 'textures.rar'. I extracted that file in the same directory as the FBX and repeated the above process. Textures where showing up when rendering.

Very strange. I am using Blender 2.75a, I tried the same thing (extracted the RAR to both a subdirectory called /textures, and also to the same folder as the FBA (about 9 tga files). Then did the import and changed the viewport to texture display. No good. But if I import the OBJ, then it works fine.

I'm on windows, what platform are you on?

screenshot after import

I am on windows 7 SP1, Very strange. Also. My lighting was all off. I added some HEMI lights, but as you can see it still is not what you are getting. I assume that FBX import is better.

Did you unzip to the textures folder, or to the same folder as the FBX?

Same folder....

see update where I show the result of viewport in render mode

OK. Good luck with the project!

If you edit the .mtl file (it's in plain text), you will see that it links to material files that are in a specific folder.
E.g.
  map_Ka E:\Work\Sale\3D\Building\City_Building\textures\building03_c.tga
It may be that you have to edit these to point to the correct path where you have put them.
I've had loads of grief with .obj and .mtl files from 3rd party sources over the years.  Some work perfectly, others do not.  I suspect it's something to do with the package being used to export them.  Additionally, some people upload the .obj files but forget about (or don't know about) the .mtl file and the required texture files.  (Some people don't upload the texture files because they are copyright, so it's a bit unfair of them to show samples with the textures in place.)


text:
Export TGA or BMP textures for WebGL
Bablylon.js has a exporter plug-in for Blender. Works great, but some of the models that I get from turbosquid have TGA based textures. Since WebGL needs textures in JPG, PNG, or other web friendly formats, I am forced to convert hunderds of TGA  or BMP textures by hand to JPG or PNG.
Does anyone have a batch way of doing this?
(also I am specifically looking for suburban scenes such as:
http://www.turbosquid.com/3d-models/housing-development-rt-3d-model/760773
But they do their trees as two-intersecting planes (great for Max 3DS). But WebGL engines like sprites. So I also need a way to convert those artifacts..
(see below for the tree meshes that will not work in WebGL):

you can batch convert stuff with photoshp. i assume gimp has a similar feature.

Yes, I have photoshop, but this would not handle all the references in the x.blend file to the .tga files.

There is an addon to batch convert image files with blender.
After installing the addon, the usage is simple:

Tell the addon where the folder of images is (must contain only the images to convert)
Give it a output folder
Set the render settings correctly (you will want PNG)
Click the Batch convert button.

To keep the original file sizes, check the Keep Original Resolution check box in the Batch Converter settings in the tool shelf.

That looks good. I hope it also handles the texture references. But it asks that all the file outputs have the same dimension. However my input texture files are all different sizes.

@Dr.YSG see my edit. As to the file path for each model's textures. Nope, this addon will not. It is possible to write a script to do that, but out of the scope of the batch image converter.


text:
Open and close hand in variable speed?
I have a hand simulator running at a constant speed. Hand opens and closes according to EMG data from USB connection. I added the project running at constant speed below. I have to make this simulator running at variable speed depending on EMG amplitude. I have the mathematical model of the hand in my hand. The Input is EMG amplitude and Output is hand speed. The model that generates output speed depending on input EMG is:
Output(k) = 0.6Input(k) + 2Output(k-1) - Output(k-2)
So the formula will be in my code like that:
Velocity(k) = 0.6emg(k) + 2Velocity(k-1) - Velocity(k-2)
I've thought adding this model to Action.py script. I generated the code as below but it did not work. I think Blender runs scripts over and over so my variables do not store.What do you think?  I would be very happy if I could get suggestions from you.
import bge
cont = bge.logic.getCurrentController()
own = cont.owner

if cont.sensors['action_true_prp'].positive:
    own['action'] = 0

    try:
        print(bge.logic.line)
        #emg_1, emg_2 = bge.logic.line.replace(',','.').strip('\n').split(' ')
        emg_1, emg_2 = bge.logic.line.replace(',','.').strip('\n').split('\t')

        own['ch1'] = float(emg_1)
        own['ch2'] = float(emg_2)
        own['velocity'] = 0
        own['velo_before'] = 0
        own['velo_2before'] = 0

    except:
        print("error 003: parse error")
        print (bge.logic.line)

    try:
        # CH1 ACTION control
        if (own['ch1']>bge.logic.globalDict['ch1_emg_threshold']):
            own['velocity'] = 0.6*own['ch1'] + 2*own['velo_before'] - own['velo_2before'];

            #opening
            if (own['time1']<190):
                own['time1'] = own['time1'] + own['velocity']
                if (own['time1']>190):
                    own['time1'] = 190

        # CH2 ACTION control
        if (own['ch2']>bge.logic.globalDict['ch2_emg_threshold']):
            own['velocity'] = 0.6*own['ch2'] + 2*own['velo_before'] - own['velo_2before'];

            #closing
            if (own['time1']>100):
                own['time1'] = own['time1'] + own['velocity']
                if (own['time1']<100):
                    own['time1'] = 100

        print ("CH_0:%7.4f  CH_1:%7.4f  STEP:%+3d  TIME:%+4.3f second"% (own['ch1'], own['ch2'], own['velocity'], bge.logic.delay_t))
    except:
        print ("error 008: undefined error")
        pass

    try:
        scene = bge.logic.getCurrentScene()

        Finger1 = scene.objects['Finger1E']
        Finger2 = scene.objects['Finger2E']
        Finger3 = scene.objects['Finger3E']
        Finger4 = scene.objects['Finger4E']
        Finger5 = scene.objects['Finger5E']

        Finger1['Finger-Prop'] = own['time1']
        Finger2['Finger-Prop'] = own['time1']
        Finger3['Finger-Prop'] = own['time1']
        Finger4['Finger-Prop'] = own['time1']
        Finger5['Finger-Prop'] = own['time1']
    except:
        print ("error 004: undefined error")
        pass


text:
Modeling a Radiator Heater
I have been attempting to model a radiator heater.
Now, my radiator in real life is made out of five vertical pipes with one cross beam arrayed seventeen times along a bottom pipe that carries the hot water through a system of pipes originating and ending at the boiler in the basement. Here are some pics of it up close:

And my recreation of it in my most recent render:

What I did to create my Blender radiator was fairly elementary. I took a cube, added some loop cuts in both directions, and added a Wireframe modifier. This created a skeleton, but not the interior.
While I am aware that I could use the Array modifier here to repeat a wireframed section over and over again, I am wondering if there is a less choppy solution, as the ends would still have to be separate, and then I'd have to combine and remove doubles and blah-di-blah. What I would like is a short and quick way to produce a more photorealistic radiator. It does not need to be high-poly, infact low-poly would be better, because the radiator is not the focus of the image.
Thoughts?
If it wouldn't be too much trouble, a reiteration of the following .blend file with a new radiator in your answer would be great! Note that I could not pack any Image Textures, as the .blend would have been too big for Blend Exchange.

Maybe model one panel (using individual origins), and then array it over?    And make a pipe with Spin on both ends? EDIT: My bad, didn't see your comment about the array.

Your method seems pretty fast in terms of workflow. My focus is mainly on game assets, so I'd take the road of modeling one well-prepared panel for the sides and create the middle ones from that. Then I'd use the array modifier. But that's just me and my addiction to creating reusable and modifiable game assets.

I'd still try to stick with modifiers as long as you can, but set them up in a way so removing doubles and manual fixing should not be necessary at all. Here's the blend with a modified (beware, joke) radiator:
This is the preliminary result:

I didn't bother yet to put the pipework in, but to give you my direction, I'd use the skin modifier for the pipes in a separate mesh, or alternatively an extruded curve for that. For the connection nut, the bolt factory addon comes in handy, it ships with Blender.
What I like so much about the modifier system is, that basically you only need this:

Notice in the modifier stack, that I use end caps a lot. This allows to exchange the start and end mesh of the array with a different one. So all I did, was to duplicate the inner mesh that makes the ribs, and slightly modify them. You can see that procedure when you look at the layers 12 and 13 in the blend. Make sure the merge option is set in the array, with a feasible threshold. That way, the mesh is perfectly connected everywhere (hopefully, as it is quite late here now....)

Great job! Thanks very much. I love what you did with all the modifiers and the minimal modeling.

First I created this profile shape and extruded it to create the vertical pipes (CTRL + E) in Edit Mode.

Then added some loop cuts and joined them for the top, middle and bottom cross sections. Added a Subserf Modifier and some additional loop cuts to clean up some edges.
Then added an Array Modifier above the Subserf Modifier and applied it.
Then extruded the feet on the two ends and modeled the pipe to the floor.

Okay, I pulled off what I think you were going for.  It is a bit long, but here's the final result (125 samples at 800x600):

First I made a cube about the size of each panel of the radiator, and made an array (using the Array modifier) of 17 of them:

Next was Inset, using individual origins (keep in mind that edges of the Inset while doing individual origins cannot be touching, so Inset the faces in two batches):

Scale them on the X in a little, and then switch to Median for the origins, and scale to 0 on the Y:

Remove doubles (no image for that).  Delete only the faces:

Loop cut around the edge (Ctrl + R), and scale on the X a little to bump it out:

Here I set the material to your Heater material, and then scaled down on the Y a little.  Adjust the array modifier so that the scale lines up with the length of the heater:

Add a cylinder for the pipe, scale and position so that it lines up roughly where it should be, and set the material:

Move the 3D cursor so that it is right below one of the ends of the pipe, then spin on one end (then move to the other side, set the cursor's position, and spin there).  I extended the end a bit just to make sure it went all the way though the floor:

Shade the pipe smooth, and confirm the positioning:

And of course the .blend, I moved your original radiator to another layer (layer 6), and put my radiator in layer 4.  All of this is about 2000 vertices I believe.  Enjoy!


text:
Purely Node Based Materials
A while ago, I was searching for a leather texture online, when I came across a thread on Blender Artists where someone had made an extremely respectable leather texture with just Blender nodes. This was the result on the material preview sphere:

The only actual texture they used was a Wave texture. The rest was just Mapping nodes and other assorted math and vector converters. The person included two screenshots, from which I reproduced created the described node setup. The one modification I made was to add a Mapping node immediately after the Texture Coordinates node because I needed the texture for an elongated cylinder at the time. Here are the two shots:

Main setup.

Leather node group.
My question is: How does this node setup actually work, and could the logic be employed to make other textures? Does anyone know of other examples that exist or could be created (would love to see them)?
Also, as I realize this could be a pain to create (it was for me), I am including a .blend file with the node setup and some other gizmuhwhichets that I built at the time.

Is there a way that you could upload higher-resolution images? These are hard to read, and not all of us get to use Blender at work ;-)

@Matt I don't have access to them. I would if I could...sorry. I don't have any time constraints though, so if you answer now, tonight, tomorrow, or next month, it doesn't really matter to me. I just want an answer eventually.

Your screen captures are [not] easily readable when I click on them.  Screen captures can be bigger if your computer allows.  Others may find differently.

@atomicbezierslinger As I said to Matt, I do not have access to bigger screenshots right now. This is why I included a .blend file.

@ShadyPuck Ah, I thought these were your screenshots. Very well. I'll try to take a look later on.

You just created a new word! (if we were to write up a definition for it, is "stuff" a good synonym?)

@David Stuff, devices, contraptions, something like that... Why would you want to write a definition?

@ShadyPuck a word without a definition is just a useless collection of letters. (just kidding about writing a def)

Here is a link that gandalf3 shared in an answer to a question I posted recently. I think you'll find it interesting. https://www.youtube.com/watch?v=kAUmLcXhUj0&feature=youtu.be

The way this works is definitely able to be used again if you understand it.
This is a procedural texture, and there are many like it. I've created procedural textures to generate things like stone pavers, bricks, rock walls etc.
The first thing you'll notice is that the output from all the Mapping and Leather nodes only connects to the height map of the bump node. So all that work is simply creating a scale of heights (ideally 0-1 values) that creates the ridges of the leather. After that bump is created, the mixing of lighter and darker colors based on fresnel is a common method of softening fabric-type materials around the edges; it gives the softness to the material.
The heart of the work is in the "Leather" node. This node starts with the texture coordinates of the Material, compared against a rotated 90d version of those coordinates (Bands 1 and 2 in each Leather node). Each of these is assigned a wave pattern, and then these are merged. So imagine for a second that you took two grayscale wave textures, going in different directions and overlapped them. It would give you a fairly complicated lattice of lights and darks. I think the wave texture was chosen because of the linear quality of the "cracks" in leather and the lines of the wave (as opposed to a Noise texture or other). Some distortion and slightly different scales are applied so that the pattern is given variations. The Power and ColorRamp nodes are used to amplify the values from the wave node (Power) and alter the values to make the waves more crack-like (more intense ridges). Apparently, as this was being created, the cracks were a little too intense, so the creator put a 40% invert node to soften the ridges a little. The Gamma node actually does a similar thing again.
Try connecting the color output from the Darken nodes (or the Leather nodes) straight to the Color input of the Diffuse shader (and remove the Normal input and mute the Mix Shader) to see the actual values of the bump map that create these cracks.
This material copies the Leather node process with three different variations of rotation (30d 45d and 0d) and each has slightly different scales and distortion, which makes a very interesting crisscrossing crack pattern. The Darken modifier of the mix node is used to combine these because it takes the lowest value of the two input values, meaning it won't compromise the depth of the cracks when combining.
I think whoever made this had a general idea of where it would go, but spent a lot of time just tweaking values and trying things out. I bet you could create some pretty interesting materials by doing the same!


text:
Hot Glue Material
I've been learning Blender for the last year and have so far been able to find every bit of knowledge on the internet except very few specific things (I don't know a single other person who uses Blender at my level or even close). One of those specific things that has proven to be surprisingly difficult is a material for hot glue. Sadly, not the scorching, clear, glassy stuff that comes out at first, but more like the dried, dead stuff at the nozzle's end in Img 1. Notice the translucency and the blurred white reflections at the edges.
Img 1:

A couple things that occurred to me in my attempt to make it...
The first thing that I tried was a straight-up Glass BSDF with some roughness (produced Img 2). The second thing that occurred to me was to add a Volume Absorbtion node as well (produced Img 3). These create a decent result, but it just needs that extra kick to photorealism.
As if there needed to be more constraints (not the Blender kind) (there does) (I'm sorry), the nodes will need to render nicely at fairly low samples (210 Render Samples --> Path Tracing or 50 AA Samples --> Branched Path Tracing) and render on GPU (no Subsurface Scattering or other purely CPU nodes). I'm really stuck here. Any thoughts?
Img 2:

Img 3:

I just thought I'd throw in that I'm trying to create a toy catapult for Physics because the teacher threw away our actual one. Img 4 shows what I've got so far. As you can see, the glue is the only thing that doesn't meet my standards (yeah, I know all of you geniuses (genui?) could critique the rest, but please don't for the time being) (I also know that the rubber band passes through the spoon).
Img 4:

.blend of catapult (note that I packed the textures, but they are from textures.com, so don't run away with them):

Not quite right, but how about...


text:
How do I map a texture along a vector going from multiple objects to the camera? Is it even possible?
I'm trying to make a shader which has a procedural texture mapped along a vector between the camera view and the objects. Imagine the pink arrow as the vector in the picture below.

I was able to make a shader with a similar effect (pictured below), however, the vector is parallel to the camera view rather than pointing toward it. Because of this, the shader doesn't create the desired result in perspective mode.

(the gradient texture is just a placeholder)
My understanding of shaders is poor but I'll clarify my question as best I can if necessary.

Have a look at the answers here .. in particular @lemon's last contribution in the comments, which I wish had been a full answer.. :)

Don't we just need here to use "camera" output from the texture coordinates node?

@lemon ... the textures have to be independent, per-object? .. maybe Robert could clarify.

@RobinBetts That link gets me the vector I needed, although admittedly I can't wrap my head around the math required to get there. Thanks