Smoothing Groups in Blender? Autosmooth off with smooth shaded

Autosmooth on with Mark Sharp

I come from a 3dsMax background so the usual process is to create a mesh, some of the elements are bevelled all around while some have no bevelling. I would set the smoothing of the entire object to 1 smoothing groups making all the bevelled elements perfect while the unbevelled ones will look bad. Then manual set smoothing groups for those elements. All this is done on a single merged mesh.
I'm replicating this process of modeling in blender but i have issues. The mark sharp on the autosmoothed off version does not seam to harden the edges. Trying to clear sharp on the autosmoothed version does not work as well.
Is there anyway to do this other than edge split? I believe edge split literally splits the edges which is not what I want.

Right, I added the blend file. Using blender 2.90

Considering you are talking about the Look of the Normal, here's what you can do -
Select the Edges you want to make them Sharper, now press Ctrl + E or go to Edge menu, Select Mark Sharp.
Now You will get the Marked edges sharp with the smoothing you applied.


How to iterate over material index using Python I want to iterate over the material index of material slot and change the value of each material index. How can this be done in Python?

I've tried using the Python shown below, but it doesn't work correctly.

import bpy

object = bpy.context.object
material = object.active_material
for num in range(0, 5):
    object.active_material_index = num
    if material.use_shadeless:
       material.use_shadeless = False
    else:
       material.use_shadeless = True

The fastest way to loop over the object's materials is through its material_slots attribute. Here's an equivalent code for toggling all object materials shadeless property:

import bpy

for m in bpy.context.object.material_slots:
    m.material.use_shadeless = not m.material.use_shadeless

The only issue I see in your own code is that you're assigning the material to a variable before changing active material index, which renders the latter operation moot. Changing the index before assigning the resulting material to a variable, will yield the result you want.


How to make a model shaded with only two colors? I haven't found any tutorials on cartoon rendering. What I'm trying to achieve is this:

By the way, I know freestyle is not realistic rendering, but I can notice some light bouncing. if that is so, how can I achieve that effect?

Freestyle only renders lines. For the shading, you might try Toon shading:


Make a Blender script run an external program I'm making a script to share data between Blender and After Effects: i created an addon in Blender which exports a .txt file in the After Effects directory (or a custom one) and I created a After Effects script (which uses Java) with ExtendScript ToolKit that reads the file and import the data.

To improve the user's experience I wanted to execute the Ae script from Blender (if Ae is already open), and maybe share some info with it, like the path to the .txt file, the current version and some settings needed in Ae (I could generate another .txt in the windows Temp folder, but a direct connection would be better, I think).

Is it possible to do so?

The way i think to do so, (if you want it to be dynamic) is by doing a socket connection. (But i dont know After Effects). Here you have an example using the fancy async way.
* you'll have to run this somehow from After Effecs [that's what im not sure you'll be able to do]. The idea is to make a server and a client to send data between your programs, blender & A.E. in the case.

import asyncio

async def tcp_echo_client(message, loop):

    reader, writer = await asyncio.open_connection('127.0.0.1', 8888,
                                               loop=loop)

    print('Send: %r' % message)
    writer.write(message.encode())

    data = await reader.read(100)
    print('Received: %r' % data.decode())

    print('Close the socket')
    writer.close()

message = 'Hello World!'

loop = asyncio.get_event_loop()

loop.run_until_complete(tcp_echo_client(message, loop))

loop.close()

this is going to be the server, you have to run it from AE i guess.
then you have to configure your client from Blender side with this other script

import asyncio

async def _send(message, loop):

        reader, writer = await asyncio.open_connection('127.0.0.1', 8888,
                                                   loop=loop)

        print('Send: %r' % message)
        writer.write(message.encode())

        data = await reader.read(100)
        print('Received: %r' % data.decode())

        print('Close the socket')
        writer.close()

def send(data):

        loop = asyncio.get_event_loop()
        loop.run_until_complete(_send(data, loop))

data = "hello world"

send(data)

"""
i dont know if you need all the code or it is redundant, i edited an example from asyncIO site and worked for me. good luck"""


How use spaces instead of underscores in file names? I'm referring to this "feature" https://developer.blender.org/T45900

It was not happening before, but it is now, and it is messing up the structure of some folders I previously created. Is there a way to disable it?

This bug was fixed (at 2015-10-15), so the easiest solution is to download nightly build of Blender: https://builder.blender.org/download/ . I have tried it and now I finally can save my files as usually. The fix also will be available in 2.76a and later releases. Alternatively, you can build Blender yourself. The bug was fixed by this patch: https://developer.blender.org/rB767d3f23b7efb4e993574c29ebbbe0a4d90f5e50 .


Problem with depth of field in specular reflection The reflection is not correct in the bottom. As you can see everything around it is blurred, except for the reflection of the railing. How do I fix this? I'm using 2.8 and cycles for rendering.

As far as I know, this is coherent with reality. The reflected picture is practically at the same distance (or a bit more) of the real railing.


My problem is with x-Axis Mirror The option is already in use but, the second bone does not change.

