text:
How can I make a 1 side UV texture?
Hey guys!
Today I'm here with another question, since I finally fixed my last Blender problem ^^
(I'm still using 2.79, but I'll move to 2.8 soon, when I get used to it)
The question is:
How can I make a 1 side UV map texture, that auto reflects any edit on the other side?
Example...
I already made a anime face, but when I unwrap it, it looks like a 2D paper, showing both sides of the face... as normal.
If I add a design, such as freckles, blush, or tattoos to only the right side of the UV texture... obviously, it's not reflecting on the left side, since I just edited the right side.
So, I want to make a UV mapping like the reference pictures below...

U can see that in the reference pictures, it only shows the Right/1 side of the face, and if I make a deco on it, it auto reflects on the other side perfectly symmetrical.
Also, every part of the face is edited on just 1 side, and reflected to the other side symmetrically, like the eyes, eyebrows, lashes, mouth, etc...

It only needs 1 side of the UV to perfectly texture the whole face, like when you take a piece of paper, and fold it in the middle.
I've already been looking for days for a lot of UV/Texture tutorials on YT and Google, typing all keywords possible, but I can't find a clue...
None of the tutorials and manuals I checked, explain nor show a way to achieve this.
If you guys can please explain me how to do this, or send me some links to useful tutorials explaining this, It'll be really appreciated ^^
Thank you all for your help, I will be waiting for your answers!
See u later guys ^^

Here you'll find an answer: https://blender.stackexchange.com/questions/91282/texture-mirror-in-paint-mode but I can't find any symmetry in 2.79, it must be possible with some addons. But you can use the other trick he gives: Delete half of your object, give it a Mirror modifier, unwrap correctly one part and it will symmetrize on the other side. Apply your modifier.

@moonboots. Thank u so much! I'll try it right away ^^


text:
How do I properly fit this tail with IK?
I have this tail rig that I'm using IK to animate with. I'm fairly new to rigging and IK, however, I've come this far:

The problem is I want to have more control over the curve that the IK Target creates, for example, this rig only bends downwards, I'd like to be able to change the bend without having to rotate any parts as it causes bones to move out of place.
Any tips/help would be appreciated, thank you.

Perhaps use a spline IK: The chain of bones conforms to a curve object. Then you can control that curve in a separate rig using the Hook modifier.

This is the perfect time to use a pole target! Essentially its another bone that the IKed bones will bend toward. Also if you make its parent the IK target, its especially easy to use.

Can you add some more detail? This answer tells the questioner what they need, but doesn't really explain how to do it.

source: Stack Exchange

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

sort: votes


text:
How can I make my tail animation smoother?
Lately, I've been trying animating on blender, at this point I'm not even sure if I've mastered the basics but in an excited hurry to utilise blender's animation editor I created this choppy, inconsistent mess with a tail model I rigged and a few other unrefined works just like it:

It doesn't take a second glance at it to realise how awful it is. I'd like to make the animation more smooth and I'd greatly appreciate any tips/advice that would help me in doing so.
This is the dope sheet for the animation:

Thank you

A smooth effect is extremely easy to create, utilizing interpolation in 3D animation. Make sure your bone chain is fully forward kinematic.

Set a key for both extreme position and copy the first extreme and insert it at the end again. This results in the two keyframes A > B > A'. I created the pose by switching to Individual origins so that I could rotate all of the bones at once. I created the inverse keyframe by ⎈ Ctrl⇧ ShiftV pasting the pose.

Make the animation repeat by pressing ⇧ ShiftE in the dope sheet and selecting Make Cyclic.

The child joints of a chain would move after their parent joints. This is what the overlapping action principle of animation embodies. Grab the keyframes of the child bones and offset them one by one.

If you want more overlap (resulting in a snake-like action) increase the offset of the keys.
If you want less overlap (resulting in a more stiff / rigid action, e.g. a dinosaurs tail) decrease the offset of the keys.
If you want more movement in general, go to the graph editor and scale the curves along their Y axis.
If some joints are shorter than other, their animation would likely have a smaller magnitude. This can be respected while setting the keys in the beginning.
Adjacent shorter joints would also have less offset in timing than adjacent larger joints.

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


text:
Object visible only from the bottom
When I place my fbx file in unity it's only visible from the bottom, when I look at it from the top I can't see anything. How can I fix that?
This is how it looks in blender: https://i.sstatic.net/IRjng.jpg
This is how it looks from the bottom in Unity: https://i.sstatic.net/EWjsL.jpg
This is how it looks from the top in Unity: https://i.sstatic.net/juktp.jpg

Include screenshots inline into the question body please; see how; if link for the screenshot goes down (e.g. you remove images from Imgur) this question won't be quite clear any more.

Most likely, the normals are facing the wrong direction. Unity doesn't render the backside of polygons, while blender does.
Try flipping the normals around. The reference for doing this is here.

To spot problems like this early you can enable backface culling in the 'N' panel (toggle open with N key). Then your mesh will display similarly to game engines. To make your mesh visible from both sides, you can also try the solidify modifier.

Please include some details in the answer itself on how to flip normals, just in case that manual link is unavailable at some point.


text:
Unwrapping creates incorrect mesh over texture (picture) on UV editor
In the process of Resculping from Grayscale to 3D Mesh With Blender, when i do an Unwrap on the left window (3D View) I get a grid on the right window (UV Image Editor) , but the grid doesn't ocupies the whole picture, just occupies the lower part of it.
What should I do solve the problem?
Regards,
Damir
[![enter image description here][2]][2]

Try to apply scale and rotation before unwrapping (CTRL+A). If doesn't help, than rotate workspace 90 deg (keypad numbers 4 or 6) and unwrap "project from view (bounds)"

Have you tried to do a smart unwrap?

Procedure that caused the problem:
1. Creating object (Plane)+ its dimensions
In 3D View; Object Mode:
Add\Mesh\Plane
Dimensions: x=82; y=313; z=0
2. Defining properties
In Properties:
Define material (doesn’t matter which one),
Define texture - by opening (importing) the picture (.jpg) file.
3. Adding Second window – UV Image Editor
Splitting area, so that I can see two working windows.
A new window is located on the right side. Switch  to ‘UV Image Editor’.
4. The picture
Import the same picture that was used for texture into the new (UV Image Editor) window.
5. Creating a mesh
Going back to left window (3D View window),
Change mode to ‘Edit mode’,
Tools\Mesh Tools\Subdivide
Repeat ‘Subdivide’ 3-4 times.
Note that the cells of the mesh that appears are rectangular shaped!
6. Unwrapping
Mesh\UV Unwrap\Unwrap
7. The Problem
That’s the point where the mesh is also shown over the picture (in UV Image Editor), but it doesn’t cover the whole picture. That was the main problem!
Note also that the cells of the mesh over the picture are square shaped, while the cells of the mesh over the object (in 3D View) are rectangular shaped!
It is not possible to reach the goal by changing dimensions or scale of the object (left window\Transform\Scale or Dimensions), one can’t obtain the goal – i.e. cover the whole picture.on the right window with the mesh!
Correct procedure:
1. Creating object (Grid)
In 3D View; Object Mode:
Add\Mesh\Mesh
Add Mesh\X Subdivisions = 82
Add Mesh\Y Subdivisions = 313
Dimensions: x=82; y=313; z=0
Note that Grid object type allows mesh to be subdivided unequal number of times on x and y axis, unlike the Plane object, that allows just equal number of subdivisions on both axes! Thus, using Grid,  one can obtain almost square shaped mesh on a rectangular (82 by 313 points) shaped Grid object!
2.   In Properties:
Define material (doesn’t matter which one);
Define texture - by opening (importing) the picture (.jpg) file.
3.   Adding Second window – UV Image Editor
Splitting area, so that I can see two working windows,
A new window is located on the right side, I switch it to ‘UV Image Editor’.
4.   The Picture
Import the same picture that was used for texture into the new (UV Image Editor) window.
5.   No need to create a mash here! It was already created In 1.
6.   Unwrapping
Mesh\UV Unwrap\Project from View (Bounds)
Note that the unwrapping here is done using a different option – ‘Project from View (Bounds)’.
That’s the point where the mesh is also shown on the right picture (UV Image Editor), and now it covers the whole picture!
Problem solved!


text:
Why i cant punch a hole through the mesh?
With the BoolTool Addon why i cant punch a hole. Why its making a groove. I check the orientation of both the faces. Scale and rotation are also 1 and 0. Any suggestion whats going wrong. Thanks

This is essentially a shading issue: use autosmooth in the property panel. That will avoid the rendering to be annoyed by the normals of the faces created by the boolean.

To fix the little tube that goes bad, just shift it a bit.
Also the tubes are opened at the bottom. They should be closed.

Thanks for the quick solution

Adding some loop cuts to the main part of the tube will help a lot, too. The boolean holes need to connect somewhere and there isn't a lot of geometry along the length.


text:
Why the material showing white (different color)
I have 2 mesh with same material. In the slot i have 1 material (red material) applied on both mesh and curve. Why in render and view-port its showing white color

Any suggestion why its showing white material to curve.

You've enabled the Shadow Catcher option in the Properties panel > Object > Visibility, disable it.

Thanks. But if i want shadow catcher then whats the solution

what do you mean, why do you want Shadow Catcher on this part, and in that case why not create a second object with Shadow Catcher?

This sounds like a misunderstanding: Setting a part as Shadow Catcher is a trick that helps with overlaying 3D renderings onto 2D Backgrounds. Such a part does not really show in the final image itself, it only shows the shadows thrown onto it, the rest is background color.
In Cycles, any material catches shadows by default (this is what the "Shadow"-toggle in the "Ray Visibility" panel above is for). So if you want a solid part with shadows, go with the defaults and get rid of the Shadow Catcher option.


