text:
How to get better displacement result
I'm drastically displacing a mesh (with procedural textures) and due to the displacement being rather big and practically "vertical" there aren't enough polygons and it starts to look very stretched:

Is there a way to get more polygons for these vertical walls? I know that Vector Displacement allows to move polygons in all directions, so I guess I could use the polygons on the bottom of these wholes to "line the walls" but how would I achieve this?
(PS: I'm creating this for Nodevember, that's why it's all on a simple sphere. Obviously, if it was for anything else, I would simply model this shape)

It gets quite complicated, and varies case-to-case. You have to 1: Make verticals slope slightly. 2: 'Feed' the verticals from surrounding surfaces, to ensure they have enough topo of their own. 3: Bevel sharp corners. All by procedurally soft-mapping chunks of your original geometry.

I don't think this is a polygon problem, you are just stretching the texture so much it just has nothing to put on this side of the brick, it has no information. It's just not possible to do this this way, you have to model it and texture it manually

I'd agree with you, but after seeing what some people did for Nodevember I am certain that it is possible to solve this properly...

Well, could you show examples what they did? Maybe this helps to get an idea how they achieved what you want. But I agree it's not a polygon problem. Or course a higher mesh resolution provides better displacement results, but one thing remains: if your displacement for example has a black area next to a white area, and black is 0 m height and white maybe 1 m height, this means the mesh has to go from 0 to 1 in a distance of "nothing", because even with a dense mesh there will be polygons where one is at the bottom and the next at the top - there are none to build the sides.

@Gordon interested to know if adaptive subdivision solves this

@AllenSimpson I'm not sure how it should. If you have a completely black area adjacent to a completely white area without greys inbetween for example and the displacement is extremely strong, than there will always be a polygon that uses black be close to a polygon that uses white with nothing inbetween. The same goes for adaptive subdivision, only that one black pixel will be close to a white pixel. Maybe there is a grey pixel inbetween if it's exactly on the border of the white and black, but that cannot build something like a vertical wall as if it had real geometry.

In my head there's an opportunity for a second pass at generating new geometry once you have the lion's share of displacement applied to the mesh (say subdivide a limited amount and try to form a sort of convex hull first) but I don't know enough about it.

But I guess in the examples I've seen they're using vector displacement and borrowing more geometry from the surrounding areas.


text:
How to update a pose in the asset browser
I've created a few poses and saved them in the asset browser with the "Create Pose Asset" button.
Now I noticed that some poses aren't perfect, and I'd like to adjust them.
How can I update a pose in the asset browser? The only way I found is to delete the pose, and then create it again, which is very tedious.

When you save a pose as an asset, Blender creates a single-frame action with the same name as that pose asset. All of the transformations associated with that pose asset are stored as keyframes at whatever time point the playhead was at when the pose asset was created. This is convenient since you can then use your poses in animations.
So one way you can update a pose asset is to simply update the relevant keyframes. Add a Dope Sheet Editor Type area to your current workspace and change the Editing Context to Action Editor. Then select the pose asset you want to update from the Browse Action dropdown. You should see all of the bones included in the pose asset and their keyframes at some frame in the timeline.
Make sure the playhead is at that same point in the timeline (otherwise you'll create a non-static action, not a pose). Enter Pose Mode and make any changes you want to your pose, without moving the playhead (since this will clear any changes and revert back to the previous pose asset). Then, with your cursor over the timeline in the Dope Sheet, press "i" to update the keyframes. You can choose "All Channels" to overwrite the transformations of all the bones in the pose asset or "Only Selected Channels" to only overwrite the transformations for selected bones.

source: Stack Exchange

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

sort: votes


text:
Armature rig with mirrored object without applying mirror modifier
I'm building a robot, and am using a mirror modifier on all the individual parts (all parts are individual "hard-surface" objects connected via joints).
I now want to add an armature without applying the mirror modifiers.
I know that I can create vertex groups, (named the same as the bones) with .L and .R and then add an Armature modifier, but this gets very tedious since I have lots of small individual parts, and I need to make sure all vertices are in the correct group every time I make a change.
What is the recommended approach here?

You can parent With Empty Groups, it will create as many vertex groups as you have bones but it won't affect any vertex to any group, you'll do it manually: Select the vertices, go into the Object Data panel > Vertex Groups, in the list select the vertex group the vertices are supposed to be part of, and click on the Assign button under the list

@moonboots maybe I'm not understanding what you're saying, but that means that I still have to assign all vertices to a vertex group right? So every time I have a new object I need to assign it again?

if the parts of your robot are different objects, and not diffent meshes within the same object, then you can select the object, shift select the armature, switch it to Pose mode, select the bone you want, and Ctrl P (Parent) > Bone. In that case no need for vertex groups, and no Armature modifier. This is the alternative for objects like robots, machines, etc

@moonboots that's what I had initially, but that doesn't work with the mirror modifier, does it?

no, as the mesh and the mirrored meshed are part of the same object, you first need to apply the modifier and separate the 2 parts as 2 objects

Mh ok thanks @moonboots
So if I'm not mistaken I have two options? Either assign vertex groups in all individual objects and use the armature modifier, or apply the mirror modifier and parent the individual objects (a process, I will have to repeat every time I make a change to the model).

In the first option it's much more convenient to join all the objects into one object, and assign each mesh to the good vertex group. To select a mesh press L. The second option is a simple parentage of separate objects to bones

Thanks... unfortunately option 1 is not an option for me because I'm using different modifiers an the objects. Oh well.. copying all objects it is then.

There are 2 rigging options for objects like robots, machines, manufactured objects, etc:
Either you merge all the objects into one and parent with the With Empty Groups option (and later assign the vertices to the vertex groups they are supposed to be part of), or you keep the objects separated and you simply parent to each bones.
In the second case, you'll need to apply the Mirror modifier and separate the objects (P (Separate) > Selection). Then select an object, shift select the armature, switch it to Pose mode, select the bone, and CtrlP (Set Parent to) > Bone.

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


text:
Blender 2.8. Random transforms several objects everytime I open a file
I've been working on a project for a few days now and after I exported an fbx Every time i open the project it takes several objects and gives them a seemingly random transform. I put all the objects back in place, saved several times, and then reopened the project and it had moved those same objects into the same places again. It did this in both projects (I have 2 Identical copies of the same project) I only exported from one of them. I know the save worked because I also deleted some things and they were still gone. Other than export I didn't change any setting between when it was working and broken. I don't have a clue whats happening so any help would be appreciated Thank you.

Also It broke one objects texturing (reset it to a single material that I wasn't using anymore I don't know where it got it from), and it reset the UV map on another. And it set the snapping grid to much smaller increments which I don't know how to reset.           I can also move other objects, save, and reopen and they stay where I put them. just not the couple its moved on it's own.

Regarding what is asked in your question - check if there are any keyframes. See https://blender.stackexchange.com/questions/141410/object-moves-back-into-origin-everytime-i-open-the-blender-file?rq=1. As to the mentioned in the comment that seems to be another problem which should be properly described in another question


text:
Objects rendering well in Shading but not in Layout
I'm newish to blender and have been trying some stuff for fun.
When in the Shading tab my two objects look like this
But when in Layout tab it looks like this

Is this because there is a lack of reflective surfaces in the layout workspace.
Here is file just in case
https://drive.google.com/drive/folders/1UDwYHPuKChcps8QVuM5N79nVDnfqTfBe?usp=sharing
Sorry for google drive link. Hope you guys can help, thanks

Lookdev (first image) uses an environment lightning. This is not the case for rendered (second image) are you are supposed to choose the environment lightning yourself. See the button with circles on them, on top right of the 3D view.

So how do I set it to look like the lookdev lighting

Use exr map as environment texture. You can find the one provided with Blender in your installation folder: C:\Program Files\Blender Foundation\Blender\2.80\datafiles\studiolights\world

Lookdev (first image in the question) uses an environment lightning. This is not the case for rendered (second image) are you are supposed to choose the environment lightning yourself.
See the button with circles on them, on top right of the 3D view:

If you want to have the same lightning in 'rendered' viewport shading, you can use the same texture that can be found in your installation path: \Blender Foundation\Blender\2.80\datafiles\studiolights\world.
And set the world surface like this, where forest.exr is from the folder above:

Though, the texture will be visible in the background and this is not the case in look dev shading mode.
If you don't want it, there is two (at least?) possibilities:
Either set the film to "transparent":

and the background will be transparent...
Or enhance the world node setting, using another color of your choice when the light ray goes directly to the camera:


text:
Key Framing Multiple Objects At Once
I have a cube that I have fractured (using cell fracture) and I'd like to know how I can keyframe the animation tick box under the rigid body section. When I select all of them and keyframe the animation tick box, only the fracture that has been primarily selected gets the keyframes and I want them all to be keyframed at once
Also, I am using 2.79 because I need to for an assignment.

Use Ctrl + K  to link the data from the Active Object to the selected Objects (the fractured pieces).

You could use this commercial add-on, Key Selected Objects, which lets you add/delete keys for multiple objects from the user interface:


text:
selecting group
I'm trying to model  a mouthful of teeth.  I started with a basic tooth shape, i'm in edit mode and I'm trying to find a way that lets you select individual shapes within that group.  anyone know that one?

your question is not precise enough, maybe what you need is L to select a mesh among others?

Press L and the group gets selected

you can hover with the mouse over your tooth and press L, or select a vertex, edge or face of the tooth and press Ctrl+L.
This will select all the vertex that are connected together


text:
blender 2.8 - array modifier doesn't follow curve
I want to build a simple race track. I have created a closed bezier curve. Then I have added a plane object with curve modifier. When I try to apply array modifier planes don't follow a curve. What is wrong ?

did you try moving the curve modifier below the array and changing the fit type of the array to curve?

You need to put the Curve modifier below the Array modifier


text:
particle system not evenly emitting particles on faces destpite clean topology
i am trying to figure out why the particles are not emitting evenly across the surface to avoid the issue in future.
No vertices are un-merged nor are any faces flipped.
But the emitter somehow groups the particles on two faces less then on the others.
Does anybody have a suggestion on how to trouble shoot this further or where it could come from?

I was only able to fix it with a new mesh. Maybe somebody has an idea how to profile the issue?

hello; hard to say without the file


text:
Best practise question for screen replacement with multiple moving screens: Cryptomatte / ChromaKey
I am building a 3D animation for a video background. It will be moving and stacking tower of TVs.
It will spawn multiple screens, stack them and then turn them on and off, display noise patterns on some of the screens, turn some of them of etc. but in the majority of time it should show random clips of footage on the screens.
The question is: What is the best practise to replace the screens and animate it.
I was used to 3DsMax and am using now blender for modelling. Rendering is done in blender and octane.
I would normally now create cryptomatte for each screen (just a pure green material for example) and track it in davinci resolve or nuke and transform an image onto it. That would also mean that I would have to manually take care of all obstructions.
Current approach is to render the screens directly in blender and animate them there. That however takes quite the dent in my render time as I have to load 20 video footage files and blender is handling this really bad. …
What is the best practise for this situation? What software (i am totally open as long as it saves me time and gives me the needed flexibility) would you use?
How would you approach this?
I am gratefull for any tips:

Tracking, creating plane deformation and masking and all that into a different software sounds like a convoluted workflow (and not a very precise one). Yes blender's handling of video is clunky, but it will deal with the mapping and keying automatically. Try using eevee as render engine. It sounds like you could use some scripting to automate a lot of the workflow as well.

Rendering it directly in Blender seems like the most straight forward solution, so optimizing this would likely be the best approach. Have you tried scaling down the clips? If they only cover a small part of the screen for the entire animation, you may not need a full resolution video.

Hey @susu yes, i think so to. I think also I probably should have setup a different topology for the objects. My original plan was to have a material storing all links to the video footage files in an array and then randomly select from that array within the material for the displays. But my coding is still too shallow for that (super easy) task.

@RobertGützkow hey, yepp. I have reduced them actually to tiny snippets. Also I thought it might be good to make one longer clip with all the different footage clips in it and offset only the video frames in the texture. So that blender only has to initialise one video file not 20. BUT i think the real issue is, that blender is re-reading the whole list of video files every frame due to the automatic update. Is there a way to cache the textures and video files for the animation?

You could try to split the video into an image sequence. While this isn't elegant it will likely avoid the issue you're having.

Hey everyone, thanks a lot for the feedback. I ended up doing the following: I created one downsized video file. I applied to all screens the same material. I shifted the start point in each screen a bit inside the video texture so that it just starts later. I think nicer would be to create an array material with slots of 1-10 and have the tiny video snippets in there linked to a slot each. End then animate a randomize function to select different slots for the screens. This will be a project for later though. Thanks for the help! here is a video of the result (WIP)https://youtu.be/o6YVNxqp570


text:
2.8 - Bevel is not "always" working
i know there are already threads about issues with this and this and this side of some work.
But most of them relate to mesh topology issues, obvious issues like unwelded vertices etc.
To me though in this example all seems fine. But somehow it is really messing up my flow.
Any ideas on WHY it is happening? I mean sure, maybe a bug, maybe me. But I would love to know if there is maybe a different approach to this?
I transition currently from 3ds max to blender ;)
Thanks for your help.Here is a video of the issue

Have you applied the scale of the object? Do you have extra vertices? Do you mind sharing your blender file?

Select all, remove doubles?

Hey there, yo applied it all, no re-scaling or so. super weird. I did fixed the issue with re-modelling that part but that did of course not solve it.

I checked for double vertices, lonely edges, un attached stuff and also if there double faces or so. Super weird


text:
Blender wireframe without backface issues

Hi I am simply trying to remove the backfaces from my wireframe. The left one has a wireframe material on it. there is my question: How could i integrate an geometry node with "backfacing" as output so that the backfacing side is ignored by the camera?
The right one has a wireframe modifier on it with unchecked "keep original" and a material index of 1.
It has two materials. First one for solids is just transparent. Second one is simply a colour. There as well I wanted to put a geometry info node on the solid onces, so that I can see only the front and make that one transparent.
But I seem to not get it right in this instance, while i could have sworn it was a super easy thing to do.
Could anyone point me to the right way? Better solution? Wireframe with backface culling for rendering. ....
Thanks a lot.

For Eevee:
Your node setup is perfect. Make sure to go to material settings and tick "Backface Culling". And right below that check box is Blend Mode. For Eevee transparency to work, you must change Blend Mode from "Opaque" to "Alpha Blend" or something else.

If you want to do this in Cycles, you will need this setup:

I love this community. I went to bed at 2 AM in the morning, get up at  8 AM and have already two perfect answers. Also, where is the facepalm smiley when you need it. BIG thanks to @Coby Randal! Really appreciated it.

Also i figured, i had the blending mode wrong. Something I would not have looked for ... I  need to research it a bit i guess. I did set the blend mode to opaque. But with alpha* it works fine in Evee ;) thanks man.

