This turned out to be easier than I thought. You simply do something like this:

import bpy
from bl_ui.properties_paint_common import UnifiedPaintPanel

class BasicSettings(bpy.types.Operator, UnifiedPaintPanel):
    """
    The basic brush settings like strength, radius etc.
    """
    bl_idname = "view3d.basic_settings"
    bl_label = "Brush Basic Settings"

    def execute(self, context):
        """
        Show the basic brush settings popup dialog.
        """
        return context.window_manager.invoke_popup(self, width=300)

    def draw(self, context):
        """
        What follows is basically a copy of the Python code
        responsible for the placement of the settings in the Tools tab,
        taken from Blender itself.
        """
        layout = self.layout
        toolsettings = context.tool_settings
        settings = self.paint_settings(context)
        brush = settings.brush

        capabilities = brush.sculpt_capabilities

        col = layout.column()

        col.separator()

        row = col.row(align=True)

        ups = toolsettings.unified_paint_settings
        if ((ups.use_unified_size and ups.use_locked_size) or
                ((not ups.use_unified_size) and brush.use_locked_size)):
            self.prop_unified_size(
                row, context, brush,
                "use_locked_size", icon='LOCKED')
            self.prop_unified_size(
                row, context, brush, "unprojected_radius", slider=True, text="Radius")
        else:
            self.prop_unified_size(
                row, context, brush,
                "use_locked_size", icon='UNLOCKED')
            self.prop_unified_size(
                row, context, brush,
                "size", slider=True, text="Radius")

Etc. These are just copy pasted from within Blender. Just go to any UI element in the panel you want, right click on click and then Edit Source, it will open a file in the text editor and from that you have to figure out what you want and then just copy paste it. And now, whenever you call this operator shown here, it will create a popup dialog similar to the panel.


Why does my depth render look so washed out despite the model having lots of depth?

The "Depth"-pass uses the camera clipping range as bounds for its values.

So if your clipping range is much larger than the Z-dimension of your terrain, it will only occupy a small range of all possible values.
As all possible values are mapped to a value between 0 and 255 (at least on your screen, depending on your output format bitdepth you may get a finer resolution), you won't see much in your heightmap unless the camera range and the dimensions of your scene match.


This is due to a new feature, which attempts to correct face information (typically UV maps) when modifying the mesh.
In edit mode, look at the options top right of the 3D view and uncheck "correct face attributes".

Intended or a bug in that case... maybe a bug.


How do I solve non manifold errors with this relatively simple shape?

I would stick with the extrusion method, personally, but you do have to be aware of doubled edges or faces, depending on how you extruded it.  I would look at it in Wireframe mode to see if you have anything like this:

The red arrow is showing a doubled-up face inside the object, so you'd want to delete any of those.
The blue arrow is showing an edge that is ACTUALLY a face (with zero height).
Have you tried simply doing a Merge By Distance to clean up any vertices that are doubled up, or just realllly close to each other?
Also, silly question, but have you tried clicking that "Make Manifold" button there on the right side?
If nothing helps, you could upload the blend file.  If you don't want to upload it because there are other objects in the scene, you could save a copy and delete everything else.


If you go in edit / preference / keymap you should be able to reset the mapping left or right mouse selector it and put back the left click.

(translated with google)


Blender won't load UI text when opened from the console on a Mac

I had two versions of python installed; I solved this by uninstalling the 2.7 version by typing:

sudo rm -rf /Library/Frameworks/Python.framework/Versions/2.7

and then:

sudo rm -rf "/Applications/Python 2.7"

That leaves me with 3.4, and everything works fine.


You can extrude your cross section by a small amount on the Y axis, then adjust the "Merge distance" parameter of the Array Modifier :


How to remove the watermark in the rendered image?

In the properties window, open Render tab, scroll down to Metadata section and disable Stamp Output.


it's me/you from the future.
The "problem" with the particle system is that in the Cycles Hair Settings the "Shape" Bar was in 1, so it looks like that because of that, turn it back to 0 to make the hair look good again ^^


I want to mix Cycles shaders based on self shadow

Turns out this is pretty easy to do. "Easy" as in "you're deprived of doing all the fun math manually" ;)

Add three Value nodes (or a single Combine XYZ node) into which drivers can be added. I prefer the three value node approach in case you want to access individual axes later on.
Add drivers to each of the value nodes by right clicking on each and selecting Add Driver.
In the Graph Editor and switch to Drivers mode in the header (1).

Ensure that both the object using the material and the value nodes are selected, then repeat the following until all the drivers are set up:

Select the next driver in the driver list on the left of the graph editor
Select the driver target, in this case the point lamp (you can press E while hovering over this field, then click on the lamp in the 3D view for a speedier selection workflow)
Set the transform type to X, Y, or Z Location, making sure to pick the right one for each driver
Set the driver type to Sum Values. We don't need any fancy scripted python stuff, and avoiding the Scripted Expression setting will prevent the drivers from being disabled for security reasons.

If you put the drivers on value nodes, connect them to a Combine XYZ node.
Add a Vector Math node set to Normalize and connect the Combine XYZ node. This will ensure the values from the driver are scaled down to the 0..1 range.
Note that only the first input of the normalize node is used, so I've hidden the extraneous sockets with ⎈ CtrlH.
Take the Dot Product of the normalized location and the object's normals (obtained from either a Texture Coordinate or Geometry node) via another Vector Math node.
Adjust the scalar result of the dot product to suit our needs better with some math nodes and a colorramp:

The resulting gradient should update in real time:


How can I duplicate a UV map on the same object?

When you add a new uvmap it will duplicate the selected uvmap.

If you want them to stay identical there is no advantage to having multiple uvmaps, the same map can be used for multiple image textures and in multiple materials.


Set object local axis based on face orientation

This is not exactly a solution, but a painful workaround. If someone can provides a better answer, I will accept it.

The solution relies on two assumptions:

You can create a Custom Transform Orientation which matched your desired orientation.
You don't mind that object will be moved.

"Solution":

Create a Custom Transform Orientation. For this simple example: select the edge you want to align, press CtrlAltSpace or find it at bottom of the N-Panel.
Rotate to align custom transform to global axis. I followed this post. In short: add empty at the face center, align it to custom transform, parent object to the empty, clear the empty rotation, clear the object's parent keeping transformation, rotate 180°.
Change local axis to match the global ones. Use Apply Transformation (CtrlA)


Collection for New Object? (Version 2.8)

New objects are always added to the active collection. To make a Collection active just click on its icon in the outliner to set it as the one new objects are added to.

The active collection is indicated in the Outliner while in View Layer mode by a transparent circle overlay over its icon


Blender to unity fbx export comes out destroyed

In Blender:

-Firstly (THIS IS IMPORTANCE) in Dopesheet - Action Editor tab, before you do your animation you have to name it accordingly and hit little F icon there to add a Fake user otherwise the animation is not being saved when you close Blender.

-Then you select the mesh itself and the armature that you want to export. Go to Export option in File/Export/FBX

-You can see the option for 'Export BFX' at the bottom-left corner, leave everything as default only check the 'Selected Objects' checkbox. Also choose only Armature and Mesh to export down below.

In Unity:

-Select the FBX file in the Project panel that you just imported in (I assumed you already know how to import it in)

-In the Inspector panel:

with Model make sure scale factor is 1.

in Rig make sure Animation Type is Humanoid for your character. If it is a thing or anything not full body human, pretty much choose Generic.

Animations down below at Anim. Compression. Choose Optimal.

Now anything left is to create animation controller and assign animations to the character :) If this does not work or I'm not clear in any step, please don't hesitate to leave a comment so I can help you. Goodluck!


Can I play my animation in full screen without rendering?

You can start playing the animation and then, in the screen layout menu, you can simply choose "3D View Full" for remove all the menus and display it.


Pixelated shadow appearing in Cycles when using bump in node editor

This is called the Terminator Effect. Cycles is not the only engine that has this problem. The solution is often to apply the subdivision surface modifier (if your object has one). Also HDRis can lead to this problem or using bump/ normals.

For instance: Pro-Lighting sky gives you this problem. The solution to the problem is to give your object more geometry.


Make sure your smoke has been simulated a bit before you render it.

You can quickly simulate it by playing the animation (AltA), or you can cache it more permanently by baking it (press Bake in Properties > Physics > domain settings > Smoke Cache).

Once you have done that, you should be able to see the smoke in the viewport and the render.


Color hair particles by emitter's texture

Sod it, broke the connection in the material between Attribute and Image Texture and the problem is solved.


After the extrusion you can trim the 3 axis in the toolshelf (T).


What are the practical differences between beziers, nurbs and paths?

I must say that I make quite extensive use of Bezier Curve objects in Blender, I use them a lot more than I actually use mesh objects.
I work mainly in architecture mostly doing archviz, design and interior decoration projects. I know this is not a popular nor a 'standard' modeling technique, I am perfectly aware how exotic it is and that most people's workflow is far different from mine, even in similar business areas.
Curve objects in Blender suffer from severe limitations when compared to meshes, like limited availability of modifiers, poor texture mapping capabilities, can't be unwrapped, can't have particles or participate in Boolean Operations, and can't be rigged or animated like meshes do.
That being said I find that bezier curve objects kept live and without converting to mesh have certain advantages and also particular constraints that make them well suited for these use cases.
Bezier Curves
By being inherently bidimensional, bezier curve objects (in 2D Mode) automatically guarantee a flat 2D surface avoiding dealing non planar surfaces originating from unintentional snapping, which is a frequent requirement recreating real world situations.
Because they you don't have to work with faces directly, you don't have to worry about topology nor maintaining a good edge flow, like you would with mesh objects. This lifts a huge burden and frees you from worrying about mico-managing
geometry.
Since curves have a builtin quality setting for curved segments smoothness you also don't have to use Subdiv Modifiers which are often a source of concern for topology. Mixed straight and curved shapes live happily together automatically handled by the bezier curve fill engine as well; so you also avoid having to worry about adding support edge loops or unwanted smoothing in straight areas.
Because the fill engine also handles automatically inner curves and recursive shapes inside shapes it easily creates holes and islands inside outlines, avoiding extensive use of Booleans, which are slow, error prone and often source of frequent problems and frustration.
The builtin beveling, offsetting and extrusion features allow for a non destructive workflow, which can easily go back to and change parametric without having to redo manually.
Bevel objects also allow defining extrusion shapes along complex paths, common in metal work, frames and railings frequently found in architecture, and often provided in CAD format by manufacturers.
In building and construction area, Bezier curve objects end up being very versatile in designing:

Building walls, which can conveniently be defined as an extrusion of an architectural plan outline that is often provided by the client, guaranteeing planar closed shapes.
Facades, curtain walls, and elevations can also be easily defined from client provided elevation drawings, since again they are mainly bi-dimensional extrusion structures with holes and island that are well defined from a 2D closed curve with holes for windows, doors, openings and stonework around them.
Pavement or floor finish areas (like an room with a certain type of wood, carpet or ceramic tile finish) which often a closed boundary combining complex shapes with mixed curved and straight geometries.
Concrete slabs, or extensive ceilings with arbitrarily shaped and numerous openings for lighting and holes for installed equipment, are also easy to define because you don't have to worry about topology, manually deal with gaps, fill holes nor use booleans.
Railings, metal work, extrusion profiles and frames along complex paths are easily handled by the builtin Bevel objects.
A lot of other real world objects made from sheet materials (like table tops, wood board, wood furniture benefit from the same advantages like easy extrusion, tessellation and beveling.

Other than that, they are also very useful as complement for illustration based graphical design type of work, like Logo design and symbol creation, or 2D type of motion graphics often used in TV, video and animation work.
NURBS
NURBS surfaces on the other hand are more suited for smooth almost organic-like shapes used in vehicle design like cars, boats, airplanes, or more aerodynamic industrial design objects.
They differ from subdivision surface because you never deal with faces directly, the emphasis on precision, trimming, and Boolean operations.
Looking at Blender alone it's hard to imagine using them as an actual full features modelling tool, since Blender's NURBS tools are admittedly a stub, with very limited features and lacking tools.
They are there more as a remnant of the past than as an actual production ready tool. Other dedicated software like Rhino, MoI, Katia, etc. have actually usable and full featured NURBS modelling tools, capable of very accurate surface definition, surface trimming, Boolean operations, etc.
They are very suited for actual technical drawing extraction from models, since correct and exact elevations, plans and sections can be extracted from a NURBS or Solid based 3D model.
Paths
I don't frequently use them myself, but from what I gather they are mostly used for animations purposes, mainly to define animation paths objects must follow, sort like a railway. They are mathematically more accurately and precisely defined, yielding smoother animations and avoiding jitters and sudden movements while animating.


This rotation behavior occurs because the first rotation causes a rotation in the axes as well. This would require you to recalculate the axis to use for the second rotation. Unfortunately this problem isn't the result of gimbal lock and won't go away if you're switching to quaternions.

A quick and dirty solution would be to change the order of your rotations depending on whether the cube is rolling in the x or y direction. I don't know if it's possible to change the rotation order for one node, but if you multiply the rotation matrices you end up with the same result. If you're sticking to nodes, use two Matrix Math and a Matrix Mix node. I just decided to switch to a script to reduce the amount of wiring.

This approach would require you to keep track of the cube's direction and manually add keyframes for the script input which changes the matrix multiplication order.

The fact that the orientation of the cube might change whenever you switch could lead to problems if you replace the cube with an object with less symmetry. But then it might be better to search for another approach as the x and y position of an empty alone isn't sufficient to determine the desired orientation of the final object.


Are the books written for blender 2.5 or 2.6 still useful for the latest blender 2.7 version?

Whether or not you can use information for a old version depends on what you are comparing:

Cycles came out in 2.61, so anything prior will be for the blender internal.
The Python API has changed a fair bit since 2.5. So scripts, addons and python tutorials will most likely be incompatible.
Many of the buttons may have sightly different places: example in 2.70 tabs for the toolbar came out.

In general anything written for 2.5 and up is still (more or less) relevant and use full now.

If you get stuck, or something is not where it was then, ask a new question here.


If you push your color values above 1 your render will become physically inaccurate. You should try to keep your color values at most 1.

Glossy Shader with a color value of 1 1 1 vs 50 50 50

Diffuse Shader with a color value of 1 1 1 vs 5 5 5

As you can see once you set the color value above one the shader are emitting more light than they are receiving. If you have no light though the scene will not be illuminated by the shaders because the shaders are not actually emitting light they are acting like a multiplier.

You will also notice that in the render output certain pixels have a color value above 1


How do I animate emission with an audio file?

For convenience later on, I'll add a Value node, which you can connect to the emission strength or any other input.

Set a key on the property, which you want to be "animated" by the sound wave.

In the graph editor, execute Bake Sound to F-Curves.

Adjust the resulting F-Curve with an Envelope modifier, mapping the output from 1 to 10. Or map the input from 0 to 1 and add a multiply node in the cycles material nodes to multiply it with 10.


How to reassign the textures to my imported obj in blender?

OBJ files can contain your UV layout. So, providing you have made your UV layout on the character, just apply your texture maps and the projection to the corresponding UV. If you haven't made uv's, create them.


normal baking, low poly to high poly. Sub surface corners not correct

I just checked your file and after baking everything looks pretty good. I can see that you added one more edgeloop to the high poly object and that seems to have fixed the issue. I only managed to replicate your image when the edgeloop was removed. When baking you still want to keep the objects as close as possible. There are some things that just aren't possible, like making a cube look like a sphere. Without that last edgeloop the cubes are just too different to get a good bake.


How do I merge the locations of one set of perimeter vertices on a mesh with the corresponding set of perimeter vertices on another mesh?

Create a vertex group using the vertices on the face you want to merge, then use the Shrinkwrap modifier set to Nearest Vertex and choose the torso as the Target


Squished armature after deleting animation

probably you deleted the animation in a frame where the scale value of some bones was not equal 1.0. Go to pose mode, select all bones and press alt-s, alt-g, and alt-r to reset scale, position and rotation of all bones.


Python Timer is not working for me in blender

Override the context for timer funcs

As discussed here Context is incorrect when calling from a timer the timer is outside the context of the main thread of blender.

To get around this pass the objects to the function when defined, and use these in a context override of any operators.

A quick test reveals that the animation cancell operator requires context members "window" and "screen"

import time, bpy, functools
from bpy import context

def stop(w):
    print("STOP")
    c = {"window" : w,
         "screen" : w.screen
         }
    bpy.ops.screen.animation_cancel(c, restore_frame=False)
    return None

#f = functools.partial(loop, bpy.context.screen.name)

if __name__ == '__main__':
    window = bpy.context.window
    bpy.ops.screen.animation_play()

    bpy.app.timers.register(functools.partial(stop, window), first_interval=30)

The same method could probably be employed with threading.Timer As a rule of thumb, threading and blender don't go together too well. The new timer app was created to alleviate this somewhat.  But since it is still a thread outside blenders main thread it has issues with keeping context.

Please notice the way the index of the window is passed in answer to linked question.  Simply passing the window as shown here could be catastrophic if the window is closed, and hence the reference lost,  between invoking timer and it firing.


When to use `getExecutionCode` and when `execute`?

As you may know Animation Nodes creates a python script based on your node tree. So each node has to provide some code that goes this script.

The execute function is fairly easy to use and should be prefered when you have a static amount of sockets and when the execution code does not change when you change some properties of the node.

The getExecutionCode function is called every time the node tree is changed. So it can return different code depending on some sockets. Also it avoids the function call overhead which can be noticable when you execute a node thousands of times.

In general you can write most nodes in both functions, there is no clear separation when to use what. I suggest you start writing nodes using the execute function.

btw: the getExecutionCode function will be generated automatically based on the sockets if the node has a execute function.

I hope that helps a bit, feel free to ask more detailed questions about the code. But maybe it would be better to ask them on github, not sure...


Blender sometimes doesn't remove textures properly, and it requires several attempts to save and reload the blend file before they are removed permanently. To be sure that they are removed properly, do the following:

1) Go into the Properties editor > Textures context, highlight the texture you want to remove.

2) Click on the X button to the right of the field for the texture's datablock ID name: This will unlink it from the object it was assigned to, but it still remains in the blend file. To unlink the datablock from ALL objects in the file, hold down the Shift key while clicking on it.

3) Check your object. If you still see the texture on it, select the object and go into edit mode. Now select one of the faces that the texture is on.

4) Open the UV Map editor and check to see if the texture image is visible there. If it is, then go to the field in the menu header where the name of the texture's datablock ID is listed, and click on the X button to the right of it. When you do, your object should no longer be showing the texture:

5) In the Outliner window, change the display type in the header menu from All Scenes (or whatever you have it set to) to Orphaned Data

6) If there are any sub-menus listed for materials or images, open them and check to make sure that none of them have green checkmarks beside them. If they do, LMB click on the checkmark to remove it.

7) Now save the file and reload it. Look in the Outliner again to see if all the orphaned data has been removed. If it hasn't, continue to save and reload the file until it's all gone.

You should now have no problems with that texture.

NOTE: Never delete materials that have textures assigned to them unless you have unlinked the textures first.


How to prevent things from out of sight rendering

and these are mostly out of sight

but we can still see them!

Please read How is Cycles different from Blender Internal first.

  Most materials [and objects] scatter light, so Cycles needs to account for light bouncing in different directions. How this is done depends on which [Integrator][6] is used.

Objects scatter light even if they are outside of the visible frame.

If you remove them, you will likely receive a different result, even if they weren't directly visible. There are many ways to restrict rendering manually.