text:
Why mesh not smooth
Why mesh not smooth, shade smooth & Auto smooth activated. Still mesh have lines over it. Mesh is divide couple of times and also subsurf level-4 applied. Whats missing or why mesh not smooth. Normals are also in correct direction

check the resolution size and try increase and then find the result.

Place the curve modifier before the subdivision surface modifier.

Why:
If done after, the subdivided surface will be shrinked/reduced to the curve resolution.


text:
How to fix array after separate?
Creating a cabinet. I have created a cabinet and array. I want to separate the door with array. As show below. When i select the door and hit separate the door loose the alignment. I have to adjust manually to fix the door. Any way to fix the door with array align after separating. Thanks
Gif

Make sure you use constant offset in the array modifier.


text:
How to get the lights on edges
Im looking to get real world effect. I have attach this reference image what im looking for the final result.

I tried to get it but did not get the result as per the reference images are. I cant get the lights on the edges as seen, And the image to center its glowing. Any suggestion or help with the real world. Thanks
my result

Is that frame something like this: https://www.dentalprimary.com/shop/crystal-led-frame/ ?

Edit: It seems to be from the geometry in the blend file. How accurate are your dimensions?


text:
My final render is completely different from my viewport window
I know this may be an easy fix, and I'm just not looking hard enough, but how am I supposed to have my final render look completely identical to my viewport display? I have taken the time to set up a semi-realistic glossy texture for my eye, but every time I render it, no matter which settings I tamper with, my final render's texture looks like paper. Any possible fix would be appreciated.

It looks like you're using one of the built-in HDRIs (interior.exr) for the viewport shading (Scene World is disabled). You will have to setup your environment texture for the world, which is used for the final render. The viewport shading options are only for a preview/look dev.

Thank you! Problem solved.


text:
Blue glow bleeding around hair (repost with screenshot)
this is a repost of an issue that I failed to provide a screenshot for. I am using blender 2.81 with eevee rendering, and every time I add hair of any color, there is this weird bluish glow around it. I have tried disabling screenspace reflections, tried changing the color of the hair, and even checked to see if bloom was enabled. I'm wondering if this is an undiscovered bug with eevee. Any help fixing this annoying issue would be much appreciated.

My guess is you have your Subsurface Scattering values too high on your "head".  0.05 - 0.35 is generally the range that looks best for most things (without artefacts).

Related: https://blender.stackexchange.com/questions/179560/how-to-use-subsurface-scattering-in-principled-bsdf/179561#179561

Hello and welcome. Please don't post the same question more than once. If your previous question was put on hold, address raised the issues by editing it so it can be reopened rather than post a new one, otherwise see What should I do if no one answers my question?

Hello, Duarte. Please do not comment just to tell me not to repost a question. If you don't have a genuine answer, then don't comment at all.


text:
Wacky, weird colors when entering sculpt mode (blender v2.83)
Every time I enter sculpt mode, the mesh (which should be grey) is a whole bunch of different colors. I tried changing the metacap, but the stupid colors remain. Any advice would be nice.
Picture bellow:

I've encountered this also, recently, in 2.83, and I couldn't find a pattern to explain why it is happening. I went researching it only to find no one talking about it. This leads me to believe it's a fairly new bug. But I don't know for sure.

Thank you. It's always nice to know I'm not the only one encountering the problem. My best bet is to downgrade to blender 2.82.

It happened to me too after joining different meshes together, a simple remesh fixed it

Might be something to do with face sets? - A new feature in 2.83 I believe. Check if it's turned on right at the bottom of the Viewport overlays menu. Alternatively, is 'Random' set as the viewport shading Colour?

I had the same issue for hours in Blender 2.9
It appears everytime I apply boolean modifier on two or more objects or when I join them. My assumption is that it might be because of different face densities.
The solution from John Eason is working for me. Just turn off the Face Sets.

In Blender 2.9 I had to go to sculpt mode, then there is a "Face Sets" menu in the top left corner of the viewport, click it, then hover over "Init Face Sets" then click "By Normals".

Thank you! This solved the problem.


text:
Removing reflection/shade
How should I remove the shade from that part of object?I've connected 2 edges, and that's how I got that part, but the shade annoys me, and I want it to delete. How can I do that?

At its simplest, that's probably selecting the face in Edit Mode (Face), and from the right-click menu, selecting 'Shade Flat'.


text:
How work translate=True in layout.label ? (Python Ui question)
I'm trying translate = True, in a label, but I see that no translation is done when I change the languages in the preferences, now I don't understand how this option works and if it can work, I'd like to understand if it is possible to translate automatically.
layout.label(text='My Text', translate=True)

The output on the interface is always "My text" tested in all languages.

There is no automatic translation, you will have to create a dictionary with the translations that is registered/unregistered through bpy.app.translations.register() and
bpy.app.translations.unregister(). The Manage UI Translations add-on can help you generate the tuples from which the dictionary is generated.
More information can be found in the manual and the wiki.

Thanks for the reply, I wanted to understand how to handle this, I will follow your advice


text:
Low level alternative to bpy.ops.mesh.uv_texture_add()? Blender 2.8
I was looking through the blender 2.8 bees but I can't find anything, I've seen on some forums using the bmesh module, but I'm not sure it's the right way.
I could use the operator but I already know that on large scenes inserting the ops in a "for" loop would become very slow.
bpy.ops.mesh.uv_texture_add()

You just want to add a UV map, not generating it in a particular way?

This is a good question, I noticed that by default it spreads the map on every single polygon, I would like to understand how to do this, it would also be good to understand how to simulate a "Smart uv" I didn't find much about it

I don't think smart uv corresponds to API which is not bpy.ops (to verify). But just for texture_add, you can obj.data.uv_layers.new(name="UvMap")

@lemon This is exactly what I was looking for, you should enter it as an answer, thank you very much

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

Extending the answer above further, here is how you can add a new uv_layer to all meshes in the scene and select it as the active uvmap.
import bpy

new_uvmap_name = 'UVCombined'

for mesh in bpy.data.meshes:
    if new_uvmap_name not in mesh.uv_layers:
        new_uv_map = mesh.uv_layers.new(name=new_uvmap_name)
        new_uv_map.active = True


text:
How to check if modal operator is Running from threading.Thread function?
As the title suggests, I would like to check if a modal operator is active, this using a threading.Thread function. This cola is not really easy. I have tried various techniques, but all of them lead to possible new problems.
I haven't found an acceptable method, as in the threading.Thread function I absolutely don't want to access the bpy module, otherwise Blender will crash.
Example:
import bpy, threading

def thread_function():
    while True:
        # How to Check if the modal operator "ModalTimerOperator" is running?
        print("Modal Operator is........")

class ModalTimerOperator(bpy.types.Operator):
    """Operator which runs itself from a timer"""
    bl_idname = "wm.modal_timer_operator"
    bl_label = "Modal Timer Operator"

    _timer = None

    def modal(self, context, event):
        if event.type in {'RIGHTMOUSE', 'ESC'}:
            self.cancel(context)
            return {'CANCELLED'}

        if event.type == 'TIMER':
            # change theme color, silly!
            color = context.preferences.themes[0].view_3d.space.gradients.high_gradient
            color.s = 1.0
            color.h += 0.01

        return {'PASS_THROUGH'}

    def execute(self, context):
        thread = threading.Thread(target=thread_function)
        thread.name = "Test"
        thread.start()

        wm = context.window_manager
        self._timer = wm.event_timer_add(0.1, window=context.window)
        wm.modal_handler_add(self)
        return {'RUNNING_MODAL'}

    def cancel(self, context):
        wm = context.window_manager
        wm.event_timer_remove(self._timer)

The main goal is to check if the Modal still running. Since blender could Crash, and the Thread function would go on indefinitely even if blender is no longer running (And in that case quit the thread function).
It could also happen that by running another process in Blender (such as rendering or some heavy operation) the Modal is Freezed for a few seconds, so I have to take this into consideration too.

Why not just put some kind of print statement in the modal itself? Right before any of the if event.type statements. Then you can see in the terminal if its running, because it will print every even tick.

This is one of the last things I've tried. But it has a problem. Precisely, when you use blender (For example any operator, which performs a heavy operation) it will also block the 'RUNNING_MODAL' cycle so the method you suggested, as soon as this situation is encountered, the modal will be not working, as it is Blocked Until the other operator ends

I was starting to look at the ctypes module, I was thinking of checking if the allocated memory address of the modal operator print(self) is really in use. But I'm not sure about this

Have you seen this?

import bpy, threading

thread = None

def thread_function():
    while True:

        if ModalTimerOperator.is_running():
            pass
            # print("modal is running...")
        else:
            print("modal is done")
            break

    global thread
    thread = None
    print("thread END")

class ModalTimerOperator(bpy.types.Operator):
    """Operator which runs itself from a timer"""
    bl_idname = "wm.modal_timer_operator"
    bl_label = "Modal Timer Operator"

    _timer = None
    _handler = None

    @classmethod
    def is_running(cls):
        return cls._handler is not None

    def invoke(self, context, event):
        cls = self.__class__
        if cls._handler is not None:    return {'CANCELLED'}

        wm = context.window_manager

        if cls._timer is None:
            cls._timer = wm.event_timer_add(1.0, window=context.window)
            wm.modal_handler_add(self)
            cls._handler = self

        global thread
        if thread is None:
            thread = threading.Thread(target=thread_function)
            thread.name = "Test"
            thread.start()

        return {'RUNNING_MODAL'}

    def modal(self, context, event):
        if event.type in {'RIGHTMOUSE', 'ESC'}:
            self.cancel(context)
            return {'CANCELLED'}

        if event.type == 'TIMER':
            print("do something")

        return {'PASS_THROUGH'}

    def cancel(self, context):
        cls = self.__class__
        wm = context.window_manager
        wm.event_timer_remove(cls._timer)

        cls._timer = None
        cls._handler = None
        print(" -- modal END --")

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

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