Oh yeah Im glad you mentioned that; I forgot to mention the Blend Mode in Eevee must be changed from Opaque and set to Alpha Blend or something else. Will update answer for others.

why my wireframe is dividing by additional lines? Could you help me?

If you have a new question, please ask it by clicking the Ask Question button. Include a link to this question if it helps provide context. - From Review


text:
Practical Implications of a Thickness Map
So below, I have a thickness map from Substance Painter.  I looked into this on the questions here and found a pretty useful post here on thickness maps that might be relevant to anyone trying to answer my question:  How to bake a fake SSS map (thickness map)
My question is: as I understand it,  a thickness map like the one below is basically useful in that it can approximate SSS to a certain degree to be used in things like animation or when you don't want to spend hours on computational resources.  It will basically just make an object look like it has light that gets absorbed and refracted out and all of that technical stuff that happens with SSS.  The downside is that if you use the thickness map to approximate, then this effect is just baked onto the mesh and it won't be realistic in that when the lighting changes angle you will still just see the baked effect and it doesn't change live thus it won't give a photoreal type effect with how light interacts with it.  It's main use then is probably for a stylistic type animation or render/games and not in the vfx film industry.  Is that accurate?


text:
HDRI With Volumetric to Create Throw Pattern?
I have a scene below where I am wanting to get an HDRI image to come in through the windows and light the scene in the window areas and have a god ray like effect.  I want to do this with a volumetric effect and have the HDRI lighting create throw patterns in the scene.  Is this possible?  To have volumetric lighting where the HDRI creates throw patterns?  Thanks for the help

Please search before asking, there are many good questions about this topic

@Duarte Farrajota Ramos-With respect, I don't think you understood my question.  I searched a ton of questions for this already.  I am talking about having a HDRI (which has every pixel from the HDRI as part of the light source) interacting with a volumetric shader to get a throw pattern).  I'm not talking about using a directional lamp or a soft area lamp to make rays (which I have already searched for and know how to do).  I just want to know if that is possible, or how an HDRI would work with volumetrics under the hood and if you could create rays and throw patterns with it.

HDRIs generally produce uniform soft lighting with relatively soft shadows, I don't think it will be very practical to achieve what you want without some sort of directional light. Even then you might have trouble

@cegaton.  Awesome, that makes total sense.  Thanks man!

@DuarteFarrajotaRamos thanks for the help man!  That also answers my question.  Thanks guys!

Certainly, but most I have found produce weak to no shadows, it might also be impractical for requiring very numbers of samples, though that will be up to the user.


text:
Weird Pixellation, Almost Like Dealing With NGons But Different
I bought this element from CGTrader and imported as a obj file.  The pixellation doesn't seem to be from ngons.  The normals are facing outside.  My thoughts are that it has a ton of overlapping geometry.  Any thoughts on this?  Thanks]1

Yeah looks like it.  Thanks for the help @cegaton:)


text:
Object Claims to be Appended But Not Showing Up in Viewport
The title is pretty self-explanatory.  When I append the object, the data seems to come through but it isn't showing up in the viewport.  The original object was an imported .fbx if that makes any difference.  The object is a TV Stand and it should show up where the 3D cursor is.  You can see it highlighted in the outliner.  Any thoughts?

Got it.  Thanks man.  It imported like a million miles away from my scene even though my 3D cursor was there.  Would that just maybe have to do with the origin of the object in the original file or something?  Thanks @cegaton


text:
HDR Not Scaling Properly
just had a quick question.  Should be a simple fix.  When I am trying to bring in HDRs for lighting, it seems to not be scaling or working properly.  I can't see the HDR in the background.  I have kind of fiddled around with it by trying to use texture coordinate and mapping in the world section of the node editor but nothing was working.  It appears that the HDR is still lighting my scene for the most part but it's all thrown off.  Here is a screenshot of what it looks like.  You'll notice there is some blue in the background, but that's not very helpful.  Also, you can see what the HDR looks like in the preview area on the properties editor.  Thanks for the help!


text:
Rotating both hands downwards
I found my answer some days ago but I forgot how to reproduce it again, my character is in T-pose, and in the final Idle pose both of his hands must be down near his legs. I tried rotating around individual origins, tried R > Y > Y, there was that one option in the menu that allowed me to do what I intend but can't remember which one it was, it worked in pose mode and there was no need for mirroring every time because it happened automatically. Please help.

I don't know if is this that you are looking for, but there is an option to move the mirrored bones if they have names like arm.L/arm.Left and arm.R/arm.Right.
Its named X-Axis mirror and you can find it in the Options Tab when pressing T while in the Edit Mode.


text:
Not able to play full animation but in preview its playing fine
Not able to play full animation but in preview its playing fine
if someone can help me regarding this

I don't know What you are asking For? But pretty Sure you have difficulty with Rendering.

Select the Resolution For Final Video.