You could do a check with python to see if an object is in the cameras frustum. Adapting the code from this reddit post1 we can select all the objects which don't contain points in the frustum. However for a production ready check, we would also have to take edges/faces modifiers and reflections into account.+

import bpy
import bmesh
from mathutils import Vector
from bpy_extras.object_utils import world_to_camera_view

def check_if_vertices_in_frustum(scene, cam, obj):
    mat_world = obj.matrix_world
    cs, ce = cam.data.clip_start, cam.data.clip_end

    for v in obj.data.vertices:
        co_ndc = world_to_camera_view(scene, cam, mat_world * v.co)
        #check wether point is inside frustum
        if (0.0 < co_ndc.x < 1.0 and
            0.0 < co_ndc.y < 1.0 and
             cs < co_ndc.z <  ce):
            return True
    return False

scene = bpy.context.scene
cam = scene.camera

for obj in scene.objects:
    if obj.type == 'MESH':
        if (check_if_vertices_in_frustum(scene, cam, obj)):
            obj.select = False
            # obj.hide_render = False
        else:
            obj.select = True
            # obj.hide_render = True

1 Help with finding whether a vertex is visible from a camera or not


UV wrapping brushed steel hard-surface models

Some of the texture files were missing so I used the waves texture instead.


Mesh is not becoming smooth after rendering

So i tried some things but now it´s behaving even more strange. Nothing does what it should do...
Here are some Rendereded Images.

Then some Renders with Subsurface and Smooth Modifier. Render Subsurface was on 3 an Smoothing on 2.2 and 3 or 4 Iterations

Then i removed all Modifiers but the result was exactly the same so i deleted them. After that everything was perfect smooth, but now there are some strange Artifacts over the lenes.

After that i tried only Subsurface with render 4

And Only Smooth with again 2.2 and 3 Iterations but that also does nothing now.
Im totaly confused now... nothing works like it used to be.


The XYZ coordinates, depending on where you're looking, are dependent on the origin of the object, not the individual faces. Better viewed in Object mode than Edit mode. It may be that you have 3 different lights, but only one object, or the origin of all of the lights is at the same location. Sometimes when objects are created in another program an array or copy is used in creating the multiple objects, and the origin remains the same.
Here are two objects with the same origin location (denoted by the orange dot between them), and thus the same XYZ coordinates, even though the objects are in different locations:


Found it, Press "V" to detach edges or vertices. This does not kick the selected parts outside the present mesh like Seperate("P") does.

It's edge seperation.


animation track with two stripes and second stripe strart where first stripe ends?

Finally, I to solved my problem:
I create Stripe with cube moving from 0,0,0 to 0,1,0. I create first Track with added this Stripe and second Track with this Stripe. I set Blending = Combine in Second Track. So the second Stripe begins when the first Stripe ends. At the end of the Tracks is cube on the position 0,2,0.


You need a combination of Subsurf Modifier, Smooth shading and Edge Crease

Start wit a plane.

Subdivide it.

Select some vertices to create the outline of the window.

Press Alt+Shift+S (to activate the "To Sphere" tool)

Move the mouse a bit to create a rough oval.

Add the middle vertices to the selection and extrude the shape of the window.

Press ⎈ Ctrl+2 to add a subsurf modifier with two subdivisions.

In edit mode set the object to smooth shading.

To make the outside edges sharp, enter edit mode, select the vertices on the edge of the object and mark a crease (Shift+E) with a value of 1, so that the edges are sharp.


How can I make a material only apply to a side of a plane?

In cycles it's a simple matter of using the Backfacing output of the Geometry node:

The Backfacing output gives us white (a value of 1.0) on the side that's facing away, and black (0.0) on the side that the normal is pointing

(This is what you see if connecting the Backfacing output to an emission shader as a sort of viewer node)

So connecting this to the Fac of a Mix shader with Glossy (the mirror) and Transparent shaders will give the effect you're looking for.

You can do this in Blender Internal renderer exactly the same way only with slightly different nodes.

As for backface culling in the viewport, there's a check-box for that in the Display Panel of the Properties Shelf in the 3D view:

Which would of course make faces on the other side of the normal direction transparent by definition:


How can I get the intersecting face from two overlapping faces?

use Boolean modifier on 1 of the planes and select other plane in the modifier tab then choose the Boolean option you need and apply if you want only the mesh being left BUT probably you got to make These planes to cubes  and 1 of them must be smaller from hight and after applying the modifier you need just to delete vertices to make it plane again


Basically you have to re-initiate it and then cancel that operation.
If you have a line you can just LMB on the button once to activate it then RMB on it again.
You can also invoke the space-function search menu and search 'Sample Color' activate it and hit ESC to cancel it.


How to increase shadow strength in Shadow Catcher?

You have rammed into a common issue compositors are facing. Actually there are two of them:
1) Your footage has been graded already
However that footage had been taken, may it be a simple iPhone camera or some advanced Blackmagic thing, judging from the look of the footage some kind of intensity mapping has already happened here. Keep in mind that if you're using the .jpegs the camera provides you for convenience always have some sort of intensity mapping applied, and it's a different one for each camera maker. That's why some images look Canon-ish and some are Nikon-ish. When compositing, ideally you work on the RAW footage, which hasn't been mangled that way yet. The values the camera had recorded, including the intensity of the shadows, has not been altered in RAW yet. In that case, Shadow catcher and scene would play nicer together, you could merge the layers and then apply the desired Grade. Again, in your case, I believe you don't have this option.
2) You don't have a clue about the lighting intensities on the original set
Judging from the shadows, you rightfully have seen that there is multiple light sources. However, how would you know how bright they were, and at what distances they were located? Both information is crucial for the shadows to be correct. Even the objects that were on the set caused light to bounce and therefore shadows to change. You won't have that either. You had no other choice than guess something together. What happens then is that one light source brightens the shadow another light source had cast. Also carefully watch your World material, as it also brightens the shadows.
So you're missing two keystones of proper compositing, and are stuck at guesstimating a fix. At least, there's a trick that might help you out.
possible workaround
For starters, here's a .blend file:

As mentioned here, the Shadow Catcher creates the look in the Alpha channel only. The shadow color is defined by the RGB channels, and those are pitch black already. It won't get any darker than that. So one option to change that look is to mangle the Alpha.
Let's have a look at the composite as you might have it right now:

We use an Alpha Over node to merge foreground and background. The result is a somewhat bright shadow, because in my .blend I had used a World (intentionally, to create the issue). Now, work on the Alpha by throwing in for example a ColorRamp node like this:

By doing that, you basically change the factor in which foreground and background are merged together. The solution isn't ideal as it will create Alpha fringes, but you might get away with it.
Another option would be to use the alpha as a factor for a node like HSV, to dim the composite down locally, but that requires you to separate shadow from object, like in the question linked above.


Convert a 3D Model to HTML to display on a webpage

.obj can be imported directly by default (assuming it's the standard Wavefront format you're referring to, which it most likely is). File > Import > Wavefront (.obj). Presuming importing isn't your main problem though.

Blender doesn't have a built-in way to simply export to web, though.
There are some (2 year old) plugins to convert models into web-ish formats such as .json, but then you need a web programmer to do anything useful with that.
Really, the web doesn't have a direct/easy way to 'just' show 3D models. There are a number of competing services/technologies trying to solve that, but none of them are totally simple/direct.

If it's just a wireframe, that's simpler. if there's textures involved, the problem becomes an open-ended one of how much data do you want on your web viewer. Fancy Shaders?

Things like 'three.js' and webpages using 'WebGL' are low-level systems for web programmers, not immediately useful to artists/end users.

The least technical way available currently is to use one of the services that allow web pages to show models in their own web viewer browser component, such as SketchFab or Verge3D. Verge3D is a successor of sorts to the discontinued 'blend4web'. Others may be available.

In either case, there are some hoops to jump through. Each has its own process to get data out of Blender. Checking those services' documentation would likely be your quickest way forward. I have not used either  myself and can't make any specific recommendations.


Making a hole in a mesh while keeping the integrity of texture

Well I figured it out. The best way for me to keep the integrity of my texture was to go into the node editor and change the "texture coordinates" to "Object" instead of "uv coordinates"
Thanks a bunch you guys! :)


emission shader casting shadows - problem not solved

In your particular example case you could replace your emitter object with an area lamp - this does support suppressing shadows as shown :

3d View :

Cast Shadow disabled :

Cast Shadow enabled :

However, I don't think it's possible to suppress shadows from mesh-based emission materials due to the nature of the physics based rendering. ie, if you're suppressing light from emission surfaces then what about light reflected from a glossy surface - that could also cast shadows - as could light from a diffuse surface (albeit much more subtle, but it would still be a shadow).


What do the coordinates in a RGB-Curve mean?

The coordinate range of the RGB curves is [0, 1]. The RGB values in Blender are always in [0, 1] range, where 0 is is no intensity and 1 is full intesity of the color channel. Otherwise you are correct. The curve represents a function which maps input values (x axis) to output values (y axis).
The vertical curve (D) does the following: It manipulates the combined color values (note that the C is checked at the top of the RGB Curves window). This means the curve is applied to all channels individually. It maps all R, G and B values that are smaller than 0.5 to 0 and all that are greater than 0.5 to 1. So the color (0.8, 0.6, 0.2), a light ochre, would be mapped to (1.0, 1.0, 0.0) which is pure yellow.
If you apply this curve to an image the R, G and B values of every pixel are mapped to either 0 or 1, resulting in 2³ = 8 possible colors. Reducing the number of possible colors in an image is often called posterization.
If you want posterization with more than eight colors you could add more steps to the curve. Here is an example of a curve that will map an image to 3³ = 27 colors.

Apart from the combined channel you can of course also manipulate the separate R G and B channels by clicking on the on the corresponding button on top of the RGB Curves window and modifying the curves of the channels. The curves of the separate channels are applied AFTER the curve of the combined channel.


