text:
How to get rid of vertice on the same high?
I have a question. How could I get rid of the vertice that is in the same high as the other vertice?
I'm using booelan tools, but it's didn't work, because of these vertices. Thanks you.

It seems you might have overlapping geometry, so you would have to solve that somehow if you wanted to have one piece of geometry. If the vertices are between edges on the same connected plane with nice non-overlapping topology, you can select all flat connected faces with Ctrl+Alt+Shift+f when you have one of them selected and then just press f for Make Face:

You could remove vertices from separate pieces of the mesh that you have there. If you wanted to join them into one piece, that is another question. I believe there is no easy clean way to do this, I would just remodel the whole thing as one if that is needed. Booleans might not work nicely if you have overlapping surfaces.

Good to note that the "Select linked flat faces" shortcut (Ctrl Alt Shift F) doesn't exist in 2.8. If you need it, you can create it this way in the user preferences → input → 3D view → mesh: https://i.imgur.com/BBIhbp0.png
Otherwise, you can find it in the select sub menu https://i.imgur.com/olKUK6u.png or via the search function.

2.8 is still beta. I will start using it in the answers as soon as it is released. At the moment it is still risky to spend time on that. We might just be leaving this info for people browsing the web to find, but it might be irrelevant or wrong in a couple of months. It may still change in 2.8.

Oh and by the way, it's a lot easier to set the shortcut just by right-clicking the function in the menu and choosing Change Shortcut.

Yeah I forgot that one x)

Thanks you for our quick answer. Well, I've tried ctrl+alt+shift+f and this is not working. I think your suggestion is right, I have to remodel it. I hope blender will update a tools to fix it one day. And Thanks again for your answer:)

Blender has all the adequate tools - no need to update. You just need to learn to use them. L0Lock indicated that the shortcut is not currently in 2.80 version that is still in beta stage of development and should only be used for testing. 2.7 versions have the shortcut by default. You need to select one face and hit ctrl+alt+shift+f to select connected flat faces. There is also a tool for selecting all faces on the same plane - shif+g -> Co-planar. You can change it's threshold in the T panel or F6 menu (this is for versions 2.7x again). That will not care if faces are connected or not.


text:
Curve along two edges on plane
I'm new to Blender (v2.77) and I'm working on an automobile door window.
I have a plane where I'd like to create a curve for the window connected to two edges.

Ideally, as seen in the photo, "A" & "B" edges would be removed and the black line would be the new curve.
I tried beveling the vertex at the intersection but naturally, it creates a diamond pattern rather than making a curve between the A+B edges.
Thank you for reading and I appreciate your help!

Are you using subsurf on your mesh?

Please show the result you do not like in a screen capture.  If you unable to have multiple pics in your question, consider combining the images with open free software such as GIMP.  Of course Blender can combine images with arguably more work.

Are you concerned about Blender 3D View appearance?  Is Render appearance more important?  You may want to look up Ngon where polygons do not show all their internal triangle lines.

@ToddMcIntosh There currently isn't subsurf on the mech. This is technically for a low poly rendering and it won't be animated but for practice, I'd like the cleanest method possible.

@atomicbezierslinger I don't have a result because I can't create it :) Currently, I am using the knife tool and manually creating a curve and then creating edges back up to the intersection of A+B but it seems silly to do this method. Rendering is more important per se but I'm not sure if that's relevant.

Extrude whole selection
Delete inner segments and bridge gap
Now bevel edge and delete excess afterwards.
Follow up with an n-gon or grid fill.

I suppose you want to use low poly modelisation. If you want to take care about topology (and you probably should), avoid N-gons (and triangles).
Subdivision Surface modifier allow you make curves without have to manage too much geometry. I just added 2 loops for control the modifier :

For more control add, more geometry, but try to keep a good toplogy. Adapt the toplogy to your model : depending of your needs, it can be better to redirect the geomety like this :

For positionning your vertices in a curve, the LoopTools plugin is very helpfull :

Ctrl - Alt - U -> Add-ons -> serach LoopTools and activate.
Select your vertices
W  ->  LoppTools -> Relax

source: Stack Exchange

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

sort: votes


text:
All radio button icons missing on new install
I recently installed the new 2.77ver. initially on a usb hdd. on opening it for the first time I found all the radio button icons  were grayed out with a mottled grayish texture. In Blender stack exchange I found ref. to a vaguely similar problem and the advice  was to reinstall. I have now done that using both zip and msi. files plus an trying older ver. I also tried different drives. All with the same result; the buttons icon are all missing. I have  wiped my hdds after each unistall to remove any remaining files. Any Ideas? Thanks. jrt

What are your system specs? Under what operating system? Have you tried in a different computer? I am guessing this is not a blender installation problem but more likely a GPU issue or a graphics driver problem, is it an Intel graphics cars? Have you tried updating your drivers to the latest version?

Can you show screenshot of "radio button icons greyed out with a mottled greyish texture" ? Without it this will be guessing what could be the problem itself and the reason of it happening - either graphic card or bad installation or simply other Blender's user preferences or anything else.

Fujitsu t900, Intel(R) HD(corei5) chipset, 4gb ram, 160Gb ssd. GPU drivers from Fujitsu support are older than  current drvs. Hope the link  works. I also posted on Blender Artists forum. There, I was able to upload a screenshot. search- "more missing Icons" or "jrtinflag"

Thanks Mr.Zak & Duarte
For your input  regarding the GPU as a possible Culprit. PROBLEM SOLVED! I initially tried changing the resolution however that had no affect. I checked for driver upgrades but I already had the newest ver. Other people with similar problems had been advised to turn off the Anti-aliasing  function on the GPU driver. A common setting option on older drivers however the driver for my Intel Chipset has no such feature instead it has options for "performance Level" and the default setting was "Max performance". I decreased it to "Balanced performance" and bada-bim bada-boom Fixed!  Funny thing, my decade-plus old el-cheapo celeron based toshiba tablet runs ver 2.71 just fine. But renders  take a loooooong time. Thanks, jrt

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


text:
recent Blender 2.77 start problems
Blender 2.77  opening with multiple anomalies. Windows wait cursor stuck on, loading previously closed/unsaved session, and closing/quitting without  displaying  Prompt/quit window even though it is enabled. Wait cursor goes away after clicking on viewport.
Tried  resetting factory settings and completely uninstalling and reloading. Still did not clear problems. Most recent actions prior to above, installing and uninstalling Booltool. (win os.7 64bt i5) any ideas? Thanks. jrt

Not so sure what you're on about, perhaps some screenshots if possible? Thanks!

Hum hard to tell, may be some graphical issue. Try downloading and running one of the "portable" zipped builds instead of a regular instaler setup and see if the problems persist. Unzip somewhere like the desktop or My Documents, and after unpacking be sure to create a folder called Config under "Blender/2.77/Config" so that it wont load any system profile configurations, and see if still has trouble.


text:
Mimic lightning in Blender's video editing mode
I want to do something that I think ought to be rather simple. I’m working in Blender’s video editing mode. What I want to do is simply to light up what is shown in the strip abruptly, mimicking the effect of lightning. I do not want the flashlight itself, just the indirect light of the flashlight in the room the person in the video is in.
hope someone can help

Blender VSE has a range of color effects you can apply on strips.
The simplest :

Select your strip
In the properties region > Filter, change the value of Multiply to change the bightness

Then you have modifiers:

In the Properties region > Modifiers > Add Strip Modifier, try :

White Balance
Bright/Contrast
Curves

Finally you have effect strips:

with your strip selected, hit shift+A (or click on "Add")
in Effect Strip, try :

Glow, then change its parameters in the properties region > Effect Strip
Color, then  set the blend mode to "Add" (in properties region > Edit Strip) and change the color in Effect Strip.


text:
not rendering alpha chanel as seen in the composite note
What I want to do is simply to render a green screen video clip as an alpha file on top of an image. Everything looks good in the compositing mode. Problem is: Blender does not render what is shown in the composite node, it just re–render the green–screen video clip ignoring all nodes connected to it. I have tried to render it as an alpha file (out put as: MPEG, format: Quicktime, Codec: QT rle / QT animation). I’m on a low end computer: 2,66 GHz. Although the rendering has worked before but not anymore for some reason. I’ve re–installed Blender (2.7.8) without success.
Any ideas?

I would have attached an image if I could, but I'm new to this site and I haven't figured out how to to that just yet.

http://meta.stackexchange.com/questions/75491/how-to-upload-an-image-to-a-post

You mention that the renders are ignoring your compositing nodes and whilst this is obvious, make sure your "Compsiting" box is ticked.  That's under the Render properties icon at the right.  Open the Post Processing tab.

Sorry folks. I forgot the obvious: to tick the compositing box. Thanks anyway for you people out there that spend your valuable time helping newbies like me.


text:
Only part one part of the model is being rendered
I’m trying to do is a very simple animation: a mesh, a moving 3D–animation of a mouth. It has two layers: one is the lips (red), the other is the inside of the mouth which is black. Consequently I have 2 materials under the material slot. Under the mesh slot, I’ve connected the two parts of the mouth as a vertex group. I’ve created 2 shape keys: one for closed and one for open. These values are keyframed and will eventually be baked to a sound file, making the mouth move in sync. Everything looks fine and dandy when I play the animation. But when I tried to render it, all my previous problems seem very light indeed. First I couldn’t render anything at all. Finally I found a post saying and should uncheck the compositing and the sequencer. That made the trick. Almost. Problem is, it only renders the red part of the image. Can someone please help me out. Please?
I'm attaching one image, it seems that it is the limit here? I can supply more if needed

Hi, can you upload .blend and insert link to question? http://blend-exchange.giantcowfilms.com/

I uploaded the file via the link you supplied. I hope it worked.

It didn't, you have to give us a link otherwise we can't download anything

Ok. Bear with me I'll try to figure out what doing wrong

That's the way to do it, right?

All what you need to do is move black part a little bit higher, because you have two faces on exact same level - overlaped. Blender can't know which one is on top.
Anyway: I recommend you search for some tutorials about topology and animations.

Ok. So I’ve deleted the extra layer. But it doesn’t solve the problem. When I render, the black part is only partially rendered. And when I tick shadeless (which is what I want) in the material slot, only the red is rendered. Is it really the "topology" or might it be the black mesh that is somehow faulty?

Sorry, Shubol3D,  I read your reply without really understanding it. I'm not how to to what you propose but I'll look into "topology" and see if I can figure it out