High Resolution will take more Time. 50% saves you 4X time.
2.Select The folder for Output

3.Choose The format for OutPut

4.Click Render Animation in Render Menu

This would Take the Most Time So Grab the Coffee & Relax.
5.To Play Animation Click Play Animation Render Menu

first of all thanks for this, i have done all these steps, but when i am playing animation the video is for 0 seconds

Did you rendered all the frames or aborted in the middle?:

yes i rendered full

Not sure what you mean by saying 'not able to play full animation, but in preview its playing fine', but you probably just forgot to add any object to your particle system as a base for these particles. By default, after creating new Particle System Blender will create one with 'Halo' option as a 'How particles are rendered' property in the 'Render' tab in Particle System section in 'Properties' window:

Halo particles are apparently not visible when rendered with Cycles Rendering Engine. So, you might either switch to Blender Render (not recommended), or preferably just select some object or Group of objects to use them as a base for your particles:

Then, you can customize your Particle System as you wish, with these value highlighted above.


text:
How to properly texture this cylinder
For some reason, this hollow cylinder gets textured differently than a normal cylinder, and it's auto generated as a column, just like doors and windows.
I like the way it looks better than texturing a normal cylinder, but it stops looking good at one point and the texture seems to clip.

You can see in the left column that at the bottom, it's well textured, but as it goes up, it becomes weird. It's a poliigon texture I applied with nodes.
What can I do to fix it, or achieve a result like the bottom part of the column?

How does your node setup looks like? How did you unwrap your cylinder? etc...

This is the node setup: http://prntscr.com/keba06
I just went to edit mode and pressed unwrap.

In the Edit mode delete the top and bottom faces. As we do not need extra faces here.
With the edge selected. Select the top and bottom and any center edge with shift select
With the edge selected press Ctrl+E and select Mark Seam
Now Press A to select all Faces. Press U and select Unwrap
Drag and make a new window -> UV Editor
Click on the new button and navigate the image.
Now in the material tab -> New and select the image from drop down
Note : Before you process the above steps. Press Ctrl+A select Rotation and Scale

Click on the small dot -> image texture

Then click the drop down here (find the same texture you have used in UV editor)

I can't select the top, bottom and a center edge. How do I do that? I'm pressing alt+select to select all the top edges, so how do I select the bottom ones at the same time?

Go in wireframe mode or mean time Press H to hide floor and ceiling

That's not what I meant. In your gif, you select the top and bottom circles of the cylinder, but I can't do that. When I try to select it, I just select a single vertex and not the circumference itself.

I got that to work. Now, when I go to the materials tab, how do I select the image? Where's the drop down you mentioned? When I press on New, a bunch of options and settings show up.

@Skyleft check the answer edited

The "Surface" option isn't anywhere in the Material tab: http://prntscr.com/kec7l8

Sorry, my bad. I started creating a new project just for this and forgot to turn to cycles.

@Skyleft hope you got the solution

Kind of. Doing what you said does texture the cylinder properly, however it's different than how I show it in the picture. Instead of going around the column, it textures it as if it's made of that material, which implies it's the optimal way to texture it. However, I think the way it looks in my image does look a little bit better. It's  not the biggest deal, though, so if I don't figure out a way to have it that way I'll stick with your way.


text:
Working with isometric refrence images
How does one set up the camera for working with isometric reference images? I have tried addons like BLAM and others, but those require either vanishing points, or non-parallel lines. An example image for what I want to use is attached. Thanks in advance.

Under the assumption of right angles somewhere in the structure you can rotate a cube to match the angles on the picture and work from there. You should make yourself familiar with the "local" axis of an object.


text:
2.8 Installed addon not in list
I'm trying to install MB-Lab which is an addon that is listed as working,  according to this list. When installing it, a confirmation message is printed. I've tried all 3 versions for 2.8 and I'm using a blender version from the 14.02.2019. I also had success installing other addons in 2.8.
It would help too, if you to install it yourself and comment whether it worked.

If you have the same problem: Unzip, rename the folder without any dots (-> . <-) in it and insert it to the other addons manually


text:
array and curve modifiers (bezier) - distorted texture
I have created a simple road using bezier curve, array and curve modifiers. As you can see on the picture some faces looks weird - a texutre is distorted. Why ? Did I do something wrong ? How to  fix that ?

could you please pack the image and share the file?

http://s000.tinyupload.com/?file_id=04552707576784415557

So I hope my answer is accurate enough.
Your faces are projected as squares on the image in the UV Editor. But your faces are actually not squares, they are twisted quads. Also, in any 3D software a face is made of 2 triangles. So when Blender will map this face the UV map it will simply map 2 triangles, and it will give the following result.

If you subdivide your face a bit with some Ctrl R, the same thing will happen, but as your faces are much smaller the effect will be much less visible.

I didn't unwrap anything, I just added a single plane object which was already unwrapped and I only used scale/translate in uv editing mode. Then that single plane object has been used with modifiers and bezier curve. But it looks like your explanation is correct.


text:
is it possible to make an object Unpenetrable?
lets say i have a cube
and i add a cylinder in another location
now when i grab my cyl. and move where the cube is, it will go inside the cube when i put it close enough.
is it possible to block this, so it will prevent me from moving the cyl, if the cube is on the way?
like let's say i have 2 roof tile that i want to place one on the other but slented
now i have to watch carefully so i will not have one tile intersect into the other, would be nice to be able to just move it as much as possible but not penetrate the other tiles faces

Do you want the collision in an animation or just for object placement?

I've never heard of such an option

There are various Snapping options. Click the magnate button and dropdown next to it allows various options.

You can also set the roof tiles to be rigid bodies and run a simulation where they will bump into each other and settle naturally.


text:
Move objetct perpendicular to the viewport
The easiest way to move an object (G key) moves it parallel to the viewport.
BUT, is there any way to move it PERPENDICULAR to the viewport? That is, in depth but not just constrained to the XYZ axis/planes?

You have to set the transform orientations to "view", then press G Z, move the mouse and confirm with left click.
If your view is orthographic you will not see any apparent movement but you can read the distance you're moving in the top left corner of the 3D window.

Thanks Josh. Is what I asked for. The problem for me is that, for a lot of other purposes, I need to work with the global orientation. My idea is to replicate what I use to do with Cinema4D: when moving an object I could press a key (shift perhaps?) and move the object to the background/foreground in a very seamless way. The same accesibility that uses blender to do precise movements. This is useful for me because I like to work in stereoscopy (parallel mode), feeling the 3D space, and to be constrained to the axis is a pain. I've configured the "G" key to move freely in the XZ plane as is exp

If you set the Transform Orientation to View, then  GX, GY, GZ will translate in  Screen space.. (Z being in and out of the screen).
Double-tapping the dimension (GXX, GYY, GZZ) will revert the translation to Global space, whichever orientation you have selected.


text:
Lighting not working/Final Render is is not lit
I'm trying to make a sword with a heavy amount of refelction (seen below) but when I try to, it doesn't seem to react at all in the final render. It just looks like clay. I put a spot light above it to show how light just doesn't seem to react. I'm trying to make the final render look identical to what is seen in lookdev mode.

This is what it is meant to look like.

This is what the final render looks like.

Looks like you are using Look Dev, Look Dev uses an HDRI to light the scene, so you need an HDRI for your final render to get something close to it.
Hope that helps.

Good Luck

Hey thanks for the reply. I tried turning on the HDRI in look dev, so I put the background slider all the way up on the tab you have open in the picture above. However it didn't seem to change anything in the final render. Was that what I was meant to do?

No, you need to open the shader editor Shift F3, then change to World and add a HDRI to your scene, check this video https://www.youtube.com/watch?v=6VBkj_I-ONk


text:
Combining textures and UVs of a multiple objects into one
I have a scene with many objects with separate materials with textures and UV maps. I need to combine all the textures into one large texture atlas ideally with the current UV maps to save me some work. Is this possible in Blender 2.8? I have found some tutorials for earlier versions where an addon called "Texture Atlas" was available, but this is not in 2.8 anymore.
I tried to create a blank picture and add a disconnected texture node to every material and then bake it in cycles, but the second object overwrites the textures from the first one.
Have I missed something or is this just not possible in 2.8 and I have to manually create the large texture and assign the UV maps again?