Can CGI elements emit light when in real video?

You would camera project parts of your video to objects within the Blender scene and those objects catch the surrounding light. Than you would comp it over your footage.

here is a small YT Video that shows the process with an Image but you can also use Video or Image Frames - but be aware that you have a good tracking or you will get sliding effects

https://www.youtube.com/watch?v=p9IfDeNU8K0

ohhh and for sure
BlenderGuru's Camera Mapping tutorial

https://www.youtube.com/watch?v=B9r9tKX5olY

if you set up your scene like this, you can have your NeonSign lighten Up the surrounding Areas.


How to check if a Blender subprocess is still running in background mode from a Python script?

This is no different from regular subprocess use:
https://docs.python.org/3.6/library/subprocess.html

Use the return value of Popen and check it will poll()

See: https://stackoverflow.com/questions/12057794 - though in your case you won't want to wait until poll finished.


Plane rendering order depends on camera position/angle

That is caused by floating point errors, depending on the distance to the camera. When the values get too high, the precision is not enough to properly sort the objects, especially when they are only 0.1 units apart. You can try to remedy this by adjusting the camera far clipping plane value in the camera properties or increasing the distance between the two planes.

EDIT: just now saw the screenshots - that does look like the far clipping plane. Decrease its value and you should be fine.


In your version of Blender [2.79], filmic is already integrated into Blender.

You can see in the active dropdown menu: View Transform > Filmic

It doesn't need to be manually installed anymore.

Nevertheless, you can still use the old configuration, but there is no need to do so.

  For more details see the original Filmic Blender Configuration, which can still be used as an alternative to the builtin Blender configuration.


Moving the 'center of the object' to the actual center...

Changing the Center is easily done with the moster of a shortcut Ctrl + Shift + Alt + C.From the dropdown select

Origin to geometry If you want to move the center.
Geometry to origin If you want to move the mesh.

If you want finer grade control of the position of the center, you can go to Edit mode by hitting Tab, select all vertices by hitting  A and move the mesh with the widgets. The center doesn't move, so you can position the mesh onto the center like this.

In Object Mode you can center an object so that the center is at the center of the scene (by moving the mesh) with the hotkey Alt + G.

I hope this helps.


How can I use colours to separate texture node treatment?

With two different known colours you can use the Separate RGB node:

The R output of the node already give us a map of the red areas (full white=1)

You can use the mask both in a Bump Node and in a Mix Shader node.

If you would like to implement a similar process with every possible colour you can set up a Node tree capable of recognize where a given color is.

Basically you have to mask where the the color that correspond to the shader to mix is on the map by masking individually each component. Starting from the HUE values we check with math nodes where the subtraction gives almost = 0.

Than we can copy this node also for the Saturation and Value...ehm...values! By multiplying their output we are running an Logical AND operation, so at the and we'll have only the places where all three parameters have the same values.

By making a whole group of these operations you'll be able to match each colour to a shader simply by giving the color to pick:

Here's an example of usage with files made by an external application such as the SciFi Helmet by Michael Pavlovic. You can pick the colour from the Colour Id mask directly from the render preview.


The warning "Sculpt: Hide, Mask and optimized display disabled." appears when you have active modifiers on your object (the Boolean Modifier). Then in Sculpt Mode a few things like the Mask and Facesets, etc. don't work.

If you activate Dyntopo it warns you because simple objects like the Cube, Cylinder, etc come with UV maps for texture painting. You find the UV map in the Object Properties Data (the green vert triangle icon on the right side of the screen). You can inspect the map in the UV Editing tab (right next to the main menu). Sculpting destroys the UV map. You can ignore this because you don't want to texture high-poly sculptings anyway. It will make your Blender freeze and crash. If you want to color it use Vertex Painting or retologize it.

You can't sculpt on the cylinder because the Boolean Modifier doesn't work in Sculpt mode and there is no mesh geometry to sculpt on. If you activate dyntopo you will get warning "Not supported in dyntopo" in the modifier tab and the cylinder will vanish if you hide the cylinder in the outline. There are the original cylinder and one temporarily created by the Boolean modifier.

To solve this you need to apply the Boolean modifier. Click the drop-down arrow right next to the blue monitor and camera icons of the modifier. Select 'apply'. It will permanently union (copy) the mesh data. It will not modify the cylinder object. Hide the cylinder object to get rid of the overlapping objects. Last but not least, activate dynoto, choose Draw brush, set strength to a very low value and click on the new cylinder part of the sculpt object. This will add more vertices to the new low poly part so you can use the other brushes without problems.


Change material texture by loading an external .png file with Python

Let's say I have a plane with an image texture called leaf1.png and I want to change the texture to leaf2.png.

If I hover my mouse over the source area, I can see some text at the bottom of the tooltip that says how to access that data with python. Like this:

From this, I know that I can access this with python using bpy.data.images['leaf1.png'].filepath

So to change the image source with python, I do:

import bpy

bpy.data.images['leaf1.png'].filepath = 'path/to/leaf2.png'


Duplicating ALL of a Hierarchy - selectable or not

Here's my solution. The script starts with the selected item and iterates over each child object (recursively to include children of children). If the child object is set to non-selectable, it changes the object to selectable, adds a flag to the object for later, and also adds the object to the current selection.

After duplication of the group, the script iterates through both groups and checks for the flag set earlier. If it finds the flag, it make the object non-selectable again.

import bpy

def CheckSelectStatus(p):
    for c in p.children:
        print(c.name)
        c['hideSelectWasTrue'] = False
        if bpy.data.objects[c.name].hide_select == True:
            bpy.data.objects[c.name].hide_select = False
            c['hideSelectWasTrue'] = True
        c.select = True
        CheckSelectStatus(c)

def RestoreSelectStatus(p):
    for c in p.children:
        if c['hideSelectWasTrue'] == True:
            bpy.data.objects[c.name].hide_select = True
        RestoreSelectStatus(c)

#---------------------------------------------------

#get our selected parent object
p1 = bpy.context.active_object

#iterate through children and make selectable and select them
CheckSelectStatus(p1)

bpy.ops.object.duplicate()

p2Name = ""

#iterate through selected objects to find duplicated parent object
for obj in bpy.context.selected_objects:
    if obj.parent is None:
        p2Name = obj.name

#iterate through original group and disable selection
RestoreSelectStatus(p1)

#iterate through duplicated group and disable selection
p2 = bpy.data.objects[p2Name]
RestoreSelectStatus(p2)


How do I change the units to meters or create an object that is X mm wide?

Just to make it easier for other 2.8x users.

Change your units to metric.
Properties panel > Scene Tab > Units

To check the volume of objects, enable the 3D-Print Toolbox addon.
Preferences > Addons and click the checkmark.

After it's enabled, you can see the volume here.
Sidebar > 3D Print tab


Thickness of objects with transparent, translucent, etc. shaders

Transparent and translucent surface shaders can have no thickness.

Here's a simple plane with no thickness and a translucent shader in front of the only lightsource as an example:

I'm assuming you're solely talking about cycles.


A script to edit identifiers.
It requires Blender Asset Tracer and Python with Tkinter 8.6+. Blender's Python does not have Tkinter.


Align camera to view precisely and automatically, without manual fiddling

I created this script based on operator simple template.

import bpy

def main(context):
    if context.area.type == 'VIEW_3D':

        #set render resolution and lens data
        region=False;
        for reg in context.area.regions:
            if(reg.type=='WINDOW'): region=reg;

        if(region):
            context.scene.render.resolution_x=region.width
            context.scene.render.resolution_y=region.height
            context.scene.camera.data.lens=context.space_data.lens

        #set camera position
        context.scene.camera.matrix_world=context.space_data.region_3d.view_matrix
        context.scene.camera.matrix_world.invert()

        #I don't know why sensor width must be 64, but it works:
        context.scene.camera.data.sensor_width=64

        #set view from camera
        context.space_data.region_3d.view_perspective = 'CAMERA'

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.set_render_size"
    bl_label = "set render size"

    def execute(self, context):
        main(context)
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

You can launch this script, then use set render size (you can set outer name if you want) operator.

Or you can add additional information to create an addon from this.


your faces may keep overlapping if you're moving geometry by extruding, E to extrude when you want to CREATE new geometry but use G (optional: and then an axis (x,y,z)) to only move the geometry you currently have (and have selcted).
I hope you found this helpful :) and good luck on your project!
Blender can be confusing at first but it's well worth the struggle, don't give up!


Your mesh has some modeling issues :).
I'll talk only about your Pommel object here.

01) Lots of N-gons
N-gons (faces with more than 4 sides) don't work well with shading or Subdivision modifier.
It's better to use quads and tris.

You original mesh left, repaired right

02) Overlapping geometry
This is a big problem in 3D modelling.
You have double edges, vertices and faces.
Some can be cleaned up by Mesh->Clean up->Merge by distance, but others have to be cleaned manually.

03) Flipped normals
Normals show which way a polygon is facing. If they're not facing the same way, it causes problems with shading and Subdivision.

You can check your normals here.
Blue should be facing out, red should be facing in.

To fix all, select your whole mesh and go to Mesh->Normals->Recalculate outside.

Additional issues:
Your origin point isn't in the center - it's a tiny bit to the side.
This causes problems with the Mirror modifier.

Other tips for your workflow:
Set your units to milimeters for better precision.
Use orthographic view - it will help you be more precise.
Enable absolute grid snap - it will snap precisely to your grid.
Mirror modifier has a Clipping option - use it.

You're doing great so far, don't feel discouraged.
Good luck with your model, you're on the right track :).

Here is the repaired file:


Cycles: Emission Shader does not bring enough light

The reason your scene is so dark and don't see any light, is because you are clamping all of the Direct and Indirect light to 0.5:

What that means is that NO LIGHT WILL BE BRIGHTER THAN 0.5 (0 being black, 1 being White).
Even if you make the lights extremely bright they will never be white!