Bone names could be an issue. X-Axis Mirror part (https://docs.blender.org/manual/en/2.80/animation/armatures/bones/editing/bones.html)
Try renaming them to Bone.R and Bone.L

When you have pairs of bones of the same name with just a different “side suffix” (e.g. “.R”/”.L”, or “_right”/”_left” …), once this option is enabled, each time you transform (move/rotate/scale…) a bone, its “other side” counterpart will be transformed accordingly, through a symmetry along the armature local X axis.


How to make height map more pronounced? So I am watching CG Geek's tutorial on how to create a Star Destroyer, and I'm pretty much finished with it, but there's one small problem that I am having. On his tutorial, his displacement map on the model is so pronounced and stick out more.My displacement map stick out a little, but barely at all. It just looks flat.

I tried using a math node on the image texture in order to amplify the map, but it doesn't seem to do anything.In the video, CG geek is using Blender 2.78. I'm using 2.82. Maybe that has something to do with it?

How do I get me displacement map to stick out more like in CG Geek's video?

Here it the reloaded Blender file (with images).

Ok so the problem was not the format but your node organization, it's a bit messy, choose one of those below. Also make sure that you've correctly unwrap your object and that the different parts have the right material.


Can I specify a portion of the image to render in Cycles? Is it currently possible to specify which portion of an image you'd like to render in Cycles? Let's say I'm going to render an image with dimensions 1280x720. Can I render just the rectangle bounded by (640,0) and (1280, 360)? (The top-left and bottom-right corners of the rectangle, respectively)

This would be especially useful for Blender's Network Render addon if you only needed to render a single frame but had multiple computers at your disposal for rendering. I realize that a pseudo-solution exists in this question but the image stacking technique does not produce the same level of quality for the same number of samples. Others have also proposed a solution by using multiple cameras then stitching the results together, but this solution is also not ideal.

If there's currently no way to do this, could someone point me in the right direction for making this suggestion to the Blender developers?

You can use border render, like explained in the wiki :

  You can render just a portion of the view instead of rendering the entire frame. While in Camera View, enable Border and press CtrlB, then drag a rectangle to define the area you want to render. CtrlAltB is the shortcut to disable the border.
      Note that this disables the Save Buffers option in Performance and Full Sample option in Anti-Aliasing.

  Enabling Crop will crop the rendered image to the Border size, instead of rendering a black region around it.

This answer goes further in explaining this feature.

If needed, you can set the border position with python, for instance :

bpy.data.scenes["Scene"].render.use_border = True      # Tell Blender to use border render
bpy.data.scenes["Scene"].render.border_max_y = 0.75    # Set the border top at 3/4 of the image's height
bpy.data.scenes["Scene"].render.border_min_y = 0.33    # Set the border bottom at 1/3 of the image's height
bpy.data.scenes["Scene"].render.border_min_x = 0.25    # Set the border left at 1/4 of the image's width
bpy.data.scenes["Scene"].render.border_max_x = 1.0     # Set the border right at the image's right border

And then, just hit render !


Is there a way to animate parts of a net? I am working on a project where I have to animate a cylindrical net. The top of the net is fixed and the bottom of the net is lifted up by a crane. I have made the net by subdeviding a cylinder and adding the "Wireframe Modifier" and a "Cloth modifier". I have also made the top fixed by selecting the top vertecies and making them a vertex group.
Is there a way I can animate the blue bottom ring to be lifted up until leveled with the red ring?

The easiest way I know how to do this is with shape keys.
In object mode, select the object, go to its Data Properties and click on the '+' icon below shape keys to create a new "Basis" shape key.
Click again to create a new key.
Rename this to something meaningful.  I called mine "folded up"
Make sure the new key is selected.
In edit mode move the vertices into the new final position.
Now, in object mode, the "Value" field can be used for key frames.
Select a frame in the playback window.
Set "Value" to something between 0 and 1.
Hover over it and right click.
Select "Insert Keyframe"/
Assign both the top and the bottom to a vertex group:

And add that vertex group as a Pin Group in cloth settings:

For the result below, the net was additionally subdivided ("simple" mode, 2 levels) before the cloth modifier.


How do i preserve transparency in .fbx file? I have created a model, in it there is a transparent object. I made it transparent by changing both the alpha values as well as the Blend Mode. My problem now is that I can't retain transparency when exported to an .fbx file.
I have to re-change the Blend Mode each time after importing the .fbx.
Can anyone please help me to retain transparency settings, so that as soon as I import the file, I get a transparent object the same way it was before export?
Here is the blend file
I am using eevee.
if someone could help, i'll be really grateful.

What are you trying to do with the fbx export? You will need an alpha map texture to tell whatever is reading this what the alpha is. Chances are its going to just be a grayscale image at .3 , you could make an alpha map and then modify once its in the 3d package/ blender. https://en.wikipedia.org/wiki/Alpha_mapping


White material shows up as gray regardless of lighting i have just finished Blender Guru's rigid body simulation video and was looking to texture and render it, but i have encountered an issue with adding a white material and having it show up as an adequate shade.

So far i have tried:
Changing the brightness of the light
Changing the emission of the material
Changing the render engine (To Cycles)
Changing the color of the blender background
Exporting the rigid body sim to keyframes and changing the material

Some of these work, but do not give me the result i am looking for. The two files attached below show what i am up to (rigid body sim) and what i am aiming for (default). Essentially i can make a new blender file and add a plain with the default material and have it work, but when adding the default material in the rigid body sim, it looks very dissimilar.

I feel like  this post is vaguely relevant, but (i thought) material override is removed in blender 2.8.

Files:
Simple blender file with the color that i am looking for:  Default.blend
The file that i am trying to fix:  Rigid body sim.blend

Thanks!

I looked at both files and the only difference really is that you got rid of the camera and light in the wrecking ball file.

If that is the only thing you want to change:

Load the "rigid body sim.blend" file.
Switch the render engine to cycles to get the same result and switch to render view!
Go in the file menu and select "Append..."
Find and double click the "default.blend" file to open up it's content to chose from.
Go in the "Objects" folder and select "Camera" and "Light"
Confirm to load.
In the scene the two new objects are hidden inside the cubes, so select them and scale them (yes scale, will only scale them in regard of position from world center) far enough to have a good view. Check by switching to the camera view.
Now select the light and increase it's Power from 1000 to something like 10000+..
Go from there and you should be fine.

Here the visual aid/explanation:


What are the differences between mark sharp & edge bevel weight? When to use "mark sharp" instead of "edge bevel weight" and vice versa ?

When to use "auto smooth" instead of "shadow smooth" and vice versa ?

The Mark Sharp option is used with either the Edge Split Modifier or when using split normals. It tells Blender that the edge you've marked should be treated like a perfectly sharp edge with no smoothing.

The Edge Bevel Weight is used with the Bevel Modifier. It tells Blender what the relative widths of the edges should be when you use the Weights option in the modifier.

Smooth Shading should be used when you want your entire object to be shaded smooth.

Auto Smooth should be used when you only want sections of you mesh that are already fairly smooth to be shaded smooth, and edges that should look sharp to stay that way. Say you have an object that is mostly smooth but has a few ridges that should be really sharp looking. Using Auto Smooth, you can set edges with a certain angle between them to be kept sharp, while smoothing all the rest.


Make a hemisphere/dome from flat segments? Rewritten version after testing (with thanks for all suggestions so far).

Here's the partial solution of what I'm trying to do in blender 2.8:

This is a slowly collapsing version of the more solid/crisp effect I'm hoping to produce and has been made with the cloth modifier on with structural and bend settings around 400.

The initial shape is shown as follows and should be producing a rather pointed 'dome' effect, as per the picture.

The segments have to curve to an apex and fit together perfectly.

Here's my starting point for the above cloth sim version.

Can anybody suggest a method of convincing Blender to curve two planes (up to a total of six for the full 'dome') so that they fit together along an edge, bending to accommodate the curve and without flapping all over the place as per the cloth sim?

I do understand that there are other ways of creating a similar shape, but the first prize is using the above idea.

Edit: The Domed tent example is very similar in effect needed, but how to ensure the panel form is simply bent, not stretched?

Blend File

I don't think this topology is the best to make a dome, but here is a solution:

Make sure you've applied the scale of your object.
Shift a bit your mesh from its origin.
Create a curve which follows approximately the curve you want. Check the direction, put its origin at its bottom.
Give your mesh a Curve modifier with the curve as Object.
Create an empty at the same point as the mesh origin.
Give your mesh an Array modifier, give it a Count of 6. Enable Merge, choose the Object Offset mode with the empty as Object.
Rotate the empty 60° on the Z axis. The object should rotate around the Z axis.
Shift the mesh a bit so that its bottom stick to its duplications bottom.
Edit the curve so that the sides of the mesh stick to its duplications.
Edit the object: Select some horizontal edges and scale a bit with the Proportional Editing enabled, so that the vertices of the mesh stick to its duplications.
Once you're glad you can apply the modifiers and remove the doubles (but keep a copy somewhere).
You'll have to make some additional editing to clean it a bit, create some nice edges with bevels, and to avoid artefacts. I've also used a W > Smooth. You may want to work only on 1/6 of the dome and re-use an array to duplicate it again.


Snap a selection to cursor when scaling or moving Hi guys Blender noob here, I am creating some gears to 3D print for a project I'm working on. I am following the tutorial below and when I get to this part I am unable to figure out how to snap the current selection to the Z height of the cursor. Video below is at the correct time when he selects the bottom right selects the adjacent Vertice that the Extrude needs to be at and then it snaps for him but not for me hopefully it is just a shortcut key I'm missing. Any help is much appreciated, thanks

https://www.youtube.com/watch?v=zD4yi0KQbu8&t=1112s

I believe this is what you're looking for...

With cursor positioned as desired and vertices / edges selected scale it while choosing axis which you'd like to affect on scaling (in this case Global X):

Select vertices, set Pivot Point to 3D Cursor.

Press S to scale, then X to scale to 3D Cursor by X axis axis.
Enter amount of effect of scaling. In this case it will be 0.

Taken from this answer here


Preventing axis being messed up by adding new objects to the scene in Front Perspective View I've already had question according array modifier. I had changed object alignment from 'Align To: World' to 'Align To: View' in the 'User Preferences'. It's because i wanted to add objects in 'Front Persp' and spare me rotation steps i every time take when i'm adding a new object. After changing it i ended up having problems with modifiers relative offset properties, i had to tweak the 'Y' axis to move it up and 'Z' axis property to move it in the direction where normally 'Y' axis would be. So the question is: is it possible to add objects in 'front ortho' without messing up the axis of the object?

No, you either get it aligned to your current view, including the object's local orientation, or globally oriented.

Apply object rotation

Go to Object Mode and press Ctrl+A, 2 (Apply Rotation) and your object orientation is applied, meaning that the mesh stays exactly the same but all 3 axes are parallel to the global ones afterwards.

Concerning default behaviour

You can't make blender apply the rotation of your object all the time or always when you add an object.

I guess it would be possible to write a python addon/macro to always realign the axes for you after adding an object, but someone else would have to help you with that.

Other workaround

You can add any object first from top view (Numpad 7), delete the mesh (X) and re-add the mesh you want from the perspective you want (e.g. front with Numpad 1, Shift+A). This will only add the mesh within the already correctly aligned object. Which is not really a lot faster than the method mentioned above, sadly.

Third (probably best) workaround

Go to top view (Numpad 7), add the object, go to front view (Numpad 1), press F6, (disable and)* re-enable "align to view", this re-aligns the mesh to the current view without altering the object orientation.

only if align to view is enabled by default


How to export animations to use in an Android app I have made some animations in Blender, use the native Android SDK to build apps and would like to export the animations from Blender, so I can use in my app.

I'm talking about exporting the actual animation, not about rendering it; for example: I have a box that blows up, in Blender - I want it to blow up in the app when an event occurs.

How can I export a Blender animation to be used in an Android app?

Probably the easiest solution is to export a Wavefront Obj sequence; This will give you a sequence of files, where each represents the positions of each vertex, at the given time. This format is probably the best, since it's very simple and uses ASCII.

To do this in Blender, after you have your animation ready, go to the Header, then File, the Export and finally Wavefront (.obj). The interface layout will change and show you the File Browser, where you can select the output path and name. Before clicking Export, you need to go to the panel on the left and in the subsection Export OBJ check Animation.


Rim lighting in glass sphere? light inside doesnt work? I am trying to achieve this effect with my smooth shaded spheres, but if the sphere had the glossiness of glass with something inside it: https://dribbble.com/shots/3889660-Siri-assistant-AR-Hologram

I have my spheres with a low IOR for a weird bulging effect, and put emissive objects inside. I need to achieve (just on the rim really) that emissive colored look, to differentiate the sphere from the environment.

So I put a point light inside, but no matter the brightness nothing looks different  aside from maybe that white reflection there:

How can I achieve an emissive glow around the outer rim?

I think what you are trying to do makes no sense (to me) from a physical point of view (Fresnel equations), so I would use a node setup to "fake it".

The texture you plug into the color input of the emssion should resemble the texture of the emission object inside (I used a noise texture for demonstration purposes).


How can i make images not Split on a Plane I'm Trying to make a poster in a room and when I insert the Image Texture
It splits diagonally. I am making a Building FULL of Pictures And Posters.

Need to see a screen shot of your uv mapping, but if you select the plane and use 'U' - 'reset' and then 'Unwrap', do you get the same issue? If you unwrap a single plane usually it covers the entire image in the UV/Image Editor. Do you have a seam there along that dividing edge?

edit: If you can, please look in your addons under user preferences and find "Import Images as Planes" and turn that on - and then choose 'add mesh' and then choose 'images as planes' - UV mapping is already done, as well as aspect ratio matches the plane width/height automatically. I use that in all my work as a basis to start painting with.


How Can I Unjoin Meshes? I used Ctrl+J to join meshes, but now I want to take them apart. Is there a simple way?

If you can easily select the vertices that you want to separate, then in edit mode press P > By Selection. You may also be able to use the By Material if the materials are different or By Loose Parts if the objects are not connected.
By Selection:

By Materials:

By Loose Parts:


"Correct" way to export a cloth simulation as an .mdd file? What would be the "correct" process for creating and exporting cloth animations done on "complex" geometry? From my noob experience, it seems the cloth animator is best used with basic mesh's, i.e. a subdivided plane.
To see what I mean, compare:
This shows the result of a simulation done on a subdivided plane with property modifiers attached after.
This shows the results I got running the animation on the final mesh (modifiers used before).
I'd like to be able to use the first method. It works fine in the blender viewport, but I haven't found a way to actually export it. This is what it looks like after export. I'm exporting it as an .mdd file using the "NewTek MDD format" addon. Is it possible to use this sort of process? Or is there a better way of doing it? Ideally this should be an automatic process at export.
Any insights will be greatly appreciated.

this happens when you import the MDD data and apply to a mesh that is not the same topologically speaking as the one you exported, meaning same number of polygons and topology.


Blender crash at startup on Ubuntu After installing via apt, trying to run for the first time on a new Ubuntu 16.04 LTS installation with NVDIA-375 drivers, Blender crash suddenly with this crash report:

# Blender 2.76 (sub 0), Commit date: 1970-01-01 00:00, Hash unknown

# backtrace
blender(BLI_system_backtrace+0x30) [0x1361b10]
blender() [0x97a98e]
/lib/x86_64-linux-gnu/libc.so.6(+0x354b0) [0x7fe5348694b0]
/lib/x86_64-linux-gnu/libc.so.6(+0xaa0bd) [0x7fe5348de0bd]
blender(gpu_extensions_init+0xf3) [0xf63363]
blender(GPU_init+0x20) [0xf65a10]
blender(WM_init+0x106) [0x98b0e6]
blender(main+0xd2e) [0x95cc3e]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7fe534854830]
blender(_start+0x29) [0x97a2b9]