text:
BPY add the same keyframe for all frames
I need to keyframe thousands of frames. First I would like to keyframe the visibility for 1 object for all frames with the same value (let's say that I need to hide an object on all keyframes but I need the data_path=hide_viewport really keyframed to True I can't use the interpolation, it has to be keyframed for every frame.
I can do this through loop like this:
obj.hide_viewport = True
for kf in (start, end + 1):
 obj.keyframe_insert('hide_viewport', frame=kf)

But this needs to loop through all of the keyframes just to set the same value. Is there an option to set the same value to let's say an array of keyframes so that loop is not necessary? This would greatly speed up the execution.

wouldn't it be easier to just set your keys in stepped interpolation where you need a change  and then run a bake action to have keyframes at each frame?

Yes. keyframe_insert is the slowest (but easiest) way to set keyframes. It's faster to access the FCurve's keyframe points directly. The coordintes of the keyframes are located at action.fcurves[i].keyframe_points[j].co.
Here's an example that creates an FCurve for "hide_viewport" and sets all the keyframes from an array using foreach_set.
import bpy

def add_hide_fcurve(ob, keyframes):
    # Create animation data if it doesn't exist
    if not ob.animation_data:
        ob.animation_data_create()

    # Create action if it doesn't exist
    if not ob.animation_data.action:
        ob.animation_data.action = bpy.data.actions.new(f"{ob.name}Action")

    # Throws if an FCurve for hide_viewport already exists
    fcu = ob.animation_data.action.fcurves.new(data_path="hide_viewport")

    # Add the new keyframes
    fcu.keyframe_points.add(len(keyframes) // 2)

    # Set their times & values
    fcu.keyframe_points.foreach_set("co", keyframes)

keyframes = []
for kf in range(start, end + 1):
    keyframes.append(kf)  # keyframe time
    keyframes.append(1)   # keyframe value

add_hide_fcurve(bpy.context.object, keyframes)

There may be faster way to use keyframes, but this should already give you a big boost vs keyframe_insert.

This worked. I can not even express how fast this is compared to keyframe_insert & loops. Just a simple comparison for 1000 keyframes:
looping with keyframe_insert: 28 seconds to complete
your method: < 1 second
Thanks a lot!


text:
Animation nodes bake material attribute output
I have a simple scene with a cube going upwards. The cube has emission material that changes colour (blinks) based on the cube's z-location (this is done through animation nodes).
I would like to bake the blinking effect into the material, but I was unable to figure it out so far. I'm using the "Set Keyframes" nodes with custom property set to emission color data path but I get "Could not set keyframe" error in the Set keyframes node.
Is it possible to bake such animation with AN?

Does it have to be animation nodes to animate the shader or could it be also an animated shader?

@Chris it has to be done through animation nodes as this is just an example of a more complicated effect.

@Gorgious thanks for the suggestion, but the value you proposed also leads to the "could not set keyframe" error

and an animated color in AN won't help? Can you tell us why do you need this baked to keyframes?

UPDATE
ok, i tried and i think i have a solution for you.
The node setup is this:

Of course you have to update this to "your" material in the expression nodes, but then it works. I deleted the animation nodes tree and the baked animation changes z-Position and changes the material.
result baking:

result after baking with deleted AN-tree:

Thank you very much, Chris! Your solution works!

You are welcome!


text:
Changes in the UV Editor Not Flowing Over To 3D Viewport
When changing the vertices in the UV editor, the changes do not flow over to the 3D viewport, which displays something completely different.  I've tried deleting the faces and recreating them, checking the Stretching to see if there was some weird geometry that's twisting the image, but even when dragging the vertices in the UV editor to a completely blank area, it still shows the same warped texture in the 3d viewport, completely unchanged.  Can anyone please help?

Nevermind.  Just found out that in my UV maps, it wasn't showing the second UV map I had created.  Thanks everyone for taking a look.


text:
Convert particle system to animated meshes Blender 2.8
We know the code below works in 2.79. But trying it in 2.8x it will not take effect and no error will be displayed. Anyone knows how what could be missing there?
import bpy

# Set these to False if you don't want to key that property.
KEYFRAME_LOCATION = True
KEYFRAME_ROTATION = True
KEYFRAME_SCALE = True
KEYFRAME_VISIBILITY = True  # Viewport and render visibility.

def create_objects_for_particles(ps, obj):
    # Duplicate the given object for every particle and return the duplicates.
    # Use instances instead of full copies.
    obj_list = []
    mesh = obj.data
    for i, _ in enumerate(ps.particles):
        dupli = bpy.data.objects.new(
                    name="particle.{:03d}".format(i),
                    object_data=mesh)
        bpy.context.scene.objects.link(dupli)
        obj_list.append(dupli)
    return obj_list

def match_and_keyframe_objects(ps, obj_list, start_frame, end_frame):
    # Match and keyframe the objects to the particles for every frame in the
    # given range.
    for frame in range(start_frame, end_frame + 1):
        bpy.context.scene.frame_set(frame)
        for p, obj in zip(ps.particles, obj_list):
            match_object_to_particle(p, obj)
            keyframe_obj(obj)

def match_object_to_particle(p, obj):
    # Match the location, rotation, scale and visibility of the object to
    # the particle.
    loc = p.location
    rot = p.rotation
    size = p.size
    if p.alive_state == 'ALIVE':
        vis = True
    else:
        vis = False
    obj.location = loc
    # Set rotation mode to quaternion to match particle rotation.
    obj.rotation_mode = 'QUATERNION'
    obj.rotation_quaternion = rot
    obj.scale = (size, size, size)
    obj.hide = not(vis)
    obj.hide_render = not(vis)

def keyframe_obj(obj):
    # Keyframe location, rotation, scale and visibility if specified.
    if KEYFRAME_LOCATION:
        obj.keyframe_insert("location")
    if KEYFRAME_ROTATION:
        obj.keyframe_insert("rotation_quaternion")
    if KEYFRAME_SCALE:
        obj.keyframe_insert("scale")
    if KEYFRAME_VISIBILITY:
        obj.keyframe_insert("hide")
        obj.keyframe_insert("hide_render")

def main():
    # Assume only 2 objects are selected.
    # The active object should be the one with the particle system.
    ps_obj = bpy.context.object
    obj = [obj for obj in bpy.context.selected_objects if obj != ps_obj][0]
    ps = ps_obj.particle_systems[0]  # Assume only 1 particle system is present.
    start_frame = bpy.context.scene.frame_start
    end_frame = bpy.context.scene.frame_end
    obj_list = create_objects_for_particles(ps, obj)
    match_and_keyframe_objects(ps, obj_list, start_frame, end_frame)

if __name__ == '__main__':
    main()

Few changes in 2.80:

Objects are linked to a scene via a collection
'hide' has became 'hide_viewport'
You need to get the dependency graph and an evaluated object to have access to particles

Here is the corrected code (modifications are commented '2.80: something'):
import bpy

# Set these to False if you don't want to key that property.
KEYFRAME_LOCATION = True
KEYFRAME_ROTATION = True
KEYFRAME_SCALE = True
KEYFRAME_VISIBILITY = True  # Viewport and render visibility.

def create_objects_for_particles(ps, obj):
    # Duplicate the given object for every particle and return the duplicates.
    # Use instances instead of full copies.
    obj_list = []
    mesh = obj.data
    for i, _ in enumerate(ps.particles):
        dupli = bpy.data.objects.new(
                    name="particle.{:03d}".format(i),
                    object_data=mesh)
        # 2.80: link to objects in collection
        bpy.context.scene.collection.objects.link(dupli)
        obj_list.append(dupli)
    return obj_list

def match_and_keyframe_objects(ps, obj_list, start_frame, end_frame):
    # Match and keyframe the objects to the particles for every frame in the
    # given range.
    for frame in range(start_frame, end_frame + 1):
        bpy.context.scene.frame_set(frame)
        for p, obj in zip(ps.particles, obj_list):
            match_object_to_particle(p, obj)
            keyframe_obj(obj)

def match_object_to_particle(p, obj):
    # Match the location, rotation, scale and visibility of the object to
    # the particle.
    loc = p.location
    rot = p.rotation
    size = p.size
    if p.alive_state == 'ALIVE':
        vis = True
    else:
        vis = False
    obj.location = loc
    # Set rotation mode to quaternion to match particle rotation.
    obj.rotation_mode = 'QUATERNION'
    obj.rotation_quaternion = rot
    obj.scale = (size, size, size)
    # 2.80: hide_viewport instead of hide
    obj.hide_viewport = not(vis)
    obj.hide_render = not(vis)

def keyframe_obj(obj):
    # Keyframe location, rotation, scale and visibility if specified.
    if KEYFRAME_LOCATION:
        obj.keyframe_insert("location")
    if KEYFRAME_ROTATION:
        obj.keyframe_insert("rotation_quaternion")
    if KEYFRAME_SCALE:
        obj.keyframe_insert("scale")
    if KEYFRAME_VISIBILITY:
        # 2.80: hide_viewport instead of hide
        obj.keyframe_insert("hide_viewport")
        obj.keyframe_insert("hide_render")

def main():
    # Assume only 2 objects are selected.
    # The active object should be the one with the particle system.
    ps_obj = bpy.context.object
    obj = [obj for obj in bpy.context.selected_objects if obj != ps_obj][0]
    # 2.80: Get the dependency graph
    dg = bpy.context.evaluated_depsgraph_get()
    # 2.80: Get an evaluated object from it
    eval_obj = ps_obj.evaluated_get(dg)
    ps = eval_obj.particle_systems[0]  # Assume only 1 particle system is present.
    start_frame = bpy.context.scene.frame_start
    end_frame = bpy.context.scene.frame_end
    obj_list = create_objects_for_particles(ps, obj)
    match_and_keyframe_objects(ps, obj_list, start_frame, end_frame)

if __name__ == '__main__':
    main()

you solution worked flawlessly on the first try! Thank you so much!!

hi @lemon thanks for this script, I'm trying to update it to work for geometry that has animated armature attached, I wonder if you could have a look at my attempt question here https://blender.stackexchange.com/questions/167452/convert-particles-to-animated-mesh-including-existing-armature-animation

@Nick, hi... will try to have a look (but not sure to have time).


text:
How do I have random color variations for grass?

im trying to recreate this grass. i want to have spots with an orange hue, how do I do this?

One technique we use in game-dev is something like this:
Find yourself a grass texture, something with a decent amount of color variation, but it's not extremely important.

Then in photoshop down-rez the image quite significantly. Like 32x32 pixels is fine.

Then in the material for your grass set up something like this, with the low-rez ground texture blended with the base color of your grass. Use world-space coordinates for the texture.

This will give you a result like this.
You can obviously go to town with different options, this is just a quick rundown of a simple technique.

In the Render settings of the particles you can set Render as to Collection. Put the green grass and orange flowers into the selected Collection. Tick Use Count in Render section and add some count values to specify how much grass and flowers you want.


text:
I can't move most of the armature bones
I downloaded a free rigged model, and in pose mode, most of the bones are completely frozen and cannot be moved. I can move the hand, and that moves the arm with it, but I can't rotate the hand or fingers. This is the same with everybody part except the face rig.

You should rig it yourself unless you want to pay for a model. I don't always trust free models.

i was thinking of deleting it, but the rig is very complex, and i could never make something like that myself.


text:
UV unwrapping the exterior of a hollow cylinder
I'm pretty new to blender, and only have some idea of what I'm doing when it comes to UV unwrapping. Basically I'm trying to add a texture to the exterior of a hollow cylinder, but every time I unwrap it it also unwraps the interior which is not what I want.
Screenshot:

Could the solidify modifier I put on the cylinder be causing this issue?

Yes, you should apply your Solidify modifier so that the inner side will be a different, to be able to give it another texture.

A solidify modifier generates a second surface parallel to the original and a rim surface that joins the two together. You can configure the modifier to use a different material for each of these two surfaces with the original surface using a third material.
We can create multiple materials for each object, the materials in this list can be referred by an index that starts at zero, so the first material is index zero, the second index one and the third index two.

In the solidify modifier, we can set the index for the second surface and the rim surface, the original surface will use index zero.

In this example, the generated surface is on the inside, we can change the direction of the normals to make the new surface be on the outside.

Apply your Solidify modifier so that the inner side will is different, now you are able to give it another texture.


text:
How to make transparent background from halo material
i spending many hour following this tutorial,when i finished it and try to change the background to transparent the result is not what i want.So how i achieve this for vfx on my movie.
This is the link for the tutorial :
https://www.youtube.com/watch?v=TWNLOjw5HYc&t=911s

2 things here:

To render an image with transparent background you need to check the Properties>Render>Film>Transparent checkbox

You can easily use this asset in video production even if the background is not transparent (It's actually better if it's not transparent). In your video editor, just change the blend mode of your shockwave to "screen": this will get rid of the black parts of the image and show only the shockwave over your footage


text:
Will this help program my 19 button mouse?
I have a Left index finger that is fused at the second knuckle , therefore I bought a 19 button mouse to compensate. The box said it has programmable buttons.( Utechsmart Venus).  I'd like to use the 12 side button's for the combination of shift,control,alt and use the keyboard for the other characters.
Will the add-on for programming keys menus and pie help with my endeavor to continue learning blender?

The "Programmable buttons" are usually configured in a system control panel for the device, you should find a place where you can specify what action/key is assigned to each button.
Another approach to try is to open blenders input preferences and adjust an action you want to assign to a button. Where the mouse/key combination is shown, you can click that and the next mouse or keypress will be assigned to the action. Try adjusting an action and pressing one of the mouse buttons to see if blender recognises the button, if not you will need to rely on the system configuration to set each button to emulate keystrokes.
While I am not familiar with the addon you mention, blender is very customisable, you can setup the shortcuts to suit what works for you, modifier keys can be disabled so that menus are displayed with single key presses, using python you can create your own menus - either a vertical list of items or a pie menu.

One thing to add, however, is that there might be a number of tutorials that assume Blender defaults.  For example, I came from experience with Maya, and found Blender's right-click to be awkward so I swapped it.  However, as I tried to learn Blender I found it hard to constantly swap everything so I ended up switching it back.  I know that's not an option for you but I wanted to point out that it might be challenging to mentally adjust from defaults to your mapping.  Don't give up though!  I am sure you can do it!


text:
When I render my image, and select composite and combined for the render view, only one of the layers is showing
I followed a tutorial on YouTube about how to make a planet in blender. Unfortunately, he didn't show you how to render it. The tutorial has a planet layer, and an atmosphere layer. Then in a compositer, I put them together but when I render with "slot 1" "composite" and "combined" in the bottom, only the planet layer shoes up. Please help soon as I am trying to do this quick. I can't seem to find any help on this same issue.

you have to use 2 renderlayer nodes and an alpha over node I guess - but unfortunately you did not show your nodetree from compositor so It s only a speculation....


text:
How to make a curved Cone?
I'm making a model for a thing (don't really know how to describe it) and i'm trying to make some curved cones so as to replicate the shape of the floating horns on the character.
anyone have any ideas?
i'm also using 2.8 and am extremely new, so please try to dumb it down.

Start by adding a cone to your scene: Shift + A and select Mesh ► Cone. Next press TAB to go into Edit Mode then press NUM PAD 5 for top view.

Note the three buttons in the red box in the screenshot. These are the three mesh selection modes in blender. The left one is Vertex Select, the center one (highlighted in green) is Edge Select, and the right one is Face Select.
Here is a better view.

Now you will want to click on Edge Mode (the center one). Press Alt + A to deselect all and then C to enter brush select mode and click on the top (center) of the cone. Press Esc to leave brush select mode and right click to bring up the Edge Context Menu.

Click on Subdivide. Now open the box in the lower right hand corner that says 'Subdivide' if it is not already open. Your project should look like this:

Set the Number of Cuts to 12, then click on Vertex Select Mode as discussed above. Press NUM PAD 1 to enter front view and click on the highest point of the cone.

Now enable Proportional Editing by clicking the button below the pop-up menu in the screenshot that looks like a target. Click the button to the right of the target and select Sharp from the pop-up menu (you can experiment with other modes later for different effects). Now press the following keys in order: G, X, -, 1, Enter. Now at this point the cone looks silly I know, but we'll fix that.

In the lower right corner the box is now labeled Move. Increase the Proportional Size value till the cone has a nice curve. I used a value of 2.23. At this point you can play with the Proportional Falloff to see what the other effects do. Below to the left is linear falloff and to the right is inverse square falloff. The center one is sharp falloff as we just made.

I hope this tutorial helps.

Thank you so much, i really appreciate it!

No problem, I'm happy it helped.

Or do it with bezier curves and the bevel object. The radiuses are, from top, 0, 0.25, 0.5, 0.75 and 1. Convert to mesh when done. Radiuses are given in the menu that appears after hitting N in the 3D viewport.

My go-to would just be extruding (E) an edge ring (ring of vertices, you can get one from adding a circle mesh) upwards, scaling it down (S), rotating if I needed (R), repeating this, and at the final point merge vertices (Alt+M "At Center"? I have it bound to .)

That's a harder way to do it than Proportional Editing and the result would be pretty rough. Also it's good to use {button} formatting for shortcuts :)