You where probably trying to cut out fireflies, but by bringing the values so low you are clipping all of your highlights too!

With more reasonable Clamp Values you can regain control of your lights. Now the emitters on your lamps can be brought down:


You will find the grid scale options in the Overlay panel.


Convert cycles closure (shader) output to colors?

No.

Long answer: Closures (the green sockets) are symbolic descriptions of lighting behavior on a surface. They only result in a color value after evaluation of all the possible incoming light directions by the renderer.

Now, when you talk about using the result of an Ambient Occlusion shader for mixing other shaders, this describes a physical or chemical effect which is not part of the basic pathtracer model with inert materials, i.e. the light influences the physical properties of the material (which in turn could change lighting and so on ...).

A good illustrating example is phosphorescence - if you wanted to implement this with cycles you have to bake a map of the "charge" and use that for an emission shader, while also reducing the charge over time as well as increasing it with incoming light. The important point is that this whole physical simulation is outside of the actual pathtracer and only communicates with cycles via image textures (much like dynamic paint).

The key missing feature is baking of course. It will eventually be added to cycles, but for the time being you'll have to resort to using Blender Internal or some external renderer (or just make an image map by hand).


cant seem to figure out how to lock grease pencil animation to a moving camera. 2.8

Use any cam. Preferible Add-on Camera Rig
Create a Grease Pencil
Add Object Constrain: Copy Transforms
Set: Before Original and place your Grease Pencil in frame.
Now you can animate in camera view. GP will follow any mov.

lock grease pencil to cam


Is it required to attach objects together as one?

It depends on how far you are in designing the object, at the end you want to have as much objects attached to one another and the least amount of vertices so it'll be easier to handle for the engine.
At the beginning you can do as you want so you can edit certain parts better (for example if you have a t-pose it would be nice if you could move the arm away so you can edit the side of the body).


What's the best way to take a bezier curve and have it render as a freestyle line?

I've been asking the same questions for 3 years, and apparently nobody can give this answer :( No we cannot render Blender Curve as Freestyle, unless TK the developer make changes.

The "dirty workflow" is to use the Curve Mesh itself, Beveled, or use Skin Modifier, if you are rendering just edges.


How do i rotate an animation i imported as an FBX

Create a new action that rotates your character in right angle. Make sure that you have only rotation keys:

Next, open NLA editor. Place rotation strip over your animation (in my case I called it "jumping"):

To add strip press Shift+A. Make sure that animation data are empty.

In strip settings (N-panel) set blending to "Add".


Change the "used UVLayer" in all materials in texture_slot 0

i got it to work... wrong syntax was the problem :) i not used to program with python.

here is my solution:

import bpy
for item in bpy.data.materials:
     for itextures in item.texture_slots:
        if itextures is not None:
            item.texture_slots[0].uv_layer = "UVMap"


Press Z to work in wireframe view

Enable Add mesh: extra objects with File -> User preferences -> Add-on

Generate linear to wave, with Add -> Mesh -> math function -> XYZmath surface and make sure you leave 'U wrap' blank:

Add a mirror modifier and enable the highlighted button:

Press Tab tp enter Edit mode and move the waves from each other:

Add a circle curve:

Then select the wave and add a curve modifier

Scale the circle curve:

Scale everythong with -1 along the x-axis and rotate to obtain:


Moving Cube in Object Mode leaves Outline of the Cube on Screen


In a softbody simulation the mesh moves away from the origin (while the origin stays in the same place). And the Track To constraint tracks the origin.
But you can alternatively also track a vertex group.
Select the ball object, go into Edit Mode > Vertex Select. Select a central vertex (or simply all of them). Go to Properties > Object Data Properties > Vertex Groups and click Add Vertex Group (the little plus icon) and click Assign. Finaly for Vertex Group: in the Track To constraint select the newly made group. The camera should now track the group, and subsequently the ball.


Simplest way to drive a pose bone's global location

I already know I can find the global location using either of these methods:

Both will not give you the correct global matrix. The first lacks the armature object transformation and the second is twice multiplying the pose_bone location - it's in pb.matrix already. So the way to get global location is:

pbone_global_loc = (armature.matrix_world * pbone.matrix).to_translation()

And the way to get the pbone matrix back is:

pbone.matrix = armature.matrix_world.inverted() * pbone_global_loc

If the pbone_global_loc is 3x3 make it 4x4 with:

pbone_global_loc.to_4x4()


Video editing, how to make blur value a function of the time?

Why not use the cyclic function in the F-fcurve editor? Make 3 keyframes, 0,1,0 then extrapolate modifier cyclic.

Then you can spread them apart with scale S-key, constrain horizontal with X key


Getting wires displayed in OpenGL MeasureIt render

I managed to find a solution:

Switch to Wireframe mode
Enable World Background in the Viewport Display options
Monkey around with the Environment Image/Colour in the Node Editor, World mode

Gives me this - MeasureIt OpenGL render:


Is there a better way to move around and view a big scene?

Since 2.70 there is a walk mode (like a game). Press Shift F to enter walk mode. Then use either WASD or the arrow keys to walk and the mouse to look around.

To speed up walk mode.

during walk mode you can point the mouse cross hairs at any object and press space to teleport there. (I find it really neat)
holding shift will speed up any of the movements.
NumPad + or Mouse-Wheel up to increase the movement speed for that one time, when you exit walk mode the speed goes back to what it is set at (see next point). There is no feed back to changing the speed, just hold the button for a bit. Likewise NumPad - and Mouse-Wheel scrolling down will decrease the speed.
If you want to make any lasting speed changes you can go the the user preferences, on the input tab down on the left is a section for the walk mode entitled View Navigation. Change the Walk Speed, also the Speed Factor is how much holding shift or alt will change the speed.

If you want to zoom right in on any object or objects with NumPad . you can select the objects in the 3D view, you do not have to select them in the Outliner.


How can I simply map a procedural gradient from the equator to the poles of a sphere?

Here is my result:

And here is my node setup:

The absolute value node works well here because instead of going from a large negative to a large positive, with zero in the middle (creating a standard linear gradient), we instead achieve a positive value on both the top and bottom of the sphere, with it linearly going towards 0 in the middle.

You can change the color ramp type to 'ease' to get a larger area of black in the middle if you want, and changing the emission value also affects it.


is there a node that outputs the distance value from the camera dof in cycles?