I think I finally grasped it and really seems to be working (I just lifted the black part on the y–axis just as you told me). It makes sense that you can’t put things in one plane in a 3D–environment. Thank you ever so much for helping out in my hour of need.
Have you, by the way, ever seen the Python sketch about “ The Royal Society for Putting Things on top of other things ...”. Well, maybe we need one after all ;–)


text:
freestyle not rendering open ends
I’m unsure if this feasible, but this is what I want to do: In edit mode the lines for the arms are visible but when I render with freestyle these do not get rendered. I think I have a hunch of what the problem is: namely that these lines are open ends so that they do not describe a particular area (see arrows in pictures attached). Is there a solution to this problem? I’ve tried edge marks but it does not solve my issue

PS. Here is the Blender file:

https://blender.stackexchange.com/help/someone-answers

If i understood the question the pointed area of the wrist cuffs is render with freestyle line and the arm is not.
Reason is the wrist cuffs has a fill mesh.
Look this way.

And the arm line is just a line not filled
How can you make it fill.
Just select the verts and Press Shift+D to duplicate little below the line.
Select the duplicate and the above original line and press F key
Now render and get the Freestyle render

OK. Reasonable enough. And it works. BUT. It affects all the shape keys I made (when I animate, the newly drawn lines sort of flickers.

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


text:
animating a transforming elephant's trunk
I have a rather simple 2D model of an elephant. However I want the trunk to behave in very specific way. As it honks, I want the trunk to bend upwards, but then in the second half of the animation kind of transform into a "pipe-structure" as the the very tip evolves into a horn (as seen in the picture I'm attaching). Can this be done by a relative newbie such as myself?

https://blender.stackexchange.com/help/someone-answers

The trunk is a curve (path), shaped as a comical elephant's trunk and held skyward so it's upper end is also pointed forward.

The curve is "bevelled" with a curve-circle to make a cylinder curved upwards and pointing forward.
The resulting cylinder is converted to mesh.  It's side edges only are subdivided 63 times so we have plenty of vertices for it's curvature to be animated smoothly.
The "Cast" modifier is used on this in order to expand and 'trumpet' the end.  This is achieved by placing the "cast object" near the upper end and keyframing it's location so it oscillates. (approaches and leaves the cylinder's end rapidly)

The cast modifier's effect is to expand and retract the end much like a flexible trumpet.
The Empty's oscillitions are just 2 frames apart.  i.e. approach for two 2 frames, recede for 2 and so on for as long as required.
-==================-
Edit - 11/Dec 2018
For 2D trunk shaping -

Instead of using a circle for the bevel object, use instead, a plane (converted to a curve with ALT-C)
This will give us a square trunk.
Once squared, the bevel plane can have it's two lower control points deleted so the trunk ends up as a flat 2D curved object.

We keep the trunk as a curve object so it's control points when moved about with either shapekeys or "hooks", won't lose the biological curvature as it's reshaped.  Bones and rigging can also do this.

Absolutely one way to go. However, bevelling makes it distinctly 3D in feel and that doesn't match with the rest of my elephant's mesh. Also, the horn itself isn't the biggest problem. The real challenge is to make the trunk grow from it's natural shape to a "pipeline" structure. But I might be able to use some of your ideas. Thanks a lot anyway!

Great work with the trunk and empty, Edgel3D.

Thanks RIta!  Svante, have added a 2D method as an Edit...  It's an attempt to get you going.

@Svante Karlsson did you manage to get the trunk extruded and animated as mentioned in your question?

That looks very challenging. I think it would be too laborious to rig that trunk. Too difficult too. Think of stretching and curling it round.
If this were my project, I would have tried Inkscape and exported finished file to image sequence which can be imported into Blender.
To work fast with the LEAST possible nodes (different meaning in Inkscape) inside the outlines, I would first ditch the pencil and use instead the bezier or b-spline. My way, I always draw cartoony figures with exclusively a bezier and bspline. Pencil only creates numerous nodes and I don't want that when I re-edit lines in duplicate layers.
That trunk can be easily and quickly drawn with a bezier. If you dublicate layers for each subsequent drawing, you re-edit lines, thus saving you labour by half when you do inbetweening.
Inkscape has one hidden gem that is oftentimes overlooked and forgotten, namely the interpolation tool that all inbetweeners love. With that labour-saving tool, you can create any number of morphed drawings between any two shapes. For best results, clone one key shape of trunk and re-edit lines in the clones and then use the interpolation tool on keys. Remember, clones share originals' identical node IDs inside paths. So, this makes the interpolaton between the originals and re-edited clones so much easier. After that, separate drawings for new layers. After that, export files to png.

Ok. I was rather hoping to try to do it inside of Blender, but thanks anyway

If you hang on, somebody may come along and have better answers. I hope that happens.

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


text:
video editing; problem animating speed
First of all: I’ve read article here about people having similar issues with this. I’m trying to do a pretty straightforward thing. I’m using a video footage and on it a speed effect strip. I’ve animated this strip with a noise modifier to make sort of choppy. To no avail. I’ve read texts here in the forum suggesting that there might be a bug. I have tried newer versions of Blender, but no luck there either. One guy suggested making the video in to pngs. Tried that as well. Could it be that the process CPU-intensive?
PS. I’m on Windows 10 using Blender 2.7.8. But I’ve tried other newer versions as well. Same thing

I've also tried the Speed effect and found that it was buggy (or I was enable to use it), I don't know if it has been fixed...

Not sure how the "Speed factor" works, but I guess "Multiply speed" is the equivalent of the current "multiply" mode we have right now.
Your noise looks extreme, I don't really see how it varies across time, but it does go from 0 to 7, that can be a lot in a footage. My guess is the noise in speed is too intense to really see the impact correctly.
If you use a multiply-type speed, then:

1 = normal speed
2 = twice fast
0.5 = half speed
-1 = reverse

There's an example linear test animation:

Here's the same with a multiply speed with the following graph in Blender 3.6.0:

Here's the same but with the default noise settings:

It might look as untouched, but it clearly isn't when compared to the original linear:


text:
VSE render black as transparent
July 5th lots of fireworks vids. Using VSE I would like to overlay some of them on each other.  So convert all the black in the scene to transparent then render it out and bring the .png files back in and over lap the fireworks on top of each other...
Using nodes in the Compositor.
I have seen some tutorials added the Movie and Composite output setup a colorramp off the clip to the AlphaOver node Loc; with Image1 full transparent and in image two the movie clip image.
The viewer shows the fireworks on transparent background.
output .png ; for 24 frames; click animate and all the png rendered with black where the viewer shows transparent.. no alpha channel in rendered output.

You need to choose an output file format which supports transparency. Go with an image Sequence of OpenEXR or PNG first.

I couldn't find an image upload button...  I'll attempt another location.  Tried.png, .next. and Tara always selecting RGBA.

tried .png, targa, targa ras and  Open Exr...    I took a screen shot put it link

I'm a bit confused here, did you want to composite the images using the VSE or the compositor? No need to do it twice, either section is capable of doing what you're asking.
If the background is completely black you don't need to change the alpha.
A common way of compositing images with dark backgrounds is to mix them via luma keying.
You can try to add alpha channels, but an easier way for this application would be to just add the clips.
In the VSE this can be done by selecting the clips above your base clip and setting the blend mode to add instead of cross.

In the node editor add a color->mix node and set the mode to add.
Hope that helps.

Thanks Zac, doing it with ADD in the strip editor is much better than what I was attempting.   ..  Still unsure why the Viewer shows the Transparency and the rendered .png files do not have the transparency.

Add isn't an alpha over. In the compositor, do a series of math nodes to max(RGB). Use result to "Set Alpha". Save to half EXR. Then do a proper alpha over. Remember: Alpha must have a knockout / occlusion component.

I realize add isn't alpha over, and that alpha is more proper, but note my specific qualification 'for this application', and simpler.


text:
Scene renders black with ambient occlusion turned off in cycles
I am relatively new to blender, mainly i have been using BI renderer. i started using the Cycles render engine, but when i turn off the ambient lighting (ambient occlusion), the scene is black. actaully, when i examine the images there is 'some' light but the image appears black.
Here is the file:
http://www.pasteall.org/blend/41397
Any thoughts on this? Thank you.

Welcome to Blender.SE! Could you be more precise about what you expect to see? In the scene there is only a small light, with no background at all, so it's correct to get an almost black image.


text:
Change Vertex Position During Rig Animation
I couldn't find a solution to this problem.
I have my character all rigged and made a walk cycle. I parented another mesh with the rig which are the character's clothes. When he starts walking though the clothes are not always perfectly covering his body parts, so that his leg glitches through the cloth, which is awful of course!

I thought I go through every frame and correct the glitches by changing the vertex positions of my cloth mesh. However I seem not to be able to change the vertices within the "Pose Mode/Armature Animation Sequence", when I go into edit mode the clothes revert to the rest pose and no animation can be played.
How can I solve this problem? Thanks for any help!

In the modifier panel for your object, activate "Display modifier in edit mode" and "Adjust edit cage to modifier result" for the Armature modifier:


text:
Can I make materials transparent to refraction in Eevee?
I think normally, this problem goes the other way-- sometimes it's hard to get Eevee's refraction to see an object.  I'm hoping that somebody knows how I can take advantage of that....
I'm trying to do some displaced edge lining in conjunction with some refractive materials, and the edgeline mesh is making those materials less interesting (just giving them a black background for their refraction):

What I'd like is if there was some way to take the edge line mesh out of the render target used for creating the refraction.  In Cycles, I'd just make this mesh transparent to refraction rays, but that's not working in Eevee.
Are there any tricks I can use to make a mesh invisible to refraction in Eevee?  I don't want to do freestyle, and I don't want to do Cycles.

Turns out you can make it invisible to refraction simply by enabling screen space refraction in material settings, even without having any refraction components to the material:


text:
How to add objects on specific keyframes
I understand that it's possible to keyframe visibility, and that might have to be at least part of the solution. However, I intend to create many objects at once, with a script to generate them, so I can't think how to apply visibility keyframes, when I'd have so many objects which initially don't exist.
If it helps, here's the (messy) code I'm working with:
import bpy

CoList = []

def DeleteExisting():
    bpy.ops.object.select_all(action='TOGGLE')
    bpy.ops.object.delete(use_global=False)
    bpy.ops.object.select_all(action='TOGGLE')
    bpy.ops.object.delete(use_global=False)

DeleteExisting()

def Create_List(Width):
    for x in range(0,Width):
        CoList.append([x])
    for i in CoList:
        x = i[0]
        i.pop(0)
        for y in range(0,Width):
            i.append([x,y])
    return CoList

def Generate_Cubes(CoList):
    for x in CoList:
        for y in x:
            X_Value = y[0]
            Y_Value = y[1]
            while type(X_Value) == list:
                if type(X_Value) == list:
                    X_Value = X_Value[0]
                if type(Y_Value) == list:
                    Y_Value = Y_Value[0]
            bpy.ops.mesh.primitive_cube_add(view_align=False, enter_editmode=False, location=(X_Value, Y_Value, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))
            bpy.ops.transform.resize(value=(0.25, 0.25, 0.25), constraint_axis=(False, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)

for X in range(1,6):
    bpy.context.scene.frame_current = X
    Width = X+2
    DeleteExisting()
    CoList = Create_List(Width)
    Generate_Cubes(CoList)
    bpy.ops.object.select_all(action='TOGGLE')
    bpy.ops.object.select_all(action='TOGGLE')

This creates a grid of cubes, which looks like this:

And it also advances the current frame, however once an object is created, it exists on all frames, regardless of any keyframes that I know of. So how would I implement this so that objects only exist on the frame which they are created on?

Driver based method,
driving the hide property, simply hiding a cube if its "visframe" custom property is greater than the frame number.  Creates a 10 x 10 grid of cubes where only one is visible on frame 1, 2 On frame 2, ... 100 on frame 100.  Drive the hide_render property to render.
import bpy
context = bpy.context
scene = context.scene
bpy.ops.mesh.primitive_cube_add()
cube = context.active_object
cube.scale *= 0.25

for i in range(10):
    x = 2 * i
    for j in range(10):

        cube["visframe"] = 10 * i + j
        # add a driver
        fcurve = cube.driver_add("hide_render")
        driver = fcurve.driver
        var = driver.variables.new()
        var.name = "vis"
        var.targets[0].id = cube
        var.targets[0].data_path = '["visframe"]'
        # scene.frame_current is defined as frame to driver namespace
        driver.expression = "vis >= frame" # show if cube["visframe"] > frame
        y = 2 * j
        cube.location.xy = (x, y)
        cube = cube.copy()
        context.collection.objects.link(cube)

Each object has two properties called hide and hide_render - the first is viewport visibility and the second is render visibility.
To use python to set a keyframe for a property you set the value, then use keyframe_insert(data_path, frame=f) to keyframe it. So if you only want to object visible on one frame, you make it visible and set a keyframe on the relevant frame, then hide it and add a keyframe for the previous and next frame.
import bpy

# clear any existing objects
for o in bpy.data.objects:
    o.hide = False
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()

grid_size = 7
# the default cube is 2 units wide, add another .2 for gap
spacing = 2.2

for x in range(grid_size):
    for y in range(grid_size):
        f = (x*grid_size) + y
        bpy.ops.mesh.primitive_cube_add (location=(x*spacing, y*spacing, 0))
        obj = bpy.context.active_object
        # key as visible on the current frame
        obj.keyframe_insert('hide',frame=f)
        obj.keyframe_insert('hide_render',frame=f)
        # hide it
        obj.hide = True
        obj.hide_render = True
        # key as hidden on the previous frame
        obj.keyframe_insert('hide',frame=f-1)
        obj.keyframe_insert('hide_render',frame=f-1)
        # key as hidden on the next frame
        obj.keyframe_insert('hide',frame=f+1)
        obj.keyframe_insert('hide_render',frame=f+1)


text:
How to use the decimate modifier?
I was wondering how to use the decimate modifier. I want to take an existing 3d model and be able to reduce the vertex count on it so I can use it in a virtual table top game I'm playing with on Steam.
More than willing to put the time in to learn, but I don't know where to start.
I'll continue my search on self teaching, but I really could use someone's help.
Thank you

Sorry, I don't know the forum rules and I shamelessly admit I didn't read them or even look for them. I'll try and delete this post or maybe a moderator can. Thank you

Not sure how to change the topic....keeps asking me to use an already created topic. Kind of confusing.

@user2816 I use blender on Mac, which has rather unconventional shortcuts and layouts compared to the Windows version. Often times, the ramblings of small children attempting to recount something they recently discovered require constant cross-referencing. I came across this page looking for a textual explanation to avoid the "pause, find in Mac, pause, find in Mac" process. The least you could have done was post your search parameters when being facetious. It would have made your reply less useless.


text:
Can't select AMD GPU running Ubuntu
I'm currently running Xubuntu 16.04 and I would like to use my 2 GPU's for rendering in Blender. They are currently unused and my CPU is doing all the work. But what have I got my GPU's for anyway?
So, I tried the tutorials here on stack exchange about the GPU setup stuff on Ubuntu.
I got 2x AMD R9 280's, and OpenGL is working like a charm.
But I don't have any other option than the CPU in my Blender settings.
I have to use the Xorg drivers because the official fglrx drivers doesn't work on Ubuntu 16.04 anymore. They are missing basic stuff like multi monitor support. But video-radeon is working great so this is not an issue. and AMDGPU-PRO is not working at all.
Any Ideas?

Welcome to BSE, did you check your User Preference > System panel?

Yes I did, http://i.imgur.com/aDZQfJI.png

Being an AMD user myself, I regret to tell you that AMD and Blender are not best friends, I have the same situation, with some AMD models it's possible, but not for all AMD cards, I'm using CPU myself for this reason.

I don't think this has anything to do with your OS, I'm on Windows 7, it's just that Blender doesn't get along (yet) with AMD. @Noneatme

Unbelievable. I switched from 3dsMax WC to Blender in hope for better AMD support (AMD support in 3DsMax is a really great pain.) But this won't work either? Very sad.

Yeah I understand what you mean, I switched from 3D Max to Blender recently too (for different reasons) but yeah, Blender GPU would work just fine with any Nvidia with Cuda, but AMD integration is still experimental.

Ok I see now. Thank you for your help & time.
What should I do now with my GPU's? Seems like they are not great for rendering and for gaming either...


text:
I cant attach object to armature
I am trying to attach simple model (cloths in my case) to rigged and animated character model. I am following this tutorial, but I am not able to attach my object to my character. I recorded short video where I am showing details what I am doing. What am I doing wrong? Thanks for advice

The Transfer Weight function has some parameters (the values are not visible in your video).
By default, i have these parameters :

For you want to do, try this one for the source layer selection :

That will allow to create groups with the same names you have in the character model.
If this still dont work correctly, try to change the vertext mapping and the ray radius value (as your two meshes does not fit exactly) :

Anyway you'll probably need to try values and adjust them so that is corresponds to what you want.


text:
subprocess.Popen() and --background?
I have noticed that if blender is launched in background with a python script and arguments via a subprocess, it seems not to work...
For example, with a script to rename a material in a blend file called ren.py :
import os
import sys
import subprocess
#sub = subprocess.Popen(['blender', '/home/pegasi/green.blend', '--python', '/home/pegasi/change_material_name.py', 'green', 'plip'])
sub = subprocess.Popen(['blender', '--background', '/home/pegasi/green.blend', '--python', '/home/pegasi/change_material_name.py', 'green', 'plip'])
sub.wait()

with change_material_name.py :
import bpy
import sys
import os
from os.path import join

library_path = os.path.dirname(__file__)

if __name__ == '__main__':

    #target = sys.argv[4]
    #new_name = sys.argv[5]

    target = sys.argv[5]
    new_name = sys.argv[6]

    bpy.data.materials[target].name = new_name
    bpy.ops.wm.save_mainfile()
    bpy.ops.wm.quit_blender()

when I launch python ren.py, it only output an empty blender.crash.txt while it works like a charm if I remove the --background option.
I am running blender 2.77a and archlinux.

Shouldn't the blender file path be before --background argument?
import os
import sys
import subprocess

sub = subprocess.Popen(['blender', '/home/pegasi/green.blend', '--background', '--python', '/home/pegasi/change_material_name.py', 'green', 'plip'])
sub.wait()


text:
Is there a way to do math operations on weight groups?
For some skinning purposes, I need to be able to do some basic math operations on vertex groups :
lets say I have created A, B and C vertex groups, and I want to subtract A and B of C vertex group (I am talking of weights of course), so it would be C = C - (A + B).
Is there a simple way to do it without writing a python script ?

Can the 'Vertex Weight Mix' modifier  take you where you want you want to go?

Not directly - but you can easily convert the vertex weights into vertex colors (which are available in the material using the Attribute node) and use maths nodes to combine them.
Start by selecting your Vertex Group in the Mesh properties and create a matching Vertex Color set - it's probably a good idea to give them the same name.

Select the Vertex Weight and corresponding Vertex Color set that you want to copy over.
Bring up the operator window (Space in Blender versions before 2.8, F3 in 2.8+) and start typing “Vertex Color from Weight” (note that you need to be in Vertex Paint or Weight Paint mode for that operator to be available) and run it to copy the weights to the colors.

You can now access the colors (which contain a copy of the weights) using the Attribute node by simply specifying the name of the color set to use. So, to combine them as A-B and mix based on the result you could use :


text:
Script runs very slow when changing parameters in Add Object menu
I've made my first addon based on an internal blender Text editor template. It is used to add primitive meshes and then control some of their aspects, much like adding primitives like Cubes or UV Spheres. The shapes are fairly simple and consist of 16 vertices / 14 faces at most.
However, when changing the parameters in the menu that's shown in the lower left, Blender slows down to the point where it takes a few moments to update to the set value. The more objects already in the scene, the slower it'll go.
There's also a lot of console spam when changing values (though vanilla blender Add Mesh also does this)
Results from running cProfile on the main function:
 130 function calls in 0.015 seconds

  Ordered by: standard name

  ncalls  tottime  percall  cumtime  percall filename:lineno(function)
       2    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:1009(_handle_fromlist)
       1    0.000    0.000    0.015    0.015 <string>:1(<module>)
       1    0.000    0.000    0.000    0.000 addaprofile.py:16(add_box)
       1    0.000    0.000    0.001    0.001 addaprofile.py:223(execute)
      16    0.000    0.000    0.000    0.000 addaprofile.py:251(<listcomp>)
      11    0.000    0.000    0.000    0.000 bpy_types.py:707(__getattribute__)
       1    0.001    0.001    0.001    0.001 object_utils.py:100(object_data_add)
       1    0.000    0.000    0.000    0.000 object_utils.py:169(align_update_callback)
       1    0.000    0.000    0.000    0.000 object_utils.py:41(add_object_align_init)
       2    0.014    0.007    0.014    0.007 ops.py:155(_view_layer_update)
       1    0.000    0.000    0.000    0.000 ops.py:168(__init__)
       1    0.000    0.000    0.000    0.000 ops.py:180(idname_py)
       1    0.000    0.000    0.015    0.015 ops.py:184(__call__)
       1    0.000    0.000    0.000    0.000 ops.py:40(__getattr__)
       1    0.000    0.000    0.000    0.000 ops.py:79(__init__)
       1    0.000    0.000    0.000    0.000 ops.py:82(__getattr__)
       1    0.000    0.000    0.000    0.000 {built-in method Translation}
       1    0.000    0.000    0.001    0.001 {built-in method _bpy.ops.call}
       1    0.000    0.000    0.000    0.000 {built-in method bmesh.new}
       1    0.000    0.000    0.015    0.015 {built-in method builtins.exec}
      21    0.000    0.000    0.000    0.000 {built-in method builtins.getattr}
       3    0.000    0.000    0.000    0.000 {built-in method builtins.hasattr}
       1    0.000    0.000    0.000    0.000 {built-in method builtins.isinstance}
       4    0.000    0.000    0.000    0.000 {built-in method builtins.round}
       1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
       1    0.000    0.000    0.000    0.000 {method 'ensure_lookup_table' of 'BMVertSeq' objects}
       2    0.000    0.000    0.000    0.000 {method 'is_property_set' of 'bpy_struct' objects}
      16    0.000    0.000    0.000    0.000 {method 'new' of 'BMFaceSeq' objects}
      16    0.000    0.000    0.000    0.000 {method 'new' of 'BMVertSeq' objects}
      11    0.000    0.000    0.000    0.000 {method 'path_resolve' of 'bpy_struct' objects}
       2    0.000    0.000    0.000    0.000 {method 'startswith' of 'str' objects}
       1    0.000    0.000    0.000    0.000 {method 'to_4x4' of 'Matrix' objects}
       1    0.000    0.000    0.000    0.000 {method 'to_matrix' of 'Euler' objects}
       1    0.000    0.000    0.000    0.000 {method 'to_mesh' of 'BMesh' objects}
       1    0.000    0.000    0.000    0.000 {method 'to_translation' of 'Matrix' objects}
       1    0.000    0.000    0.000    0.000 {method 'zero' of 'Euler' objects}

The View layer update seems to take up 14 out of 15 ms total runtime;
ncalls  tottime  percall  cumtime  percall filename:lineno(function)
2       0.014    0.007    0.014    0.007 ops.py:155(_view_layer_update)

Considering this and the dependency on the amount of objects in the scene, I would expect this having to do with either updating the view layer too often, or updating too many objects too often.
What can I do to speed up execution of the script, or to reduce the number of view layer updates?
My code:
bl_info = {
    "name": "Add Profile",
    "author": "x",
    "location": "View3D > Add Mesh",
    "version": (1, 0, 0),
    "blender": (2, 81, 16),
    "description": "Quickly add (steel) profiles; rectangular or U-shaped.",
    "category": "Add Mesh",
    }

import bpy
import bmesh
import cProfile
from bpy_extras.object_utils import AddObjectHelper

def add_box(width, height, depth, wall_thickness, profileType):
    """
    This function takes inputs and returns vertex and face arrays.
    no actual mesh data creation is done here.
    """
    scaleFactor = 1
    width_m = width / (2 * scaleFactor)
    depth_m = depth / (2 * scaleFactor)
    height_m = height / (1 * scaleFactor)
    thickness_mm = wall_thickness / (2 * scaleFactor)

    wF = (width_m - (2*thickness_mm)) / width_m
    dF = (depth_m - (2*thickness_mm)) / depth_m

    # Profile types: RECT, U_PROF
    if profileType == 'RECT':
        # create square profile with inner vertices at offset size
        verts = [
            (-1.0, -1.0, 0.0), #0 outer edge bottom
            (+1.0, -1.0, 0.0),
            (+1.0, +1.0, 0.0),
            (-1.0, +1.0, 0.0), #3

            (-wF, -dF, 0.0), #4 inner edge bottom
            (+wF, -dF, 0.0),
            (+wF, +dF, 0.0),
            (-wF, +dF, 0.0), #7

            (-1.0, -1.0, 1.0), #8 outer edge top
            (+1.0, -1.0, 1.0),
            (+1.0, +1.0, 1.0),
            (-1.0, +1.0, 1.0), #11

            (-wF, -dF, 1.0), #12 inner edge top
            (+wF, -dF, 1.0),
            (+wF, +dF, 1.0),
            (-wF, +dF, 1.0), #15
        ]

        # create faces between these vertices
        faces = [
            (4, 5, 1, 0), #bottom
            (5, 6, 2, 1),
            (6, 7, 3, 2),
            (7, 4, 0, 3),

            (0, 1, 9, 8), #outside
            (1, 2, 10, 9),
            (2, 3, 11, 10),
            (3, 0, 8, 11),

            (4, 12, 13, 5), #inside
            (5, 13, 14, 6),
            (7, 6, 14, 15),
            (4, 7, 15, 12),

            (8, 9, 13, 12), #top
            (9, 10, 14, 13),
            (10, 11, 15, 14),
            (11, 8, 12, 15),
        ]

    elif profileType == 'U_PROF':
        # create U shaped profile with inner vertices at offset size
        verts = [
            (-1.0, -1.0, 0.0), #0
            (+1.0, -1.0, 0.0),
            (+1.0, +1.0, 0.0),
            (-1.0, +1.0, 0.0), #3

            (-wF, -dF, 0.0), #4
            (+1.0, -dF, 0.0),
            (+1.0, +dF, 0.0),
            (-wF, +dF, 0.0), #7

            (-1.0, -1.0, 1.0), #8 outer edge top
            (+1.0, -1.0, 1.0),
            (+1.0, +1.0, 1.0),
            (-1.0, +1.0, 1.0), #11

            (-wF, -dF, 1.0), #4
            (+1.0, -dF, 1.0),
            (+1.0, +dF, 1.0),
            (-wF, +dF, 1.0), #7
        ]

        # create faces between these vertices
        faces = [
            (4, 5, 1, 0), #bottom
            (6, 7, 3, 2),
            (7, 4, 0, 3),

            (0, 1, 9, 8), #outside
            (3, 0, 8, 11),
            (2, 3, 11, 10),

            (1, 5, 13, 9), #inside
            (5, 4, 12, 13),
            (4, 7, 15, 12),
            (7, 6, 14, 15),
            (6, 2, 10, 14),

            (9, 13, 12, 8), #top
            (11, 8, 12, 15),
            (10, 11, 15, 14)
        ]

    # apply size
    for i, v in enumerate(verts):
        verts[i] = v[0] * width_m, v[1] * depth_m, v[2] * height_m

    return verts, faces

from bpy.props import (
    BoolProperty,
    BoolVectorProperty,
    EnumProperty,
    FloatProperty,
    FloatVectorProperty,
)

class AddBox(bpy.types.Operator):
    """Add a Profile mesh"""
    bl_idname = "mesh.primitive_profile_add"
    bl_label = "Add Profile"
    bl_options = {'REGISTER', 'UNDO'}

    uF = 1000 #unitFactor

    profileTypes = (
        ('RECT', "Rectangular", "Rectangular profile."),
        ('U_PROF', "U-profile", "U-shaped profile.")
    )

    # Select desired profile shape
    profileType: EnumProperty(
        name="Profile type",
        items=profileTypes,
        default='RECT',
    )

    wall_thickness: FloatProperty(
        name="Wall Thickness",
        description="Wall Thickness",
        min=0.001, max=0.02,
        default=0.004,
        unit='LENGTH',
    )

    width: FloatProperty(
        name="Width (X)",
        description="Profile Width",
        min=0.001, max=0.5,
        default=0.06,
        unit='LENGTH',
    )

    depth: FloatProperty(
        name="Depth (Y)",
        description="Profile Depth",
        min=0.001, max=0.5,
        default=0.06,
        unit='LENGTH',
    )

    height: FloatProperty(
        name="Height (Z)",
        description="Profile Height",
        min=0.001, max=5,
        default=1,
        unit='LENGTH',
    )

    layers: BoolVectorProperty(
        name="Layers",
        description="Object Layers",
        size=20,
        options={'HIDDEN', 'SKIP_SAVE'},
    )

    # generic transform props
    align_items = (
        ('WORLD', "World", "Align the new object to the world"),
        ('VIEW', "View", "Align the new object to the view"),
        ('CURSOR', "3D Cursor", "Use the 3D cursor orientation for the new object")
    )

    align: EnumProperty(
        name="Align",
        items=align_items,
        default='WORLD',
        update=AddObjectHelper.align_update_callback,
        options={'HIDDEN'},
    )

    location: FloatVectorProperty(
        name="Location",
        subtype='TRANSLATION',
        options={'HIDDEN'},
    )
    rotation: FloatVectorProperty(
        name="Rotation",
        subtype='EULER',
        options={'HIDDEN'},
    )

    def execute(self, context):
        vertex_locations, faces = add_box(
            self.width,
            self.height,
            self.depth,
            self.wall_thickness,
            self.profileType,
        )
        nWi = str(round((self.width * 1000)))
        nHe = str(round((self.height * 1000)))
        nDe = str(round((self.depth * 1000)))
        nWT = str(round((self.wall_thickness * 1000)))
        type = str(self.profileType)

        # profileType width x depth x height nWTmm
        name = type + " " + nWi + "x" + nDe + "x" + nHe + ", " + nWT + "mm"

        mesh = bpy.data.meshes.new(name)
        bm = bmesh.new()

        # create vertices at specified coordinates
        for vertex_coordinates in vertex_locations:
            bm.verts.new(vertex_coordinates)

        bm.verts.ensure_lookup_table()

        # create faces from previously added vertices
        for face_index in faces:
            bm.faces.new([bm.verts[i] for i in face_index])

        bm.to_mesh(mesh)
        mesh.update()
        # add the mesh as an object into the scene with this utility module
        from bpy_extras import object_utils
        object_utils.object_data_add(context, mesh, operator=self)

        return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator(AddBox.bl_idname, icon='FACE_MAPS')

def register():
    bpy.utils.register_class(AddBox)
    bpy.types.VIEW3D_MT_mesh_add.append(menu_func)

def unregister():
    bpy.utils.unregister_class(AddBox)
    bpy.types.VIEW3D_MT_mesh_add.remove(menu_func)

if __name__ == "__main__":
    register()

Will find Mesh.from_pydata(verts, [], faces) is quicker than bmesh.  Mesh.update() is probably handled by add object helper method.  String formatting is quicker than concatenating.  Would also subclass the AddObjectHelper class and remove need to redefine location, rotation and align.

@batFINGER could you perhaps explain this a bit more? I'm fairly new to coding/python and I'm not sure how to implement any of this.


text:
Do Cycles nodes run on CPU or GPU?
I've been looking through the blender source code and noticed that nearly all cycles shaders are programmed in OSL.

However, the Wiki mentions the following:

It is also possible to create your own nodes using Open Shading Language (OSL). Note that these nodes will only work for CPU rendering; there is no support for running OSL code on the GPU.
  (source)

Does this imply that most of the Cycles shader nodes only support CPU rendering?

Nope, only OSL shaders are not gpu compatible.

@Robert   Do you know / can you describe. at a lower level, how the connection is made from OSL to GPU executable in the OP's reference, and why the same connection can't be made for user-written OSL? I'm probably not even using the right language to ask this... 'pologies....

@RobinBetts I will write an answer this evening, I'm currently in a thesis presentation at uni.

Yours?  Hope the answer doesn't have to be a thesis, too  :D

@RobinBetts No, not mine. My Master's thesis will hopefully be done before the next Blender Conference.

Cycles implements the shaders for both CPU and GPU through the shader virtual machine which can be found in /intern/cycles/kernel/svm. The same nodes are also separately implemented in the Open Shading Language (OSL) and can be found in /intern/cycles/kernel/shaders. For instance you will see that the brick texture node exists both as svm_brick.h and node_brick_texture.osl. OSL only runs on the CPU and integrating a OSO to SVM compiler was previously discussed but abandoned due to maintenance and performance concerns. Therefore your own OSL scripts have the same limitation and will only be executed on the CPU.
Note that using OSL is entirely optional and it's not enabled by default. OSL can be enabled in the Render Properties.

Additional information about Cycles can be found in the wiki. The articles may not always be fully polished, but they should be a good starting point to dig deeper into the code. The structure of Cycles source code is documented in the Source Code Layout page.

Excellent. Thanks. Wish I knew how to track this stuff down, myself... well, I do, now, a bit better.


text:
Is there a way to use logic operators in Blender Shader nodes?
I'm self-answering this question since I've found the nodes useful and would like to share this with the community since I couldn't really find anything related on it here.

Are there shader nodes / node groups that can be used for basic logic operations in the shader editor, like And, Or and Not?
Since nodes like Math > Greater Than output a 1 or a 0 based on the input conditions, it might be useful to use those outputs in a more logic-oriented fashion with multiple conditions deciding one final answer.

nice posts! just a PS you really did not need the self answer note.

@David But it's very laudable. Thank you, OP!

@HeadhunterKev they're not saying the self answer was unnecessary, just the explanation. self answers are an established practice on this network

I hope I see more of your self-answering posts, because we have got a lot to learn from you.

I've spent the past week or so working on basic logic gate implementations in Blender Shader editor.
I'm sharing these with the community so anyone who would like to use similar nodes can easily find how to make and use them.
They allow for a little more advanced Shader Node behavior without having to resort to OSL or python scripting.
Here's an overview of the logic gate node groups I've made, along with a .blend file that contains all of them.
Download the .blend file here:

It contains all logic gates discussed in this topic, as well as an example of a 7-segment display and the logic that drives it. You may freely use the contents as you wish, though crediting this post and/or linking back to it would be appreciated.
To use the nodes in your files, open the file you need the nodes in and click File > Append, then open the above .blend file. Navigate to "Materials" and import the Logic Node Library material. This contains all nodes mentioned in this post.
Since the node groups are protected and named, you can add them to your Shader Editor by using Shift+A > Search and entering their names.

Preface
Every logic gate can be made from Not-And or Nand gates. (This also goes for NOR, but I'm not using those).
When implementing logic gates, you first need a Nand gate; with this gate you can make any other gate using solely Nand gates. Most of the gates in this answer are solely composed of Nand gates.
All node groups have inputs that are clamped to a range of 0 to 1. Due to how the Nand gate operates, any value greater than 0 is seen as a logic 1.
The Nand gate is also the only gate that utilizes an internal value that surpasses 1; they do binary math with decimal numbers.
The outputs are also clamped to a value between 0 and 1, this makes it easy to chain node groups without losing 'signal' quality.
The terminology I'm using, just for clarification:
1 indicates that the node outputs a True signal.
0 indicates that the node outputs a False signal.
All inputs are noted as capital letters. The output node is named O for most gates.
Outputs of Logic Gate Nodes can be fed into just about any node that accepts values. For instance, connecting the output to a Mix Shader Node fac input allows you to control which shader to use based on your logic. It's effectively a "switch" which allows you to switch between materials based on specific conditions.
The inputs of logic gates can manually be set, or controlled through keyframes.
Another possibility is to split a RGB color value into it's three component color channels and use either one of those values for logic input(since these are also ranged between 0 and 1).
If you have input values that exceed the 0 to 1 range, you can use a Map Range node to map the input range to the output range.

Basic Gates
In this section I'll describe the construction and operation of the four basic logic gates:
- Nand
- Not
- Or
- And
Nand
The Nand gate outputs a 1 unless both inputs are 1, then it outputs a 0.
This is implemented as follows;

Both inputs are fed through a Math > Ceil node which rounds the value up to the nearest integer. For 0 this would be 0, for anything between 0 and 1, this would be a 1.
These values are then added together using a Math > Add node, which results in an internal value which is denoted as X in the following truth table:
Truth table:
Nand
A  B  |  O  X
-------------
0  0  |  1  0
0  1  |  1  1
1  0  |  1  1
1  1  |  0  2

The X value is finally passed through a Math > Less Than node which outputs a 1 if the input is less than 2. If the value is 2 it will output a 0.
This node is clamped so the output value will never exceed the 0 - 1 range.
Considering every following gate consists of Nand gates that contain both input and output clamps, there is no need to further clamp these nodes.

 Or
On to the first compound gate(a gate made from other gates).
This gate outputs a 1 when either of its inputs, or both, are 1. If all inputs are 0, it'll output a 0.
Truth table:
Or
A  B  |  O
----------
0  0  |  0
0  1  |  1
1  0  |  1
1  1  |  1

The node group consists of three Nand gates:

Not
This node has a pretty simple effect; it inverts the input. Is the input a 1, then it'll output a 0 and vice versa.
It is constructed from one NAND gate with both inputs linked to the group input node.

Truth table:
Not
A  |  O
----------
0  |  1
1  |  0

And
Finally, the last basic logic gate(and perhaps one of the most useful ones): And.
This gate outputs a 1 only if both inputs are 1. Else, it'll output a 0.
Truth table:
And
A  B  |  O
----------
0  0  |  0
0  1  |  0
1  0  |  0
1  1  |  1

It consists of a Nand gate linked to a Not gate. Remember how Nand stands for Not-And? This gate effectively is Not-Not-And.

Other gates
With these four basic gates, you can construct gates that exhibit more complex behavior.
I'll describe three gates:
- Nor
- Xnor
- Xor

Nor
This gate is a bit like the opposite of an And gate; its output is only 1 if all inputs are 0. Else, the output is 0.
Truth table:
Nor
A  B  |  O
----------
0  0  |  1
0  1  |  0
1  0  |  0
1  1  |  0

This gate can be used as a last option for conditions; this gate activates only if none of the inputs are active.
It consists of an Or and a Not gate:

Xnor
The Xnor gate outputs a 1 if both inputs are equal. Are they different? Then it'll output a 0.
Truth table:
Nor
A  B  |  O
----------
0  0  |  1
0  1  |  0
1  0  |  0
1  1  |  1

It is constructed like so:

Xor
Finally, Xor is a gate that outputs a 1 only if both inputs are not equal. It's like the inverse of the Xnor gate.
Truth table:
Nor
A  B  |  O
----------
0  0  |  0
0  1  |  1
1  0  |  1
1  1  |  0

More complex components
In the Blender Shader engine I wouldn't expect things like binary adders and 7 segment drivers to be useful.
Singular gates operating on a few inputs are likely way more useful. I've implemented them anyway; since they're fairly complex I will not explain how they are constructed. Instead, see the attached .blend file for more information.
Included in this file are the previously named base gates, a few gates with multiple inputs (things like And with 4 inputs), adders(half, full and 4 bit) and some groups related to handling Blender's decimal numbers.

Here's a quick description of these gates:
The DecimalToBinary node group converts the value on a single input to a 4-bit binary value (0000 - 1111 or 0 - 15). Currently, this only actually supports numbers 0 - 9, since the 4th bit is needed to be able to count to 9. The values 10-15 are not used. I'll add this to the post as soon as I've found a solution for this.
The input value is passed through the DecToDigits node, which converts a singular value to 10 output values (Y0 - Y9).
These effectively convert a number to their digits; 4 would turn output Y4 on and leave the rest off, 8 turns Y8 on and leaves the others off, and so on.
These values are passed to the DigitToBin group which converts the digits to a 4-bit binary number (again, only 0-9 for now) using a fairly complicated node group.
In the .blend file I've also included a WIP 7-segment shader which controls a single digit based on the (keyframe-driven) input value, which is passed through the DecimalToBinary node group. Currently every digit has its own material to account for decimals and hundreds, tens, ones. I hope to find a better solution for this since every material on its own contains about 800 nodes.
The whole display encompasses about 4000 nodes!
This is also included as an example; choose Play Animation to see the display count up. This works best in Cycles render, though LookDev also works but is a lot less responsive.

In terms of performance, I haven't noticed any performance slowdowns when using a few of them here and there in my materials. In the 7-segment shader however, there are 4000 nodes in use which noticeably slows down animation speed to about 1 fps.
Again, if you only use a few of these nodes performance shouldn't be an issue.
In conclusion
Boolean logic is absolutely possible within Blender's Shader editor and may prove useful for making certain materials, like switching shaders or colors based on a keyframed value.
Things like binary computation are also possible, though that is not the focus of this post.
I'm sure people can find interesting applications of these nodes!
I will also add examples of the basic nodes later so you can see what they can be used for.

Damn. That's one thorough answer :). Thanks for investing your time into this, I'm sure many others will find it useful.

Got my upvote just for the insane and seemingly stupid effort you take on this. Implementing an own node would possibly have been easier than this.

As a computer scientist, I'm used to thinking about Boolean operators as being restrictions to {0, 1} of polynomials. You have: a AND b = ab; a OR b = a + b - ab; NOT a = 1 - a, XOR = a + b - 2ab. You could get the same results on {0, 1} inputs with fewer nodes by using these formulae. You could add in the Greater Than node on the inputs if you want to preserve the "anything greater than zero is true" behavior, although the polynomial interpretations are also used for continuous values in probability and fuzzy logic.

Huh, neat. Could implement that, probably would save a lot of nodes. I'm not a computer scientist by any means; just a shader node enthusiast with a little much free time. @AaronRotenberg

The operator f(a, b) = a + b - ab is in some sense the "natural" continuous extension of the Boolean OR operator. It is actually called probabilistic OR, because if a and b are the probabilities of independent events occurring, then f(a, b) gives the probability that at least one of a or b occurs. ab and 1 - a are of course the probabilistic analogues for Boolean AND and NOT, respectively.

if i play the animation, i hoped to see numbers in the ones and tens and so on. But just single segments were highlighted. Do i have to do more than play the animation?

I see the same as Chris, too, using a master branch Blender. Has this stuff been broken by some update during the last year or so?

@tml Looks like this file broke in the latest blender updates; try using one of the 2.8 versions to open it.

The problem is not with the recent update in Blender. Some of the nodes in the Shader engine was not connected. The 7 Segment Decoder within the 7 Segment Shader for example had AND and OR gates with unconnected nodes, as well as internal errors. Some minor adjustments and all works well, although the logic could have been simplified in the decoder, I wish to thank asofbird for taking the time to create the blender file. You can select one of the segments in the scene collection, open the shader editor and verify that the count correspond to the display in the layout view.

The updated file: https://livenmmuac-my.sharepoint.com/:u:/g/personal/fsmith_mandela_ac_za/ESj9QfoF__tGhxhq1917R_EBJ-Ls2SMx-yH5eoHDOBVcWQ?e=JbGJyj


text:
Locking the viewport headers to a default position
In Blender 2.80, the headers in the viewport seem to jump around arbitrarily.
One moment they're at the top of the viewport, then they suddenly jump to the bottom if I open a different file.
My workflow keeps getting interrupted by this since it takes a little extra time to find the function I need.
I'm aware there's a shortcut(F5) to flip the position of the header, which also does not seem to work consistently(or generally, hardly). However, the header still moves around and having to toggle every time also impedes workflow speed.
Is there any way to lock the position of the headers to a certain side of the viewport?

This will depend on the file that you're loading as the GUI layout will be loaded with the file. You find this happens a lot when loading files which were saved in previous versions of Blender.
 You can prevent the current GUI setting being overwritten on load by unchecking Load UI in the file load window:


text:
Proper inheritance rotation
Just curious, is it possible to make a proper rotation without tweaking after?
From

Too

Related - https://blender.stackexchange.com/questions/50534/how-do-you-make-a-mitred-corner

You need to shear the vertices / edge loops.
Select the edges/vertices in edit mode.
Press CtrlShiftAltS to go into the shear operation.During the operation you can press X or Y to constrain it to the respective axes. In my example I enter the number -1:
CtrlShiftAltS, Y, 1, -
After that simply extrude in the X direction then scale it to zero along the x axis.


text:
How to inset (or fill in) a complicated mesh?
I have SVG of a tree. I want to make a 3D model of it. Also I want to add a texture on the front face (on the trunk) of this tree, to make it bumpy. But how can I add a 3d texture on it?
I extruded the perimeter, but how to fill in the rest?

Welcome to Blender.SE! Don't miss out on some bonus points from taking the tour: http://blender.stackexchange.com/tour Please ask only one question at a time. When there are multiple questions, it's hard to pick a "best" answer. If you'd like information about texturing, you can post another question. If you don't... that's fine, too. You can edit your question to make that clear.

There are a few ways that you could potentially approach this:

Manually select 4 vertices, press f to make a face, and repeat until you go crazy.
Select all of the vertices and press f to make an "n-gon", you'll quickly realize why n-gons are avoided.
Another option is the Face Tools built into Blender.
From the Manual:

Fill
The Fill option will create triangular faces from any group of selected edges or vertices, as long as they form one or more
  complete perimeters.
Note, unlike creating n-gons, fill supports holes.
Beauty Fill

Mode: Edit Mode
Menu: Mesh ‣ Faces ‣ Fill/Beautify Fill
Hotkey: Alt-Shift-F

Beautify Fill works only on selected existing faces. It [rearranges] selected triangles to obtain more “balanced” ones (i.e.
  less long thin triangles).

Check out the Manual link. It's got even more information.

This definitely looks like the perfect job for a curve object, not a mesh.
If you imported it as an SVG try re-importing it and not converting to a mesh. Blender will then take care of automatically filling the face loops.
You can then convert to mesh afterwards for further processing if needed.

To Fill in the mesh select all the vertices and hit "F" for face. this will fill in your space with an Ngon. When you go to uv unwrap it, select "project from view" so that your bump map will not get stretched. If you need help texturing it there are plenty of resources out there.
It also looks like you have extruded your vertices backward. If you want to fill in the front and back make sure and select the front ones and the back ones separately when you are filling them so that you get a clean structure.

Bad idea for something this complex. N-Gons are a no-no, but the more complex your model becomes the more you're likely to run into issues.


text:
How do I use live motion, and paste a model onto it, like Gollum?
I wanted to try to use this to make a short film without having to do a lot of manual animation. I will restate the question here in more detail. I want to be able to move around a scene in real life, and then put a model over me so that the final footage will be the model instead of me. For example I could say gollum or the movie mars needs moms. I'd also like to know how to do this in cycles.

Oops sorry, One of the tags said motion capture. Never occurred to me that that was what I needed.

There are two approaches you could take -

Use motion capture. This involves using an actor that normally has markers attached to various parts of their body which can then be tracked from several camera angles and then used to control an armature that moves your 3D character.
Use motion tracking or match moving. This is often broken into two parts, camera tracking and object tracking. Camera tracking allows you to recreate the camera motion in 3D so that objects you add will follow the environment in front of the camera as if they was in front of the real camera during filming. Object tracking then follows an object that moves within the video, this could be a prop that an actor is holding that gets replaced with a high tech laser rifle. You can even track markers placed onto a persons face and use them to deform a 3D characters face. The points you track will be turned into empties within blender that you can use as reference to place objects or used to move objects within the scene so they match the video.

While the first option is getting cheaper it is still mostly left to movie studios with the budget, we can do the second approach within blender. This can be quite involved so you may want to watch some tutorials explaining it like track, match, blend or blenderguru's intro to camera tracking.
Some tips are to use some highly visible markers, in places that will get covered by your 3D objects. Place markers as far apart as possible. Account for rotations and the possibility of markers getting hidden and overlapping each other.


text:
Animating objects while simulating water
I can animate objects, move them, rotate them, etc and create an animation from that.  I can also create a fluid simuation, bake that and create a little video from that.  But now I want to create a wave simulation where I have a tank of water and the tank is rocked up and down and the water inside "sloshes" from one end to the other.  Then I can play around with timing and angle of the contain being tipped to create some cool waves.  But I am having trouble mixing a fluid physics simulation with the animation of the tank holding the water.
Either I'm missing something or it's a lot harder than I think it is.
I read online that I need to first bake the water simulation and then I can animate other objects.  But that doesn't make sense because tipping the container will change what the water does - and baking the simulation kinda makes that impossible, right?  Any help would be greatly appreciated.

You should be able to keyframe your Obstacles and then Bake. Make sure your tank never passes through your Inflow, if you have one, or is smaller then your Fluid can fall into, if you are doing it that way.
Here is a tutorial on animated Obstacles.

This is definitely what I needed to know. Thanks a bunch. I'll give it a try tonight.

@PaulG Always glad to help!

@PaulG Great to hear it!


text:
How to use the particle system for smoke
I'm trying to follow this tutorial to make an animated intro for videos.  I got to about the 30 min. mark in the video, and the goal is to add smoke.  The person who made the tutorial used the particle system for the smoke, but I can't seem to get it to work.  Using the object works, but not the particle system.  I am using a more up to date version of blender so I'm wondering if there is an extra box somewhere I haven't checked or something along those lines.  Any help on this would be much appreciated!  Let me know if any further clarification is needed.  Thanks!

Did you turn off the the physics and the type of particle in the particle settings? Or your computer my not be able to handle smoke.


text:
blender 2.8 sculpt mode display
enter image description hereHope someone can help. When in blender 2.8 sculpt mode the color of my object changes. Look like mocap from 2.79, except I have'nt enabled the mocap in preferences. Also when I tqab into edit or object from sculpt the display stays the same as it was in sculpt mode. and I getno grid displayed either.
I did'nt change anything from the original download.
I have included some screenshots. I am pretty sure I hit something but I have tried everything I can think of. checked under materials nothing uninstalled then reinstalled,

This is the intended functionality. If you would like the grid back, you can re-add it in the overlays menu, it is just turned off by default in the sculpting workspace.

you can get the grid back, by clicking on the overlays dropdown, and checking floor


text:
Alpha compositing with layer masking
Ahhh yes this problem again...
So I have a rather complex set of compositing layers to set up, some nodes masking areas and others just splitting up the scene components. Now I've run into this issue many times while compositing with trees or vegetation, but the only method that I've found to work doesn't allow for a lot of flexibility.
To composite layers I find I need to use layer masking to allow for objects to appear in front of each other, but when using mask layers on objects with tons of transparency, the camera doesn't register the z depth correctly and just renders the entire mesh. This blocks other objects when combining layers.

Is there a better way to combine layers with lots of transparency? I cannot put the trees on the same layer as other objects because they all use different compositing effects.
Compositor if needed:

Cheers,

While that was very close to what I was looking for, your post certainly put me on the right track. I never new that the environment pass was an option for each layer. Now while this does make things more complicated the scene finally works. Thank you!

Hows this for an increase in complicatedness: https://puu.sh/zxugi/f61b368b2a.png


text:
Copy paste / Applying armature to mesh / Mirror modifier giving strange results *Possible bug?*
So I've been creating a few characters for an animation and I've encountered an issue I've never had in blender before, when either copy pasting a mesh from separate files, using the mirror modifier, or applying automatic weights to armatures the results are always dodgy.
The results are similar to if I hadn't applied transform, but I've already tried that and it hasn't worked.
Before applying auto weights when connecting armature to mesh:

After Connecting:

The mesh becomes displaced as if the global coordinates are off.
Same issue with mirroring and copy pasting objects across files

Rather stumped and it's stopping me from rigging my characters, any help appreciated.

Looks like a transforms issue to me. To avoid issues would make the scales of each mesh and armature unity (1, 1, 1) and  zero rotation.

Unforunately that's the thing I tried to do which didn't end up working, it might even turn out to be a bug since I've never seen anything like this

Perhaps a sample file or a screenshot with mesh object selected with object transform settings before what you call "connecting" will shed some light.


text:
Multi-Monitor Slowdown
I have been trying to use my second monitor with blender without much success.
I have 2 windows and can move them around fine, but the moment i move any window off my main screen onto my second monitor the blender interface window on the second monitor lags like crazy. But on the main monitor it is fine. I can also have both windows on the main screen fine without and lag.
It is driving me mad and while not necessary for what i am doing it would make my life much easier if i could use both monitors.

Has cegaton as mention this is probably a graphics cards or driver issue. I currently use a dual monitor setup at home with Blender without any sort of problem, but I had a similar issue on an older work computer running Windows XP. What are your system specs, operating system graphics card? Pretty hard to lend any help without useful info.

Current i am using a GTX 980 with the v364.72 which are the current drivers. I am on Windows 10 with an i75960x and 64 gig of ram, blender is running off an ssd and saving onto an ssd.


text:
Check if object is being drawn in the scene
We can have multiple objects in a 3D Blender model.
If we rotate the model, then it can be possible that certain object might
not be visible at all from the user view as it is behind other objects.
How to check in Blender python whether an object is being rendered on scene at all or not?

What do you mean "visible", visible where, using what render engine, Viewport, Blender Internal, Cycles? An object may be "out of view" but still have an influence on the scene like casting shadows or emitting light, so not being directly visible in the view-cone may not mean it is totally invisible to the user. There may be more complexity to your question than you imagine, I think this is generally regarded a complex optimization done in game engines and real time rendering that is not trivial to accomplish.

I'm not talking about actual visibility settings. Of course visible objects will have impact on rendering. I want to know if at least a single pixel of an object is being drawn in viewport.
For example, if we are viewing a car from front, then it's tail light on the back are not drawn at all as they are completely obscured by other parts. But if we rotate the car model, then some part of it might be drawn on viewport depending on the amount of rotation.

It's hard to know if this can be a solution for you or not, but here's what I would try:
Use either Object Index or Material Index to create a pass that will be like a mask of the object's outline.
So for example, in Cycles if you create a material with a Pass Index of 1 (as is on this cube)...

Then you could set up your nodes to get a mask from that like so:

Note that since the monkey object in front of the cube does not have a Material Index of 1, it occludes the cube.
You can set this up using the File Output node so that this gets output separately from the main render as its own file:

Then you can use an external script (in Python perhaps) to batch scan your frames and return TRUE when white pixels are found, or FALSE when the frame is all black.
This is a very specific use case, so expect to have to do custom scripting.


text:
How can I import sound for an animation that will be used in a Unity3D game
I am currently working on a game that will be made with Blender and Unity. I want to know how to import sound to Blender so that I can get my animations just right then export the animations AND sound to be used in Unity. Does anyone know how to do this? I would GREATLY appreciate if someone could be VERY specific in their answer or direct me towards a video or an article explaining how to do it.

You could do it in Unity since you can update the .blend file animations even mid-game. To ensure WYSIWYG.

First of All, Create all of your animations.
Then Select the Editor Type & Change it to Video Sequence Editor.

Change the Video Window to 3d View to look at your animation.
in the middle Sequence Editor, press Shift+A for context menu (Also selectable from the menu below Add)and select your sound.

Go to Editor Type > Video Sequence Editor
Then go to Add > Sound

In this way you can synchronize audio with your animation in Blender.


text:
edge or line tracking
I have footage of a forward dolly on a door with no identifying markers. By the middle of the shot, the top corners of the door are out of frame, and the bottom corners are never in frame.

I can see the side edges start to finish, however. So I keyed out the door to create a sharper contrast with the walls.

With the sharp contrast between the blue door and white walls, can blender track the edges of the door and create a plane? Line segment tracking or edge tracking? Does it exist in blender?

What is your end goal? A mask to composite out the door or points in the 3dview for objects to move with the camera? The corners of the door aren't your only options, for other tracking points you have the picture frames, the door handle and lock as well as the hinge, peep hole and light switch. Which of these stays in the entire shot?

Blender Guru mentions a software in this tutorial: http://www.blenderguru.com/tutorials/render-onto-photo-background/

Shady, The add-on you're talking about is stuffmatic's Blam, and although it's a cool add-on, it looks like it's only for modeling an object based on a photo. My end goal was to motion track a callbox on the wall, but I lost markers as the shot progressed and never had enough markers to get good tracking data. As I found out, I can use trackers that don't track start to finish. Here's a link to the video    https://youtu.be/3teHs27E2Ys


text:
Compositor: dilate/erode except on predefined edges?

A cube with 2 materials and their respective passes. Each ID mask is dilated and then subtracted from the original mask to create the black outline. Notice the only input is from the material pass.
How do I remove the black line between the two materials?

Here is my character, see how each finger has a different material.

After compositing, I have the colors and outlines I want.
How do I remove the black line between the two materials?
The goal is to get an outline around fingers but not where the finger is attached to the hand.... And I need to keep the material outlines separate for when the fingers clench into a fist, or cross boundaries in any way.

Have you tried freestyle? I think it would be better suited to your needs.

Freestyle is too unpredictable, I've tried it a few times and the lines flicker around curves or where two objects meet.

So this is as close as I could get. It's not ideal but I could go in frame by frame and remove the excess outline created from the hand you see on top of the lowered fingers (middle and ring).
I'll try to break down the process. If someone can find a way to fully remove those lines I'd love it:
Step 1: Duplicate mesh to a second layer, remove fingers from the first layer.

Step 2: Remove the back-faces from the hand and fingers with a mix of your material and transparency.

Step 3: In compositing, instead of using the "dilate/erode" node to create your outline, use "filter->filter->lapace" node.

Step 4: Specifically for the fingers, you'll take the difference between the outline generated from the hand on the first layer, and the outline generated from the fingers on the second layer (you cannot have fingers on the first layer and you must have the whole body on the second layer).

Coming out of the top outputs of "fingers.R" and "hand.R" in the image above are just the outline created from the lapace node, the skin color is added at the end of this tree with the "alpha over" node.
I hope I'm making sense.
Again, freestyle just doesn't work for me because of it's inconsistencies; I'd prefer to have complete control over where my outlines are generated. There have been some instances of freestyle where I lose parts of the outline around the main body, and that just won't work.


text:
IK rotation locking partially working
So I'm making a fairly rigid robot where only the top most bone on the leg can rotation on Z and the everything below that can only rotate on the X, I read some other posts about not using rotation constraints but instead using the IK rotation lockers on the bone properties instead though it doesn't seem to work perfectly to how I imagine.

You can see here that the top bone which should only twist here is tilting. The other bones seem to work lock rotation perfectly.

Thanks for reading.

Figured it out. It was due to the Pole Target. Removing it resolved the issue.


text:
Accidentally applied rotation and its to late to undo
So I accidentally applied the rotation of an arm and its to late to undo. Is there a way to fix this accurately?

There's no way to "fix" that. You have possibility to use Normal transform orientation, create custom transform orientation or align view with face and then transform according to View transform orientation.

maybe you can align/rotate another simple object to the arm, then use a "copy rotation" constraint on the arm to copy its rotation, but with "invert", then use "apply > visual transforms"... then apply rotation... I tried on a simple shape... it depends on your specific case though...

Also rotating the vertices by snapping active vertex to a reference point can yield good results although it will only be 99,999% perfect. Afterwards you can try to find a small enough zoom level in ortho view so you can snap the vertices to grid.

This can be done by using the "Geometry" orientation with the cursor tool,

and the "Affect Only Origins" option selected.

Here's an object with its rotation applied, click on the face you want reset to the correct position with the cursor tool, in this case it would be the top face.

Now, Shift-S > Cursor to Selected (make sure the object you want to reset is selected) - This will make sure the position transformations stay the same and only rotation origins are changed

Finally, make sure your transform orientation is set to "Cursor" and go to Object > Transform > Align to Transform Orientation

You should now see that your applied rotation has been fixed, and if you set the rotate values back to 0 the object will be pointed perfectly up. Don't forget to disable "Affect Only Origins" so you are able to transform your object again.


text:
Scaling multiple rings on cylinder to the same size
I am trying to scale different sized rings on a cylinder to the same size, like turning a vase into a pipe shape. I would be glad if one can tell me a shortcut, I am trying to do it one by one, and I guess there is an easier way.
Edit: I am attaching a screenshot. On the left side I have the representative model I want to modify, and on the right side I have the expected result. I am looking for a way to select all the rings and bring them to the same diameter.
Thanks

Hi, I added a screenshot and a more detailed description of the problem

I assume you mean edge loops and not edge rings because edge loops are selected on your screenshot.
It's possible to scale edge loops one by one to the size of desired loop or to recreate them from scratch.
Scale edge loops

Activate Snap During Transform tool. Set Type of Element to Snap to Vertex and choose Closest.
Select one of edge loops of the mesh (hold Alt while clicking RMB on them).
If object is oriented along Global axes, as by default, press S to activate Scale tool, and with pressing Shift+Z restrict scaling only to 2 axes (X and Y).
3.1. If the object was rotated and is not oriented along global axes (X Y Z), then you can align view to the face perpendicular to the edge being edited or create custom transform orientation. Depending on the method choosed you'll need to change transform orientation either to View or to custom one and lock not global rather than View / custom axes.
Hover mouse cursor over vertex of the edge loop serving as loop with desired scale. Once selected edge loop is scaled as desired click with LMB / press Enter to confirm.

Recreate edge loops
There are many ways to do that (one is to dissolve them one by one), the fastest one would be to select all the edge loops, delete faces and use Bridge Edge Loops to connect the remained ones.


text:
How can I align the tilt of a GN generated curve to the nearest surface normal of a target?
To simplify some modelling tasks (like hair), I would like to align the tilt of a curve to the nearest surface normal of some other object.
Here's what I get if I just shrinkwrap a mesh line to an object and generate a curve with GN:

Here's roughly what I would like it to look like:

I don't want to just shrinkwrap the geometry to the surface, because that would change edge lengths; I want to create a curve inside the geometry nodes that is aligned to the surface normals of the target object.  I think this should be possible by comparing the direction that a +X vertex deformed by the curve points, as compared to the surface normal from a transfer attribute, and then offsetting the tilt by the angle between those two vectors, but I'm having trouble wrapping my brain around how to get that done in GN.

just a dumb question: do we get this information at all? i mean the angle/surface normal of the target. I just can think of proximity node, but it just provides distance and position. But no normal info....

ok...possible with raycast...but then it gets complicated....

@Chris We can get the nearest surface normal with a "transfer attribute" node, with a normal node plugged into the attribute we want.  It's okay that basic curves don't have normals-- this attribute is just a field, a virtual attribute that we can use for math on attributes that the curve does have, like tilt.

thank you! that question could keep me busy for days ....

Okay, it's not pretty, but I did it:

I'm using Robin Betts's curve modifier group to make a copy of the curve, as a mesh in order to measure the base tilt, then I'm comparing the vector from the curve control to its mesh counterpart to the nearest surface normal of the target object.  I'm using a simple stretch/clamp group I made to put the mesh line in the proper place.
There are a lot of cross products and dot products here.  I need to repair any vectors I measure to be orthogonal to the curve tangent.  I also need to measure the direction of the vectors relative to the curve tangent to be able to know whether I should be rotating postively or negatively.
This version resamples the curve, so that I can use a mesh line with the same number of vertices to measure the tilt.  I believe that a version that didn't need to resample the curve would be doable; we'd need to make a mesh with some actual faces to measure our base tilt, and then transfer attribute from nearest face interpolated rather than from index.  But for my purposes, resampling the curve is fine.
Of course, with all those node groups and the fact that it barely fits into a readable pic that Imgur is willing to host, anybody that wants to recreate this will want the file:

By using this StackOverflow answer you can easily get perfect tilt alignment:

This only works for Poly curves, so you'll need to use a Set Spline Type / Resample Curve node to convert a Bezier / Catmull Rom / NURBS curve into a Poly curve:

Also, if you use the Object Info node to load the Surface mesh, then you must set the transformation to Relative:

If the transformation is set to Original, then the normals will be calculated incorrectly, so the alignment won't work.


text:
How can I normalize weights to a limited subset of weights on a model with shapekeys?
I just created a lot of shapekeyed facial expressions on a head/neck with appropriate head/neck weights, weights that I want to keep.  I would like to create vertex groups like mouthCenter and mouthLateral so that I can play with limiting the shapekeys to various parts of the face.  I would like these groups normalized to each other so that I could, for example, apply SmileLateral and smileCenter both at 1.0 to create the entire shapekey.
However, the normalize all tool from weight painting won't work for this, because it will normalize my (armature) deforming groups along with my non-deforming groups. Even if these groups are locked, it will normalize around them.  I've tried using the Shapekey Helpers add-on to apply a data transfer from a different model, but it doesn't apply the data transfer (when using its apply modifiers and keep shapekeys option from the shapekeys menu.)  The shapekeys appear to be applied prior to modifiers, so I believe I have to apply any data transfer I get for weights to restrict the shapekeys themselves.
I imagine the same would go for a vertex weight mix, even if I were to figure how to use that to normalize vertex groups to a limited subsection of all groups.
Any ideas?

Okay, it was easy.  It turns out that you can apply a data transfer modifier to a mesh even if it has shapekeys, which I didn't realize.  So I could make a copy of the mesh, delete deforming groups from the copy, normalize all the copy, then data transfer the groups back onto the main mesh.  Good to know.


text:
OS X 10.11.4 Intel Iris Pro - OpenCL Build Fails with GPU Rendering
I was under the impression that GPU's that supports OpenCL 1.2 should work with Cycles on OS X. (LuxRender using OpenCL works fine).
Still, I get a party-pooping error that renders (pun intended) Cycles useless on my system.
This happens for GPU rendering, not when using the CPU.
Any ideas around when this will get fixed?
My HW:
MacBook Pro 2015
2.2GHz Intel i7
16GB 1600GHz DDR3 RAM
Intel Iris Pro 1536 MB
I would really like to use Cycles, but for now this seems impossible.

Not sure but as far as I know only AMD graphics cards are supported for rendering with OpenCL, and even those have some limitations and performance bottlenecks, I think.

OS X's OpenCL doesn't play nice with Blender. Unfortunately there isn't much you can do.

No, AMD are not the only system GPGPUs that support Cycles OpenCL Rendering.
https://wiki.blender.org/index.php/OpenCL
But you are not alone. In OS X 10.11.4 with Iris Pro 6100 on the Macbook Pro 13" the kernel fails. The OpenCL support by Apple for the iGPU is OpenCL 1.2. It should work, but fails.
That onus is on Blender.

I wish there's solution to this as i have similar model as the poster above.. if anyone has solution please share.


text:
How to scale only one side of a mesh/scale unevenly?
I'm trying to scale a cyllinder, but keep 1 side the same, like in the image. You can see there that a cyllinder (represented by a black rectangle) has a certain size, but I want to make it uneven, like a cone that does not end in a closed point. Just a cyllinder with one wide end and one narrow end, represented by the red lines. You can see a wide and narrow/normal end. ]
How do I do that?
Thanks in advance,
DiaborMagics

If you are modelling with any kind of more exotic object, like point clouds or whatever. This would be the solution: https://www.youtube.com/watch?v=YBvA2Hduk_w

You can use Proportional Editing for that. Go into Edit mode and enable Proportional Editing (the button in the toolbar at the bottom - click it and set 'Enabled') and set it to Linear mode (the selection will appear once you've enabled Proportional Editing). It should look like this :

Then select the vertices at the end of the mesh that you want to scale. Press S to scale. Drag them to the size you want and then scroll the mouse wheel (or equivalent) to change the range of the proportional edit tool until you have the desired influence.

I've purposefully used a cylinder with a number of loop cuts in the image above to demonstrate how the rest of the mesh is affected by the proportional edit.

Thanks a lot! I'm going to try this!
EDIT: Perfect! Thank you! Works like a charm!

Fantastic - glad to help. Don't forget to Accept the answer by clicking the tick.

For Blender 2.8+ the interface changed, the Proportional Edit button has moved near the top center of the interface:

This is what it should look like after setting it properly

Remember to turn back off once done.
Simply selecting a face and scaling it, is perfectly appropriate where there are single faces for the sides of an object (such as a simple cylindrical primitive) between the ends of an object one is trying to proportionately scale.
However, the moment one introduces something like a loop cut in the middle of that, as was nicely exemplified in the pic for the first answer, simply scaling normally would only affect the mesh between the side one is scaling and the edges formed by the closest loop cut to it, not the whole mesh.

Tab into edit mode, select the top or bottom face and hit S to scale.


text:
Blender rna_xml serialize node_trees and import
I'm looking into serializing node trees as XML for my current project. I saw that there is the rna_xml module that  allows that and here's my current take so far.
import rna_xml
import xml.dom.minidom

# Retrieve XML fixture and create new node tree
def fetch_material(name):
    try:
        return MATERIALS['name']
    except KeyError:
        material_path = MATERIALS_PATH + name + '.xml'
        xml_nodes = xml.dom.minidom.parse(material_path)
        material = create_cycles_material(name, clean=True)
        root = xml_nodes.getElementsByTagName("ShaderNodeTree")[0]
        tree = bpy.data.node_groups.new(name, type='ShaderNodeTree')
        rna_xml.xml2rna(root, root_rna=bpy.data.node_groups[-1])
        group_node = material.node_tree.nodes.new('ShaderNodeGroup')
        group_node.node_tree = bpy.data.node_groups[-1]
        MATERIALS['name'] = material
        return material

# Save material to new xml file (local helper, do not run in production)
def serialize_material(obj, name):
    print("Serializing node tree")
    path = MATERIALS_PATH + name + '.xml'
    f = open(MATERIALS_PATH + name + '.xml',"w+")
    rna_xml.rna2xml(fw=f.write, root_node="Root", root_rna=obj.data.materials[-1].node_tree, method='ATTR')
    f.close()
    return path

This properly serializes the node tree as .xml file but when I load it back I dont know how to get it properly. The only way I found is to load the node tree into a new node group but that results in an empty node_group.
Any of you guys have dealt with this sort of thing before?
Thanks

I can serialize and deserialize any Blender material configuration in JSON. It is possible for me to save my materials in a FreeCAD file and restore all these materials in Blender from this FreeCAD file. for more information see this thread on the FreeCAD forum

After studying the source code of that module I realized that it is unable to create new Node objects since it only assigns attributes to pre-existing structures.
I decided to get around that problem by having a collection of materials in another scene in the same .blend file. Hacky as hell but it works.


text:
Is EEVEE the GLSL engine?
I heard a while back they were making a GLSL engine. Is this the same thing as the upcoming EEVEE engine they're working on for 2.8?

I don't think it is GLSL based, but I really don't know. I'm basing my opinion on this in a 2.8 dev blog: "Port Cycles materials to the Eevee engine:
Port Cycles GLSL code to PyNode"

I did read that too but didn't know if that meant it wasn't GLSL based. Thanks!

authors: Евгений Савватеев


text:
Force edge split even when angle is zero
Disclaimer: I am a beginner at modeling and Blender.
I am working with blender's modifiers to achieve a certain mesh:
I want only triangles, all sharp edges, no "shared" vertices, even when they have the same characteristics (same normals, ...).
I thought the edge split modifier is able to split edges regardless of the relative angle of its shared faces, but this doesn't seem to work for me. See the screenshot (basic cube placed, triangulate and edge split modifier applied):

The two triangles of each cube side seem to share some vertices, that's why there are only 24 vertices, NOT 32. I confirmed this by exporting the mesh to a text file-format. The mesh re-uses vertices (exported data has less vertices than indices).
But I actually WANT blender to split these edges (and vertices) properly. How can I achieve this? Ideally using non-destructive methods only.
Thank you! :)

authors: ΠΛΟΥΜΗΣ ΠΑΣΙΑΔΑΚΗΣ

authors: Василий Борисов


text:
Python: Selecting faces from a Material Index
How can you select faces from a material index in edit mode through Python?

You mean selecting faces which have a specific material?

    import bpy
    import bmesh

    index = 2  # required index

    bpy.ops.object.mode_set(mode = 'EDIT')
    ob = bpy.context.object
    me  = ob.data
    bm = bmesh.from_edit_mesh(me)

    for face in bm.faces:
        if face.material_index == index:
            face.select = True

    me.update()

I think it would be helpful to add some description of how the code works.