if __name__ == "__main__":
    register()

This solution works like a Swiss watch  I hadn't thought about it, the is_running() function is a great idea it will always return what I was looking for. Excuse my enthusiasm, I really want to thank you for this trick


text:
How to move a particle emitting object around a movie clip in Blender?
just wondering if we can move a particle emitting object around a video clip in Blender without using a plane with video texture. Please find a sample image below. You may also find this video for a better idea of what I am trying to achieve.
https://www.youtube.com/watch?v=fxAAr8w4VnA

What is your goal? Is there something specific in a process that interest you? Like - do you want to work with VSE "movie clip" in 3D viewport because of tools that are accesible only from VSE? I don't see a reason why one would do that? Thank you

For 2.7x there was a script that took VSE strip to Node Compositor, so probably it is possible to write a scrit that sends strip (instead to compositor) to shading nodes. Like that you would be able assign movie clip nested in material to a plane in 3dviewport ...

Hi @vklidu, thank you for the response. I am trying to wrap a sparkle animation, just like fairy dust, around a video footage. I can apply the video texture on a plane and then rotate the particle around it. But that deteriorates the quality of the video footage. There can be many other scenarios where this can be useful.

Probably my low knowledge, but what I know any app combines 2D with 3D by switching into 3D scene and does composite in the same way like blender does - takes video clip as a texture on plane. I will try to post an example - so if you can see some deterioration.Or do you have some example from others?

version Plane in 3D Scene
You didn't ask for it, but what I know all comp. apps works in that way, with the same amount of "deterioration" quality of a video footage - all apps operates with a video texture on a plane in 3D scene.
In short – If you connect a Texture node (with video sequence) directly into output (without shader) than colour information stay the same.
In Color Management switch from Filmic to Standard.

Matte tools are primitive for this technique, so sorry for dirty way I found on the way (probably exists better), or you should separate foreground in compositor properly, render it with alpha and use as image sequence, but that's another topic.
Example with particles. Green screen is taken from internet, easily find by name (Green Screen Sample | Panasonic HMC150).

Example with Smoke Simulation. GIF compression is too much here, I will try post regular render later.

version Composite
Another way (without Plane in 3D scene) is Composite - render Smoke separately with faked Z pass in Render Layer (black&white gradient as smoke material orientated in Camera Z direction), because blender doesn't handle volumetric depth and even if you want to emit smoke like a particles (plane with texture) Z pass does not handle transparency either.
Smoke for this version you can render from blend file above, but not as Render output, but enable Composite first (and delete or exclude plane from rendering). If you switch layout to Compositing you will see two Render Layers set in file - one is regular render, second with faked Z pass.
These images has to be saved as OpenEXR_Multilayer (32-bit) file format, so you would be able to get enough depth data to composite with original footage. I expected much worse result, but for smoke it worked quite well :) Smoke was rendered only with 6 samples = noisy, but expect some noise in composite anyway. These even smooth anti-aliased pixels will be used as depth data, which means - any pixel represents position in - depth. In this level there is not any anti-aliasing (if I'm right).
Result (also because of gif commpresion) is not exact, I probably changed some parameter for smoke material due testing mishmash.

For compositing is essential Z Combine node that is responsible for mixing depth data. Because video doesn't have any depth info and we need to define some position in depth for original footage, it's enough to set some grey value for Z input. If you try to move slider to white or black you will see how smoke appears in front or behinde the actor.

Using just an alpha channel from "Smoke Depth" render layer can do a good job. Colored for fun.

Thank you very much @vklidu. You are amazing!! That is exactly what I was looking for. I am sure with time Blender will add many more composition features which will make it even more powerful.

By the way, I tried the first version of the answer. I am still a bit new to Blender to try the second solution. :)

Indeed. That's the exact method I followed for the smoke effect. Though I am also trying various particle simulations with Eevee. Thanks again for the link.


text:
What's happening RE Blender Player? Has it been discontinued?
I'm a bit out of the loop, but my Mac Software update client says Blender Player has been discontinued. The current (last?) version of Blender Player is 2.79, file build date 9/14/2017.
I'm wondering what the story is behind this? I looked through the release notes going back to V 2.73 on the official Blender website and did a search via DuckDuckGo (my preferred search engine) and did not find any mention about what's going on with the Blender Player, and I looked deep clicking on "read more" on closely related topics on version 2.79 and 2.78.

This post is mis-tagged, I would have added tag "Player" but do not have enough rank to do so, and couldn't post without adding at least one tag.

Blender Player was a part of the Blender Game engine, which relies on Blender Internal Render engine.
Blender Internal Render engine was dropped due to the fact that its render aproach was quite outdated and with the release of Eevee as the new physically based real-time render engine, the developers would have had to take care of three render engines (Blender Internal, Cycles and Eevee).
Depending on what you want to do with Blender Player, there might be alternative solutions with UPBGE and Armory3D (no MacOS support, afaik)


text:
How to get 2d image from a 3d object at different heights
I have an stl file, its a pyramid (example) i want to make 50 2d images at different heights, so the first image at height close to 0 would be a traingle (the largest one) and then the size of triangle will decrease as height increases.
I am very new to blender, i have tried doing this using trimesh but im loosing scale information (when converting plot2d object to image).
Is there a simple way to slice 3d objects to 2d images.

Yes.  Here's one way to do it.  I'm using a cone, rather than a pyramid, but the solution is the same.
How To

Camera

Add a camera at the origin
Clear the rotation of the camera so that it is pointing straight down.
Move the camera on the Z axis until the entire base of the cone is visible.

Slicer

Add a plane at the origin
Rotate it 180 degrees on the X axis in object mode.
Apply the rotation.
Go to Object Properties and in the Viewport Display panel set Display as to wire
In the outliner disable render for the plane.

Object

Add the cone at the origin.
Add a Boolean modifier to the cone.
Set the Object field of the modifier to the plane.
Set the type to Difference but see below

You will end up with something like this:

and the view from the camera will look like this:

The outliner should look like this:

and the modifier like this:

You can animate this by moving the plane to just above the base of the cone and setting a keyframe on the plane's location at frame 1.  Then move to whatever frame you want the full reveal on, move the plane to just above the cone and set a keyframe on the frame's location.
But you wanted to reveal just the area at the cut.  To do this switch the Boolean from Difference to Intersect
Things To Watch Out For
You'll have to scale your plane so that it's larger than the largest slice of your object.
You may have to switch to the Fast Solver if the Boolean gives you trouble.
How It Works
The plane is set to wire display. This is a common technique when using a non-destructive Boolean workflow.  It allows you to see the position of the plane without it obstructing your view of the object.
The plane, of course, shouldn't appear in final render, so disable that in the outliner.
The plane is rotated so that the desired part of the cone is revealed.  You can also accomplish this by flipping normals in the plane but rotation is easier to describe.
The Boolean does the heavy lifting.
The plane's movement matches your need.

thank you so much will try this and check. thank you again


text:
how to get origin of an stl file , from ascii stl file
I have a stl file, content as usual
 solid b'STLB ATF 10.10.0.1391 COLOR=\xa0\xa0\xa0\xff'
 facet normal 0.741056 0.036405 0.000000
   outer loop
     vertex -4.739567 6.865542 1.587500
     vertex -4.739567 6.865542 0.000000
     vertex -4.762500 7.332349 1.587500
   endloop
 endfacet

I have to modify the file using code, can I choose any point like 1,1,1 as the origin.
the end goal is to finally get a plane based on points associated with a particular normal. for planar information, I need to place origin somewhere as I will be modifying planes on one axis to scan through all points/triangles/surfaces.
let's say I am moving on the z-axis with delta = 0.001 units.
any more information regarding scale-related information any knowledge around stl file read and write programmatically would be great.

Please see if the information here https://stackoverflow.com/questions/64120837/programmatically-altering-stl-cad-files-with-python is helpful for you.

Hello, could you rephrase your question so it is related to Blender ?


text:
particles in particle system rendering on the same place
I have a particle system where I want to use a vertex group for the density(normal stuff).
But I am also using a vertex weight edit modifier with a mask to control the vertex group.

When I'm previewing the vertex group everything seems ok.

But when I later tried to use that group in the particle system. Every particle just spawns in the same place and I have no clue why this is happening.

I have checked for solutions but the vertex weight edit doesn't have a lot of documentation

Are you using hair particles?

yes. and they are set to render as an object

Yeah, I don't know. I'm pretty sure it has to do with the Vertex Weight Modifier, but I rarely use it, and am not that familiar with it's interactions. What happens if you remove it? (not permanently - just to debug)

I found out what was wrong.
I needed to check use modifier stack under particle properties>>>emissione>>>sorce>>>use modifier stack


text:
How to get cursor snap status in python?
Is there a way to determine if the cursor /object  is currently snap on object? In this case on the face:

Closest Point on Mesh
Object.closest_point_on_mesh(...)
Takes a point in object space and returns the hit result, the location of hit, the normal of face hit and the face's index.
Alternatively could utilize mathutils.geometry.distance_point_to_plane(...), where each plane is defined by face center and face normal. Edit, this is somewhat flawed since the cursor can be on a faces plane but outside its edges, which would need to be tested for
Both these methods require the point to be in object space.  The 3d cursor location is in global space, convert using
pt = o.matrix_world.inverted() @ scene.cursor.location

Here is a verbose script using both methods.  The on_face boolean is true if cursor is on face of an object.
Note testing shows the tolerance TOL (distance from point to face) needs to be in the vicinity of 5e-5
import bpy
from mathutils.geometry import distance_point_to_plane as dp2p
context = bpy.context
scene = context.scene