Result is only as rough as you make it, as long as you have a good eye it works fine.


text:
Connect parent bone tail to child head
I'd like to connect the tail of a parent bone to the head of a child bone, because it looks more organized.
This is how it currently looks like

This is how it should look like

Since there are a lot of bones involved, I'd like to make this programmatically in python to save time.
I tried to overwrite the .tail property of a bone but it didn't save it or something. Nothing changed.

First, you have to switch to the object mode.
In a python console, enter something like this. Make sure to change the name of the armature to what you have. The .tail property is not what you want to overwrite, it's the tail_local.
for bone in bpy.data.armatures['Armature'].bones:
    if bone.parent is not None:
        bone.parent.tail_local = bone.head_local

Then switch to edit mode to see the effect

If your parents can have multiple children and if you only want to move those tails that have a single children, you can try to use this code snippet:
parent2children = {}

for bone in bpy.data.armatures['Armature'].bones:
    if bone.parent is not None:
        if bone.parent.name in parent2children:
            parent2children[bone.parent.name].append(bone)
        else:
            parent2children[bone.parent.name] = [bone]

for name in parent2children:
    if len(parent2children[name]) == 1:
        parent = bpy.data.armatures['Armature'].bones[name]
        parent.tail_local = parent2children[name][0].head_local

make sure to switch to object mode first here as well


text:
Is it possible to do this kind of wavy texture procedurally?

How should I proceed creating this kind of wavy texture in Blender?

This node setup (be careful on second mapping node scale)

create this wave on plane.

You can use scale, distortion and detail on noise and musgrave nodes to get desired waves shape. Amplitude frame, multiply node factor change wave scale.

These days, it's perhaps less confusing to new users to use 'Separate XYZ' and 'Combine XYZ' nodes? I know it doesn't make a big difference, here...

@RobinBetts yes, this setup more evident https://imgur.com/aw2NzZL and give the same result. And seems to be that nodes XYZ works the same as RGB. Thank you.

It looks legit, thanks for your help. I forgot to say that I'm rendering with Blender Render though. Do you know how should I modify the node setup to make it work in Blender Render?

@Memememeyou seems to be change principled shader to something match blender render engine. Just use before nodes as color input.

RGB and XYZ vectors do behave differently, at least when coerced into scalar values.  XYZ (1,0,0) is evaluated as 1/3.. RGB(1,0,0) is evaluated as something like 1/4.666.. it seems undefined. Neither value makes much sense to me. I guess the lesson for more complex trees, or groups you intend to re-use is : Never connect a vector output to a scalar input.  Use 'Fac' rather than 'Color' or 'Vector' to get scalar outputs, wherever it's provided. Define your own conversion, if it isn't.

@RobinBetts thanks for explanation.


text:
Trying to symmetrize bones, not working
When I select half of the bones on one side of my armature right click and hit symmetrize, the bones do not appear. I may be doing something wrong, or just being a noob and missing something simple. Help would be appreciated!

Make sure each bone name to be mirrored ends with ".L" which means LEFT (e.g.: hand.L) and press Shift+C to center the cursor.
Hopefully that will help.


text:
Is There Pixel Counter for Texture Painting?
I was wondering if Blender could count the amount of pixels you paint for texture painting. I looked it up and there didn’t appear to be anything. If there isn’t, it might be a cool add-on idea if it doesn’t already exist...

What is the purpose for it? Are you needing the overall count of pixels per stroke and adding that up, or are you looking for final output?

@CraigDJones What I want to happen is for the program to count the total number of pixels I paint on the full texture of the object. I don't know if it's possible, but I appreciate the help.

I see- so it would be all pixels painted, even those re-painted....


text:
How to add horns onto a character

I'm trying to model one of my D&D characters in blender. I've already thrown together a rough reference sheet, and I've gotten decently far on her head. I'd like to at least rough out her horns before I move onto the body, but I realized that I made a grave mistake: I have no clue how to extrude part of her head in a way that would let me shape her horns how I want without wrecking the mesh.
 Is there anything I can do to work around this? I'd really like to keep it all as a single mesh, if possible.
Please let me know if you need me to elaborate on anything, or provide something to help!

You need to make sure that you have enough geometry, i.e. 4 squares, then you make a 8 vertices circle (ShiftAltS to transform to sphere) that you can extrude.