Ubuntu declares a crash in GPU extensions.

For some sort of reason, after the last Ubuntu update and before installing Blender, something was changed in the GPU drivers that made the software to not startup correctly. Restarting the system fixed the problem.


How to select only visible vertices using python API? I'd like to select only the visible vertices (from the camera), using python interface.

I use bpy.types.SpaceView3D.use_occlude_geometry = True to limit the selection, but when it is followed by bpy.ops.object.select_all(action='SELECT'), it results in all mesh vertices being selected and not only the visible ones.

I probably don't understand how to use the bpy.types.SpaceView3D.use_occlude_geometry or the selection operator correctly - will appreciate your help with it.

Anastasia

First of all, as for the select_all behavior, that is by design.
Calling bpy.ops.object.select_all(action='SELECT') is the same thing as pressing the A key, which selects ALL items, even ones outside of the view frustum, even ones occluded and not visible.
To select visible vertices in python similar to border or circle select honoring bpy.types.SpaceView3D.use_occlude_geometry and bpy.ops.mesh.select_mode:
import bpy

def getView3dAreaAndRegion(context):
  for area in context.screen.areas:
      if area.type == "VIEW_3D":
        for region in area.regions:
          if region.type == "WINDOW":
            return area, region

def select_border(context, view3dAreaAndRegion=None, extend=True):
  if not view3dAreaAndRegion:
    view3dAreaAndRegion = getView3dAreaAndRegion(context)
  view3dArea, view3dRegion = view3dAreaAndRegion
  override = context.copy()
  override['area'] = view3dArea
  override['region'] = view3dRegion
  bpy.ops.view3d.select_border(override,
                               gesture_mode=3,
                               xmin=0,
                               xmax=view3dArea.width,
                               ymin=0,
                               ymax=view3dArea.height,
                               extend=extend)
  return view3dAreaAndRegion

Then to use this, just add after the function definitions:
select_border(bpy.context)

Blender >2.8
def getView3dAreaAndRegion(context):
  for area in context.screen.areas:
      if area.type == "VIEW_3D":
        for region in area.regions:
          if region.type == "WINDOW":
            print("Found WINDOW")
            return area, region

def select_border(context, view3dAreaAndRegion=None, extend=True):
  if not view3dAreaAndRegion:
    view3dAreaAndRegion = getView3dAreaAndRegion(context)
    print(view3dAreaAndRegion)
  view3dArea, view3dRegion = view3dAreaAndRegion
  override = context.copy()
  override['area'] = view3dArea
  override['region'] = view3dRegion
  bpy.ops.view3d.select_box(override,xmin=0,xmax=view3dArea.width,ymin=0,ymax=view3dArea.height,mode='ADD')

and then, with a selected object in Edit mode, run
select_border(bpy.context)

Very important: This code needs to be run in a window that has a 3D Editor view in it. So if you're running the code editor in a separate detached window, it won't work !


I can't see my objects in Solid mode, but I can see them in Rendered Mode My object disappear in Solid Mode but when I turn to Rendered Mode they appear back but cannot select them.

When I open your file its not visible even in Render Mode.
Really strange behaviour.

But if you are looking for solution - turn off and on your "OBJECT" collection (check mark on left side of Outliner editor).

Note: Do the same for "MAIN" collection, there are also hidden objects that should not be (like ceiling and totaly discoverable window object). Is not the blend file from some older blender version?


How to get face normal's x or y axis vector (or matrix)? Is it possible to get vector of the x or y axis of face's normal orentation?
I know it's possible to get z axis of face's orientation like this
 bpy.data.objects["Cube"].data.polygons[0].normal
However, I can't find a way to access x or y axis vector of normal orientation.
An expression like bpy.data.objects["Cube"].matrix_world (this express object local orientation) is also ok.
If these is no direct access, is these a way to calculate it?

Sorry for poor English

obj = bpy.context.active_object
obj.data.calc_tangents()

print(obj.data.loops[obj.data.polygons[0].loop_indices[0]].tangent)
print(obj.data.loops[obj.data.polygons[0].loop_indices[0]].bitangent)

I could find a solution by myself.
Thanks!


where can I download cycles as an addon and why does blender not run? I don't know why but the newer versions of Blender don't run on my PC(I have an AMD radeon graphics - 1GB), but the newer versions of cycles have seemed to improve a lot, like giving a pre-made materials to smokes. So, I wanted to try this, since blender doesn't run I wanted to know if I could download cycles as an addon?
Plus, if there are any suggestions regarding how can I get newer versions of blender to run in my PC, please mention them as well, because I'm so confused as it meets all the requirements that Blender's site mention I should to run the newer versions in my PC. My machine has an i5-4200U CPU @ 1.60GHz, RAM is 4.00GB and is a 64-bit operating system with an AMD RADEON 1GB graphics card.
details from the caps viewer:

first I go through the install process:

Then blender install all fine:

and when I finally hit the blender icon it just crashes without even opening,it shows this:

Plus I'm using windows 7(ultimate).

Cycles cannot be downloaded as an add-on and installed in an older version of Blender - it's too tightly integrated for that.

In case of future googlers coming across this question, Cycles can be used standalone, but that's not really related to your problem.

If you believe blender should be able to run on your computer (your specific graphics card supports OpenGL 2.1, google the model name), then you should report a bug and let the developers help you find out what's wrong. When describing your problem, be very specific about what's wrong, what error messages there are, your hardware, etc.


Adding properties to a shader node I am adding properties to the Emission shader node type:
bpy.types.ShaderNodeEmission.myaddon= PointerProperty(type=MyEmissionSettings)

It seems to work fine, each Emission node gets its own new properties. However, I have an update function for one of these properties and I'm trying to get the node, but self.id_data returns the Node Tree:
<bpy_struct, ShaderNodeTree("Shader Nodetree") at 0x00000225C68E1CC8>

How can get the node from its property?
EDIT: here is a bit more code example:
def update_color(self,context):
    color = self['color']
    # I want to now get the node that owns that property self['Color']
    node = self.id_data
    # This is incorrect, self.id_data returns the Shader Node Tree
    # I want to get the node itself to be able to assign that color to one of its input
    node.inputs[2] = color

class MyEmissionSettings(bpy.types.PropertyGroup):
    color: bpy.props.FloatVectorProperty(
        subtype='COLOR',
        min=0.0, max=1.0, size=4,
        default=(1.0,1.0,1.0,1.0),
        update=update_color,
        )

Wire it up in a setter.
Touched on this in answer to How to Update NodeSocketString Value inside a node group in a attribute node using python
As noted in question self.id_data is the node tree, not the node, and self is the property group.  Even without being defined a property group has a name property.
Will use this to, when trying to set a value, look over the node tree first and assign any emmission shader's name to its "myaddon" pointer property name, then use this to look up what the node is.
Sounds confusing? have added a simple example and tested in py console.
import bpy

def wire_up(node_tree, nodetype):
    nodes = (n for n in node_tree.nodes if n.type == nodetype)
    for n in nodes:
        n.myaddon.name = n.name

def update_color(self, context):
    print("Updating Value")

def get_node(self):
    print("Getting Value")
    return self.get("color", (1.0,1.0,1.0,1.0))

def set_node(self, value):
    print("Setting Value")
    wire_up(self.id_data, 'EMISSION')
    self['color'] = value
    node = self.id_data.nodes.get(self.name)
    if node:
        print(node)
    else:
        print("Node not found")

class MyEmissionSettings(bpy.types.PropertyGroup):
    color: bpy.props.FloatVectorProperty(
        subtype='COLOR',
        min=0.0, max=1.0, size=4,
        default=(1.0,1.0,1.0,1.0),
        #update=update_color,
        get=get_node,
        set=set_node,
        )

bpy.utils.register_class(MyEmissionSettings)

bpy.types.ShaderNodeEmission.myaddon = bpy.props.PointerProperty(type=MyEmissionSettings)

Test Run
>>> mat = bpy.data.materials.new("Test")
>>> mat.use_nodes = True
>>> mat.node_tree.nodes.new("ShaderNodeEmission")
bpy.data.materials['Test'].node_tree.nodes["Emission"]

>>> mat.node_tree.nodes.new("ShaderNodeEmission")
bpy.data.materials['Test'].node_tree.nodes["Emission.001"]

>>> en1 = mat.node_tree.nodes['Emission']
>>> en2 = mat.node_tree.nodes['Emission.001']
>>> en1.myaddon.color[:]
Getting Value
(1.0, 1.0, 1.0, 1.0)

>>> en1.myaddon.color = (1, 0, 0, 1)
Setting Value
<bpy_struct, ShaderNodeEmission("Emission") at 0x7fa0bddf8c08>

>>> en1.myaddon.color[:]
Getting Value
(1.0, 0.0, 0.0, 1.0)

>>> en2.myaddon.color = (0, 0, 1, 1)
Setting Value
<bpy_struct, ShaderNodeEmission("Emission.001") at 0x7fa096f38e08>


Environment looks fine in rendered preview mode, but completely black in final render? My environment and render settings all seem normal, and when I go into rendered mode(Shift+Z or preview mode dropdown menu) it looks fine and lights the scene normally, but when I do a test render of the final frame, the environment disappears and doesn't light the scene or show up in reflections. I thought it might be my compositing setup somehow, but it looks like that while it's still doing the initial render, and I tried just plugging the rendered image into the final image slot to test it and it still looks the same.

Screenshots:

Enable Environment in your render layers:

set film to transparent:

Composite over the background using alpha over:


Using a custom property in if statements in the BGE Here is my code, I think I have a way to have it do what I want, just not sure how to access a custom property on an object. I thought the code I had was right, but I feel like I'm missing something (or did something wrong).

The goal is so that whenever I hit Tab it increases the value of the custom property 'unit'  by 1, thus changing which trackObject I am placing when I click. (the TAB/Property change is done in the logic bricks).  At this point I know I'm trying to use the property in the code, just pretty sure I'm typing it out wrong.

import bge
import bpy
from bge import render
render.showMouse(1)

def main():

cont = bge.logic.getCurrentController()
own = cont.owner

scene = bge.logic.getCurrentScene()