dg = context.evaluated_depsgraph_get()
TOL = 5e-5 # Tolerance

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

for o in mesh_obs:
    me = o.data
    print(o.name, me.name)
    #cursor location in o's object space
    pt = o.matrix_world.inverted() @ scene.cursor.location

    # using closest point on mesh
    hit, loc, n, i = o.closest_point_on_mesh(pt, depsgraph=dg)

    print(i, (pt - loc).length)

    on_face = hit and (pt - loc).length < TOL
    print("closest point on mesh", on_face)

    # using distance point to plane for each face

    for p in me.polygons:
        print(p.index, dp2p(pt, p.center, p.normal))

    on_face = any(abs(dp2p(pt, p.center, p.normal)) < TOL
            for p in me.polygons)
    print("plane distance", on_face)

Result of running on default cube after clicking to snap cursor to face from view.
Cube Cube
3 2.1159816795005355e-05
closest point on mesh True
0 -0.9940524101257324
1 -1.0059475898742676
2 -1.1975289583206177
3 2.104043960571289e-05
4 -0.8024709224700928
5 -2.000020980834961
plane distance True

Related Snappping the 3D cursor to the surface and find the surface's face it was snapped to


text:
How to know the input / output sockets of a Node, without importing it into the project, with Python?
How can I know the sockets of a node (for example the BSDF Principled node), without it being used?
Let me explain, I need to know the properties of the BSDF node in particular, to know the sockets of this node, as in the various versions of Blender, the sockets change in number and type (Mainly the inputs have increased in recent years)
So I would like to access these properties when starting Blender, without having to create a material, and without having imported the "Physically" node in the node_tree
I am looking in the Blender API, but I have not found anything and I do not know if it is possible.
I wish I could know about sockets as I normally do like this:
inputs = [i for i in bsdf.inputs]
outputs = [o for o in bsdf.outputs]

I just want to get the bsdf variable even before importing the BSDF node.
I think there is access somewhere, but I'm not sure.
Something like bpy.types.ShaderNodeBsdfPrincipled but I don't know where

AFAICT you can only do this by inspecting the Blender source code and creating a list of nodes by hand.

To show the solution suggested by Marty Foust and scurest:
import bpy
from bpy import context as C, data as D
import json

TEMP_NAME = "Temporary Material"
TEXT_NAME = "JSON data"
prefix = 'ShaderNode'
excluded = (prefix, 'ShaderNodeCustomGroup', 'ShaderNodeTree')

node_names = [n for n in dir(bpy.types) if n.startswith(prefix) and n not in excluded]

# the below line would be useful for Scurest's solution
# node_types = map(lambda n:getattr(bpy.types, n), node_names)

temp_mat = D.materials.get(TEMP_NAME)
if not temp_mat:
    temp_mat = D.materials.new(TEMP_NAME)

temp_mat.use_nodes = True
nodes = temp_mat.node_tree.nodes

out = []

for name in node_names:
    nodes.clear()
    n = nodes.new(name)
    socket_to_dict = lambda s: {"type": s.type, "caption": s.label if s.label else s.name}
    inputs = [socket_to_dict(i) for i in n.inputs]
    outputs = [socket_to_dict(o) for o in n.outputs]

    result = {"name": name, "inputs": inputs, "outputs": outputs}
    out.append(result)

nodes.clear()
D.materials.remove(temp_mat)
D.texts.new(TEXT_NAME).from_string(json.dumps(out, indent=4))

This creates a new Text File with example information in it.
Keep in mind some nodes have various modes with different inputs/outputs. Switching modes will enable/disable those sockets, which then become invisible to the user. Getting all possible options isn't trivial, as those options have different names, e.g. in Math node it's operation, and in Voronoi it's for example distance (and that node has more options that alter the number/name of sockets).

Interesting solution. This means that you can write the json with for example an on_blender_start Handler and write the file only once, then call it when needed. I really hadn't thought about it. Also useful is the advice of sockets, I am aware of this, and I think it is very useful for those who read this answer.

@NoobCat I'd say generate the file once and attach it to the scripts you use. One for each version if it changes between versions (I think it doesn't change between 3.0 and 3.1 but didn't test).

I gave the score to you, because it seems to be the most effective, without risking too much on a possible "API change / problem" in Blender.

You can access this with input_template and output_template
>>> bpy.types.ShaderNodeBsdfPrincipled.input_template(0).identifier
'Base Color'
>>> bpy.types.ShaderNodeBsdfPrincipled.input_template(0).type
'RGBA'

I don't know how to get the number of templates but perhaps you can just loop until you get None
node_type = bpy.types.ShaderNodeBsdfPrincipled
inputs = []
i = 0
while True:
    tmpl = node_type.input_template(i)
    if tmpl is None: break
    inputs.append(tmpl)
    i += 1

edit As @Chris points out in the comments, this only worked up until 3.0. Starting with 3.1, it doesn't, see https://developer.blender.org/T93932. Quoting from there

Basically we're migrating to a new API for declaring the sockets of each node which isn't exposed to RNA yet. Internally, the templates have been marked as deprecated for about a decade, no one had made a proper replacement though.
And yeah, the workaround is probably adding a node of that type temporarily and examining the sockets.

if i put your command in the console, i get: >>> bpy.types.ShaderNodeBsdfPrincipled.input_template(0).identifier
Traceback (most recent call last):
File "<blender_console>", line 1, in
AttributeError: 'NoneType' object has no attribute 'identifier'....what am i doing wrong?

@Chris I have no idea. It works for me in 2.79 and 3.0.

you are right. It doesn't work in 3.1 :(


text:
How use Integer / string in EnumPropery items
I have EnumProperty, and i need an integer number when i select my "Mode"
Now i have:
item = (
    ('Mode 1', "Mode 1", ""),
    ('Mode 2', "Mode 2",""))

but i need:
item = (
    (1, "Mode 1", ""),
    (2, "Mode 2",""))

class MyProperty(bpy.types.PropertyGroup):
    my_menu = EnumProperty(items = item)

but give error

check this reference: https://docs.blender.org/api/blender_python_api_2_77_1/bpy.types.EnumPropertyItem.html#bpy.types.EnumPropertyItem

As pointed out enum identifiers are type string. Can you elaborate on why you need it to be an int?

@batFINGER Right, i need integer because this script control parameter , that parameter accept only an integer, but now by Hikariztw i can transform "1" (string) in 1 (Integer) by int("1")

Since the EnumPropertyItem(bpy_struct) only accept String as identifier,
you can use Python built-in int() and str() to convert between String and Integer.
A Quick example:
a = 13
int(str(a)) is 13 # True


text:
How to orient planes around a circle so that they point towards the center using Python?
I have Planes already positioned on the circle and parented with the circle. I'd like to orient them all with the -Z axis pointing towards the center of the circle like in the pictures I posted.
I want to make with Python, But I can't find a working solution
Wrong arrangement:

Right arrangement:

you can try this, but...this is NOT with a parent. So maybe you parent your objects after my code?
import bpy
from math import cos,sin,radians,pi

steps = 10

angleStep = radians(360 / steps)

for i in range(0,steps):

    bpy.ops.mesh.primitive_plane_add(size=2, enter_editmode=False, align='WORLD', location=(0, 0, 0), scale=(1, 1, 1))

    angle = i * angleStep

    bpy.context.active_object.location = (cos(angle) * 5, sin(angle) * 5, 0)

    bpy.context.active_object.rotation_euler = (0,pi/2,angle)

result:

In the meantime I had found another method, but this one seems much cleaner. It works very well. After this operation I can also parent objects with a parent


text:
Symmetrize only masked area
Is there any way to only symmetrize the masked part of and object in sculpting mode? The Remesh->Symmetrize in dyntopo option will symmetrize the whole object even when some part of it is masked or hidden.

Long time since it was asked but for others looking for an answer. If you go into edit mode and recreate the mask with by selecting the relevant vertices, then go to Mesh-> Symmetrize.
Strong recommendation that you are in wire-frame and locked looking along your symmetry axis when making your selection or you can get some weird results.
Either box selection or the brush selection (C key) are pretty useful.
You may end up with some holes in the mesh where your selection ends. Just select the edges of the hole, fill and then run over it with a dynatopo draw brush on 0 strength to hit the necessary geometry density.


text:
How do i animate a curve(String) for a bow with a soft-body physics type
I'm new to blender so i would love some help with how i can animate this bow string correctly. Currently i have gotten the string to pull back, but the endpoints seem to pull off the tips of the bow. I've been trying to fix this for ages longer than i think it should be taking. So if someone wants to help me fix this or completely correct what i have done that would be greatly appreciated.
Also here's a visual representation:

This might help - https://blender.stackexchange.com/questions/131773/is-there-a-better-way-to-make-paths-working-on-a-string-for-longbow/132733#132733

Thanks, this helped me figure it out!!!


text:
Eevee to Cycles Render Issue: Some meshes render in a different location
Does anyone know why some meshes would render in a different location than it should when switching between render engines? (Specifically: Eevee to Cycles) When the overlays are toggled on, you can see that the mesh is still where it should be, and hasn't physically moved. Only where the mesh is rendered. (See pic.)
I've tried copying the model and placing it into a different file. It still does the same thing.
I've also tried relocating the center point.

hard to guess without a file

Do you use any modifier on this object ? As @RUben say, a blend file would help.

Look for displacement in the nodes.  True displacement doesn't work in Eevee. so if the meshes are being moved by that, they would appear in a different location than in Cycles.