I would model the Horns as a seperate mesh either in the same object or a new one, or you could add topology to her head using "stars":

The one on the left is a abviously a star, the one on the right not so much so I've numbered the same faces on both. It's about how the faces connect not about the shape, this "star" formation lets you split geometry while maintaining quads which will keep your mesh more neat.

You can see here that I've double the mesh resolution where the horn is by spitting using stars.
Just keep in mind that this will make it harder to UV unwrap (they mess with loop selection) but it's a lot better than having triangles.
I think those are your only options if you want to keep the resoulution of the rest of the mesh as is, the only other way I see is to just up add more loopcuts and increase the resolution of the whole mesh.

There are no doubt many ways to go about it, but what I'd do is just knife (K) the shape of the horn, delete the faces in the middle and extrude the ring up as desirable.

I wouldn't.  I would model the horns as a seperate object, and then, using a multiresolution modifier, I would sculpt some detail on the head, around the horns to make them fit.  Then I would bake the sculpt as a texture and use it as a bump map for the character.  (comment if you need more detail)


text:
Where can I find information on how to control stepper motors with blender?
My goal is to build a robotic arm I can control with blender. I've seen videos showing that blender has the capability to control thing in the real world, so I know this magic can be done. I just can't find a wizard to teach me the spells. :) Any help you can provide in completing my quest would be greatly appreciated! Thank you!!!

There is lots of options. I would go with a Raspberry Pi that controls the arm and is fully independent and then setup a script in Blender that relayed the movements via Wifi for the Pi to translate into physical motion. But the Pi is optional if you can write Python to control the arm directly.

Thank you Rob! I don't have any Python experience so I think the Pi would be my best bet. How do I get Blender to relay the movements? Would hard wire be better than Wifi for accurate quick movements?

It is very easy to setup client-server with Python so the two act like a web server and web browser. The Client (Blender) sends the commands to the Server (Pi) which is listening and acting. I doubt the Wifi latency would be noticeable.


text:
How to check if an object has a particle system or other modifiers
I have a few objects in my scene and I sort them in collections based on the some parameters of the applied particle systems. No problems here. I would also like to check if an object has a particle system applied or something like a collision modifier. How would I go about doing that?
I have tried the len(obj.particles_systems) == 0 as my condition but that didn't work.
Thank you in advance!

The modifiers type are given here.
And you can simply test the type you want from that (including 'PARTICLE_SYSTEM' or 'COLLISION').
Here, they are simply printed:
import bpy

obj = bpy.context.object

for modifier in obj.modifiers:
    print( modifier.type )


text:
How can to link the colour of a point light to the RGB colour of another object in the same scene?
In my scene I would like to link the colour of the point light to be the same as the colour of another object, which is determined by the shader applied to that  object. The output of that shader is driven/dependent on the rotation of an empty. How would I go about doing that? Is it possible?
Thank you for your help!

Why don't you drive the color of the light exactly the same way with the rotation of the same empty?

@MartynasŽiemys I did do that, but it only works with cycles. The node tree of the shader has a 'color temperature' node so I can't just write out the expression with drivers.

"The node tree of the shader has a 'color temperature' node so I can't just write out the expression with drivers." - Why? This is very confusing. Could you provide the full context of your problem? Could you describe it in full and provide sample files, screenshots, all the relevant info? What are you trying to do? It's too much guessing. How are people trying to help you supposed to know you have a color temperature node for example if you don't tell us that? What else do you have in the set up? What is it for?


text:
How to create a dictionary of all values of addon parameters?
I have a class PG_Parameters (PropertyGroup) where all the addon parameters are stored. I would like to create a dictionary, where keys are names of the properties and the values are the values of the properties.
Typically a dictionary of class variables could be created like this:
dict = {key:value for key, value in PG_Parameters.__dict__.items() if not key.startswith('__') and not callable(key)}

But the resulting dictionary is:
{'bl_rna': <bpy_struct, Struct("PG_Parameters")>}

But I would like to get:
{'my_int': 1, 'my_float': 2.3, 'my_string': "example_string"}

How could I approach this?

You can use __annotations__ to access your custom properties instead of your conditional list comprehension:
import bpy

my_props = bpy.context.scene.my_props  # Access your custom properties (Replace if needed)
props_dic = '{'  # Open dictionary
for prop_name in my_props.__annotations__:  # Loop over all custom properties names
    value = getattr(my_props, prop_name)  # Access this particular prop value
    value_str = f"'{value}'" if type(value) is str else str(value)  # Transform it to string or add commas if it is already a string
    props_dic += f"'{prop_name}': {value_str}, "  # Add a new entry in the dictionary
props_dic += '}'  # Close dictionary
print(props_dic)

Be aware though that it will only work for 'simple' values, like floats, strings and booleans. If you have more complexe values, like Vectors you will have to add that to your parsing method.
Further and further reading.


text:
Object Joined in Edit Mode Doesn't Look the Same In Object Mode
I am having the problem where I snapped two meshes together in edit mode but it doesn't show up in object mode.  Anyone know why this is happening.  I thought it might be because I duplicated something that has a displace modifier on it and then tried to join those two together.  The draw type isn't set to bounds by the way.  Thanks!

could you share your file?

@moonboots I actually got it figured out.  It was the displacement modifier.  I just sub surfaced a rectangular prism and it worked.  Thanks though!


text:
Does having lots of add-ons enabled slow down blender?
Also, does it slow down the viewport?
Thanks!

Which addons? I'm sure some will some others won't, as it stands this question is too vague

The amount is irrelevant, the kind of the addon is important. Some slow Blender some don't. If they run modal operators or app.handlers they probably do slow a bit.

plus poll and draw methods it's all additive, it's unlikely to speed up blender.  How to determine the one{s)  slowing down the system most is an interesting q.

As mentioned in the comments, the real answer will depend on what addons you enable. Many addons simply add an operator to perform a task and will not add any noticeable difference to the general use of blender, but it is possible for an addon to inject tasks into blenders handlers that will be run almost constantly, if these are slow then it can add a noticeable slow down to many areas of blender.
In general, the more you save as enabled so that they are loaded on startup, the longer blender will take to start, larger addons like animation nodes affect this more than most of the simple addons that are available. Once blender has started and is responding to user input you are unlikely to notice any difference with most addons that are available.
As you tagged your question as cycles related, addons aren't used by cycles and won't affect rendering times. OSL scripts added to a material can affect render times.


text:
Object Disappears in Camera View Even After Clipping Distance Adjusted
I am having a hard time getting an object to show up in my scene.  I already checked the clipping distance and I have messed with the layers to make sure I can view all the layers.  Any ideas?

The clip' you are editing is referring to the world.

This does not influence the final rendering.

What is affecting your scene is the clipping of the camera. This is where you should increase your camera to crawl further.

Glad to have helped!


text:
Possible Python Automation With This Particular Material
I just had a quick question.  I am starting to get a bit more adequate with Blender in terms of getting to photorealism.  In the picture below is a model that I got online and I am wanting to edit the material for the keys to make them look more photoreal.  My question, is if there is a way of automating the material so that after I have one photoreal material on one key it will do it for the rest of the keys?  I know that I can make one material, assign that for all of the keys, and go in and change the images for each one but I feel like there is a way to automate this with python.  Any thoughts?

Looks like a job for the Object Index pass. I can't answer right now, but I should be able to whip up something later.

Yeah that’d be great!  @seaturtle

I added a preliminary answer on the Object Index pass. More info coming later about your specific use case (separate images for keys, etc.).

Hey sounds good @seaturtle.  That makes sense and thanks for sharing!  Will look for the images/letters and get back to you after that as well

@drSybren's answer is better than what I had come up with, which effectively did the same thing in a very convoluted way rather than using the tool that was designed for it. (:

I would use two UV maps for each key. One is shared between all keys and maps to the key texture without letter. The second is a different UV map for each object, with one big texture containing all the key letters; having a different UV map for each key, each gets their own letter. No need to worry about the material itself then.
You can even use the UV Project modifier to project the letters on each object; no need to manually make all those UV maps.

That's smart! Probably easier than my answer, too.

It sounds like you want to use the same material on multiple objects, but be different on each object. You don't need Python for this.
What you need is the Object Index pass.
To set it up, go to the Object properties (the cube) and change the Pass Index, for example 0, 1, 2, and so on:

Then use the Object Info node to do something with it in your node tree. For example:

Which gives this result:

(The Multiplexer node is a node group that acts like a Mix node with more than two inputs. More info in my question here. You don't need it, I just found it helpful.)

More info coming later, on different letters/images in specific. I don't have time for that right this moment, though.


text:
How to get a Fresnel node to only affect one part of an object? Ie) The top of an object
Just had a quick question.  In the image below, I am trying to get dust to show up at only the white parts of an image.  I am trying to get a PBR dust effect where when you look at it, at an angle, you can see the dust film better.  I know you do this with a fresnel node.  The trouble that I am running into is that there is fresnel on the whole object and where white is on the object, that's where dust is supposed to be.  I was able to access just the top parts of the model where dust should physically lie (second image below) but I can't figure out how to get the fresnel effect to work only on this top data.
The problem where I am getting fresnel everywhere:

The top facing values where I only want the fresnel to work on (I want it to work on the white values):

What're your guys' thoughts?

You are currently blending the fresnel and topside(normal) masks using a mixRGB node set to "mix". This gives you a blend of both masks. Sounds like what you're actually after is the area where both masks are non-zero, so the blending option you want is "multiply". You can either change the mode on the mixRGB node to "multiply", or replace it with a math node since these are float values (grey socket) rather than vectors/colors.

@JTtheNinja thanks the math node set to multiply solved it!:)