trackObject1 = scene.objects ["trackObject1"]
trackObject2 = scene.objects ["trackObject2"]
trackObject3 = scene.objects ["trackObject3"]
trackObject4 = scene.objects ["trackObject4"]
trackObject5 = scene.objects ["trackObject5"]

unit = bpy.data.objects["player"]["unit"] #pretty sure this isnt right...

mouseOver = cont.sensors ["mouseOver"]
click = cont.sensors ["click"]
readyMove = cont.sensors ["readyMove"]

trackTo = cont.actuators ["trackTo"]
move = cont.actuators ["move"]

if mouseOver.positive:
    target = mouseOver.hitObject
    if click.positive and unit == 1:
        trackObject1.worldPosition = mouseOver.hitPosition
        else if click.positive and unit == 2:
        trackObject2.worldPosition = mouseOver.hitPosition
        else if click.positive and unit == 3:
        trackObject3.worldPosition = mouseOver.hitPosition
        else if click.positive and unit == 4:
        trackObject4.worldPosition = mouseOver.hitPosition
        else if click.positive and unit == 5:
        trackObject5.worldPosition = mouseOver.hitPosition

if readyMove.positive:
    cont.activate(move)
    cont.activate(trackTo)

if own.getDistanceTo(trackObject1) < 2:
    else if own.getDistanceTo(trackObject2) < 2:
    else if own.getDistanceTo(trackObject3) < 2:
    else if own.getDistanceTo(trackObject4) < 2:
    else if own.getDistanceTo(trackObject5) < 2:
    cont.deactivate(move)
    cont.deactivate(trackTo)

main()

You debugged part of your problem in your code. You mixed blender's api (bpy), in with the game engine's (bge).

The line unit = bpy.data.objects["player"]["unit"] will do nothing in the game.
You already defined the scene in your script, so that line with bpy needs to be:

unit = scene.objects["player"]["unit"]

That line is accessing the game property "unit" on the object named "player".

Your last if statement is not correct. You need something in the if statement's bodies, even just pass will work.


How to execute blender from python? I am using anaconda 3 and I want to know how to execute blender from python.
Since python can be called from inside blender so it has to be possible vice versa. Does anyone know how to do this? Please help me by providing the procedure for setting up the environment for this.

The easiest way would be to use the subprocess module to start Blender.

import subprocess

subprocess.run(["/path/to/blender", "somefile.blend"])

  Since python can be called from inside blender so it has to be possible vice versa.

This is not a very logical statement. Just because Blender embeds Python doesn't mean anything when it comes to starting Blender from Python.


Offset Image Brightness I would like to set up a node editor in the way, that the darkest pixel in a grayscale render result is set to black and the offset to the original value is subtracted from all the other pixels. While I am aware of the subtraction node I have difficulties finding the darkest pixel in the render results.

I don't think an automatic way currely exists. I'm afraid you have to code something to find the target pixel directly.

However, after playing this for quite a bit time, I find a tricky way to get the same result. As shown in the image below. Though it seems not quite effective on performance, but quite acceptable after my testing on a sort of 6000 x 6000 px image, so far.

Furthermore, suppose you want to target the brightest pixel, just add an Invert node right before the Nomalize node. Hope that helps.

Version 2:

I think this way is even better. FYI

OR:


Is there a quick way to move a keyframe to a specific frame? What is the easiest/fastest way to move a keyframe to a specific frame?

In other words, is there a way to type in an absolute frame value with modal numinput (which uses the delta by default)? E.g. type G140 to move a keyframe to frame 140?

I think that the best you can do is type the preferred frame into the Timeline 'Current frame' field then apply a Snap to (ShiftS) frame function on the selected Keyframe.

It would be neat to have another snap to function as you suggest to reduce the amount of mouse clicks involved.


How can I make scratches in paint so that they reveal the metal underneath? I have a metal water bottle coated in green paint.
I am using an overlay to add scratches. I have colour and normal maps.
However, this just adds white scratches.

I want to make the scratches reveal shiny metal underneath, as if the scratch removed the paint.
Is there some way I can use these maps to indicate metalness?
Or can I use it to mix between a metal and paint texture?
Thank you.

Use the texture as a mix factor between two different shaders.

The rest is just adjusting the lighting.


how can I use both Color and Alpha for the ColorRamp How can I use both the Color and Alpha from the ColorRamp node so that the material output uses the color and becomes transparent?
I tried inserting a Mix Shader and connecting the ColorRamp alpha to that but it didn't work..
Thanks :)

To have the alpha properly control the transparency of the volume you need to multiply it into the density before plugging it into the strength of the emission shader.

Click to enlarge


Storing Face Indices in Data Arrays I am fairly new to python scripting in Blender. I am creating a tool for my workflow and can't seem to figure out several elements, although I do know how to do them in other languages.

I can get the index numbers of the faces in an object. How would I store faces selected in a variable or array that can be accessed after edit mode is exited?

If you store the list of indices in a list object (array), it will be accessible even after the object is no longer in edit mode.

import bpy, bmesh

o = bpy.context.object

# Create bmesh object. This particular method requires that the object will be in edit mode.
bm = bmesh.from_edit_mesh( o.data )

# Store list of selected face indices in object (will be empty if not face is selected)
selected_faces_list = [ f.index for f in bm.faces if f.select ]

# Go to object mode
bpy.ops.object.mode_set( mode = 'OBJECT' )

# Print content of list to show that it still contains face indices although we are now in object mode
print( selected_faces_list )


Why is there still a white background even though a transparent png image is used? I have a very simple node set up as below for a leaf texture which is a transparent backgrounded png file. When I use the transparent shader with alpha node, I still get the white backround appearing as below, I can't figure out what's the problem here, please help.

Render view

nodes

PNG file

Blender file

thanks a lot

Ps. I went through questions already asked here for this subject, they didn't solve my problem, even though it's a very simple node set-up - sorry if it's a duplicate which I haven't seen yet

Open up the Node Editor, select the image texture node, then open the Properties Panel N and enable Use Alpha.


Wavefront .OBJ Import Error I'm getting an error message when I try to import an .OBJ file that I've generated from another .blend file. I'm pretty new to Blender, and I really don't know what it is that the error message is telling me, or how to fix it. Can you help?

That exports and imports perfectly for me, Blender 2.77. However, it's as I suspected, there are a bunch of duplicate vertices which are no doubt causing the error on your end.

To fix, box select B your entire model, join it into one mesh with CtrlJ, select all with CtrlA, open special menu W and select Remove Doubles. Finally, select everything again in edit mode and use P > Separate by loose parts. You will have to reassign any materials, fix origins and groups after but that should fix the problem and give you a clean obj.


Grid Pattern / Wrinkles Want to achieve similar blanket Marked as "?". How to make grid bumps with wrinkle after the cloth simulation & baking etc?

Even a single displacement could work, perhaps, with a specially crafted displacement image, like this:

I just created this in Gimp, quickly but you get the idea.

Note: it has a black border, to displace the squares, and a white/grey pattern to displace the cloth texture.

When using two separate displacements (two images) you could set their influence separately in Blender, though, with my single image relative displacement weights are set by the image shades (black maximum, grey intermediate, white none).

a quick test:


Capture object properties to use in a Cycles material I made a simple material that uses the 'object info' location to drive the color of the object. But when i animate my object now it, obviously, changes color while the objects moves through space.
How can i set the color to a fixed value using the INITIAL location of the Object info node?

Tnx
RDG

To achieve this you essentially need to be able to do two things :

Capture the location of each object at a point in time and store it
Access the stored data efficiently from within the Cycles material

The first task is relatively straight forward using a Python script to capture the object's location as follows :

import bpy

num_objects = len(bpy.data.objects)

for x in range(0,num_objects):
    object = bpy.data.objects[x]
    object["initial_location"] = [object.location[0], object.location[1], object.location[2]]

This script runs through each object in turn, determines its location, and stores it in a Custom Property on each object.

While this is useful to demonstrate the capture of a property of each object, the Custom Properties aren't the best place to store the details since Cycles materials cannot (easily or efficiently) access the contents of the properties. Future Cycles enhancements may well provide a mechanism for reading object properties but for now we need a different method - we can use an Image Texture.

Cycles can very efficiently read the value of a pixel within an image using the Image Texture node and this provides an ideal method of passing the data into the material - encoded as the color of each pixel within an image. A normal 8-bit RGB image will not be sufficient - so we need to use a format that allows full 32-bit floating point values to allow it to hold the location vectors.

The following script will take the location of each object (as in the previous script) and will create an image 1 pixel high and wide enough to hold one pixel per object. Each pixel will be set with its RGB values set to the XYZ vector of the location of the corresponding object.

import bpy

width = len(bpy.data.objects)
height = 1

# Create the image
image = bpy.data.images.new("object_locations_"+str(width), width=width, height=height,float_buffer=True)

# Create an empty array of pixel data (each will hold R, G, B, A values as floats)
pixels = [None] * width * height

for x in range(0,width):
    y = 0
    object = bpy.data.objects[x]
    pixels[(y*width)+x] = [object.location[0], object.location[1], object.location[2],1.0]
    object.pass_index = x

# 'flatten' the array - so [R1,G1,B1,A1], [R2,G2,B2,A2], [R3,G3,B3,A3],.... becomes R1,B1,G1,A1,R2,G2,B2,A2,R3,G3,B3,A3,....
pixels = [chan for px in pixels for chan in px]

# Store the pixels in the image
image.pixels = pixels
image.update()

The script runs through each object and captures the location in a pixel in the image. Note that it also sets the object's 'pass_index' to the 'slot' corresponding to that object's pixel in the image - this will be used in the material to retrieve the correct pixel for each object. Running the script on my test scene produced the following image. Dragging the mouse over the pixels shows that each pixel relates to the XYZ location of each object in the scene.

The image needs to be saved - either as an image file or 'packed' into the blend file. However, this causes a potential problem. 'Normal' images are stored as a set of R, G, B, A values in the range 0.0 to 1.0 but our object locations will likely be well outside that range. To prevent this corrupting our stored values we need to ensure it is saved in a format that can store full float values (rather than a PNG). Saving and packing the image as a 32-bit float image is covered in this question. This produces the following final script to capture all object locations into a 32-bit float packed image :

import bpy
import os

width = len(bpy.data.objects)
height = 1