Nathan, thank you! It was the displacement node in the material. It's strange though... This seems to happen randomly. Every other asset that I am rebuilding has a full texture set, complete with displacement and this isn't happening. If anyone has any reason as to why this would only happen on occasion (and could be avoided), I would appreciate it. Thanks!

Using model from my lib all work fine.


text:
Modifier panel changed
Cut this short has possible why is there missing options on the bevel,screw.
like had more details in the bevel Mod, but now have 3 bars width type,amount,segments ?

what do you mean? the modifier bevel? or if you beven in edit mode?

Modifiers layout has been changed with version 2.90 (I think ?). the same options are there. Some have been renamed or simplified. You just have to click on the foldouts to expand them

you kknow you had a large window where you have bunch of numbers and details you could use to get the effect you required !

in blender 2.93 alpha:
the bevel modifier e.g. (if you mean this) has lots of options as you can see here (profile + geometry + shading):

yeah,Honestly dont understand it !! and the screw mod either !!


text:
How to make cut in cylindrical shape without braking up roundness?
I'm recently start learning blender and i have a trouble with crating cuts in cylinder with subsurf modifier without breaking up roundness. Anyone have a idea how to model this kind of piece(picture 1)?

Hello :). Either start with more edges, to have them evenly spaced around the whole cylinder, or correct the circular shape later.


text:
How to get correct lightning in the shadows?
I just started learning Blender. After I finished my first scene I saw some problems in the shadows. Is there someone who can help me out and tell what I could improve to get rid of these problems?
My lighting setup is one area light from the left (blue arrow A) and one point light from the right (blue arrow B). In both lights I check marked shadows with bias at 0 and clip start at 0.05.
Red area: The shadow seems to be rather further down the edge then right in the edge. Also the lighting is not very even.
Yellow area: There is no proper shadow around the legs, maybe the legs are even emitting some light.
Hopefully someone can help me out :)
Cheers, Julian

Okay, got I myself. Didn't changed my render engine from Eevee to Cycles..
So much better :)


text:
Capture a keyboard event in a UI panel?
I was wondering if in a UI panel it is possible to capture a keyboard event
I am aware that this can be done in an operator in the invoke function like this:
def invoke(self, context, event):
    if event.type == 'A':
        print("Example A")
    if event.type == 'B':
        print("Example B")

But I would like to do it in a panel, and I don't know if it's possible, in case I would like to clear up any doubts about it, I would like to do something like this:
(My example is incorrect, event.type doesn't exist, but that's for illustration purposes only)
import bpy

class LayoutDemoPanel(bpy.types.Panel):
    """Creates a Panel in the scene context of the properties editor"""
    bl_label = "LayoutDemoPanel"
    bl_idname = "LayoutDemoPanel"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "LayoutDemoPanel"

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

        # If button 'A' is pressed
        if event.type == 'A':
            self.layout(text="Example A")
        # If button 'B' is pressed
        if event.type == 'B':
            self.layout(text="Example B")

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

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

if __name__ == "__main__":
    register()

Hello, UI related methods don't have access to keyboard events, you can either use a modal operator running in the background (I wouldn't advise to do it, it disables auto save feature) or define a keymap item that will trigger an operator and change a property stored somewhere (usually in the scene custom props) to toggle panel behaviour

Hello. It might be an interesting idea, but I wouldn't want to cause problems for users with a modal. At the moment the invoke method I mentioned is exactly inside an operator, which by pressing a key does something different

I think you can use a keymap item to directly change a property value without using an operator, however I don't remember the syntax

Here it is ! https://docs.blender.org/manual/en/latest/advanced/keymap_editing.html#key-bindings-for-properties

Well it is an operator, but you don't have to define a new one

@Gorgious How does this help my question? I don't understand what I should be looking for in the link you provided, sorry for asking but I don't really understand what you mean.

Well the answer to your question is no, so i suggested you create a custom keymap entry to toggle values stored in your blend file. There are builtin operators that let you specify a custom path to tweak properties stored on your blend file so you don't have to define a bunch of operators for each custom entry. See this answer for a practical example https://blender.stackexchange.com/a/98930/86891


text:
Procedural Texture Repetition boundaries Problem
I'm trying to build a texture mapping that can do the following things:

Adjust number of repetitions, Right, Left Top and Bottom
Space the tiles apart from each other
Scale Rotate Translate Entire picture with tiles.
Scale Rotate Translate Tiles within repeats.

Now, in this example I almost succeeded, but I'm having a problem, because if the texture is close to the border edges of the tile (left and bottom) the texture stretches across the entire object. However, this does not happen if the texture is located on the top or right side.
Everything works fine until the texture touches the left and bottom boundaries
I'm not sure why and how I can possibly correct this.
Any idea?


text:
How to get the active element in the color ramp node with Python?
The color ramp node have the elements, but im unable to get the active element,
Exist any method or API in order to get the active element?
elements = my_color_ramp_node.color_ramp.elements

There seem to be no obvious way to get that information. Can you elaborate why you need that, maybe it's an XY-problem?

No problem XY, I need to get the active element, I'm creating a tool to better manage the color ramp with additional functions, but there seems to be no way to get the active element


text:
How to distribute opencv in an addon?
I would like to use the cv2 contained in opencv (Below the example). I'm not sure if it can be done, the goal is to distribute it together with the addon.
I don't know how to start thinking. For example, the first thing that came to my mind, is to put the opencv folder directly in the addon folder. But this doesn't work when I import it into the script: from ..opencv_4x.modules.python.package import cv2 as cv
Give me this error:
ImportError: OpenCV loader: missing configuration file: ['config.py']. Check OpenCV installation.

How can I use it in blender? Bearing in mind that deploying the addon must work on Win/Linux/Mac

it "should" work if you just use the same command in your add-on with e.g. "exec" as you did to install it on your computer.

Don't you want to use the PyPI distribution?


text:
How can I smooth the edges?
The first picture uses the sub modification. the second is its original form.I just want the edges to be soft and cylindrical.

try that: right click and Shade Smooth, then in the Properties panel > Object Data > Normals, enable Auto-Smooth. It will smooth the surface, not the edges though

omg thank u it worked!!! <3


text:
My script doesn't work like an add-on
I am writing a script for the Composition tab and it works when I run it in the Scripts tab, so I want it to be an add-on. I found the manual and added the lines that need to be added, then I installed my addon and enabled it, but it doesn't appear, when I start Blender. So, how can I achieve the desired result?
bl_info = {"name" : "CustomeCompositingNodeGroup",  "location": "Compositing", "category": "Node", "author": "Hey there"}
import bpy

class MainPanel(bpy.types.Panel):
    bl_label = "Custome Compositing Node"
    bl_idname = "MainPanel"
    bl_space_type = 'NODE_EDITOR'
    bl_region_type = 'UI'
    bl_category = "Custom nodes"

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

        column = layout.column()
        column.operator('node.pixelazer_operator')
        column.operator('node.cast_shadow_operator')
        column.operator('node.glitch_effect_operator')
        column.operator('node.outline_operator')

def create_pixelazer_group_node(context, operator, group_name):
    #code
    return pixelazer_group_node

class NODE_OT_PIXELATE(bpy.types.Operator):
    bl_label = "Add Pixelazer Node Group"
    bl_idname = "node.pixelazer_operator"

    def execute(self, context):
        custom_node_name = 'Pixelazer Node'
        my_group = create_pixelazer_group_node(self, context, custom_node_name)
        pixelazer_node = context.scene.node_tree.nodes.new('CompositorNodeGroup')
        pixelazer_node.node_tree = bpy.data.node_groups[my_group.name]
        pixelazer_node.use_custom_color = True
        pixelazer_node.color = (0.5,0.1,0.7)

        return {'FINISHED'}

def create_cast_shadow_group_node(context, operator, group_name):
    #code
    return cast_shadow_group_node

class NODE_OT_CAST_SHADOW(bpy.types.Operator):
    bl_label = "Add Cast Shadow Node Group"
    bl_idname = "node.cast_shadow_operator"

    def execute(self, context):
        custom_node_name = 'Cast Shadow Node'
        my_group = create_cast_shadow_group_node(self, context, custom_node_name)
        cast_shadow_node = context.scene.node_tree.nodes.new('CompositorNodeGroup')
        cast_shadow_node.node_tree = bpy.data.node_groups[my_group.name]
        cast_shadow_node.use_custom_color = True
        cast_shadow_node.color = (0.2,0.3,0.1)

        return {'FINISHED'}

def create_glitch_effect_group_node(context, operator, group_name):
    #code
    return glitch_effect_group_node

class NODE_OT_GLITCH_EFFECT(bpy.types.Operator):
    bl_label = "Add Glitch Effect Node Group"
    bl_idname = "node.glitch_effect_operator"

    def execute(self, context):
        custom_node_name = 'Glitch Effect Node'
        my_group = create_glitch_effect_group_node(self, context, custom_node_name)
        glicth_effect_node = context.scene.node_tree.nodes.new('CompositorNodeGroup')
        glicth_effect_node.node_tree = bpy.data.node_groups[my_group.name]
        glicth_effect_node.use_custom_color = True
        glicth_effect_node.color = (0.1,0.6,0.3)

        return {'FINISHED'}

def create_outline_group_node(context, operator, group_name):
    #code
    return outline_group_node

class NODE_OT_OUTLINE(bpy.types.Operator):
    bl_label = "Add Outline Node Group"
    bl_idname = "node.outline_operator"

    def execute(self, context):
        custom_node_name = 'Outline Node'
        my_group = create_outline_group_node(self, context, custom_node_name)
        outline_node = context.scene.node_tree.nodes.new('CompositorNodeGroup')
        outline_node.node_tree = bpy.data.node_groups[my_group.name]
        outline_node.use_custom_color = True
        outline_node.color = (0.3,0.3,0.3)

        return {'FINISHED'}