text:
How to UV map low res textures.
So what I want to know is how to UV map low resolution textures. When I was exporting my UV layout it said the size of the UV layout was going to be 1024x1024 but I need the textures on my model to be 64x64. I was wondering if I put my 64x64 textures inside this 1024x1024 UV map in an external image editor then re-imported that UV map with my textures, would that keep my textures 64x64? I doubted that so that's why I'm here asking how to UV map low res textures. I'm new to using blender so sorry if this is a really nooby question.

I think what Duarte was trying to say is that the resolution of the textures doesn't matter for the UV layout. UV coordinates are bound to the mesh, not to the texture.
You can create a 1024x1024 texture in blender, then resize it in whatever image manipulation software you use. For example I tend to create quite hi-res textures (4k and above) in blender, baking them and later resizing them in gimp to whatever size the final result should have. The only problem is that you are losing detail on your texture map, the UV layout fits perfectly, though.

Ok so, if I export the UV layout and then in an external image editing program I move my 64x64 textures to fit inside the uv layout image, the textures will still be 64x64? So when I export the UV layout, all it really is, is a reference for me when I'm in a image editor? Of course, I delete the reference uv layout after I'm done positioning my textures so they fit inside the UV layout.

Just scale down the 1024x1024 texture to 64x64. No scaling, no moving around.

The textures I'm using are already 64x64, i placed the 64x64 textures on top of the 1024x1024 uv map. If i were to scale down the 1024x1024 uv map with my 64x64 textures on it  they would be way to blurry afterward. Sorry if this is getting annoying.

Maybe you could post a screenshot? 64x64 is quite a small size for textures. Since this size doesn't contain much pixels the result will be blurry and it has nothing to do with the UV layout.
A diffuse texture is a digital image, nothing more. If you would downscale a photo (reduce its size from 4k to 128X64 pixels) it would also be blurred if you try to upscale it again.

http://imgur.com/8jYP6Qq

What I need is the textures inside the UV map to stay 64x64, now I know they will stay 64x64 but if I use the uv map for a reference and then save that file the textures will be saved in a 1024x1024 image and I can't have that. So should I upscale the 64x64 textures to 1024x1024 then apply those textures to the 1024x1024 uv map then down scale the entire UV map 10 64x64

also do you know how to export an obj file from blender with your textures on it?

One again: You don't "scale" uv maps, you scale texture images. UVs are bound to the mesh.
Create the 1024X1024 texture in blender, open it in gimp or whatever you use, scale it down to 64x64.
If you hand-paint it. I'd suggest you wait with the downscale until you're done with painting. If you want to bake something in blender, bake it to 1024x1024 then scale it down.
Sry, I really don't get the problem with it....

From my limited experience with UV unwrapping exported UV layouts are purely for reference purposes while creating your texture, you don't "re-import" them to Blender.
Texture coordinates (or the UV layout) is stored inside Blender on the mesh itself, the 1024x1024 image you export is used only for knowing what goes where while creating/painting your texture in whatever graphics editing program you want to use.
You can directly create a new image with whatever resolution you need (higher or lower) and use it as texture inside Blender without worrying about image size.
UV coordinates automatically adjust to whatever image size you choose, you only have to be careful to keep the same image aspect ratio so that your texture wont be stretched. As long as you maintain the same width and height proportion it should be fine.
Just  create a new 64x64 image, paint your texture vaguely respecting the exported UV layout (you can overlay it for reference) so that it matches the correct parts of the mesh.

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


text:
load sculpt mask from file?
Is there any option in blender to load a sculpt mask from a file?
Let's say I want only affect the sharp edges of a mesh in multires sculpting and flatten them (the edges of a stone sculpture, for example). I would create a cavity map, load that into sculpting mode as a mask and could merrily proceed to sculpt only the sharp edges.

That would be just some sort of reference and wouldn't have any masking capabilities. My main idea is speeding up the workflow.

Seems that I wasn't clear enough. Do you want to have possibility to sculpt using image texture as a mask for your sculpting brush ?

No. Imagine a hi-poly model of an old worn stone sculpture. The sharp edges would be withered. Now we assign a cavity texture to that model which "masks" sharp edges white, while everything else would be black (masked out, not affected). Now imagine how fast it would be to sculpt over the sharp edges without changing the rest of the model.
Instant worn edges in hi-poly to be baked onto a normal map.

Well, the problem seems to be that image texture can't be applied to sculpt brush according to UV map. Still you could try execute Dirty Vertex Colors in Vertex Paint mode with appropriate setup, use Vertex Weight To Vertex Colors addon to transfer colors into vertex group, add Smooth modifier and choose that group in options of the modifier; it will smoothen only given vertices, according to your setup.

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


text:
Can shaders created in Blender Shader Editor be exported as OpenGL shaders in versions of Blender 2.9x?
I have created a shader in the Blender Shader Editor, since I find it very powerful and easy to use. I would like to export this shader so I can use it outside Blender. Is this possible for versions of Blender 2.9x?
Thank you!

https://blender.stackexchange.com/questions/57531/fbx-export-why-there-are-no-materials-or-textures/57541

@DuarteFarrajotaRamos Thank you very much!


text:
How to get RGB material output for points in the UV coordinate space with blender Python?
I would like to get the RGB output of a material at specific UV coordiantes. Is this possible to do with Blender Python?
So basically I have a plane with a procedural material applied, and then I would specify a UV coordinate to a function and the output of that function would be the RGB value of the applied procedural material at those specified UV coordinates. I am looking for that function.
Thank you!

You can use Python to create a temporary scene with a light, camera, plane using the material, render the scene, read the pixel value. You will have to use some arbitrary data, for example the resolution and sampling rate may drastically change the value of a given pixel in some cases...

Maybe baking the material with an emissive shader would achieve that ? You can't do it in realtime though I'm afraid


text:
Straight edgeloop
I recently moved to blender from maya to give a try.
I followed feew guides and videos to have an idea how it works and makemy first 3D model of a weapon. Now i have the edge loop i made to have like a small spikeblade on one side and i dont know how to make it straight. I tried by using the move and shift+z but nothing.

Any idea how can i make it?

So you want the selected vertex at the same level as the others in the horizontal edge?

Can you just select the edge loop, press S, Z, then type 0 to give it a z scale of 0?


text:
Blender 2.8 Eevee - Linked Collection with Disabled Rendered Visibility Objects are Rendered?
I've been trying to find and answer to this. I have a linked collection containing an object that I've disabled Rendered Visibility.

However, whenever this collection is linked into a new scene, the object that has Rendered Visibility toggled off, that object is rendered!

If I switch to Cycles, the object is not visible, so this seems to be an Eevee issue. How can I link a collection containing an object that I don't want rendered and have it work in Eeveve?

not sure what your problem is, but that model is awesome. ;)


text:
How am I able to rotate around?
Why can't I rotate around in Blender? I am holding my middle mouse button down but it is not working. I have to use the thing in the corner as of right now.

May be you messed up something in the preferences. Reset the settings.

I already tried that. Every time I click the middle mouse button it says move to collection. How do you think I can fix this?

Nevermind. I fixed it changing some settings in my mouse's software.


text:
Navigation tools in 2.8 not working
When Im in blender 2.8 I click the tools at the top (the hand and the zoom tool) and they do nothing! I know how to scroll to use them but they don't work. I will build and stuff and then like 5 minutes into it the tools slow done and then they completely stop so then I am unable to move around my world