You can use the Vector Transform node to convert from Object or World coordinates (depending on whether you're using 'Object'coordinates from the Texture Coordinates node or the Position from the Geometry node) and then Separate XYZ to get the distance from the Z coordinate. With some simple maths you can then shade based on distance based on the depth of field.

In the above material, changing the value of the Subtract node will adjust the distance to the centre of the 'range' affected by the Color Ramp (larger values are more distant). Changing the value of the Divide node will affect the span of the 'range' (larger values spread the colors over a deeper range).

Note that you must have the Vector Transform set to 'Point' for this to work with Object coordinates.

EDIT : As pointed out by @sambler, the first 3 nodes can actually be replaced with a Camera Data node.

The View Z Depth socket will produce the same result as that shown above (the distance from the plane of the camera) whereas the View Distance will be a true distance from the point location of the camera.

Note, however, that the Vector Transform method is still useful if you require additional effects - such as applying a transform to the Camera or Object coordinates using a Mapping Node (to, say, rotate or shift along an axis) or similar.


I'm guessing here, but it seems you have buildings made with separate meshes and want to place each building as a complete whole, onto the plane?
If so you can make each building's component a "Child" of a parent, which could be an Empty.  You then move that empty onto the plane and all of the building's components will stick together and follow.
You do the same for each building.
Once each (building) is on the plane, the plane itself can then act as a parent for all of the building-parents, i.e. make a city block which will stick together should you move the plane.
See this answer here -
Partial Rotation
If this answer isn't what you're after I'll delete it.  Let us know with a comment.


You may fake a fire effect using animated movie e.g. .avi or .mov (.gifs are not supported as @Mr Zak said) to project it (using image seqence texture node) on a plane with transparency.

Add a plane and unwrap it. Download a fire animation from web (in my case I downloaded an explosion .avi file from here: http://wrathgames.com/blog/2011/12/25/explosion-animation-1/). Go to material nodes editor and set up the nodes as pictured below:

Set up the Emission node's strenght as you like. You might also use a Light Path node to get rid of the shadow casting by a projected movie clip.

To make the plane always face the camera (for the fly through animations  e.g.) use this solution: How can I make a plane always look at camera?


Grease Pencil in Blender 2.9 - cannot select vertexes anymore?


Black area on my 3d model. How would I fix this?

Select all your Faces and press  Ctrl  +  N  (Recalculate Normals)

These faces face the wrong direction, in fact they point towards the inside of the grip. This sometimes happens when you manually conect faces but it's no problem at all.

In case this doesn't work and some faces still point to the inside you can select those manualy and press  Ctrl +  F , then select "Flip Normals".


Toolbars and Headers don't have transparent backgrounds

Found it! You just have to enable "Region Overlap" under User Preferences>Interface>Themes


Not sure exactly what you are asking.

I took a look at your blend file and the only thing missing was a light. I just added a sun lamp and everything seemed fine. I noticed you had some emission shaders on some layers and not on others. Also the emission shader you did have was very far away and not pointed in the correct direction. It was lighting up nothing.

Hope that helps.


How to make a node group to calculate fresnel via F0 values

Update 1:

The built in Fresnel node contains the equation for dielectrics, not metals.
However in most cases the the curve is almost identical.

It is possible to implement metallic Fresnel using nodes, but it's complicated and not worth it in my opinion.

Each RGB component of the specular color is treated as its own $F_0$.
(make sure all RGB values are greater than zero, otherwise it will not converge to white at the edges)

I derived an equation that relates $F_0$ to $n$ (index of refraction) from this equation (Derived from Snell's law):

$$
F_0 = \left( \frac{n_1 - n_2}{n_1 + n_2} \right)^2
$$

Where $n_1$ is the index of refraction of the material the light is coming from and $n_2$ is the index of refraction of the material the light is hitting. In most cases air, which has an index of refraction of approximately one, by substitution in the equation:

$$
F_0 = \left( \frac{1 - n_2}{1 + n_2} \right)^2
$$

And since $n_2$ is the index of refraction of the material the light is hitting:

$$
F_0 = \left( \frac{1 - n}{1 + n} \right)^2
$$

Using algebra we can rearrange the equation to find $n$:

$$
n = \frac{1+\sqrt{f_0}}{1 - \sqrt{f_0}}
$$

$n$ is not an independent variable. This means $F_0$ and $n$ can not be controlled separately. Changing them independently would cause an incorrect curve. (Yes, that means the Fresnel in the layer weight node is incorrect)

Unfortunately Blenders implementation of the Fresnel equation does not take into account roughness. This would be an easy fix if we knew the direction to the light source, but we don't have a node with that info. So we just have to approximate it as best we can. This is what Cynicat's roughness hack does.

I have exposed the index of refraction in the Fresnel node group because it's useful for things like refraction.

If you want an edge tint like some metals have you can approximate it by mixing two colors based on the facing value in the layer weight node, then passing that color into the specular slot.

If you want some specular values for materials there is a small list here "Background: Physics and Math of
Shading" on page 17. [make sure you use the linear values not the SRGB ones]

Update 2:

Perhaps you could try Schlick's approximation. It's what most game engines use. It doesn't have that downward curve with high $F_0$ values.


How to call vertex groups in Animation nodes [SOLVED]

You can achieve that effect by controlling the scale of the normals with the vertex weight.

First, instanced an object (Cone) on the vertex locations of the base object (Cube) using this node-tree:

Then, remap the weight (using Vertex Weight Input node) which is in range (0, 1) to (1, -1) using Map Range node with the Threshold (in Threshold node) = 0.5 i.e., vertices which have weight less than 0.5 will have normals with scale = 1 (+ve direction) and vertices which have weight equal or greater than 0.5 will have normals with scale = -1 (-ve direction).

You can very the Threshold as you like.

Blend File:


How to get the length of an mp4 video inside a node?

The length of a video file is stored in the frame_duration property.

num_frames = n.image.frame_duration

If you wanted duration in time, divide the frames by the fps property.

seconds = num_frames / n.image.fps


The exporter you are using, seems to have some problems:

First the alpha-channel for the texture with the bricks is wrong. The alpha channel with the bricks is set to transparent whereas it should be opaque.

While this could be controlled with a node setup, the bigger flaw is that the wall consist of two meshes, each with a plane occupying the same space which leads to z-fighting -

leading to artefacts in the final render.

To get to the final render I set up the nodes for alpha channel in cycles like explained in "How to apply textures with alpha channel?"

The problem with z-fighting is described here.

If you need to get this to work, I suggest, you clean up the geometry of the wall (remove the overlapping part, probably needs a fix for the UV-mapping as well) and set up the nodes with transparency to account for the alpha-channel, while excluding the brick texture.


in Blender 3D, is there any function like 'Flow along surface' in Rhino 3D?

You can achieve something similar using a combination of lattice deform and shwrinkwrap deform modifiers

Let's say you have an object like this:

And you want to deform it on a surface like this plane:

to create something like this:

You can create a lattice that that has only one segment on the W axis and that is scaled to the size of your terrain.

Select the original object and add a Lattice Deform Modifier to it, selecting the lattice as the controlling object.

Then select the lattice object and add a shwrinkwrap deform modifier to it. Select the Target (plane), Set it to project mode and select the correct axis for the deformation.


Render Result is different from the Composite node preview

Looks like that converting alpha with Alpha Over node works. As well as saving that image in EXR format instead of PNG.


Start by placing the 3D cursor exactly at the center of the arch.

Select the outer (or inner) faces only of the cyclinder only.

Press . (Period key) to transform relative to the 3D Cursor position.

Then press S to scale and Shift+Y to exclude the Y axis (adjust according to your own orientation). Now adjust the radius as desired.

Ideally though, if you want to do it precisely (with accurate measurements) and in a non destructive manner, make your arch paper thin by removing either the inner or outer faces, then use a Solidify modifier instead to add thickness.


Warning! Legacy WGL is unable to select between different OpenGL versions

I reported this as a bug here, and the answer I got was this:

"Your GPU is too old. You may be able to still use it if you update your drivers."


It's not a random glitch, it's called Z-fighting. It happens when 2 or more faces occupy the very same space. Then Blender doesn't know anymore which of the faces should be in front and which ones should stay in the back. It also means that you need to clean your topology.

One method of checking for problems is to be in Vertex- or Edge Select Mode with nothing selected and hit CTRLSHIFTALTM to select all edges and its verts that share more or less than two faces.

Here are 4 cross sections. The left one is how it should be. It has a clear inside and a clear outside and is the desired outcome. Every edge only shares two faces.

The second and third one have an internal face where it won't show from the outside. But  CTRLSHIFTALTM will highlight all verts or edges that are connected to that face. This little rascal will also prevent you from recalculating normals correctly.

The fourth is where Z-fighting will occur. While it's not visible, there's now 3 small faces on top of one larger face because I scaled them to 0 on the x axis. And since they're not the same size, removing doubles won't do anything.

Sadly, it's perfectly possible to create Z-fighting topology that the mega shortcut won't detect. Just add a cube, duplicate it without moving it and then scale it down a bit on a single axis.


Adding Keyframes to Evaluation-Time Using Python

actually you must see where is each property
the current  API show that is a main property of all shapekeys
in this case:
bpy.context.active_object.data.shape_keys.keyframe_insert(data_path='eval_time', frame=1)

this is different for example of "value", that is a specific float in each keyblock
bpy.context.active_object.data.shape_keys.key_blocks['Key 1'].keyframe_insert(data_path='value', frame=1)


I don't know how to bring my model back after clicking a mesh data link on the object data tab

As mentioned in the comments the OBJ mesh I imported had several "parts". What I did was when I went into object data I was viewing the old parts from the original mesh I imported. So I deleted the original mesh with so many "parts". Afterwards the only things I seen in mesh data were my object, and my floor plane. I selected my object, and it reappeared.


What do these brackets in viewport overlay text mean?

According to the manual, as stated in 3D View documentation, it is the name of the current marker.

The fact that there are only brackets with nothing between them probably means it has been renamed into a blank name.


Transparency problem with texture using cycles

I just figured it out. I need to switch the order of the textures in the mix node. Whoops.


The light is a source of emission and can not be scaled. While the dotted line helper is forced to conform to the scale, the render will ignore it.

Two possible ez solutions:

1.) Use a stencil and shadows. literally make a plane with an oval shape in it and place it in front of the light. Make sure shadows are enabled. You can make the plane only cast shadows so that it will not appear in the render.

2.) Shine the light at a different angle. Like pointing a flashlight almost parallel against a wall, the shape of the light will appear to stretch as the light travels further and further to reach the wall's surface.


In general vertex indices are not a reliable way to keep track of vertices.

However in some cases you can't avoid using them (MDD/PC2 animations and texmesh feature for example), basically - as long as you only deform the geometry and don't add/remove/subdivide... etc. They can be used - but users of your tools need to be aware of this limitation. If you can avoid relying on vertex indices, its normally best to do so.

This example shows why vertex indices aren't safe as reference:

import bpy

bpy.ops.object.mode_set(mode='EDIT', toggle=False)

ob = bpy.context.object
verts = ob.data.vertices

print("Before", verts[0].co)
# could also be edge-split, subdivide, knife-project, delete ... etc
bpy.ops.mesh.sort_elements(type='RANDOMIZE', elements={'VERT',})
ob.update_from_editmode()
print("After", verts[0].co)

# Before <Vector (1.0000, 1.0000, -1.0000)>
# After <Vector (1.0000, 1.0000, 1.0000)>

You should look into custom data layers:

http://www.blender.org/documentation/blender_python_api_2_69_release/bmesh.html#customdata-access


Render window keeps popping up with the last frame of recent render

I am also relatively new to blender but enjoying it ALOT.

As for your problem, in my opinion, this is because the particular render is sort of 'attached' to your active camera which i assume , that you used with keyframe insertions in your animation timeline. To circumvent this, I usually create a new camera and select it to be the 'active' (see below). Then F12 as usual to render from that camera.


No idea why they behave this differently. But you could try parenting you curve to your object by selecting the curve first then the object (with Shift held down) and hitting Ctrl+P on the keyboard. Then you can animate your cylinder object and the curve will follow automatically.


Normally you cannot crop (redefine) video size from VSE, since it's globally set in Dimensions panel under Render Tab. So you have to redefine the Resolution(s) after cropping in VSE to remove stretching effect:


Setting the origin for each object to geometry

Low level Origin to geometry
Will have to investigate the difference between calling the set origin operator via code and via the UI
Instead can sum the vert coordinates make that the origin, and shift the matrix back accordingly
import bpy
from mathutils import Matrix, Vector

scene = bpy.context.scene

mesh_obs = [o for o in scene.objects if o.type == 'MESH']

for o in mesh_obs:
    me = o.data
    mw = o.matrix_world
    origin = sum((v.co for v in me.vertices), Vector()) / len(me.vertices)

    T = Matrix.Translation(-origin)
    me.transform(T)
    mw.translation = mw @ origin

Alternatively could change your mesh creation class to not use global coordinates.
Operators run on context
Operators use the context.  The origin set will set the origin of all selected mesh objects and can be run once on the selection rather than per object. See Python performance with Blender operators  as to why this  matters.
Another part of context is the code in question?  It is quite possible that changing the origin could be dealt with somewhere else if you are to quote:

In python I can create all of the features that I want

However without any idea of what prior code is, here is a  Test script, set origin of all mesh objects in the scene by passing them as overridden  context to the operator.
import bpy

scene = bpy.context.scene

mesh_obs = [o for o in scene.objects if o.type == 'MESH']

if mesh_obs:
    bpy.ops.object.origin_set(
            {"object" : mesh_obs[0],
            "selected_objects" : mesh_obs,
            "selected_editable_objects" : mesh_obs,
            }
        )


How to split a 2 part mesh into 2 different meshes

Separation by loose parts

Select your mesh. [Right Click]
Go into edit mode. Tab
Separate by loose parts. P > By loose parts

Manual Entry


What does the torn sheet of paper icon in outliner mean?

It means fiie missing or broken link. In this case it might mean that the linked file that contains the object (or collection) cannot be found in the disk. Did you move, rename or delete any files?.
To find the error, switch the outliner display the blender file mode and look for missing libraries.

Or display API data, navigate to the missing collection and find what is it that is linked to. You can re-link it to the original file by manually typing the correct path.

When you get an error like this,you can also check the terminal output. It should report something like:


Installing the tool to export to Dota

To export your model into Dota you will need to export it in .DMX with the addon "Blender Source Tool": http://steamreview.org/BlenderSourceTools/ (don't unzip it)

To install the add-on go in File > User Preferences... in the Add-ons tab click "Install Add-on from File..." and select the .zip. Type "Source" in the search bar and make sure it is enabled.

Importing and editing a game character from Dota

You need to import a character, your model won't compile if it's not attached to the armature of it. You can find the heroes of the game here:
http://www.dota2.com/workshop/requirements

Import the SMD files with the add-on if there is only an FBX, they often have a bug with the scale of the bones, if this happens read my post bellow on how to fix it.

To import your SMD files you can use shift and left click to highlight the files and import them all at once. Each SMD have the armature but it will be imported once.

The model will be laid down horizontally and be very big in the viewport, you can orient it correctly and apply the rotation but you will need to keep the same scale when exporting. You can scale the bones to 0.01 to model your assets.

In this example I am adding the head of Suzanne on top of the head of the heroe Alchemist.

To attach it to the armature, select the model you have made first then the armature, then press Ctrl+p and select "With Empty Groups".

To bind the model to a bone you need to go in the property menu, in the Data tab with a triangle as an icon, in the Vertex Group menu. You will see every bones listed, to order them alphabetically click on the black arrow pointing downward then click "Sort by Name".

In edit mode select the vertices you want to bind to a bone, I select the entire Suzanne head, stay in edit mode and in the menu I select the head bone and click Assign with a Weight of 1 (1 = fully connected).

Now to test it I select the head bone in Pose mode and move it, the model now moves with it, if not check if it is connected to the correct Vertex Group.

Exporting your model

In the property menu go in the Scene tab, it's the third tab from the left. Scroll down to Source Engine Export. Set the path where to export it. For the format make sure it is DMX. Change the DMX Version to the highest numbers: Binary 9 and Model 22.

Note: you can't name your DMX, you must name your asset in the "n" menu. The file will take the name of the active selection.

You can also create a basic normal map to test your model, by creating an image filled with the color RG: 0.502 B: 1.

Compiling and testing in game

To test your asset in Dota 2, right click on the Dota 2 game on Steam and go in Properties. Click on the DLC tab and check Dota 2 Workshop Tools DLC, steam will automatically download it.

When you will launch Dota, a pop-up window will ask you if you want to launch the game or the workshop tool (if it doesn't appear it means the download isn't finished), select the second.

Click on Create New Item, then Hero Item..., select your hero and slot that your asset will replace, then click Select.

Name your asset you can't use uppercase and spaces.

Import the normal map. For the color map (diffuse map) you can use a basic color texture to test your model and silhouette.

For now set the Specular Intensity Mask with RGB at 0.1 because on some heroes the asset is too shiny and a Rim Intensity Mask at RGB 0.2.

If you get an error during the compilation here are the things to check:

Your asset must be attached to the armature even if there is no bone weight.
Your asset must have UVs.
Your asset must have a material (Cycles or Blender Render).
If the asset isn't visible make sure you have reseted the scale of the armature with Alt+s.
The color or normal map are missing.
The texture resolution and polycount are too high, but this is just to publish your asset, it will compile without the correct values you can check the values in the hero download page.
You haven't export in Binary 9 and Model 22 version.

You can play the different animations, by default it's on idle and the Preview in game will launch the game.
Do a test in the Dota map, remember that most details are seen from the top view, remove unnecessary details.

Textures

For the textures use a suffix, for example alchemist_head_color.tga. Use the TGA format and the texture resolution of the hero requirement page.
Here are all the suffixes in the same order than the Workshop settings:

_color.tga (I explain how to create this texture here: How to generate a fake hand painted texture (Blizzard like), Borderlands effect or Pixel Art effect)

_transparency.tga
_normal.tga (base RG: 0.502 B: 1)

_detailMask.tga
_fresnelWarp.tga
_metalnessMask.tga (RGB: 0 = non metallic, RGB: 0.6 = metallic)

0:

0.6:

_selfIllumMask.tga
_specularMask.tga (RGB: 0.22)

_rimMask.tga (RGB: 0.2 = non metallic, RGB: 0.6 = metallic)

0.2:

0.6:

_tintByBaseMask.tga
_specularExponent.tga

Valve has made a post with advice on texturing: https://support.steampowered.com/kb/9334-YDXV-8590/dota-2-workshop-character-art-guide
More informations about the different maps: https://support.steampowered.com/kb/3081-QUXN-6209/dota-2-workshop-item-shader-masks

Fixing the bones (if an FBX is used)

When the SMD files aren't available the only option is the FBX. In this format the bones aren't oriented and scaled correctly, but we can export a .DMX from Source Filmmaker.
In Blender import the .FBX an delete the armature, the character will lay down, orient it correctly, you can apply the rotation. If you change his scale don't apply it.

To download Source Filmmaker go in your Library of games and change the Games menu at the top to Software, you will see Source Filmmaker, do not launch it from there because you won't have access to the Dota assets.

Launch the Dota Workshop tools and click at the bottom on "Launch Custom Game Tools".

A window will open called Asset Browser, click on the Source Filmmaker icon at the top it will launch it.

Create a new session, name it whatever you want.

Open the Animation Set Editor tab at the top left and click on the "+" icon then click on "Create Animation Set For New Character".

Then choose your heroe, it will appear in the viewport.

Now do a right click on the heroe name followed by a 1, it is the first line and select Export > Animation. This will export your model in his default pose with his armature, you can name the file heroename_rig_fix for example.

Import the asset it's a .dmx. Go in Pose Mode, it's important that you use this mode and not the Object Mode. So in Pose Mode select every bones with "a" then press Alt + g and Alt + s, the armature will be horizontal and on the side.

In Object Mode orient the rigging to match the heroe then apply the rotation.

Select every meshes of the heroe and in the modifier tab assign the armature, if the mesh doesn't move it means the armature is oriented corectly. In Pose Mode the character should move with the rigging.

Create a courrier

Default courrier model: http://media.steampowered.com/apps/dota2/workshop/courier.zip
More informations: https://support.steampowered.com/kb_article.php?ref=8986-WRAZ-1046

Courrier requirement:

Two courriers one on the ground and the other flying each with a LoD1 and eventually a LoD0. You can use the suffix _model for the one on the ground and _wind for the other
LoD0 (optional, used for the portrait): 3500 triangles
LoD1 (in game): 3000 triangles
Texture resolution: 512x512
Animations: Spawn (ground only), Idle, Run, Die
Special bones: attach_hitloc (where the attacks land), left eye, right eye

Create a ward

Default ward model: http://media.steampowered.com/apps/dota2/workshop/ward.zip
More informations: https://support.steampowered.com/kb_article.php?ref=8799-WLXN-3860

The observer ward and the sentry ward share the same mesh and UVs, the only difference is there texture. What differentiate them the most is the color of the eyeball, this is why it must be big and visible from above.

Ward requirements:

LoD0 (optional, used for the portrait): 2000 triangles
LoD1 (in game): 1500 triangles
Texture resolution: 256x256
Animations: idle, idle_alt, run, spawn, turns, wings_die, wings_idle, wings_run, wings_run_alt

Particle effects

More informations: How to create dota 2 assets ? (Steam Workshop)

The following heroes require effects for their weapon(s): Abaddon, Anti-Mage, Bounty Hunter, Doom, Ember Spirit, Juggernaut, Kunkka, Phantom Assassin, and Skywrath Mage.

You must create a contour of you mesh with an higher vertex count than your weapon for an higher precision.
Export the DMX separately, use the same name than the weapon and add the suffix "_fx".


Using GG to move an edge doesn't yield expected results

As @Dontwalk pointed out:

  You had a face with three vertices and another face with five vertices. You changed the mesh so the faces all had four vertices which plays best with loop cuts and other tools in Blender.

I had a face overlapping another face and this cause my loop cut to not go all the through my model. Once i removed the extra face and redid my loop cut the problem was fixed.


Mask with "Coordinates from object"

You can make a pass-trough node that is able to mask with a transparent shader all the geometry outside box object.

Basically you pick up the box coordinates, take the part outside the (-1,1) range (which actually depends on the box scale factors) of each components, sum all the contributes and assign to that a full-trasparent shader. The pass-trough masking node must be assigned to every material of the scene.

Notice that you can even scale the cube in different axis and it will still work as expected (never apply scale to the cube, or you'll lose this property).

The only limitation is that the proces is based on math, not geometry. The cube only help to better see the cutting boundaries, but there is not a true dependency (it would work even with an empty, what really matter are the object's coordinates and scale).

In this case  the math behind the clamping is quite simple: it will consider only the object's bounding box. With some effort you should probably be able to build  fror example a sphere/ellipsoid mask, a torus mask,... and even more complex shapes (you can sum the contributes of several individual masking objects).

If you would like to smooth out to the boundaries of the selection, just substitute the "Greather than" math node with a color ramp for each channel.

Almost infinite implementations could follow, as far as your math knowledge can support you

Here's another example with a spherical falloff:


Mirror modifier not showing other half of mesh

This is because you set the wrong mirror axis.

On your screenshot, we see that it's the Y axis you want to mirror (as the center point is on the edge which is on the side of the green arrow: Y axis)

So, try to set mirror axis to "Y" instead of "X".


What constitutes a "context" in Pose mode?

From the keying sets documentation:

No suitable context info for Keying Set
This error occurs when either:

The Keying Set requires that some specific type of data is selected (i.e. all builtin Keying Sets require that you have some selected object/bone)
When using the "Available" builtin Keying Set, and the object that you're trying to keyframe doesn't already have any keyframes/F-Curves, this error will be shown as it there are no existing keyframes/F-Curve on the selected object(s) to insert keyframes on

The keying set can be selected/cleared using the  in the header of the Timeline window.


How can I make transparency act as expected with the internal renderer?

The main problem is anti-aliasing the alpha borders of the leaves. You should enable Full Sample in the Render options for best quality. This will render correctly:

Other problem for best quality might be the transparent texture itself. There is no color bleed over the transparent edge. There is black background over the transparent pixels.
On the leafs texture sampling and filtering happens. And the transparent border get's blurred and the black leaks into the leafs. The image without alpha channel should look like the right one:

Make sure when you are exporting the whole rgb channels are exported and not clipped with the alpha channel.


Arc miter bevel creates miters on straight edges

The strange behaviour in question was a confirmed bug and has since been resolved. In the latest version of Blender (2.92.0 alpha) the issue is absent.
If you are having the same issue, update Blender.


You need to set the origin of the object to its center of mass else the simulation will become wonky.
Select your object.

obj = bpy.data.objects['Cube']

obj.select_set(True)

While the object is selected in object mode, right click > Set Origin > To center of mass.

bpy.ops.object.origin_set(type='ORIGIN_CENTER_OF_VOLUME', center='MEDIAN')

Also, Apply scale with CTRL + A so that it is uniform at 1,1,1.

bpy.ops.object.transform_apply(location=False, rotation=False, scale=True)

Check the difference here between one cube with its origin to its center of mass and one which is off-center. (the two origins of each cube are the yellow dots) :


Can I adapt UV map after geometry change?

You may have to re-unwrap your mesh so that the new vertices will confine to the newer state of the mesh. You can do this by pressing U > Reset > Unwrap.


How to make the film transparent for other render passes?

Rendered passes should be treated as RGB and added/multiplied together (passes are light emissions from each component, therefor they have to be added together, with a few exceptions that require multiplication, like color and AO passes).

Up to that point, it's better to leave alpha alone, as you're dealing with the emissive aspect of the image.

Once you have your plate emissions composited properly, it's time to take care of the occlusion (provided by the alpha channel).

Blender has a handy node for that: The Set Alpha node. Just plug the result of the combined passes to the first socket (Image), then plug the rendered alpha channel to the second socket (Alpha).

The result will be a properly associated alpha image, with all the passes combined.

DON'T DISSOCIATE ALPHA using an Alpha Convert node! You want to keep it associated, so you can composite your image over a background using a Alpha Over node straight away.


Polygons in Mesh or BMesh aren't permitted to have holes in the sense of providing a perimeter and adding an internal part to subtract. This means considering alternatives.

You can construct an irregular polygon / Ngon.

But it will contain at least two duplicated vertices for that pathway between the cutout and the perimeter.

You could script a mesh.fill(), which could take two given edge outlines and fill from the outer edges inwards. (will add script when I have time)

Alternatively you might use a counter intuitive solution namely a 2D Curve (of straight parts) : code included in link


How to get the mouse coordinates in 3space relative to the local coordinates of the active object?

You can obtain the mouse coordinates from a modal operator and use the current event information.

Here I used one of the script templates 'operator modal draw' with little modification in order to use and translate the mouse position.

Your question's relative parts of the code are commented below (please comment if you need more information):

import bpy
import bgl
import blf

from bpy_extras import view3d_utils

def draw_callback_px(self, context):
    font_id = 0
    blf.position(font_id, 15, 100, 0)
    blf.size(font_id, 12, 72)
    blf.draw(font_id, "Mouse position: " + str(self.mouse_pos[0]) + "/" + str(self.mouse_pos[1]) )
    blf.position(font_id, 15, 115, 0)
    blf.draw(font_id, "3D position from " + self.object.name + ": " + str(self.loc[0]) + "/" + str(self.loc[1]) + "/" + str(self.loc[2])  )

class ModalDrawOperator(bpy.types.Operator):
    """Draw a line with the mouse"""
    bl_idname = "view3d.modal_operator"
    bl_label = "Simple Modal View3D Operator"

    def modal(self, context, event):
        context.area.tag_redraw()

        if event.type == 'MOUSEMOVE':

            #Get the mouse position thanks to the event
            self.mouse_pos = [event.mouse_region_x, event.mouse_region_y]

            #Contextual active object, 2D and 3D regions
            self.object = bpy.context.object
            region = bpy.context.region
            region3D = bpy.context.space_data.region_3d

            #The direction indicated by the mouse position from the current view
            view_vector = view3d_utils.region_2d_to_vector_3d(region, region3D, self.mouse_pos)
            #The 3D location in this direction
            self.loc = view3d_utils.region_2d_to_location_3d(region, region3D, self.mouse_pos, view_vector)
            #The 3D location converted in object local coordinates
            self.loc = self.object.matrix_world.inverted() * self.loc

        elif event.type in {'ESC'}:
            bpy.types.SpaceView3D.draw_handler_remove(self._handle, 'WINDOW')
            return {'CANCELLED'}

        return {'PASS_THROUGH'}

    def invoke(self, context, event):
        if context.area.type == 'VIEW_3D':
            args = (self, context)
            self._handle = bpy.types.SpaceView3D.draw_handler_add(draw_callback_px, args, 'WINDOW', 'POST_PIXEL')

            #Keeps mouse position current 3D location and current object for the draw callback
            #(not needed to make it self attribute if you don't want to use the callback)
            self.mouse_pos = [0,0]
            self.loc = [0,0,0]
            self.object = None

            context.window_manager.modal_handler_add(self)
            return {'RUNNING_MODAL'}
        else:
            self.report({'WARNING'}, "View3D not found, cannot run operator")
            return {'CANCELLED'}

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

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

if __name__ == "__main__":
    register()


I can recommend an application like X-Mouse Button Control, it allows you to assign any virtual key / shortcut to any mouse button (per program or globally), I use it to trigger some special Blender features (like Render Only) by mouse side buttons.


Trying to replicate the threads on a jar for the company i work for. How to extend length of the wrap

You should create the thread within the same mesh as the rest, but if we keep it as a separate mesh:

Put your 3D cursor at the center of this object. Set the 3D cursor as the Pivot Point. Select a part of the mesh.

Duplicate the selection with a ShiftD then Enter. Make the duplication rotate around the Z axis and with the 3D cursor as center.

Delete the former thread extremity.

Join the parts with W > LoopTools > Bridge.

You've got your shape.


So pretty simple solution actually...I basically used an object (in this case icosphere) inside the cube and gave it an emission shader and used the boolean modifier set to intersect with the cube.  Not perfect, but did the job somewhat reasonably.


How to blur specific borders of an object?

In Cycles, you can create a transparent material that blurs anything behind it like this :

The Light Path 'Is Camera Ray' is used to mix between a Transparent and a Refraction shader - this ensures that the material does not cast a shadow.

The Refraction shader has its Normal linked to the Incoming Geometry socket and this ensures that no actual refraction will take place due to incident rays always striking the surface along the Normal. This result in the Refraction shader behaving as a 'Transparent' shader when Roughness is zero but by increasing the Roughness (with IOR set to a suitable value) you can vary the amount of blurring that occurs.

You'll need to ensure the Render Samples is set sufficiently high for the blurring to be smooth.

With creative use of Generated coordinates to vary the Roughness you can even create a material with variable blurriness over its surface. In this example the blurring plane is placed over the edge of the checkered floor with variable blurring from left to right :


anybody scripting skilled how to restrict frame range for multiple F-curves at once?

here it is working just fine:

import bpy

def mission1(obj):
if obj.animation_data is None or obj.animation_data.action is None:
    return

action = obj.animation_data.action

for fc in action.fcurves:
    print(fc.data_path)
    for mod in fc.modifiers:
        if mod.type == 'CYCLES':
            mod.frame_end = 303
        mod.use_restricted_range = True

for obj in bpy.context.selected_objects:
mission1(obj)


How do I override the material of an object in a view layer?

do you want an object being seen only through the mirror basicly? then you need to moove an object to a different collection but at same layer and press the icon shown on the screenshot (if the symbol is missing you can turn it on in the filter)


3D Cursor ~ right click to move it around? ver 2.8

It should be old news by now, but you can revert to Blender 2.7x shortcuts and usability at any point.

In the menu, go to "Edit- Preferences", select "Keymap" and you find all the changes in one place.

In the upper row, you find the presets, where you can find a Blender 2.7x preset. Don't forget to hit "Save Preferences", before closing the window.

Depending on how proficient you are with Blender in general, this could also backfire, if you watch tutorials that are created using the new keymap. You definitely want to know your way around in Blender to be able to follow those.


Transform/Scale Pattern over X Axis using Shader Nodes

I've just added those few nodes at the start of your tree and I thing that's what your trying to achieve. Here is what it gives me.


Why is Bloom Effect affecting the whole scene

Play around with the Bloom settings in the Render Tab. You'll get the required effect.

For more details, please share an Image which can clarify the question.


How can I have varying speeds for my Motion gamelogic actuator?

Here is one away to do it :
Instead of having a low speed for the crouch give it a negative speed this way when it is combined with faster motion it slow it down