def register():
    bpy.utils.register_class(MainPanel)
    bpy.utils.register_class(NODE_OT_PIXELATE)
    bpy.utils.register_class(NODE_OT_CAST_SHADOW)
    bpy.utils.register_class(NODE_OT_GLITCH_EFFECT)
    bpy.utils.register_class(NODE_OT_OUTLINE)

def unregister():
    bpy.utils.unregister_class(MainPanel)
    bpy.utils.unregister_class(NODE_OT_PIXELATE)
    bpy.utils.unregister_class(NODE_OT_CAST_SHADOW)
    bpy.utils.unregister_class(NODE_OT_GLITCH_EFFECT)
    bpy.utils.unregister_class(NODE_OT_OUTLINE)

if __name__ == "__main__":
    register()

Does it say "Upgrade to 2.8x required" next to the addon in the prefs? Add "blender": (2, 90, 0) (or whatever version you want) to bl_info.

Thank you, that works.


text:
Anyway to calculate surface area affected by lights?
was wondering if there is any way to calculate the surface area directly affected by a light source. For example, when a light source is added inside a small house model, would it be possible to extract the surfaces that are bright?
If this can be done, is it possible to control the light intensity or extract out the shadowed surface as well?
Thank you,

I think it should be possible to tie a transparency node to a Light Path node in the materials, so the more lit something is, the more opaque it becomes. Maybe try experimenting with that?


text:
How to make a smooth surface for OBJ files?
I created a 3D Mesh model of a building using some images and the results look nice.
But if I look closer at the model surface, it's made out of much finer small surfaces.
If you see the images below, the left is the actual surface image (walls) and the right is my OBJ model.
And I think this is the main reason for having such a large file size and makes my project slow especially when I am trying to merge a couple of buildings in a single project.

Is there any way to smooth the surface so that number of faces can be minimized?
I just need to have a model that will look good enough, not in crazy detail.
But will this affect the original texture(image) allocated to each surface?
Thank you,

While the model you want to decimate is selectet, go to modifiers > add modifier > decimate. now you can play around with the settings until you are happy with the resolution.

Thanks! I'll try that out.

under modifiers > add modifier > smooth you also can smooth out the surface, but it would not decimate the mesh.

I think the smooth option works a bit better in this case. Thanks


text:
metarig moves my mesh in pose mode but rig won't
I used the rigify tool with automatic weights. I tested it in pose mode and the mesh was moving with the bones or with the rig but the automatic weights painted the mesh in weird ways. I then decided to correct the weight painting, bone by bone. I am not an expert but I tried to move each bone after to see if the mesh was attached and it was fine. I then decide to go into pose mode to use the rig (the one with the controls, not the metarig) and the mesh now does not move with the rig. If I select a bone and rotate it, the mesh moves with it, but if I select any of the rig controls and rotate it, the mesh does not follow. If I parent it again, I will lose my edited weight paints. What should I do with this?
Thanks for looking at this!


text:
Viewport Shading glitchy weird thing
Why is it doing this? Every time I use viewport shading no matter what version I use this occurs. I've restarted blender. I've downloaded several versions both new and old. how do I fix this?

What kind of GPU do you have?

Radeon Rx 580 red dragon 8GB

It's most likely your graphics drivers. The latest Adrenalin drivers are causing issues for AMD users. You can either roll back your drivers to an earlier version, or try checking "High quality normals" under performance in the render properties tab.


text:
Squish Object Towards Surface
I have a model of a cat of which I want to make a sculpture. For it to stand steadily and not rock on any surface I put it on I want to, in a smooth way, flatten the bottom surfaces to a common level plane.
In the attached image you can see the underside of the cat. You can see how the paws are clearly flattened towards the bottom as if the cat is resting on something. This is exaclty what I want but  for the tail as well. It is also extremely important that the tail and feet are flattened against the same plane as the cat would not sit well on a flat surface otherwise.
Is there a good way of doing this smoothly (wityhout a sharp boundary between organic shapes and the flat surface)? This requirement of a smooth organic boundary rules out boolean operations unfortunately.
Thanks!

have you tried to select the bottom of the tail, enable the Proportional Editing option and scale on the Z axis? You can also try with the Lattice modifier and same thing, enable the Proportional Editing

something like this? https://blender.stackexchange.com/questions/109431/how-to-achieve-pressing-against-invisible-wall-effect-facing-camera-animation/165689#165689

This seems like it might work. I'll have to try it out to know for sure. Thanks!


text:
Modelling with Subdivide
I am super new to this but decided it is time to learn. For a first project I wanted to model an Easter Island head because I figured that should be easy enough. So far it has been going well but now I have hit a roadblock. I believe my main issue is simply my lack of basic workflow knowledge so any help is much appreciated.

I have checked out a few tutorials and people seem to be modelling in a way where they use the "Subdivision" modifier starting from a cube they then add extra faces and edges to. I have been doing this as well and gotten the general shape down. However, now that I want to add the brow or nose of the statue I run in to weird issues where the subdivision modifier doesn't behave as I would expect (see images).
How should I go about adding these features to my head?

Your subdivision is way too high and you don't have enough geometry to work with the subdivision, your object is basically a cube. add more geometry and use "Extrude along faces" to extrude in different directions at the same time to create the "head shape"
Here is a quick example

i added a mirror modifier just to show you half of the geometry

As I understand the question, you want the subdivision modifier to "know" where you want things smoother and rounder and where you want sharper edges.
In Blender there are (at least) two methods for doing this:
Supporting Edges
This is the most common way (this way can be used in any 3D software that uses Catmull-Clark subdivision).
Just add supporting loops close together where you want edges to be sharper. The closer the loops are placed, the sharper the edge will be.
Original unsubdivided mesh:

Now with supporting loops (notice how I placed the top supporting loop farther away from the top and the ones of the brow edges close together, as I want the top of the statue to be rounder than the brow edges):

Result with supporting loops:

Result without supporting loops:

Edge Crease
This way is more specific to Blender, as not every 3D software supports this option.
In edit mode, select the edges you wish to be sharper and go to Edge > Edge Crease, then set the value to something between 0 and 1 (1 being totally sharp and 0 being totally smooth)

You can also edit the edge crease in the transform menu

The creased edges are marked with a pink-purple color:

In this case, I set the crease of the brow edges to 0.5 and the top of the statue's edges to 0.25. Here is the result with subdivision modifier:

Whenever you want to have a "sharper" edge to you model with subdivision modifier, the trick is, to use loopcuts, which are near enough.
So you can insert loopcuts here:

then select the 2 edges:

and move them with G -> Y as you need it to get this:
add another loopcut here

select this edge

and move again with G -> Y

so hopefully this was, what you were looking for.

When working in Blender, it is best to start with a low poly model (a small amount of polygons), and then use the subdivide modifier to increase the polys.
When you subdivide your mesh straight away, the polygon count increases and can become more difficult to manipulate and work with.
This is how I would start.
Make sure to subdivide the mesh AT LEAST TWICE before using a subdivide modifier as there isn't enough polygons for it to look right
From there you can start manipulating the shape and sculpting.
I hope this helps :)

Subdividing the model twice before using the subdivision modifier is bad advice for two reasons: First, it creates an unnecessarily big number of faces. Second, it makes it more difficult to make changes to mesh later, as it has more vertices to worry about.
The recommended method to have sharper edges is to create supporting edge loops only where needed, or use the crease setting that blender has.


text:
Manipulating UVs does not show in viewport with texture applied
I'm probably just missing something but I've been struggling with this for well over and hour now. Here's the deal:
I've created a basic material, imported and image, and applied it to my model. I've also gone and quickly unwrapped it. See here:

Now when I scale the UVs like below, there is no change in how the texture is applied to the object. I tried creating a texture coordinate node and plugging the UV into the vector of the image node but no luck. What am I missing?

Maybe you've created a second UV map and that's the one that is selected for rendering (in the Properties editor > Object Data > UV maps)?

Ah-ha! That was it. I feel like and idiot, but problem solved. Thanks!

Go in the Properties editor > Object Data > UV maps. You've created a second UV map and that's the one that is selected for rendering, so select the other one.


text:
Black areas after rendering in Cycles - Material Issue
my renderings are showing up like this:
When i move the Camera up ore down, the black area changes also. I play around with Clipping and that did not help.

I also checked all the faces orientated in the right way.

But when i apply another material to the Floor, the Black Areas are gone.
I used the same "beton-material" i used on the Floor, on a wall and there it shown up right.
(Beton-Image for Color channel + Beton-Image for Normal Map)

I am not sure, if this a Camera ore a material problem...
You can also download this project file here an have a look on it: https://we.tl/t-EAdl5p9Slk
So i really hope someone have an idea ore a tip, what else I can try!
Thanks a lot! :)

It's your "Normal Map" "Tangent Space". Try a different value and the blackness will in- or decrease. Or, maybe, if you like this: put the alpha-plaster17 as strength (Normal Map) and color to color.

Wow, thanks gilu! So easy, but so helpful. :)


text:
Problems with scaling meshes. Unwrapping transforms the scale back to normal
I've been stuck the past hours by trying to scale my mesh. In object mode the mesh i use is perfectly scaled but once i go into the editor it seems that the mesh won't really scale. I have attached two pictures illustrating my problem:

As shown in picture 2, the mesh is scaling but once i unwrap it, the mesh is scaled back to its normal (as shown in picture 1).
Does anyone of you know how my mesh can be scaled as intended after the unwrapping has been made?
Help would be much appreciated :-)!

Use unwrap from view (bounds), so that the UV map is constrained to the edges of the image.

Thanks for the quick response!
Could you be a little more specific of where i use the "unwrap" from view (bounds)?
Im kinda new to blender :-)....