Or rather than zooming in and out use ⇧ Shift + ` (Backtick also know as Acent Grave) and fly with WASD keys

When this happens to me, I can usually get it back to normal by selecting an object and hitting Numpad . to reset the view to that object.


text:
Does the NVIDIA Quadro FX 5600 1.5 GB. meet Blender 2.8 minimum system requirements?
I have a NVIDIA GeForce 8800 GT 512 MB witch runs problem less Blender 2.7, but as much as I tried to run Blender 2.8, it does not work.
I have considered to buy an NVIDIA Quadro FX 5600 1.5 GB. but I need to be sure that it runs Blender 2.8.
Has anyone tried it out?
I hope to get an answer soon

I'm not sure about that specific card but it should work even if it is legacy (cycles GPU compute may not work Eevee will still work). I have a  Quadro 2000 and blender works fine on mine (for most work loads). After looking at comparisons between the 2 the Quadro FX 5600 is better than mine therefore it should work with blender.
Graphics support

Thanks a lot for being that fast, but I forgot to mention that I would use it on Mac (Mac pro early 2008) do you think it will still work

Here are some threads most say basically if you buy the mac compatible version It should be fine but check I'm not sure. https://discussions.apple.com/thread/6679157 https://forums.appleinsider.com/discussion/81477/nvidia-quadro-fx-5600-inside-macpro


text:
radial gradient not working as expected
So I was trying to apply a "radial" gradient on an object's front but for some reason it seems like the gradient got "stretched" and the gradient spanned across the objects and not just on a single object.

If you look at the screenshot, the left circle and the 2 small circles are both using the same material. The left one kinda looks about the same as what I had on the ColorRamp. But as you can see on the 2 small ones, the gradient spanned across the objects which isn't what I really wanted. The material is on the bottom

please provide blend file

you did mirror your object(circle) on the x-Axis.
Therefore you moved the vertices on the x-Axis while your origin of the object is still in the world center.
so you get this:

you will get this, if you move slightly the x slider to the right (hold Shift while dragging)

to "solve" your problem, you can:

apply the mirror modifier

select the small circle and press tab

separate by loose parts

tab -> object mode

select each circle and set origin -> to geometry

set the x value in the shader back to 0

and you get:

And if you don't want to apply the mirror, you could use the UV coordinate space (but then shift it by 0.5 on both axes).

This approach worked for me. Shame that I have to apply the mirror, I'll just repeat the steps when needed. Thanks

When using Object coordinates the gradient will be centred on the origin of the object. Check the position of the origin of each of the objects to ensure it is centred within the geometry. If not, re-position the origin (there is a function to set origin to (centre of) geometry).

oh, I'll try that

It seems like it still didn't work

Please provide more info. In what way didn’t it work? Did it change anything? If so, what changed. It’s difficult to diagnose without more info. If all else fails, can you share your .blend file?


text:
Can metarig support adding some extra bones to it?
I already saw this because it showed as a similar question. My use case is, I need to add bones between the limbs, like an extra bone between the shoulder and the bicep. I already have a custom rig, but found out that it was quite a hassle to make it work, just from the fact that I don't want those in-between extra bones to move/rotate most of the time. So now I'm thinking of using metarig and modify it because maybe it could handle my use case and have the ik and stuff automated for me

It is possible. Actually, you can create any type of rig you want with the rigify addon. There is an excelent tutorials playlist on youtube called Rig anything with rigify by CGdive. You should check it out.

Ok, will check that out

@mqbakamqbaka Thank you for the mention. I am biased for sure but that's what I would recommend too :)

@CGDive, didn't expect you to pop up here ! Thanks for everything and keep up the good work !


text:
Keyframe not working
I'm new to Blender and I don't know what is happening. When I want to do an animation, first I select all the parts of the rig at frame 1 and insert keyframes. Then, I go to frame x and move the parts I want.
My problem is that I'm trying to do the same with the eyes and when I close them, they are closed at every frame, even at the first one. What I am trying to say is that it's not doing the animation, the eyes are closed by default when I do that.
I'm a beginner, so I have not created this model, but the eyes are controlled by these (if that's of any help).

Please upload your file

I don't know if there is a way to upload it, so here it is: https://mega.nz/#!u1JEzAoa!f82G_TN0V7ZX_7AaKuS7V0Cv4LtmodWU8cGpD-olBkc

Your keying set is "LocRot", every time you press I or place automatic keyframes, some Loc and Rot keyframes are created, but not scale values.
Your blinking eyes are drived by a scale value, so simply set your keying set as "LocRotScale" and you'll be OK.

Oh yes, thank you very much, I thought I have tried that before but it seems not.


text:
Fixing Spiral Topology
Trying to create an all quad mesh and I keep getting these spirals in my topology.  Any good tips on getting rid of spirals like this?

Go into edge mode ⎈ Ctrl↹ Tab and ⎇ Alt RMB select the spiraling edge loop. Follow it untill you hit a pole vertex with an uneven edge count.

Starting from the pole vertex, ⇧ Shift RMB select the chain of vertices which is perpendicular to the spiraling loop. V Rip them, then make new faces F joining the correct vertices on both sides.

Still images of step 2 (for clarity):


text:
Expression Language for Compositing Purposes?
I am really unfamiliar with Compositing in Blender and couldn't find any questions about this in my research.  Does Blender support expression language for compositing purposes?
Ie) G=R>G?(R+G)/2:G
If so, how would I go about doing this?
Thanks!

Sorry Tyler,
this is currently not possible. Someone might be able to create an add-on that converts the expression to a node setup. But I don't think this has been done yet. It was on my mind to implement this, but haven't got time to do this yet.

Oh gotcha.  Hey that’s good to know though.  Thanks for the response:)


text:
Fire Simulation Not Rendering
Been working on this fire simulation.  I'm new to the simulation but have done a ton of fiddling around with settings and looked at some questions.  Why is the domain not rendering correctly?  It's rendering as a solid cube (bottom picture) instead of the simulation.  Also, I am in Cycles Render.  Thanks in advance,
Tyler

@JtheNinja, unfortunately not.  Nothing in there helped:(

You don't have the correct material for the domain. You used a diffuse material for the domain, so it's definitely going to be just another box. The cube on the viewport is just in wireframe draw type, which you can find and change in the object settings.
In Blender Render people used Voxel Data for Smoke Simulations to make the domain transparent and to only show the fire or smoke that you're rendering. But in Cycles there's this Attribute node. Now I have no idea why or how it works, but it works so I'm using it. Here's the node setup I'm using.

You can change the color of the fire with the color ramp, and you can change the density of the smoke and the amount of light the fire emits by changing the value on the multiply node.
About the Attribute node, you can find more about it here if you wanna see what else you can do with the smoke simulation: https://docs.blender.org/manual/en/dev/render/cycles/nodes/types/input/attribute.html

Hey thanks @Rogue Lotus 4 that was the answer!  It wouldn't let me tag you because I think this is closed but sorry for the late reply.  Was gone all weekend.

@TylerDahl It's alright. Glad you found your answer. :DD

Still helpful advice but the link (https://docs.blender.org/manual/en/dev/render/cycles/nodes/types/input/attribute.html) not longer works.


text:
Fade in out layers in cycles blender
I need to do an animation and I have issue to fade in object because I use mix shader on material but unfortunately, when the objects fade in, I see the faces on the backside of the object due to the transparency I think.
I have tried to put the object in layer and fade in the layer but the object is always visible (no fade in effect).
Do anyone know the node graph to achieve the fade in of the layer?

Either do it in post production through he compositor by animating the opacity of a separate render layer, which is probably a whole lot easier and computationally cheaper. Or make a shader that masks backfaces and makes them invisible.

When you say "fade in the layer" are you talking about render layers?  If you are using an Alpha Over node in the compositor to overlay your object on your bg, you can simply animate the "Factor" value of the Alpha Over node using keyframes.  This does require you to set up (at least) two render layers, one for your object and one for your background, and to check "Transparent" under "Film" in the Render tab.


text:
Location Modifiers gets lost after exporting to collada
I'm trying to import an 3D-Model which I have created with blender.
My goal is to resize the 3D Frame accordingly programmatically with the help of an armature.
I could achieve this within blender but unfortunately when importing the .dae file in Xcode it looks like one location modifier was not applied...
Underneath the described behavior:
BLENDER

XCODE

Is my armature wrong assembled or does anyone has a better solution for this problem?
Thank you in advance!!!


text:
What is the shortcut to Select Linked Flat Faces in 2.8 Beta?
In 2.79 it was SHIFT CTRL ALT F
Now I can't seem to find it?

you have to right click and assign your own in blender 2.80


text:
How do I view Annotations (i.e. pencil strokes) in the Sculpting Workspace?
I am using the Annotate tool via D+LMB in the default Layout Workspace, and it works fine.
When I switch to the Sculpting Workspace, all the pencil strokes turn invisible! I can still draw, but they're just not there. How do I make them visible while in the sculpting workspace? Thanks.

Open the Viewport Overlays options and enable Annotations. This will allow you to view the pencil strokes in the Sculpting workspace, where this option is disabled by default.

Thank you, much appreciated! :)


text:
How to create toggle button use python in blender
I want to make a toggle button for my custom operator. It works similar to checkbox: once the button is clicked, the operator keeps running until the button gets another click, so will the button itself greyed out. I tried to achieve the grey-out effect by implementing poll() function like this:
@classmethod
def poll(cls, context):
    return context.area.type == 'VIEW_3D' and context.region.type == 'WINDOW' and plane_toggle_flag

Every time the button is clicked I want the toggle state to change, so in the operator's init(), I write:
def __init__(self):
    plane_toggle_flag=not plane_toggle_flag

However, it seems as long as poll() returns false, the init() function never get the chance to be called. Any idea how to solve this? Thank you in advance.

Create a bool property for Window Manager (it can be for anything, but WM will store our modal operator handler so why not put this in the same place):
bpy.types.WindowManager.my_operator_toggle = bpy.props.BoolProperty()

Display it somewhere in the UI with the toggle tag on:
layout = self.layout
wm = context.window_manager
label = "Operator ON" if wm.my_operator_toggle else "Operator OFF"
layout.prop(wm, 'my_operator_toggle', text=label, toggle=True)

It looks like this:

Create your modal operator (example of basic timer):
class SomeModalOperator(bpy.types.Operator):
    bl_idname = "my.operator"
    bl_label = "My Operator"

    def modal(self, context, event):
        print("running")
        if not context.window_manager.my_operator_toggle:
            context.window_manager.event_timer_remove(self._timer)
            return {'FINISHED'}
        return {'PASS_THROUGH'}

    def invoke(self, context, event):
        self._timer = context.window_manager.event_timer_add(0.01, context.window)
        context.window_manager.modal_handler_add(self)
        return {'RUNNING_MODAL'}

The operator ends itself when the bool property is False.
Add update function to the bool property that will run the operator:
def update_function(self, context):
    if self.my_operator_toggle:
        bpy.ops.my.operator('INVOKE_DEFAULT')
    return

bpy.types.WindowManager.my_operator_toggle = bpy.props.BoolProperty(
                                                 default = False,
                                                 update = update_function)

The modal operator is useful when you need to handle user input. For anything else it is better to use app.handlers, you can toggle them through bool property in similar fashion.


text:
Floor plane reflection
For testing purposes I have created a simple HDRI with HDR Light Studio that is visible in the reflection of the box.

Now I want a floor plane reflecting the exact box above without interacting with the scene at all. But the reflection on the box has changed when the floor is visible.

In the "Objects"-Tab I can disable the glossy-rays for the floor so the reflection of the box looks as desired. But this way the reflected box won't show any reflections at all.

Is there an other workaround for it? Blender scene is added.

As for the reason why it is happening, it is because the main direction of where your HDRI's light is coming from is from the bottom right corner of your image, and the floor is blocking that.

In order to fix that, if you go to the node editor, change the view to world shader and add a mapping and texture coordinate node for your HDRI, you can adjust the tilt of the HDRI.  If you connect the generate output of the Texture Coordinate node to the input of the mapping node and the output of the mapping node to the input of the Environment Texture, then you can control the angle of the HDRI.

You can use the rotation values in the Mapping node to adjust the HDRI's angle.

But what if I want to keep this reflection exactly where it is? Is there a way to prevent the plane blocking the light?

You can either rotate both of the objects or rotate the HDRI, I don’t know if I’m understanding you correctly but if you rotate the HDRI it won’t affect the scene, just the lighting, you could have a duplicate render layer layered over the cube but that wouldn’t change the reflection