# Create the image
image = bpy.data.images.new("object_locations_"+str(width), width=width, height=height,float_buffer=True)

# Create an empty array of pixel data (each will hold R, G, B, A values as floats)
pixels = [None] * width * height

for x in range(0,width):
    y = 0
    object = bpy.data.objects[x]
    pixels[(y*width)+x] = [object.location[0], object.location[1], object.location[2],1.0]
    object.pass_index = x

# 'flatten' the array - so [R1,G1,B1,A1], [R2,G2,B2,A2], [R3,G3,B3,A3],.... becomes R1,B1,G1,A1,R2,G2,B2,A2,R3,G3,B3,A3,....
pixels = [chan for px in pixels for chan in px]

# Store the pixels in the image
image.pixels = pixels
image.update()

# Save image to temporary file and pack it (from answer by @sambler)
scn = bpy.data.scenes.new('img_settings')
scn.render.image_settings.file_format = 'OPEN_EXR'
scn.render.image_settings.color_mode = 'RGBA'
scn.render.image_settings.color_depth = '32'
img_path = bpy.path.abspath('//')
img_file = image.name+'.exr'
image.save_render(img_path+img_file, scene=scn)
try:
    # Remove the scene (pre-2.78)
    bpy.data.scenes.remove(scn)
except:
    # Remove the scene, (Blender 2.78+)
    bpy.data.scenes.remove(scn, do_unlink=True)

bpy.data.images.remove(image)
bpy.ops.image.open(filepath=img_path+img_file)
image = bpy.data.images[img_file]
image.pack()

os.remove(img_path+img_file)

# Add a fake user to ensure the image is retained
image.use_fake_user = True

Once we have the stored 'initial' locations of the objects, we can use an Image Texture node and some simple maths to use the Object ID to calculate the location of the associated pixel to extract the color (to use as a vector) from the image as follows :

To convert the Object ID into a pixel location we need to add 0.5 (so that we sample the middle of a pixel) and then divide by the total number of pixels across the image. This will result in a value between 0.0 and 1.0 corresponding to the middle of the relevant pixel. Passing this into a Combine XYZ node with Y set to 0.5 produces the required vector. The Image Texture node should be set to 'Non-color Data' to prevent any color conversion (by default Blender will convert from sRGB colorspace into Linear colorspace).

To demonstrate this in action, here's an animation moving the blocks and using the 'current' location to generate the color (ie, not using the stored 'initial' location) - notice the blocks changing color as they move.

And here using the captured 'initial' location extracted from the generated image using the above script and material.


Straighten Vertices Along a Line On a line, I need to line up the bottom vertex points in relation to a top reference vertex point. How could I reset the X Y and Z coordinates of these vertex points to essentially line them up all through use of the vector of the reference point vertex.

I do not have access to Mesh -> Transform -> Scale on Axis for aligning vertices along a line.

You could select one vertex, ShiftS, 'cursor to selected', then . (to transform with respect to 3d cursor), select all vertices, S to scale, then X,Y or Z and then 0


Boolean issues with subdivision surface I have a problem with the Boolean and subsurface division: it created shading issues.
Herewith I attach the image with my modifiers.
Need help to solve this problem
]1

The problem with Boolean operations is that they create quite the mess in your topology. This messy topology results in shading artifacts. Because subsurf results in so much geometry, it makes this mess nearly impossible to fix.
Put your current mesh in an archive somewhere in case you mess something up. Duplicate it and work on the duplicate.
Now, select the duplicate, apply all boolean modifiers but not the subsurf modifier. This will make the topology easier to handle. Go into Edit Mode and try to fix the topology.
After doing that, there's one problem. Your Booleans are going to be subsurfed as well. To avoid that, there's two options:

Select all the edges of your booleans and set their edge crease to 1. The edge creases tell the subsurf modifier not to smooth those edges.

Add supporting geometry to your booleans so they don't get smoothed as much.

If both of those don't work, try turning on Auto Smooth and adjust the angle. This cuts off the smoothing on corners at an angle greater than the Auto Smooth angle.

Your mesh should now not have the shading problems you had before.


Low level alternative to bpy.ops.mesh.uv_texture_add()? Blender 2.8 I was looking through the blender 2.8 bees but I can't find anything, I've seen on some forums using the bmesh module, but I'm not sure it's the right way.

I could use the operator but I already know that on large scenes inserting the ops in a "for" loop would become very slow.

bpy.ops.mesh.uv_texture_add()

A low-level alternative to bpy.ops.mesh.uv_texture_add() is obj.data.uv_layers.new(name="UvMap"). This way you don't need to set the operator context.
Though, it will not allow complex unwrapping such as Smart UV Project.


Modeling objects using polar coordinates rather than cartesian coordinates? To make several vertices co-planar, the usual way is to use Scale = 0 along some convenient axis, but sometimes there is no convenient axis, e.g in this case were I placed the vertices using polar coordinates:

How to make the selected vertices co-planar again after they have been a bit disturbed. The target plane contains the global Y axis and the average angular position of the selected set.

I understand I could rotate the vertices around Y, so that they are roughly aligned with Z, then use Scale X = 0. That's what I do, but I'm looking now for a more accurate and less fastidious method.

In a more general way, is there a method (I assume this would be a addon) to facilitate work when dealing with object constructed by angle-distance rather than distance-distance. For example a method which would allow to move the selected vertices radially by the same specific distance (e.g. move each vertex away by 2 cm from the center of the object) while keeping their angular position unchanged?

This looks like a job for Custom Orientations. ('+' in the Orientation dropdown, after making a defining selection)

To flatten to a defined plane, select 3 vertices which define the plane, (or more, for an averaged normal), create a Custom Orientation from them, and with a suitable pivot point, SZ0. I usually set the pivot to 'Active Element', and make a vertex I want to lie in the plane active.
To translate elements in a defined direction, select 2 vertices which define the direction, and create a Custom Orientation from them. Then it's GY (optional numerical entry) on selected elements.
To straighten vertices to a line, select 2 vertices which define the line, and again, with a suitable pivot, it's SShiftY0

etc, etc.

If you do this a lot, it's probably worth creating a keyboard shortcut for the addition of a Custom Orientation, and maybe setting that operator to 'Overwrite Previous', and/or 'Use after Creation'.


Where are the bitrate settings? I just installed blender for making youtube intros. I keep getting a "bitrate above max bitrate" sign whenever I render a video I made. So how do I change my bit rate?

UPDATE: Starting with blender 2.79 the encoding options are available only if you enable FFmpeg Video.

A new section for Encoding is available then to choose the video container, codec and also the bitrate .

To manually input Bitrate settings the output quality must be set to

None, use constant bit-rate

For older versions of blender:

Bitrate is found under the encoding tab. Make sure you are on a video format so that the tab is visible.

The image contains some sample settings. Adjust them to fit your needs.


how to move bones with one bone move? I saw tutorial in youtube that in POSE MODE , all of bones had box around them and when the bone was moving, parent bones also moved.how to do this?

this is a tutorial link

you can change the appearance of your bones to boxes called b-bones.

with Ctrl Alt S you can change the thickness of the b-bone in edit mode.
And If you want to make your bone see trough, go to your object properties and under Display, change the maximum draw type to wire

And Bones can affect their parents with the bone constraint: Inverse Kinematic.

Inverse Kinematic


How to view the vertex color of softbody distortion? I saw a tutorial on destroying a car and realized that the tutor used a way to visualize the softbody distortion of the mesh.
example gif:

video reference:

https://www.youtube.com/watch?v=1Ff7-4ob62U

I was able to solve with the addon "tension map"

link addon tutorial
https://www.youtube.com/watch?v=6G8SkBQngvw


Is there a way to assign vertex groups to all loose elements via python I have loose mesh elements within an object and I would like each loos element to be placed in its own vertex group.

Another take on this. Already had code that separated a mesh into vertex groups from seams,

import bpy

def island_verts(mesh):
    import bmesh
    bpy.ops.object.mode_set(mode='EDIT')
    bpy.ops.mesh.select_all(action='DESELECT')

    bm = bmesh.from_edit_mesh(mesh)
    bm.verts.ensure_lookup_table()
    verts = [v.index for v in bm.verts]

    vgs = []
    while len(verts):
        bm.verts[verts[0]].select = True
        #bpy.ops.mesh.select_linked(delimit={'SEAM'})
        bpy.ops.mesh.select_linked()
        sv = [v.index for v in bm.verts if v.select]
        vgs.append(sv)
        for v in sv:
            bm.verts[v].select = False
            verts.remove(v)
    bm.free() # prob not nec.
    bpy.ops.object.mode_set(mode='OBJECT')
    return vgs

# test run
obj = bpy.context.object
mesh = obj.data
vgs = island_verts(mesh)

for vg in vgs:
    group = obj.vertex_groups.new()
    group.name = "Island"
    group.add(vg, 1.0, 'ADD')


How can I apply a different material during / after using "Solidify" modifier? I'm trying to turn this apple into a walking character, I have solidified the whole apple, including all 4 peels. Since the solidified mesh can't be edited, I tried to extrude the cut pieces, but it didn't work for me. There's more explanation below this image. Also, I have posted last image as a desired result.

     .