Please add the information to the question, not in the comments.

Exactly. So can you help me with scaling the mesh permanently after the unwrapping? I want to make a light map of the mesh, but once i click "lightmap pack" on my scaled mesh (picture 2) it jumps back to picture 1? –

See the [edit] link at the bottom of your question? Please use it.

if you want to scale the UV map then scale it the way you want, why are you unwrapping it again? of course it will go back to the default unwrapped UV map

It's not that UV unwrapping transforms the scale. It just discards previous UV mapping and creates a new one for selected faces. And it tries to take as much texture as possible (if it won't cause stretching), so in your case it just puts 4 corners of a square face on 4 corners of a square texture. I don't know why you keep unwrapping the mesh after scaling it, but either way you should consider using scale vector of a mapping node:


text:
Loop Cut and Slide Hotkey Not Working
I seem to run into this issue randomly and I'm not sure what causes it. Sometimes when creating a new project or loading an existing project, Ctrl+R will not create a loop cut on my mesh. I've tried the following:

I've confirmed I have "Select Box" selected in edit mode
I've confirmed my keybinding is correct
I've confirmed I'm using the Blender keybinding preset
I've confirmed that both my Ctrl and R keys work
I've tried loading factory settings
Uninstalling and reinstalling Blender

Even when I create a new project, I can't create a loop cut on the default cube.
What am I doing wrong?

Hello, could you post an example screenshot of a mesh you are trying to loop cut and it fails. Sometimes when modelling with N-Gons, the algorithm can't define the flow of the loop cut and it doesn't work

Your first bullet point might be where you're getting tripped up since your select mode would not normally be part of troubleshooting an issue like this.

Loopcut only works in Edit Mode.


text:
How to copy 1 part of a mesh to other places on the same mesh (without mirroring)
Firstly, I'm new to blender so apologies if this is a really  newbie question.
I'm trying to copy part of a mesh, and apply that to other areas of the same mesh. (On the image below, I'm trying to repeat the recessed area on the left, to the selected faces on the right. I know mirroring is a possible option, but I need to also repeat it elsewhere where mirroring isn't possible, so trying to learn how to do a more "copy/paste" approach)
I've tried following some previous posts which advise using shift + D to duplicate the faces of the object, then move the duplicate away from the mesh, then right click and do separate > selection.
However, when I do that I get a red border around the new object and when I select the new faces (the destination) I can't seem to get it to apply the shape (I also can't "grab" the new item to move it).
Any ideas where I'm going wrong?
Also... how do I stop the mesh from vanishing "inside" the object as visible in multiple places in the image below? It's making it really hard to work when I cant see/select all of the vertices, etc

Thanks!

This vanishing is due to the subdivision modifier being visible in edit mode, and the effect of that modifier is moving the faces in front of the vertices. So either disable the modifier visibility in edit mode, or use x-ray (ALT + Z) or wireframe (Z -> W) mode.

When you separate the selection, you're actually creating a new object. It seems what you want to do is to split. You don't need to split the part since you have already duplicated it. If you want to "cut" it without copying, and keep it in the same object, what you need to do is right-click and choose Split > Selection - Y is the standard keymap.
Once you duplicate the part, place it somewhere, then the easiest thing to move it where it is intended is to select vertex mode, then deselect and reselect a vertex on the duplicated part (while making sure that the part is still wholly selected), activate vertex snap, and move it to snap with the correct vertex at its intended location.

Fantastic, sorry for the delay in seeing this!
I'll try it tonight and mark it as the selected answer if it works OK. Thanks again


text:
Moving Key Frames All Together One Time
I always get this problem of moving all the keyframes all together. I have to go by each object and count the frames which is very difficult and time consuming.
My question is...Is there a way to select all objects and move all their KEYFRAMES at once in the timeline?

The dopesheet window is what you are looking for, it has a button with which you can manipulate only selected objects.

thanks josh.....exactly what i needed


text:
Exporting blender file to USDZ?
I wanted to export a blender project with complete animation to USDZ format. Has anyone tried it before? The purpose of it is to use it in an AR application under IOS.
thank you

One option is gltf and then convert it to USDz: https://github.com/google/usd_from_gltf Another option is: https://github.com/robmcrosby/BlenderUSDZ

thank you sir!!!

See: Is there an USDZ exporter for blender?


text:
Flex Cable Physics
how do I make the FLEX CABLE work like the real one? wherein it sticks to the connectors and moves like the actual FLEX CABLE on our PC? I cannot find a tutorial that allows me to accomplish this. In my mind, i'm thinking of STRING PHYSICS? But i'm just really not making it work.

One very easy way is to use a Hook Modifier and a Bezier curve with only two vertices (A bit limited I admit). The curve would stretch and might not keep its initial length (depending on the circumstances) though, but it does the trick in some cases.
First place a Bezier curve in the right location. Then select the thing you want it to connect to, and Shift select the Curve. Now with the two objects selected go into Edit Mode and select the "connecting" vertex and press Ctrl + h. Choose Hook to Selected Object.

Now if you move or rotate the first selected object the curve will move with it.

Also any other bezier curve can be made to follow the cable curve. In the Properties window click the Object Data Properties tab. Then got to Geometry > Bevel > Object and select a bezier curve that you made in a shape of your liking.

And a very handy thing worth mentioning in this case is the vertex tilt. If you want to rotate a vertex along the length of the curve, select the vertex in Edit Mode and press Ctrl + t


text:
How To Fix Rotation -- Global vs Local
I just found out about this situation. So my scene involves different propellers facing on different directions.
Now the ones that are globally aligned, i don't have a problem rotating it to the Y axis because it's position is relative to global orientation. I get into trouble with propellers facing different direction. I cannot rotate them properly anymore.
Here is an example of my scene:
https://youtu.be/Pd1ffT_APTo
So my qeustion is can you rotate object basing on there LOCAL POSITIONING? not GLOBAL?

Make sure, that the axis (which the Propellers rotate on) is the first axis of the Rotation Order. If not, set it and redo your Animation keyframes.

But concerning your actual question: No, you can parent the object to other object though, thus creating a "local" space.

@Leander you just solved my problem :) THANK YOU VERY MUCH
Check out the solution you proposed :)
https://youtu.be/2WB8hWYqfsI


text:
Is It Possible To Change Camera Interpolation?
In Animation, my DEFAULT INTERPOLATION is BEZIER
I wanted to do a camera movement wherein it starts with BEZIER INTERPOLATION first then it changes to LINEAR then back to BEZIER INTERPOLATION? Just like those action movie shots where it start from slow to fast to slowmow then back to fast.
I tried doing it but I failed or just doesn't know how it works. Is it even possible?

With the camera selected (and animated) click on the Properties Editor icon, then choose Graph Editor. When you're in that editor, select the keys whose handles you want to change and press V, then V again if you want Vector tangents (= linear)  (I'm using Blender 2.79.)

let me try that :)

You should be able to set a new interpolation per Key. The interpolation will then be effective until a new key sets a new interpolation.
Not an expert animator but I would stay with bezier and use the different handle types for this instead. It's less confusing and gives full control.

i'm not sure what you're talking about but sure is interesting. will look to it. THANKS


text:
Removing Doubles is Gone in 2.8?
Is Removing doubles no longer an option in Blender 2.8? I just noticed it last night when I finally got a chance to use the final version of Blender.

Renamed to merge by distance

Please search before posting https://blender.stackexchange.com/questions/139733/blender-2-80-remove-double-vertices-option-gone https://blender.stackexchange.com/questions/123185/2-8-remove-doubles-has-changed-to-merge-by-distance https://blender.stackexchange.com/questions/140892/remove-doubles-merge-by-distance

alt-m in the editor window


text:
How To Spin Fans with Blur like in REal Life?
I've been doing a lot of modelling for computer parts and one thing that I'm struggling with is making the FANS SPIN and have blur to it like in real life.
Please look at my video animation on the FANS.
https://youtu.be/COu1q46biiI
I've tried adding VECTOR BLUR in COMPOSITING but it also blurs the CAMERA MVOEMENT and ruins the animation. I just want the blur to take effect on the fans themselves.

Have you tried Motion Blur option in the Render panel? I don't know a lot about it but it seems like it's made for this...

Also, if you put your fan in one particular layer and the rest in another one, I don't know how it could affect anything else than the fan... but again, check Motion Blur, as I guess it is supposed to be directional and respect the fan movement

I would agree that you would need to render in cycles, and composite the two together, due to the renderer also reading the vectors of all objects in the camera. If you are rendering out EXRs, try adding a layer that is just the vector pass for the blades, then apply the vector blur using just that layer of the EXR (IE: In Nuke either select the "Blade Vector" layer in the the Vector panel, or Shuffle the layer into the appropriate layer for the Vector Blur to work.)

Providing they are moving fast, you should be able to achieve it ticking motion blur in the render panel:

You can also adjust different factors inside the tab. If you find that you don't want motion blur in the other moving parts you can play with these settings or animate the values.

Hi guys, tried all your suggestions but nothing really worked.

You can use motion blur, but unfortunately you can only limit it to certain objects if your using cycles.  NOOOOOOO!  in order to disable it, just go to the object panel in the properties panel.  under Motion Blur, uncheck it.  hopefully soon this will be available in eevee.  Hope this helps!

actually I was wrong :) You can only have motion blur for the camera movement. Even more NOOOOOO!


text:
I just finish the donut course of blender guru where do I go next?
I just finish the 2.8 donut course of blender guru and now I am confuse where do I start practicing

I think the best way to improve on your skills is to join a community, and blender has a large community.
You could join these communities to see other people's workflow, styles and ways of working with blender.
My two favourite communities are:
Blenderartists: in this community you get to see fellow blender artist workflows, reels and the community creates challenges weekly to help you grow and learn faster. Here is the link
www.blenderartists.org
BlenderNation: is a very great community here you could get links to any tutorial in blender, assets (paid or free), documentation and so on, basically it an informative and educative community. Here is the link
www.blendernation.com

Model whatever comes to your head as long as your next object is more complex than the previous one and needs tools/options you didn't use before. Just explore Blender and forget "have-to-do lists". The communities such as Blender Nation are helpful as well as they i.a. have info about add-ons, repos, render farms etc.


text:
Images and HDRIs are blurrier in Cycles
I don't know if it is an error or not, but images and particularly HDRIs (the blurriness is more pronounced in these) lose detail and become blurry in Cycles, when compared to the Material Preview, or in EEVEE (same results).
This is the image in Material Preview.

This is the image in Cycles.

It may not be very evident in the images, but when it comes to HDRIs, the whole sharpness is lost - even for a 4k texture.
Why do you think this happens?

Increase viewport samples. and render it out. Maybe it's only because u r previewing the scene. The end result may be ok.


text:
Radial Limit in Rigid Body Physics
I am looking for a way to allow a rigid body to move freely within some radial distance from an other object. I know generic constraints allow one to box the movement in, but I need something that's a circle, not a square. I've tried using a second collision object instead of a limit, but due to random collisions this ends up bouncing things around too much. Are there any clever ways of accomplishing this in blender?

Generic spring.  Place the RB constraint on the anchor body, point the constraint's Z axis at the physics object, and give it 0-0 linear limits in all axes except Z.  For Z, use limits for whatever radial motion you want to allow.

@Nathan If i understood correctly then this is the idea? In that case it doesn't work. First, since the body is constraint to one axis, there will never be a case in which the Z axis of the constraint will point outside of that axis. Second, I'd imagine that if this did work, the object would probably only fall straight down when centered and do weird stuff if not (if that makes any sense). So alas, no solution (or I misunderstood)

No damped track.  You've created a dependency loop.  The constraint's axes are evaluated only at frame 1 anyways-- after that, its axes are ignored.  The constrained axis will rotate with the virtual rotation of the constraint (which Blender unfortunately doesn't display.)

@Nathan Then I'm afraid I don't quite follow along well enough to reproduce the thing you are describing. Would you mind giving me a minimal working example?

I misunderstood something about how it works, which didn't show up in my simple test.  I'll do a little more experimentation and get back to you if I find something.

I did this by chaining two rigid bodies, with two RB constraints.

Create a rigid body, give it "animated" or "passive" trait.  Change its collision collection to something weird and non-default like collection 20.  We'll name this body "anchor".

Create another rigid body, at the same location.  Leave this un-animated, but set its damping (translation and rotation) to 0.  Putting this in an out of the way collection-- again, possibly collection 20-- is a good idea.  We'll name this object "sub-anchor."

Create an empty, at the location of these rigid bodies, and give it rigid body constraint physics.  Set anchor as RB1 and sub-anchor as RB2.  Make it "point" type.  This allows sub-anchor to rotate about anchor.  Because both rigid bodies are at the same location, and because this is a point-type constraint, both rigid bodies should remain at the same location, given sufficient physics steps.  (Because constraints are imperfect and iterative in nature, it's not guaranteed.)

Create our physics object at the same location.  We'll name this "physics".  Again, give it dynamic, un-animated rigid body physics.  This is the object that will freely rotate within a given radial distance of anchor.  However, this is an object that we may want colliding, so put it in whichever collision groups you want-- the main thing we wanted to be careful of, was preventing this from interacting with anchor, since that lies as the center of our circle

Create another empty at the same location, give it rigid body constraint physics, set subanchor as RB1 and physics as RB2.  Set it to "generic spring" type.  (Although a "piston" type could be used instead.)  Enable linear limits at 0-0 for X and Y axes, and -n, 0 for Z axes, where n is the maximum distance we want to allow this object to travel from anchor.  Assign no angular limits or spring values.

What does this do?  It lets subanchor rotate freely about anchor, while physics exerts only linear force on subanchor.  If you watch, subanchor will rotate to point its z-axis at physics, wherever physics is.  Meanwhile, physics can move away from subanchor, but only in a single axis-- only toward or away from subanchor.
Do you want to establish a minimum distance?  Instead of using linear limits of -n,0, use linear limits of -n,-m, where n is the maximum distance from the anchor and m is the minimum distance from the anchor.  It will then push physics away from anchor.
Why do we use -n,0 rather than 0,n?  Because with 0,n limits, our rigid body is in a careful, computer-generated state of perfect equilibrium, like a pencil balanced perfectly on its tip.  Using -n,0 limits starts the pencil out of equilibrium, so that physics forces will act on it appropriately.
Note that there's no need to parent the empties to any anchors.  It doesn't matter where they are during the physics sim, only where they are at frame 1.  Parenting an empty will actually give a dependency loop warning in the console window, although this particular warning is safe to disregard-- at least in the case of empties parented to animated rigid bodies.  (I haven't done sufficient testing on empties parented to dynamic, unanimated rigid bodies.)  However, you cannot use any constraints on the empties that target physics objects, or you will get dependency warnings that are not safe to disregard and will screw up your physics.
What mass should you use for subanchor?  Rigid body physics are not real physics, and all of the mass of objects is concentrated on their origins.  That means that using very high mass values are fine, since this object isn't going to collide with anything.  However, if you use very low mass values, you will find that the point constraint will start breaking in deference to the mass of the physics object.  Default values were fine in my testing, but you may want to increase them if the point constraint starts failing.  As you increase the mass of physics, you may need to increase the mass of subanchor as well.
Here's a file.  I've created a 65 frame animation on "anchor" for you to see it in action.  I've also created a sphere (in wireframe) to give you a visual indication of the limits I've imposed, so that you can quickly see if they ever fail.

Feel free to delete the keyframes and play with animating anchor yourself.  Just be aware that if you let it loop over while you're moving anchor, you change the relationships of the rigid bodies, which are calculated at frame 1, and so that loop's physics will become invalid.

Thank you for the detailed rundown. However, I tried running the file both in 2.91 and in 2.83 and neither version behaves in the desired way I described above. I can follow the reasoning behind why this should work, i.e. the point constraint to allow for angular movement and the generic spring to provide the radial limit. Unfortunately, at least on my end, the point constraint doesn't take the sidewards velocity of the suzanne in to account and as a result doesn't rotate, like they are treated as different systems. Thank you for all the effort put in thus far though.


text:
backface culling and shadows in cycles
Using the backfacing property on the geometry node it is possible to selectively make faces transparent in cycles and thus create an effect similar to backface culling. However, due to the way this boolean is set it does not eliminate shadows of the now invisible faces. I need cycles to render a material with backface culling as if the faces culled from the point of view of the camera no longer exist at all.
the top answer here provides one such setup, but it relies heavily on having a single known camera. I really want to be able to link this material into different blend files without manually adjusting the shader to take into account any new cameras. Is this possible to do, and if so, how?

The solution was to take the previously mentioned top answer from here, and to get the current active camera from the depsgraph. I.e. to get the x coordinate of any active camera, use the following driver expression:
depsgraph.scene.camera.location.x if depsgraph.scene.camera is not None else 0


text:
get coordinates of bone from the perspective of second bone in driver
I'd like to get the coordinates of one bone from the perspective of an other bone, i.e. figure out the x,y,z coordinates of bone A where the axis of the space is aligned with the rotation and location of bone B. The purpose of this is to drive different shape keys for when a bone is moved forwards or side wards relative to some other bone. It sounds like something like this ought to be possible in blender but so far i can not come up with a way of doing it.
If there happens to be some other elegant solution to the intended end-goal i'd be happy to take that one too.

Although not in the same direction as i was originally thinking, one can get a good sense of which direction a bone is at using the following construction:
create a helper bone parented to and aligned with bone A, with a damped track constraint pointing to bone B. Now add the driver using the desired rotation of the helper bone  (e.g., X, Z) in swing and Y twist mode within local space. In this mode the angle is calculated as if the bone was first swung in the X,Z axis to align the bone, and then twisted in Y to match up the axis. This thus gives us an indication of the direction of bone B from the perspective of bone A without having to worry about any twisting around the Y axis of our helper bone.


text:
how do I get the search bar by pressing F3 on my mac
Hi I am a beginner to blender and was watching a tutorial where the person presses the F3 command on his computer to get a search bar to access easy short cuts and other various actions. However when I press F3 on my mac it just makes my screens split.

The shortcut for macOS is Fn+F3. This Apple support article explains when and why the Fn is required.

Use standard function keys
Standard function keys work differently depending on the app and the keyboard shortcuts that you've set up. Some apps have their own keyboard shortcut preferences that you can customize.
To use the standard function keys, hold the Fn (Function) key when pressing a function key. For example, pressing both Fn and F12 (speaker icon) performs the action assigned to the F12 key instead of raising the volume of your speakers.
If your keyboard doesn’t have an Fn key, try pressing and holding the Control key when pressing a function key.


text:
Dynamic paint Displace not rendering
I have been trying for the past couple of hours to render an animation with dynamic paint displace, but while it works in the viewport, it does not show up in the render. These are a few things I have tried so far:
Check that the Canvas has enabled 'show in render'.
I don't have a subdivision surface modifier.
It works well in the preview, but when I try rendering it, the displacement on the mesh won't show. Does anyone have any possible solutions for this?
If it makes any difference, I'm trying to render it with Eevee on blender 2.81.

It was a dumb mistake, it turns out. I had rendered it without baking it. And when I baked it and then rendered it, it was rendering the image sequence I had previously rendered, so no changes were being displayed. It has been fixed now.

Wait so you just baked it? It's not working for me.