As you can see, after I applied the solidify modifier, it added the thickness just what I wanted (it has weird bumps, but I think I'll fix it), but I can't edit the newly generated layer since it isn't part of the mesh. This way it looks distorted and the cut piece should have that juicy yellowy part beneath the skin. Also, the inside of the apple should be filled with the edible part too, seeds aren't necessary, though I'd love to learn how to add them too.

      How I want it to look like:

Your question is not clear enough, but if you want to keep the Solidify modifier (and not Apply it) and give the inner faces a different material, you need to go in the Solidify modifier and use the Material Index Offset, left value to set the color of the outer surface, right value for the color of the inner faces, 0 will mean it will use the first material of your material stack, 1 for the second material of your material stack, and so on.


Change radius of a circle For my current model I need a series of concentric circles, and I haven't fully decided the proportions. Is there a way in which I could create them and alter their radiuses after?

Thanks in advance

You can change the radius of a cirle by scaling it
By scaling up with factor 2, the radius will be scaled too by the factor of 2.
I hope that helps.


Change height of an inset extrusion I'm trying to change the height of an inset extrusion on a block mesh, but the object is distorting when I attempt to change the height.  Below is a snap of two block meshes.  Each has an inset of the top face, and an extrusion of the inner face.  One is up, the other down.

I can change the right object's top face (G then Z for the height), with no distortion to the cube.  However when I change the left cube's lower face the entire cube distorts.  I need to do small adjustments to the inner surface depth only.

Before

After

You have proportional editing (O) enabled:

Disable it by pressing O again or selecting disabled in 3D view > Header.


Align origin and axis to custom vertices Let's say you have some vertices which are places randomly in space.
You want the origins to be aligned based on these vertices. I struggled a lot with it previously
so I want to share the easy method I found.

Here is a solution:

In Edit mode select right vertices.

Go to Transform Orientation - Plus icon to create new orientation based on your selection

Back to Object Mode check ‘Origins’ box

In Object Mode use ‘Align to Transform Orientation’ operation

Enjoy!

I hope it was useful! Happy holidays everyone!


How to turn on vertex display while in edge/face selection mode? How to always turn on vertex display in edit mode ? even if in face /edge selection mode, i want to see the vertex . is it possible ?

You can press Shift when you click on vertex/edge/face selection modes to activate several or all of them.


Align a vertex on a diagonal line I have a diagonal line that's been subdivided, so it has a point in the middle. I want to move this point so that it vertically aligns with other another point along the global Y axis, but so that, and this is the most important aspect, it still stays perfectly aligned with the rest of the diagonal line segment it lies on.

The shortest distance between two lines in Euclidean space is a linear segment, so this technique is essentially just minimizing the distance along the local Y axis by forcing the diagonal point to be perpendicular to the vertical segment by first constructing the point upon which applying that operation yields the alignment in the global basis.

Below is the series of steps.

Step 0: Identify the points you want to be aligned

Step 1: Extrude the Global-Y aligned point until it intersects with your diagonal line.

Step 2: Use one of the answers from here to move the cursor to the edge intersection How can I add vertices to intersection of two edges?

Step 2.5: You may need to enable the "add mesh: extra objects" addon on your user preferences

Step3: Create a new axis with an orthogonal basis containing the diagonal line, basically just select any two points on the diagonal line, then hit CTRL+ALT+SPACE to create an axis for that line.

Step4: Make sure your pivot is set to 3D cursor, make sure your transform orientation is the newly created axis. Select the diagonal point and hit "s" then press "Y" and then "Y" again to scale along the local Y axis you just created, and then the vertex should now be alinged both with your diagonal line as with as with the global Y of the other point.


how to change keybindings How do i switch to industry standard keybinding?
I picked default blender hotkeys after starting it up for the first time and want to try the 27x option or industry standard hotkeys.


Making masks with shading nodes that accounts camera ray I have a problem that I want to solve if possible.
I have 2 objects (Boxes), Obj2 is above Obj1 (almost touching each other on Obj1's Z+ face). I want to draw Obj2 only in where Obj1 is visible to camera ray. So if I can see Obj1 through X-Ray the Obj2 is drawn.
I know that OpenGL has stencils, this is what I want, but I didn't find it in Blender.

Example:

Viewport is what I have in Blender.
Mask Passed is what I will have in the render (after shading).
Mask Failed is what will not be drawn (This is what failed the comparison inside the stencil, like a inverse mask)

I think Booleans won't work here because it has nothing to intersect with.
So my question is: Is this possible without hardcoding them both in Eevee and Cycles? If I change the Loc/Rot/Scale of the camera the stencil must be calculated automatically.
Thanks

Solution

The mask effect can be achieved with rendering objects in different scenes and combining them in compositor after.

Compositing with Eevee:

Compositing with Cycles:


How to prevent blurry interpolation when scaling a texture? I am using gazebo to develop some optical measurement system and I have to get a good proportion for textures in the object. I made a pyramid of 25 x 12.5 mm and unwrapped a texture in order to have 1 square per millimeter, so I made a texture with a resolution of 25 x 200 (doesn't matter the height for unwrap) and using blender I set the position as the images below.

When I open the object in Gazebo 7 it appears blurred, as the image below. Resolution of the image is 25 x 200 pixels.

Image width 25 pixel
Object width 25 mm
Final Resolution 1 px//mm.

When I rescale the image for 250 x 2000 pixels (10 times), I get the result I wanted but I don't understand why.

Image width 250 pixel
Object width 25 mm
Final Resolution 10 px/mm.

As it is possible to count, the height of object has 25 squares in both images, but the first case gets blured. Anyone can help me explaining why this happens?

If I had to guess, based only on what the texture output looks like in the window, I would look to see if there is any type of texture filter being applied such as Gaussian and the like that is going on somewhere around the texture to uv mapping area.


How to convert rotation_axis_angle to euler or quaternion via Python? For my script I need to get the same result that Array modifier produces with Object Offset. In particular, I need to calculate rotation difference between two objects' rotations despite their rotation_mode. Euler properties have .to_quaternion() method, Quaternion properties have .to_euler() method, so there's no problem here. But Axis Angle... well, there's no such property as AxisAngle in mathutils, and bpy.context.object.rotation_axis_angle. doesn't provide any methods for converting itself either to euler or to quaterion rotation, as well as Euler and Quaternion don't have methods to convert themselves into an Axis Angle. Any idea of how it can be done via Python script? Is it something about getting global rotation using objects' evaluated depsgraph and matrices and then converting to something comparable or maybe is there an easier way I'm missing?

Via mathutils.Matrix.Rotation constructor.
Given an axis angle rotation provides just that, can make a matrix from the components.
Matrix.Rotation(angle, size, axis)
>>> q
Quaternion((0.44383183121681213, -0.3263395428657532, 0.8345092535018921, 0.010497181676328182))
>>> axis, angle = q.to_axis_angle()
>>> R = Matrix.Rotation(angle, 4, axis) # or size 3
>>> R.to_quaternion()
Quaternion((0.44383174180984497, -0.3263395428657532, 0.8345093727111816, 0.010497150011360645))


How to delete the overlapped vertices in a 3D model? As you can see the image below, it is a human head model unwrapped in the UV/Image Editor. The selected vertices should be the overlapped vertices but I cannot delete them just by pressing Delete key. I can just delete it in the 3D View. However, it is difficult to select them in the 3D View. So, I want to ask that how to easily delete those overlapped vertices?

Unwrapped 3D Human Head in UV/Image Editor

Solving with "Keep UV and edit mode mesh selection in sync" Option
In the UV Editor window, if you enable the Keep UV and edit mode mesh selection in sync option , then the vertices you select in the UV Editor will also be selected in the 3D edit window.
The location of Keep UV and edit mode mesh selection in sync:

Action Demo
You can then go to the 3D window and delete them.
Don't forget to disable the Keep UV and edit mode mesh selection in sync option afterwards.


Has anyone else experienced problems using Boolean - difference in version 2.90.1 I was trying to work in Editing Mode to remove a cube (XxYxZ) 6x31x5 from a cube 8x31x6 to give me a u shaped shell. In Editing Mode the Boolean - Difference setting can not be applied but in Object Mode it can however it does not seem to remove the solid data but instead just leaves mesh lines, even when the second smaller cube is deleted the original larger one still does not contain any cut-outs.
Can anyone else see this issue?
Is this a bug or am I being a bit of a novice here.

I found the answer was to apply the Boolean Difference in Sculpt Mode, it did not work in Edit or Object Modes. This only worked for the cube scenario, when trying the same with cylinders it still does not work correctly.


Combined Two objects now i can no longer texture paint I created a head, and a body, I had a uvmap for the head and body seperately, and combined them when i combined the meshes into one.  I have two materials, and a combined uvmap, and the model looks fine.  I have to two associated diffuse images associated with the head (which I can still texture paint) and two associated with the body that I can no longer paint on.  What's going on? I didn't find a solution with related asked question, none where a perfect, I tried their solutions to no avail.

We really should compile a trouble shoot of all the answers in one place, the problem was my model was not completely symmetrical.  Instead of allowing me to paint, the paint function just gets turned off all together, you have to turn symmetry off in my case.


How to find out if the array_index of a fcurve is used I'm currently working on the Animation Nodes and I'm trying to read all fcurves of one object and dynamically set the evaluated values on other objects.

data_path = fCurve.data_path
array_index = fCurve.array_index
value = fCurve.evaluate(frame)
targetObject = some object

# How can I know wether to do this:
exec("targetObject.{} = value".format(data_path))

# or this:
exec("targetObject.{}[{}] = value".format(data_path, array_index))

I have a working version using try and except statements but this isn't really nice. I hoped that fcurve.array_index is -1 if it isn't used but it is 0 by default, so I cannot use it.

Just some extra notes:

Ideally the solution is fast but that isn't absolutely necessary because I can cache the result. Based on the decision wether the property at the data path is subscriptable or not, I dynamically create a setAttribute function so that I don't have to use exec for each execution. I talk about > 10.000 executions per second.

cache = {}

def getSetFunction(object, attribute):
    if attribute in cache: return cache[attribute]

    function = createSetFunction(object, attribute)
    cache[attribute] = function
    return function

def createSetFunction(object, attribute):
    data = {}
    try:
        eval("object.{}[0]".format(attribute))
        exec(setAttributeWithIndex.replace("attribute", attribute), data, data)
        return data["setAttributeWithIndex"]
    except:
        try:
            # when the property is not subscriptable
            eval("object." + attribute)
            exec(setAttributeWithoutIndex.replace("attribute", attribute), data, data)
            return data["setAttributeWithoutIndex"]
        except: pass
    return None

setAttributeWithIndex = '''
def setAttributeWithIndex(object, index, value):
    object.attribute[index] = value
'''

setAttributeWithoutIndex = '''
def setAttributeWithoutIndex(object, index, value):
    object.attribute = value
'''

I believe you can do this from the bl_rna array_count property.  For instance on the array modifier, count isn't relative_offset_diplace is.

>>> C.object.modifiers['Array'].bl_rna.properties['count'].array_length
0

>>>C.object.modifiers['Array'].bl_rna.properties['relative_offset_displace'].array_length
3

I came across the same prob with searching for drivers and adding to UI sliders, and went for the try-except, which I also try to avoid.


How to get image from node Lets assume that i have a complex texture not just single image, it has  noise texture nodes i have a complex image output so here's the problem how do i get that complex image from nodes.

The easiest way is to bake the procedural texture into an image:

Add a plane into the scene, UV unwrap it and assign the procedural texture to it through emission shader (renders the fastest).
In UV/Image editor create a new texture of desired resolution.
Add texture node into the shader (unconnected but selected) and load the texture into it.
Bake the emission to the texture. Save texture as you desire.


Cloud generator addon unable to create mesh? I am new to blender and I'm working on an animation centered around a plane flying through the clouds.

I am using the cloud addon particle system to generate clouds using the following tutorial as a guide. https://www.youtube.com/watch?v=uK2l6Yrtqhg

I've got my clouds set up the way I want them but I can't convert the particles into a mesh in order to use them in other scenes. I have been told that there should be a great big convert to mesh button in the modifiers tab but it does not appear.

Have I missed something? Any help would be appreciated.

Thank you very much!

The Convert button will only appear if you use the particle system to create duplicates of other objects or when creating hair. To create duplicate objects, under Render in the particle settings, change from Halo to either Object or Group (the latter can be used to duplicate several objects with a single particle system). In the image below, I've created 1000 duplicates of an icosphere.

To generate hair, change Type from Emitter to Hair in the particle settings. Since hair is probably not what you need here, I'm only mentioning it for completeness, and further explanation of it is a topic for a different question.


I have a problem with my lighting and shadow I use cycles GPU. My light source is at left but the shadow also at the left. I think that the point light did'nt work and it uses scene light. I try to tick on the scene world under viewport shading and it turn all dark. I even don't understand the lighting option under the viewport shading. And when I render, the picture is darker than preview. Thanks for your help!

The second screenshot shows a correct preview, since Scene Lights and Scene World are enabled. If Scene World is disabled, an HDRI is used to light the scene preview. With Scene Lights off, your point light is ignored, hence the wrong shadow. The options are explained in the manual.

  Scene Lights

  Use the lights in the scene when rendering the scene.

  Scene World

  Use the world of the scene when rendering the scene. When turned off a world will be constructed with the next options.

  HDRI Environment

  The environment map used to light the scene.
  Rotation

  The rotation of the environment on the Z axis.
  Strength

  Light intensity of the environment.
  Background

  The opacity level of a very blurred version of > the HDRI will be rendered as background in the 3D View.


Why is my BezierCurve shaded like a tube? I've added a BezierCurve, and beveled it with a square curve.  The ends are square as expected, but the shading makes it look like a pipe (beveled with a circle).  I would expect a shading more like the cube I've added for comparison.

Because by default is spline set under
Properties Editor > Data Properties > Active Spline as Smooth
When Smooth unchecked, curve become shaded Flat, which means flat also in curvature.

To make it smoother you can increase Resolution U (segment subdivisions)

But in some cases it would be still segmented ... so Edge Split  modifier seems to be better choise anyway :)


edges missing in wireframe view, but visible in edit mode Sorry, I'm still a newbie to blender,
but why are some edges visible only in edit mode, but not in wireframe view? is it a bug or am I missing something here?

edit mode: Edges visible.
Object mode, wireframe view: Pooff, they're gone. what can i do to fix this? / thanks

It's a feature from the past to save performance. Object Mode does not draw all edges by default, but skips them here and there. You have to tell Blender to draw all edges.

Go to Object tab, and tick Draw all Edges in the Display panel

.


Armature doesn't want to spin around intended origin The origin is at the feet squarely below the torso. If I sit the character down in for example a spinning chair and try to spin him, he becomes offset from it because his torso is behind the spinning axis of the chair but his spinning axis is still beneath his torso despite posing his legs. This is more of a question of practice than anything. Surely the origin shouldn't be in front of a model because that would compromise his ability to rotate while standing up but I cant think of what to do other than temporarily shift the origin in edit mode which seems like more trouble than it might be worth.

When I would code this for a game, I would do it like this:

Apply the sit down animation and wait for it to finish.
Make the Character a child of the spinning chair seat.
Rotate the seat of the spinning chair.

Im not sure how to do this within a blender animation but I hope this approach might be useful for finding a solution.


How does the Vector Math Normalize node work? As I understand, the normalize setting should convert a vector into a unit vector. However, I am confused as two what the second vector input does in this operation. Normalizing should only require one vector input right?

For the normalize option the node will only normalize the first input vector (set the length to 1). You are right, a second vector isn't needed for this operation.

This example shows how it can be used to multiply a vector by a scalar:


Python show rig ui if armature is selected I have different characters in an scene, each one with different bone layers numbers. It is possible, using python, to create a rig ui layer panel for each character based on the armature name, and it is only show when a specific character is selected?

I've been using the flex rig code to create the rig bone layers. But with multiple characters, it doesn't work as I expected. For example, if character A has 5 layers and character B has only 2, toggle the button for layer 1 affects the layers for both characters.

If you add a poll method to your panel class you can use whatever criteria you wish to decide if a panel should be shown.

@classmethod
def poll(cls, context):
    return context.active_object.type == 'ARMATURE' and
        context.active_object.name.startswith('myrig')

When you alter the bone layer visibility it should only effect the one active armature. You can perform tests in the panels draw function to decide if a layer button is shown.

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

    if context.active_object.name.startswith('myrig'):
        row = col.row()
        row.prop(context.active_object.data, 'layers', index=0, toggle=True, text='head')

Unfortunately I don't think there is an easy way to check if there are bones on a layer, you need to loop through all bones and their layers array.

def used_layers(obj):
    ulayers = [False,]*32
    if obj.type == 'ARMATURE':
        for bone in obj.data.bones:
            for i in range(32):
                if bone.layers[i]:
                    ulayers[i] = True
    return ulayers

Then in the draw method -

def draw(self, context):
    layout = self.layout
    col = layout.column()
    show_layers = used_layers(context.active_object)

    if show_layers[0]:
        row = col.row()
        row.prop(context.active_object.data, 'layers', index=0, toggle=True, text='head')


Beginner Question: How to close/split panels? I can't figure out how to close or split windows or panels in 2.8. In videos, to remove a panel it seems you somehow click in the upper right corner-doesn't work for me. To split a panel you somehow drag from the border and a new window appears. Can anyone help?

Thanks,
Rusty

You can use the mouse pointer too, as you probably saw in those videos. Move the cursor around the corner of one of two equally sized adjacent panels, when it becomes a cross.

Then click and keep the mouse button pressed, then drag up/down (to join panels vertically) or left/right (to join panels horizontally), see the animation below for some examples:

As you see, you can also split panels in this way: just start the dragging from a panel and move inward, that panel will split in two.


How to paint vertices in different object using python scripts? I use this code to paint:

import bpy

def random_color(obj):
    import random
    r = random.random
    mesh = obj.data
    scn = bpy.context.scene
    #check if our mesh already has Vertex Colors, and if not add some... (first we need to make sure it's the active object)
    scn.objects.active = obj
    obj.select = True
    if mesh.vertex_colors:
        vcol_layer = mesh.vertex_colors.active
    else:
        vcol_layer = mesh.vertex_colors.new()
    for poly in mesh.polygons:
        for loop_index in poly.loop_indices:
            loop_vert_index = mesh.loops[loop_index].vertex_index
            random_color = [r(), r(), r()]
            vcol_layer.data[loop_index].color = random_color

for obj in bpy.data.objects:
    if obj.type == 'MESH':
        bpy.context.scene.objects.active = obj
        bpy.ops.object.mode_set(mode='VERTEX_PAINT')

in the 3D viewer, I only observe the lase part of the plane is painted.

Another problem is,when I render it, the plane is all black because I don't add a light source. But should I add light in vertex paint mode?

As far as I understand, this line

bpy.ops.object.mode_set(mode='VERTEX_PAINT')

only causes the user interface to switch to Vertex Paint mode, which displays the vertex colors in the viewport when the object is active and allows you to paint the vertices on your own. This step is not required if you color the vertices in a script and it does not change the way the final image is being rendered. If these colors should also appear in the final render then you have to set up your material to take vertex colors into account. The answer to this question describes how to do that if you're using the Cycles render engine. You should end up with a material like this:

Unless you're using an Emission shader instead of the Diffuse BSDF you still have to use other light sources in the scene.

And while the script seems to define the random_color function, the function doesn't actually get called. As you ended up with some parts of your model being painted, I assume this is only a missed line when you copied your script. In case it isn't, the last loop should probably be:

for obj in bpy.data.objects:
    if obj.type == 'MESH':
        bpy.context.scene.objects.active = obj
        bpy.ops.object.mode_set(mode='VERTEX_PAINT')
        random_color(obj)

It's likely that the viewport will still display only one mesh colored as Blender will only display vertex colors for the active object. All other objects will be displayed according to the Viewport Shading setting. This should explain why only one part of your model is colored while the rest of it remains grey. Once you've set up your material you can switch to Material shading to see the other parts of the plane colored as well.


How to avoid float texture limit for GPU rendering In developing a relatively simple scene, I noticed that detail from normal maps were not being displayed for some objects. All of the maps were generated from Substance painter as .png (16-bits max).  Further investigation in the console showed that loading the normal maps was being skipped due to a float image limit of 5 textures.

Through Google, I found bug report T37264 which indicated that this was due to a limitation in CUDA.  Indeed, switching the render from GPU to CPU cleared the problem (even in the viewport render, which was surprising).  Also, the problem went away by using .jpg for the normal map textures.

So, my questions are: Are these steps the only solution for this problem?  I was not aware that I was even using float textures.  Is .png acutally a floating point format?  What about the other .png maps used for color data--are they also count against the floating point texture limit?

Edit to add: I found that 8-channel .png works ok, so I guess that would be my lossless solution.

It looks like what you've found is accurate.  Here is an excerpt from the manual http://www.blender.org/manual/render/cycles/gpu_rendering.html so far as I know it's current for mid-2015

  Limitations

  The maximum amount of individual textures is limited to 95 byte-image
  textures (PNG, JPEG, ..) and 5 float-image textures (OpenEXR, 16 bit
  TIFF, ..) on GTX 4xx/5xx cards, and 145 byte-image textures and 5
  float-image textures on GTX6xx cards and above.


Color Ramp vs RGB Curves in Cycles I understand that both of them convert color values, but how are they different/similar? In other words, what are examples of situations where one would be better than the other? I understand more or less how the RGB curves work on a technical level (converts X input to Y output) but I'm less sure about color ramps. I have also seen people matching RGB curves to the information found on refractiveindex.info for realistic materials but I'm really not sure as to how this work (I could make a separate question for this if necessary).

They are different tools for doing the same things in different ways.

Color Ramp

Easier to precisely set colors and stops
Harder to make custom falloffs/interpolations

RGB Curves

Easier to make your own falloffs/distributions
Harder to specify exact colors

As an example, I attempted to replicate the result of an RGB curve setup with a color ramp node. Note the differences around the transitions due to the color ramp interpolation:

I used the compositor for this, but they work the same in Cycles

Which you use depends largely on what you want to do and what your preference is. I tend to use color ramps for precision stuff, and curves for more artistic things.


Ruler disagrees with vertices I select a point in edit mode, and it gives me some reasonable xyz Vertex values in the "Transform" area (for example 955, -455, 100).
I select another point and I also get reasonable values (for example 517, -471, 76), 100s of units from the first point. When I go to Grease Pencil/ Tools/ Ruler Protractor and try to draw a ruler between these two points to get the exact distance, I get a very small value instead (like .652). Shouldn't the ruler be giving me the difference between the vertices? I thought this might have to do with some local vs. global coordinate issue but I can't make any progress on that.

First point:
Second point:
Ruler, showing unexpected value:

[Since I am prohibited from posting a comment I'm not sure how to add information to my question, aside from editing my initial post, so that is what I am doing.]

I have attached another image showing that the scale of the mesh object
appears to be 1.0. Since the mesh object scale is 1.0 I cannot understand
why this is a local vs. global scale issue (even though that's what I
suspected this problem ultimately would be related to).

Generally, even if this is a global vs. local scaling issue, how could
I get the ruler to show distances using the object's own scale? I don't see any option in the Ruler/Protractor that would tell it to
use the object's own scale for measurement.

Here is an image that I think shows that the scale of the object is 1.0:

(source: interstice.com)

Based on Carlo's suggestion I examined the object hierarchy more closely. The meshes I was looking at have a scale factor of 1.0, but the meshes are part of a 'Model', and the Model does have a scale factor of .001 associated with it, as this screenshot shows:

(source: interstice.com)

The model was imported from an Autodesk .3ds file, by the way, and that is how this scale factor was introduced into Blender during import.

So at this point I am at least comfortable that I understand what is going on, though I'm still not sure how to make Blender do what I want. I may try to figure out how to rescale the object to a factor of 1.0 so that my blender units agree with my model and the ruler will give me "real" values.

Blender v2.78

Ruler use the Global coordinates

As you already pointed out in your question, the difference comes from the using of Local coordinates instead of Global.

While the Global coordinate of the vertex is its "true position" in the 3D space, Local coordinates are giving you the position of the mesh component as if it would not be affected by the object's transformation.

If we consider for example a 200x200 square plane, and set the object's scale to 0.01, the Global position of the corner vertices would be something like (1;1;0)... while the Local position will stay untouched (object's scale is uneffective) resulting in something like (100;100;0).

The rulere is giving the "real" distance bewtween two points, located where they currently are in the scene, so by comparing the Global coordinates, not the Local.


Why aliasing happens with higher emission strength? As seen from the image below, when using higher strength value for Emission, it seems some aliasing effect appears. Why? And how to fix it?

I may share my two cents.
As official manual indicated:

Lamp strength for point, spot and area lamps is specified in Watts. This means you typically need higher values than Blender Internal...
Sun lamps are specified in Watts/m^2.

Since you cannot see lamp in the scene, there can be no such aliasing problem possibly happen like this.
However, if the emission material is used on a mesh object, it means you are using it as a mesh light, in which case, the Strength value actually turns to a multiplier to the Color value. Because the mesh is visible in the final render by default, it can be very easy to have the final render overexposed (as the mesh color can be much higher than (1.0, 1.0, 1.0)), thus, pixels on the mesh can be hardly possible to down below (1.0, 1.0, 1.0), so all you can see around the mesh can be purely white, including the outline, that's why zigzags occur.
Solution:
One way to avoid zigzags is by using a trick like this:
Duplicate the mesh light, then make single user of its material. keep the new object selected, go to Object tab in Property Editor, find Cycles Settings panel at the bottom, turn off Camera, to make it invisible, while still emitting lights. Then you can set a relatively high strength is you want. Select the original light, make sure the strength value is no more than 1, to avoid overexposure itself.
Besides, you can also consider to tweak options like Clamp and Gaussian pixel width, of course, it can be helpful by using enough render sample.
Edit
Nicely suggested by Jerryno, a much better way is by using Light Path:


How to add an Image Reference to for Side/Front/Top I'm new to Blender's menu and all and I see a-lot of users use an image reference to make their 3D model.
How do you add image to the side/front/top ?

Press N to bring the properties panel, then enable Background images and select the image.

By default using an image as background will enable the image for all of the preset views.

By selecting the Axis you can restrict the image to appear in only one view.

To have more than one image simply add more images and specify an axis for them:

Remember that Background images will only be displayed in:

Camera Perspective view (Numpad 0)
Any of the preset orthographic views which you can access using the keys on the number pad:

Front/Back (Numpad 1 or CtrlNumpad 1)
Right /Left (Numpad 3 or CtrlNumpad 3)
Top/Bottom (Numpad 7 or CtrlNumpad 7)

Background images will not show in perspective view. To switch between perspective and [orthographic][3] view use Numpad 5

Background images are used for reference only and will not be part of the final render.


Importing Photoshop Brushes for Grease Pencil and Texture Mapping? Not sure if anyone has asked this before, but is it possible to import Photoshop brushes into Blender 2.8 for both Grease Pencil and Texture Mapping? Here are some brush samples of what I'm looking for:

There is a way around this. You can convert photoshop custom brushes (ABR files) into PNG files using the free OpenSource programme ABRViewer. Alternatively just save a masked PNG that you want to use as a brush.

Using Grease Pencil in Blender 2.8 make sure you're in Draw mode. Then click on the Active tool tab. Change brush name and make other changes to settings you might want.

Then add a new material (in material tab). Under the checked Stroke section change Style to Texture.

Under this will appear an Open box. Click this to browse for the brush PNG you want to use.

I change Mode Type to Dots.
If you want to use your own colour, rather than the colour of the brush, check Use As Stencil Mask and then change Color.

Perhaps these tutorials can help:

How to Use Photoshop Brushes in Other Programs (specifically exporting them as PNG files)

Grease Pencil Textured Brushes - Blender 2.80 Beta

Creating your own custom Grease Pencil brushes (Blender 2.8) (using PNG files with mask)


Weird Mesh Behavior Moving Bone Can somebody help with this problem? There is a way to fix it?(Sorry my english)

As weird as it looks, that is behaving exactly like it should. To get joints to deform cleanly relies on a couple of things.

Mesh Topology: A mesh meant to be deformed should be built so that it deforms cleanly. It's hard to tell from you image, but I'll assume the mesh is good. When I say the mesh is good, by that I mean that the faces flow in a way such that when the joint is bent, the faces still flow in a logical way.
Joint Placement: This is one of the things that I can tell is causing you trouble. The placement of the joints is important for a cleanly deforming mesh. The best way to find out where a joint should be placed is to look at your own joints if you are going for a realistically proportioned character. If you are going for a stylized character, or even a realistic one, the easiest way to figure out where the joint should be is to look at the joint when it is straight and imagine what it would look like when it's bent. Then you can infer where the joint should be placed based on the position that would result in the rotation you desire.
Vertex Weights: Even with great topology and properly placed joints, you will still need to make sure each bone is controlling the sections of the mesh that you want it to. Usually for joints, good deformation can be achieved bu simply making sure there is a bit of a smooth transition between areas with full weight and areas with none. The default weighting is usually OK.

I would highly recommend watching some tutorials on rigging to see where joints should be placed to get good deformation. Ultimately it just take some practice so that you can understand what causes a mesh to deform and how you can achieve the results you want.

As I mentioned before though, I would definitely try adjusting the joint position first.


Inserting green screen footage into 3D space So, the Piano Guys made a pretty cool video a while ago where they had green screen footage chroma keyed and then inserted into 3D space as some sort of plane like object. The process can be seen in this video :https://youtu.be/mJiEXKF6WTI

I understand how to do lightsaber composition (by superimposing a shadeless cylinder on top of footage and then blurring and coloring it, however if there is a more efficient way, I would like to know.), and I understand the basic process of chroma keying, but once these steps are completed, I am somewhat confused about how to place these video in a 3D setup like he does in the video (having this way as opposed to simply overlaying the footage on top of the renders allows for paralax and such). I would like to do this with preferably as few steps as possible.

I have an idea on how I might do this, but I would like input from the community so I don't waste as much time. I'm thinking maybe to key out the green screen, export png sequences with transparency for every piece of footage, and then importing images as planes into a 3D scene, however this would not be very effective if I had lots of clips and I had to do the same thing for each one. Preferably, I would like to see the footage in the scene in real time  (although the scene doesn't have to look rendered) while animating the camera and such.

Thanks a bunch!

Probably the best way, is to key out the green, and then import the image sequence into the 3D view.

Start by taking the image sequence into Blender, or your compositor of choice, and key out the green to your taste. Try to keep in mind the environment it's going to end up in and make sure that the key will reflect that. Then render out the frames as a PNG sequence, or any other image file format that Blender accepts that uses transparency.

In Blender, use the import image as planes addon (included by default) to import the image sequence into the 3D view. Make sure that alpha is enabled, and shadeless is checked in the settings before importing.

(You want to have shadeless checked, because if it interacts with light, it will be treated as a flat object, so any shadows that are there will be completely flat.)

Then place the plane where you want it to be, and use the color tools to make it fit into the environment properly. Or use some render layers magic to render it out separate from everything else to allow you to composite it back in properly either useing Blender or an external compositor.


Transparency disappearing act Running Blender v2.79b. Created a number of meshes. Have one mesh that sits above the others, which I want to be semi-transparent; it has an alpha of  0.07. However, I cannot see all of the other meshes through it. Any pointers to where I need to look gratefully appreciated.

There were objects on meshes added after the transparent object was added. These objects failed to appear through the transparent object.
The transparent object was on its own mesh.
Objects, added before the transparent object was added, appeared through it.

Moving the later added objects higher, in the Scene outliner, remedied the problem.
Objects were moved by creating new meshes and making them the parent of the objects added after the transparent object.
There's probably a better way to do this, but I'm just grateful to have found a solution.