text:
Viewport shading issue when activating cavity
I have the following issue with viewport shading when activating cavity.
The following is a default startup file:

And here the same, with cavity disabled:

Same thing happens with other models, here with a Suzanne:
cavity disabled:

cavity enabled:

I have played around with some stuff like smooth shading and a view other options, but so far I wasn't able to figure out the reason for this weird shading issue. Anyone know what this could be?

Please check your Clip Start and End settings in the sidepanel's View tab. If the Clip Start is set to a very low value (especially when the End value is very high), then these shading artifacts can appear if Cavity is set to World or Both.

If setting the clipping to a reasonable value alone does not solve the issue, look at the World Space properties in the Cavity settings (the gear icon) and try changing the Distance value to see if it helps (default value is 0.02 m):

Since you said it is in the default startup scene, you probably have messed up the Clip Start setting of the default startup file. So open a completely new scene, change the Clip Start settings to useful values (original defaults are Clip Start: 0.01 m, End: 1000 m), then go to File > Defaults > Save Startup File.

Hmm, you are right on all accounts (I am basically doing the CG Masters "cars:inside and out" course and changed the default file with the settings recommended there..expect for the minimum clip distance. This I had set to a lower value because I simultaneously was working on a project with a very small scale). Setting more reasonable values improves the problem, even if it is not completely gone (especially when zooming out it is still visible). Thank you for the insight!

@RolandDeschain Well, the artifacts usually increase when zooming out, so if it still does that in your scene it means the value is still too low. In general it is not only about if a start value is too low or an end value too high, the range between them is important. It's best to keep the range within a ratio of 10^4 to 10^5 between lowest and highest value. Low start values produce artifacts in perspective view, high end values tend to produce artifacts in orthographic view.


text:
Get the selected asset(s) .blend filepath
I found the blender Asset browser API really difficult to work with, i wonder if any of you have a better solution than the one i found, posted below.
The goal would be to:

for each selected assets in the user open asset browser

get the asset type (object? collection? material? node?)
get the asset data name (object.name, material.name, node.name)
get the filepath of this asset .blend file

Hello. Have you read https://blender.stackexchange.com/a/261226/86891 ? + Suggest you use https://docs.python.org/fr/3/library/pathlib.html instead of os.path

thank you @Gorgious it looks like we had similar solutions, altho 3.5 and this new "all" library category breaks our principle

In the Geo-Scatter plugin, this is how we proceed, the method is FAR from ideal.
Collection type could be implemented that way as well, however, note that we rely on the context asset library being selected, the new "all" category for example render this method useless.
One of the constraints we are facing is the asset.relative_path property, which is utterly useless, as we still lack the most important information, which is the context library directory

class AssetItem():

    def __init__(self, asset=None, directory="",):

        self.asset = asset
        self.name = asset.name
        self.type = asset.id_type

        if (bool(directory)):
            blend, inner = asset.relative_path.split(".blend") #this line won't work if the name is "dude.blend123.blend" for example
            self.path = os.path.join(directory, f"{blend}.blend")
            self.full_path = os.path.join(directory, asset.relative_path)
            assert os.path.exists(self.path)
        else:
            self.path = "current_file"
            self.full_path = "current_file"

    def __repr__(self):

        return f"<AssetItem {self.type} '{self.name}' at {self.full_path}>"

#globals needed for workaround
is_current_file = None
import_type = None
selected_asset_items = None

class SCATTER5_OT_get_browser_items(bpy.types.Operator):
    """workaround, use an operator context override to get the correct context. using areas[x].selected_asset_files simply refuses to work on blender 3.3LTS"""

    bl_idname      = "scatter5.get_browser_items"
    bl_label       = ""
    bl_description = ""

    def execute(self, context):
        """gather asset browset items from operator context"""

        #import globals and reset
        global is_current_file , import_type , selected_asset_items
        is_current_file = import_type = selected_asset_items = None

        #no headless support
        if (not context.window):
            print("SCATTER5_OT_get_browser_items->not context.window, using blender headlessly?")
            return {'FINISHED'}

        #set global context
        window, area = None, None

        #is context area already correct?
        if (context.area.ui_type=="ASSETS"):
            window, area = context.window, context.area

        #else try to find AB area in context window first
        if (area is None):
            for a in context.window.screen.areas:
                if (a.ui_type=="ASSETS"):
                    window, area = context.window, a
                    break

        #else try other windows?
        if (area is None):
            for w in context.window_manager.windows:
                for a in w.screen.areas:
                    if (a.ui_type=="ASSETS"):
                        window, area = w, a
                        break

        #else raise error..
        if (area is None):
            print("SCATTER5_OT_get_browser_items->No match for windows/areas")
            return {'FINISHED'}

        #override if needed, to do so, will need to quit and relaunch this operator
        if ((context.area!=area) or (context.window!=window)):
            override = bpy.context.copy()
            override.update(area=area)
            override.update(window=window)
            bpy.ops.scatter5.get_browser_items(override)
            return {'FINISHED'}

        space = area.spaces[0]
        directory = space.params.directory.decode("utf-8")

        #Better way to support assets? get main directory path easily from API? don't looks like it

        #write globals
        is_current_file = not bool(directory)
        import_type = space.params.import_type
        selected_asset_items = [ AssetItem(asset=ass, directory=directory) for ass in context.selected_asset_files ]
        #TODO supports "COLLECTION", will need to import collection and do object instance ourself if cannot find collection instance object
        selected_asset_items = [ Ass for Ass in selected_asset_items if (Ass.type=="OBJECT") ]

        return {'FINISHED'}

def import_selected_assets(link=False, link_coll="Geo-Scatter Import",):
    """import selected object type assets from browser, link/append depends on technique"""

    objects_found = []

    bpy.ops.scatter5.get_browser_items()
    global is_current_file , import_type , selected_asset_items

    ...
    # proceed to the import code..

source: Stack Exchange

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

sort: votes


text:
Most effective technique to detect changes in mesh-data's?
What would be the most effective way to track changes in the user mesh-data's? I would like to receive a notification signal if a user mesh data has changed.
I see a few (fast) approaches possible:

on depsgraph handler: Keeping track of all meshes vertex-count
on depsgraph handler: Keeping track of all meshes bounding-boxes
via msgbus: Overseeing if a user is entering edit/sculpt mode, on which mesh

But:

Keeping track of BB & vertcount wouldn't work if the user is simply moving a vertex within the BB area
Overseeing edit/sculpt mode could create false positives if the user is just toggling edit mode on/off

Did I miss something obvious? We could gather bmesh information, but I'm afraid this method would be much too slow.
Context: creating a live bridge between blender and a game engine. Extra points if the solutions can also detect changes in mesh attributes

There is another approach i did not knew about, much more generic!

on depsgraph handler: Overviewing depsgraph.updates with upd.is_updated_geometry

A mix of this and a custom mesh hash method would be ideal

We could use numpy and foreach_get to get an accurate hash.
look fast enough? might be too slow, with such method, it is crucial that the hash calculation is done on key moments
import bpy
import numpy as np
from bpy.app.handlers import persistent
from collections import defaultdict

mesh_vertices_hashes = defaultdict(int)

def mesh_hash(obj):
    vertex_count = len(obj.data.vertices)
    vertices_np = np.empty(vertex_count * 3, dtype=np.float32)
    obj.data.vertices.foreach_get("co", vertices_np)
    h = hash(vertices_np.tobytes())
    print(h)
    return h

@persistent
def base_mesh_modified_notifier(scene):
    global mesh_vertices_hashes

    for obj in scene.objects:
        if obj.type == 'MESH':
            current_hash = mesh_hash(obj)

            if obj.name not in mesh_vertices_hashes:
                mesh_vertices_hashes[obj.name] = current_hash
            elif mesh_vertices_hashes[obj.name] != current_hash:
                print(f"Base mesh of {obj.name} has been modified.")
                mesh_vertices_hashes[obj.name] = current_hash

bpy.app.handlers.depsgraph_update_post.append(base_mesh_modified_notifier)

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


text:
How to read the instance "object type" in geometry node?
Is it possible to read the object type of the instance? For example this user would like to know if the instance are empties type object or regular objects
Using b4.2
Bests

You are showing two custom node groups there. What are they? Where are they from? What is inside of them?

Nothing, it's just an example of what the user is looking to have as a result

In my opinion, what he want is not possible yet

Who is he? Are you talking of yourself in the third person or for whom are you asking this question?

Theoretically you can get close to something like that, however there is a problem: my workaround mainly works with Meshes, Point Clouds and Curves because there we have the Domain Size node which we can use to determine if there is any kind of geometry in any of those domains.
The problem is, any mesh or curve object in Blender can have all its vertices or control points deleted in Edit Mode and would still be the same object type as before, but there is no more geometry which would be counted in the Domain Size node so they would appear as an Empty object.
Anyway, so much for the shortcomings of the following setup. What I basically do is using three Domain Size nodes, one set to Mesh, one to Point Cloud and one to Curve. The Point Count output is plugged into a Switch node. Each value greater than 0 will be interpreted as "True", and each object type should have a Point Count of 1 or more if it is not empty. To make sure this works even if the Object Info node is set to As Instance, I put a Realize Instances node in front of the Domain Size nodes. This makes the result factually incorrect, since Blender treats instances not as mesh, curve or other objects. But let's say this test is made to check for the "original" object type.
By giving each "True" result a specific integer value with a Switch node and combining them together, the end of the chain should result in an integer value that shows which object type is plugged in at the beginning. This integer value I use in an Index Switch node set to String to output the object type as string (which will then be used in the final output).

Now to check whether an instance is an empty or not, I simply add the three Point Count outputs of the different Domain Size nodes together. If any of them has ad least a single point, the object is not an Empty (but here the problem mentioned in the beginning is relevant that there is no difference between a "real" empty or any other object that simply has no geometry).

In the end I thought it might be interesting if an object is instanced or not in general (because as mentioned when checking the object type, even if the "original" would be for example a mesh, Blender treats it differently if it is instanced. Since the Domain Size node also has an Instance Count, whenever this is greather than 0 this means the object is instanced.

Altogether I combined all these strings and converted them so that I have a readable output of the result:

If I would now plug different objects in there, the text will show what type of object it is and if it is an Empty (kind of redundant since this is anwered with the first check) and if it is an instanced object (the Curve is instanced in this example):

All in all I've made four different custom node groups out of that: one that creates all the text as shown before, another one that just outputs the object type as string like in the question, another one that just outputs a boolean value "True" or "False" if the instance is an Empty (no matter if it is really an instance at all though) like in the question, and the fourth is an extension of the simple object type group, which apart from a string for the type also outputs a boolean value if the object is instanced or not.

//EDIT: Now that I was reminded that the original question was asking to do this with a collection of objects, I've created another nodetree. It uses the "Object Type" custom nodegroup of the other nodetree.
Basically I plug the collection into a Repeat Zone where the Instance Count of a Domain Size determines the number of Iterations. Then on each step a "counter" is increased by 1 and compared to the indices of the instances. A Split Instances node selects the instance object where the index is equal to the current counter value.
From this now single object I determine the typ with my previously created "Object Type" custom nodegroup and put out the string, I also read the position of the current instance and move it a little bit so that it is placed next to the object.
This can certainly be made prettier and maybe more convenient but I think it is something to start from. I ignored the "Is Instance Empty" nodegroup in this setup because an Empty will be written there in plain text so this should be good enough as base.

Hi Gordon
Thanks for your answer and your wonderful explanations! How would your system react if the object given was not a single object, but a collection of instances? Such as shown in the example image provided in the original post

@Fox Actually it will not react so well... if the collection would hold empties, meshes and curves, it would show the collection as containing a curve object (since all switches would be true and "Curve" is simply the last entry in this setup) and it would not show that there is an empty because the sum of all elements is not empty. Sorry, I did not bear in mind that there is a collection plugged in (since the question's singular phrasing "Is it possible to read the object type of the instance?" kept me thinking of trying to determine it for a single object. Guess this answer is useless then.

@Fox Okay, now I've added a version for collections at the end of the answer which is based on the solution for individual objects. The file is also updated, there is a new Geometry Nodes setup "Object Type Collection", but the old one which I named "Object Type Single" is still in there to choose from the modifier menu as well.


text:
How can I add bubbles to glass shader without using particle system?
I created a glass object following this CGMatter's tutorial
https://www.youtube.com/watch?v=Zu74ljrLz4w&t=124s
Now I would like to add bubbles inside the glass, but since the glass object is a curve with a screw modifier I can't apply a particle system to make the bubbles.
The object is also animated, so the curve can't be converted to mesh.
How do I add bubbles to this glass object that also changes shape?


text:
I can't find my play button in the Timeline, just the left half of it is visible on the right side of the header
So I had it a view times, that I was missing my play button in the Timeline. I searched the Internet but couldn't find help yet.
The bar with the play and pause symbols isn't completely gone. The left part is visible in the left corner of the header but I can't access the other half, as shown in the picture. I tried scrolling. It could be a bug, but maybe it's my fault.
I use Blender 2.92. When I open a new project it's normal again but when I load the previous  file again it's still there. I can start the animation by hitting spacebar.
In need help.

Probably the easiest way is to perform a factory reset (File > Defaults > Load Factory Settings)

move your cursor to the right edge until the cursor changes to two arrows. Then hold the left mouse button and drag to right. Tadaaa....is will appear magically.

How did you try scrolling? With the scrollbar? This is only for the timeline. Get your mouse pointer over the menu bar and scroll with the mousewheel. Usually menu items "disappear" if the window is too narrow to display them all.


text:
VSE: Turning split screen on and off when using multicam
I have been experimenting with the multicam feature in VSE.  I recorded a scene with three cameras and have managed to switch from camera to camera with the multicam feature.  Works nicely.
What I'm now having trouble with is temporarily splitting the screen, so that the views of two or three cameras are seen simultaneously for a few seconds.  I know I need to use the Transform effect, but do I apply it to the multicam segments, or to the original strip/channel?  When I try the latter, it applies to the entire strip and won't let me narrow it to the frames I want.  If I apply it to the multicam segment, the transformation works, but it only applies to the channel that the multicam has selected.
So, first, how do I select the camera view to place in the other portion of the split screen? Do I keep using multicam?  Another instance of multicam?
And second, how do I transform this second view to fill the other part of my split screen?
I apologize if I'm not explaining this very well.  Can anyone make sense of my question and help me out?
Thanks

For picture in picture, set the strip to Alpha Over and use the transform options to scale and place the image. Repeat for each channel from the top down. No need for multicam or transform strips.

I've just realized that scaling and moving is available in the strip properties without using the Transform effect, but from what I can see only Transform gives you the option of moving by percentage -- in the strip properties dialogue moving by pixels seems to be the only option.

And I'm already using multicam to produce output from three full-length original strips.  If I apply the transform to the strips it applies it for the full duration rather than for the limited duration of each of my multicam segments.

I think I understand what you want, but I’m not sure what multicam is. What I would expect you to do is to have two transform strips, each attached to one of two identical video strips (identical, that is, except for one coming from a different camera). The transform strip on a higher channel should be set with a compositing setting (in strip properties) that allows the other transform strip to show through in its appropriate location. Probably “alpha over.”
When you use a transform strip, the transform strip itself is like a new version of the old video strip to the sequencer, and should be treated as such in how you composite it. I think you can actually set the transform opaqueness to half (with the right compositing setting) and see the original video underneath.

Thank you.  Yes, I needed to adjust the opacity of the main strip to zero so that it wouldn't be visible beneath the transformed strip.  (I also needed to add a black colour strip below them, so that the original strips wouldn't be seen.)


text:
How to easily detect new appended data with bpy?
Fellow bpy coders, do any of you know an easy method/trick to detect newly added appended datablock in the user scene?
context:
I intend to automatically detect new appended objects in user scene in order to ensure that no name or idx collision happens within the context of my plugin custom properties. Therefore i should catch the list of appended objects as soon as it is possible in order to potentially change the .name and .uuid values of my objects
Cheers

if we could look at user undo history stack, & if last undo step was an append operation, we could act accordingly. but the undo stack is written in C unfortunately

Generally use bpy.app.handlers.depsgraph_update_post
For attribute: bpy.msgbus
Since blend data update will trigger redraw, It can also be like this:
# Detect whether bpy.data.objects item has been added or deleted
import bpy

def draw():
    new_len = len(bpy.data.objects)
    if draw.old_len < new_len:
        print("New Object appended")
    elif draw.old_len > new_len:
        print("Some Object deleted")
    draw.old_len = new_len

draw.old_len = len(bpy.data.objects)
bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_PIXEL')

Hi
Wouldn't this function also detect dupplicated objects?

Yes, if you run bpy.context.object.copy(), you will see it print: New Object appended. But it doesn't know if this is a copy operation.

It also fails if you append an object and delete another object in the same iteration. (I assume the object was added by code) Something like https://docs.blender.org/api/current/bpy.types.ID.html#bpy.types.ID.session_uid might help ?

This is because the drawing code is not triggered immediately in the same iteration. For this situation, you need another approach.


text:
How to change the internal links of a muted node?

i need this node to not destroy my nodetree when muted.. am i missing something?
It seems that python give us no possibilities too, node.internal_links has no .new() function, node.internal_links.from/to_sockets is read only, and if we try node.links.new() on the same node for a input/output we'll have a feedback loop error in the console

If this is not possible, I’d definitely suggest you post it as a feature request on rightclickselect.com and I’ll upvote.

as a workaround: using a switch node?

In what way is muting destroying your node tree?  I suspect the problem isn't directly with muting but with the internal wiring of the node group that node represents.  Could this be the case?

it looks like a bug tbh, in the doc it says that a muted node shouldn't change anything


text:
How to batch generate bpy.props?
How can we batch generate properties, let say i would like to have
my_pattern_slot1 : bpy.props.PointerProperty(..ect.)
my_pattern_slot2 : bpy.props.PointerProperty(..ect.)
my_pattern_slot3 : bpy.props.PointerProperty(..ect.)
my_pattern_slot4 : bpy.props.PointerProperty(..ect.)
my_pattern_slot5 : bpy.props.PointerProperty(..ect.)
..ect..

in my plugin property structure, w/o repeating my code ?
Note that i am aware of bpy.props.CollectionProperty and it's usage,
however here in my context, I do not care to have an undefined amount of properties. Having the index baked in the property name is what I'm looking for

May be write a code to generate the string as code?

i believe that running exec() or eval() didn't worked here, because properties are being declared, not evaluated

I will copy the code in console to the .py file. It works but not perfect.

In the case of registering a property in typical a PropertyGroup structure, we need to register them in the __annotation__ python object. Blender is a bit special in this case, i believe annotations, and type declaration are only meant as an informal goal in python, but here it plays a key role on registering the property itself.
Here is how we can batch generate properties with the help of a function.

def batch_declare_properties( name="my_prop_XX", property_type=None, nbr=20, items={},):
    """this fct goal is to generate redundant the properies declaration, use XX or X as idx placeholder in your property name or label"""

    declarations = {}

    for i in (n+1 for n in range(nbr)):

        #adjust propname depending on index
        if ("XX" in name):
            prop_name = name.replace("XX",f"{i:02}")
        elif ("X" in name):
            prop_name = name.replace("X",f"{i}")
        else:
            raise Exception("batch_declare_properties->forgot to use the XX or X kewords")

        kwargs = items.copy()

        #adjust label depending on index?
        if ("name" in kwargs.keys()):
            to_replace = "XX" if ("XX" in kwargs["name"]) else "X" if ("X" in kwargs["name"]) else ""
            if to_replace:
                kwargs["name"] = kwargs["name"].replace(to_replace, f" {i}")

        #add property to dict
        declarations[prop_name] = property_type(**kwargs)

        continue

    return declarations

And in the PropertyGroup it looks like this
please pay attention to __annotations__.update(declarations)
class SCATTER5_PROP_particle_systems(bpy.types.PropertyGroup):

    __annotations__.update( codegen_properties_by_idx(
        name="my_patternX_allow", property_type=bpy.props.BoolProperty, nbr=3, items={
        "description":translate("Influence your instances scale and density with a texture-pattern"),
        "default":False,
        },),)
    __annotations__.update( codegen_properties_by_idx(
        name="my_patternX_texture_ptr", property_type=bpy.props.StringProperty, nbr=3, items={
        "description":"Internal property that will update a TEXTURE_NODE node tree from given nodetree name, used for presets and most importantly copy/paste or synchronization",
        },),)
    __annotations__.update( codegen_properties_by_idx(
        name="my_patternX_id_color_ptr", property_type=bpy.props.FloatVectorProperty, nbr=3, items={
        "name":translate("ID Value"),
        "subtype":"COLOR",
        "min":0,
        "max":1,
        "default":(1,0,0),
        },),)

This code generation technique is also very handy if you have a lot of properties dedicated for the UI, for example in my project i have a lot of properties for opening/closing GUI, with by changing a little this function you can search in your whole plugin text for specific keywords and generate the properties accordingly
def generate_all_my_ui_properties():
    """codegen for registering all ui open/close properties for toggles
    usage: leave commented keywords such as CODEGEN_REGTIME:UI_PSYBOOL_KEY:"my_prop";UI_PSYBOOL_VAL:"0" and the function will generate the properties automatically"""

    d,keywords,defaults = {},[],[]

    for py in get_my_plugin_modules():
        with open(py,'r') as f:
            txt = f.read()
            keywords += re.findall(r'CODEGEN_REGTIME:UI_PSYBOOL_KEY:"(.*?)"', txt,)
            defaults += re.findall(r'UI_PSYBOOL_VAL:"(.*?)"', txt,)
         continue

    for (prop_name,default) in zip(keywords,defaults):
        if prop_name not in d.keys():
            d[prop_name] = bpy.props.BoolProperty(default=int(default),)
        continue

    return d

I do believe it might be a good idea to create your own subclass of a bpy.props, but i did not mess with such class structure yet


text:
Resources for advanced bpy users?
I arrived at a point where I encountered/overviewed the majority of what bpy has to offer, and most resources we can find online are aimed at beginners are.
So I'm wondering what the best websites, books, or threads we can read to perfect/deepen our knowledge on various subjects related to blender python are?

Too less advanced tutorial for blender api. The solution is read the source code or ask question here.

i've already been reading a lot of bpy source code (mainly the class structure generated from bpy_struct ect) and i believe a lot is not meant for us to be used directly, any modules you found particularly interesting to discover?

Not yet, they are all boring.

The most obvious answer would probably be Blender Python API Documentation . It is probably one of the best resources for learning about Blender Python API. As well as countless add-ons for Blender that come with Blender or that you can download online. You can just read the source code of them and study how they are made. I cannot imagine any better resources to be honest since those are the real deal, real world stuff and no tutorial can give you better examples.


text:
Impossible to locate missing files
I have a broken links in my blend, i tried to use the "find missing files" operator, however it systematically throw an error messages about missing jpeg or .blends, not even used in this blend data, i can confirm that everything is packed except for a few links.
This issue is very strange, blender seems to just skip the search of all other missing files when it encounters any errors
There are 200+ missing links, manually going in the outliner and relocating the libraries will not do the job. Why is this happening?

Outliner switch to "Orphan Data" and Delete links from there ...


text:
Blender transforms suddenly multiplies mouse movements
I think I have presses some shortcut or accidentally changed some settings, but in my current project, whenever I am zoomed in too much and try to move a vertex for example the movement happens in extremely high increments, making any fine grained control impossible (even pressing G and then arrow keys is too much).
I checked in an older backup save, the issue is not apparent there:

Here is the same operation on the same piece in the current save:

Here is an additional screenshot with the rest of the UI (I am happy to add additional screenshots with settings if any information is needed)

Again, this seems only to be apparent when zoomed in quite a bit. Any idea, which setting is causing this behavior? I wasn't able to find any solution so far.

Your transform pivot point is set to 3D Cursor. Where is the 3D Cursor in your scene? It may be in an awkward position in relation to your mouse and viewport and cause unexpected movements. Try moving the 3D Cursor somewhere inside your viewport or set another transform pivot point setting maybe.

Oh boy, that was it. Thank you so much, this was driving me crazy (also I change the pivot point quite a lot, but usually it is wanted. Must have accidentally  swiped the mouse with the .-menu open at one point)


text:
Is there a (performant) way to raycast on points?
Importing a .ply file will be a Mesh with vertices for each points, but no edges or faces. To render this pointcloud, one has to create a geometry node setup like this:

Here is the problem/goal:
I built a raycasting script in python, which is able to shoot rays through each pixel of the scene camera. I want to get back information about which point is visible at a certain pixel. However, a point or vertex can never be hit (which makes perfect sense).
The obvious solution would be to use a instance on points node, however I am dealing with quite big point clouds, so performance will go to unusable levels if I do that (or Blender simply crashes)
We also already tried to simply render the ID information simply as attribute, but this leads to other issues (float32 precision for big index values), so I tried to go the ray-casting route.
The Mesh to Points node has the radius parameter, so there is some kind of geometry in there somewhere, I just cannot figure out how to access it for the ray-caster.
So the question is, if it is somehow possible to cast rays onto a pointcloud in blender?
Additional note:
One way I though about, was selecting points within the camera view frustum and casting rays from those point position to the camera position and check whether those hit the viewing plane. But depending on the camera position, this might lead to a huge amount of rays.

I don't think it is possible. Raycasting is based on triangles (quad and ngon by extension). As you said, you would never get a collision with points. Also, the radius from Mesh to Points is just the radius of the points generated, which is a intrinsic value of Points. No geometry there.

@Lutzi yes, unfortunately it seems like it...

I only have a basic understanding of it, but what you are describing make me think of raymarching. It may be another approach ? I can't help you more nor tell you if it's somewhat possible with Blender and Python.

Ray marching is similar, you would go along the ray in certain steps and read values at them. I try and build something not far from that. I am thinking about generating a bounding box with the "frustum" of a pixel and simply test which points are withing this bounding box. This might work with some performance optimization.

Rather than randomly casting rays from the camera I suggest you cast rays from the points. There are several methods that come in mind but you could take information from https://blender.stackexchange.com/a/187270/86891 Construct the view frustum planes, compute the dot product of each point with the normals of the 4 planes, if all of them are positive then the point is inside the view frustum (conversely if at least one is negative, point is outside of frustum). Might be crazily expensive to compute but you won't miss data and you might be able to optimize things by constructing a BVH tree.

Came here to say what @Gorgious mentioned at the end. I would check out the bvhtree module that comes with blender. I think this is the best bet.


text:
Prevent "Mesh Boolean" from taking intersecting objects material?
Ok I have searched quite a while for this, so I hope I am not overlooking an obvious option.
I want to model some nails in a wood plank. To make a bit more realistic looking I wanted to add some deformation of the wood around the nails, however I did not want to manually model more geometry (and I wanted to automate copying and placing multiple nails) so I landed on using the "Mesh Boolean" geometry node.
Here is the setup:

Basically it should take all the nails in the "Nails_1" sub-collection, scale and offset it slightly. This works alright for the most part:

However, if I hide the nail I see that the material on the intersection is take from the nail:

As far as I could find out, this is expected behavior. Nonetheless, I am wondering if it is possible to prevent this and use the original wood material.

Fixed it temporarily with a Set Material node of the intersection mesh, but that seems not like a really good solution?

Yah, no I think that's the way to do it.


text:
How do I attach a model to another model like this?
I have a plugin that has an option to "attach model" when importing one model that is related to another.
In this case I have two models: hands, and weapon. I first import the hands, select the skeleton of the hands, and then import the weapon via the plugin. The weapon then gets attached to the hands in the object list, and the weapon is repositioned correctly so that the "tag_weapon" bone of the hands is aligned with the "j_gun" bone of the weapon:

This is great, but how can I do this manually? I have models of other file types that I want to do the same thing with. When I import them, naturally they won't be attached to the hands in the object list and the bones won't line up.

That reminds me this... don't know if that can be useful for your case: https://blender.stackexchange.com/questions/58983/rigging-two-handed-weapon/58988#58988

There are multiple ways to achieve a result like this.

Parent the skeleton of the weapon to the desired bone of the other skeleton.

Add an object constraint to the skeleton of the weapon to do the same thing.

Add a bone constraint to the specific bone of the weapon skeleton to attach it to the desired bone of the other skeleton.

1 and 2 are object-level attachment. 3 is a bone-level attachment. I can't rule out the possibility that this is an object level attachment, that's why I include 1 and 2 in my list. If you share the file, I can further inspect this, or you can check against my screenshots.
Please don't rule out the possibility that the plugin is doing some work before or after the parenting. For example, it could be rotating the objects after parenting, or tweaking the constraint settings. Additionally, for 2 and 3, it is possible to use a different set of constraints to achieve something similar to parenting.

Mr A's answer solves the main question I asked, but for this specific case it wasn't enough. For it to all work properly including animations, I had to do 3 things in total:

Join the skeletons of the hands and weapon by selecting the weapon first, then hands, then right-click > join

Select weapon model, go to modifiers. It had a pre-existing armature modifier, but after joining skeletons it didn't know what to point to, so I chose the hands model in the "Object" field.

Add a bone constraint to the "j_gun" bone (weapon's main bone), and for the parent, set the hands' "tag_weapon" bone (hands' bone designated for the weapon)

Hope that helps anyone with a similar setup


text:
Remesh spheres in geometry nodes?
How can i remesh spheres to look like metaballs without destroying my wireframe object? Im trying to make this animation but metaballs are broken and wont render with geometry nodes.

I might use a particle system instead of geometry nodes.

What exactly do you want to remesh here? Unfortunately, the underlying problem is not clear from your question. Please be so kind and edit this question.


text:
Is it possible to hide the wire in the edit mode?
I am working on models made by photogrametry so I had really dense mesh. I wanted to know if it is possible to hide (or make it transparent) the wire of the mesh when I m in the edit mode?
I m using blender 2.79. And I already try to make it less thick and to change the color in the user preference menu, but I can't hide it.
Thank you if you can help me.

There is the option which was formerly dubbed, Only Render.
The icon to the left of the red-arrow is the toggle button, the icon to the right has a bunch of other viewport toggle draw options.


text:
How to reverse the moving of timeline in blender
My timeline is moving in the opposite direction of frames like frame 50 to frame 1

You are likely pressing the 'play backwards' button instead of the 'play' button. If not, check your frame beginning and ends. I'm on phone rn so I cant show a screenshot, but its pretty easy to find.

Thanks it was my mistake, I am using it first time so thank you very much

If that answer did help to solve your issue, please consider to accept it @VisheshGupta How this site works: https://blender.stackexchange.com/tour


text:
Liquid Sim Stationary Effectors
I have a literal Blender fluid simulation.  I’m struggling to get the fluid to settle back down after being thrown around by a blade and vortex force field. It also seems to increase in volume over time.  Decreasing the particle radius to .7 has helped, but any smaller it flies through the jar. I have an effector thickness on the jar of .004m and sampling dubsteps of the jar around 3-5 steps.  Do substeps of stationary effector help the liquid not fall threw?  And do substeps make the liquid tend to hang on the surface a little more?
Also, if a sim is running well at 32 resolution and .7 particle radius.  Is it possible that I may not need to run the smaller particle radius at higher resolution?

There can be two containers one that is rendered and seen in your final image and one that is [thicker] and used for the fluid simulation obstacle.

The thicker obstacle is not rendered.  That is a single click option in Blender.  The thicker obstacle may contain the fluid better.

Got it, thank you.  That's exactly what I ended up doing!  Now I just need to figure out how to fluid particle instances keyframed to an .abc file.  If I simply export them using the checkbox (include particles) each particle comes in to Keyshot as its own animation(thousands) and they all start on frame 1.  I saw some Python scripts for v2.8, but they didn't run in 2.9 and I know almost nothing about Python coding.  I wish there were an Add On specifically for this.  Maybe I am just better off learning to rendering in Blender.


text:
Rope and Pulley
I am new to blender and for my project, I must make a Rude Goldberg machine. I am currently struggling with the rope and a pulley part and don't know how to even start it. Can someone please help?

First of all help us to understand better your problem. Please add some screenshot of what you want to achieve and what do you have so far.

Welcome to Blender SE. Rope and pulley animations are fairly complex, using several physics simulations - even just modeling rope can be a challenge. But Rube Goldberg machines don't have to have pulley mechanics. They just have to be enormously over-engineered for a simple task. So simple rotations and collision physics can be enough to make a decent machine. Also... I suggest avoiding using BSE to do your homework for you :) Try this tutorial from BlenderGuru on Rigid Body Simulations - https://www.blenderguru.com/tutorials/quick-tutorial-make-a-wrecking-ball-with-rigid-body-physics

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


text:
Correspondence between two sets of meshes
I've stumbled across a problem that seems rather easy but couldn't found a satisfactory answer. What I want to do is get some sort of (weighted) correspondence, constraint, parent-child functionality ... between two sets of meshes such that if a vertex or face of one mesh is transformed, the related vertex / face of the other mesh transforms accordingly.
What I found was constraints relating the transformation of entire objects but not single vertex points / meshes.
Thank you all!

You can hook the meshes vertices with, say, some empties, and add constraints between them.

It seems like this could work however for a complex mesh like mine it sure is a lot of work to get the empties right. On top of that, setting "Copy Transform" constraints between them just moves them to the same location for whatever reason. What constraint did you have in mind?

Simply parenting the empties? As, if I understand what you want, it is to translate the same way? If you use a modifier for the hook (not the operation), maybe you can obtain the "weighted" effect you want using strength or vertex group.

translate, rotate, scale, move vertex position inside the mesh.. all that functionality would be required. What I've tried with the hook (parenting, adding constraints..) did not yield a good result :(

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


text:
Boolean intersect behaves sometimes unpredictably
I'm having some weird and mostly unreproducable error concerning the boolean-intersect modifier. In rare cases, it does not cut objA along the edge of objB but rather along the contour. See the following pictures for clearification:

The modifier on the heel behaves as expected when intersecting the plane, but the one on the forefoot sometimes yields these strange results.

Does someone have an idea why that behaviour occurs? Thanks!

https://blender.stackexchange.com/questions/34451/how-to-cut-holes-in-an-object-using-another-object and https://blender.stackexchange.com/questions/22/how-do-i-do-a-clean-boolean

I tried the same, using plane for boolean operation and I got the same issue so I tried using a Cube for the Boolean rather than using a plan and there it is , solved! So you might have to use the cube for such operations and after you apply the boolean simply delete the Cube.

Hi and welcome to Blender Stackexchange. Please take a look at the top questions and answers and the amount of information they content, then please modify your answer so it contains enough information to help people without without further inquiries.


text:
How to render with sky texture but get transparent background?
I use sky texture as world as part of my lightning setup. How do I render with transparent background while keeping the light emitted by sky texture?

Hello :). This thread should help: https://blender.stackexchange.com/q/1303/

On the render properties under Film check the Transparent box (for Cycles render engine)


text:
Cutting multiple objects
How do i cut all these small cylinders in stright line like this?

An edit mode solution is by using the Bisect tool. Check the Clear Outer option to delete all vertices above the intersection plane:

You can use a boolean modifier on an arrayed object to do that:


text:
Messed up origin point
Sometimes after I do some modifications with model or duplicate and do some modifications then the origin point of the model goes out of the model and it becomes hard to rotate/scale and do anything else with the model.
Here is a screenshot:

Some screenshots could help to understand what modifications you do and what happens after. It sounds like you move the model in Edit mode, then in Object mode origin point of the object will be away from the geometry since it won't move. Make sure to grab objects only in Object mode.

The origin point is  local coordinate (0, 0, 0).   Vertices use local coordinates.  Moving vertices  in edit mode moves their location relative to the origin. Eg if you edit default cube, select all verts and move all 2 units in any direction, it's origin will be outside the mesh.

In the T pannel (on the left in the 3D view) in object mode with the object selected, there is a set origin button. Try using the set origin to geometry or center of mass functions. If those dont give you the result you want, try placing the 3D cursor where you want the center to be and use set origin to 3D cursor.


text:
How to use knife tool properly?
I am new to blender.
Is there a way to make knife tool cut exactly along the axes?


text:
How do I color an entire group of objects at once?
How do I color selected group (by using materials). I have like 50 objects in one group and I don't want to color them in the same color 50 times.


text:
Random rotations for a group of objects
I have group of ~50 cubes, is there an option to rotate them randomly so I don't have to rotate them one by one? And if there Is then is it possible to set by how many degrees and witch axes they can be rotated so they can be rotated only x axes and only slightly?

You may want to try rotating with the Proportional Editing tool, with falloff set to "random"


text:
How to curve a flat object?
Tried searching but couldn't find how to curve this in  the way I show with red lines (ms paint, sry XD)

Based on the way your slab is oriented (relative to your reference sketch), you will need to rotate the Empty that controls your Modifier 90° on the X axis. This is because the Simple Deform Modifier bends about the axis object's Z axis.
Then set your Deform Angle to 90 or -90, depending on which way you want it to curve.
Finally, use the Limits sliders to specify where the bending influence will begin and end.

Add an Empty, with rotation=90 (may be X or Y depending on the orientation of your slab).

Next, add a Simple Deform modifier to the slab, using the Empty as the Axis,Origin object:


text:
Custom shortcuts replacing Ctrl+Tab
Its pretty uncomfortable to use Ctrl+TAB to switch between vertex/edge/face selections in edit mode. Is there a way to make custom shortcuts for each of them?
Allso Is there shortcut for sculpt mode? And if not can I create one and how.
Thanks!

Go to File > User Preferences > Input, then expand the 3D View section and the "3D View (Global)" Section. It will look like this:

Scroll to the bottom and you'll see an "Add New" Button. Click that and expand the new shortcut. It will look like this:

Type in the command that Blender will need to complete when you enter your shortcut. In your case, that's: mesh.select_mode. Then Change the Action to "Enable" and set the keyboard shortcut that you want. In this case, I'll use Alt+Shift+V:

Repeat these steps for the other 3 selection modes. You can also make a shortcut to toggle sculptmode by using the command: sculpt.sculptmode_toggle You can see what these commands are by lowering the info window after you have set the mode to sculpt:


text:
How do I connect these faces?
How do I add a curve connecting the two faces? I’m attempting to model a wing, so this would be the “elbow”, so it can’t be perfectly smooth, but I literally just started blender and the tools are extremely overwhelming. And I suppose, for future reference, I should ask: what kind of tool should I use for the membrane? Can I lock things to a parent point so it doesn’t create gaps when I finally animate it?
cube.006 is the upper one, while "cube" is the lower one.
please explain it to me like I'm stupid this has taken ALL of my brainpower I'm pretty sure I'm losing my mind.

Maybe use a union boolean operator, then manually create faces using 'F' in edit mode

See settings in this answer re using bridge edge loops (as answered) to add loop cuts to the elbow geometry.   https://blender.stackexchange.com/a/166692/15543

If both cylinders have the same amount of vertices on their head faces, you can

select both objects

CTRL-J -> Join

tab -> edit mode

select edge loop of both faces

Edge -> Bridge edge loops

result:


text:
Is there any substitute for Principled BSDF node in Blender 2.76b?
I have been trying to do some texturing watching a YouTube video and in that they are using Blender 2.81a. However, I cant afford it as my computer doesn't have the required graphic card and processor (can't buy a new one for this because I am not a professional, just a beginner). So I have been using 2.76b as it is the one which works best in my computer. When I was making this cube, there was a need to use Principled BSDF node ( the youtuber said it is important to use that . But I cant find the Principled BSDF node  in my device ( I tried it in cycles render as was told by someone on the internet but there is no option to select Principled BSDF in cycles render too ) . Please help...

Hello :). The Principled BSDF is available in Blender 2.79 which should work on the same hardware. In case you reeally want an alternative, check this CynicatPro's YT playlist. He explains how to achieve the same level of physically based shaders in previous versions.

@JachymMichal I tried to install Blender 2. 79 But it says like
"Your system does not use 3D acceleration.
Blender requires  a graphic driver with OpenGL 2.1 support.
This may be caused by:
A missing or faulty graphic driver installation
Blender needs a graphic card driver to work correctly.
Accessing Blender through a remote connection.
Using Blender through a virtual machine.
This program will now  close."
I thought this is due to a hardware requirement  so if not can you please help me to fix it.

The Principled BSDF is a sort of pre-mixed nodes, so you should be able to achieve something quite close with a node setup, but you need to tell a bit more about what are the BSDF settings in the tutorials so we can propose a solution

Hi :). If you want, you can download Cynicat's shaders here on Gumroad. They're as close to Principled BSDF as you can get.

@moonboots Oh ok he mentions that he will use these ⏩ Base colour, Roughness normal, specular, subsurface colour. I dont know whether he will use any other because I havent seen the whole course as there are many videos in the playlist but he said in this video that the needed things are those ⬆⬆

@JachymMichal Hi can you please explain what is that thing you send means because I downloaded it but wasnt able to understand what it is . It shows some balls and some nodes but can you please explain what that is or how to use it.

This is a basic standard material nodetree.
If you have a texture into the base color input of the Principled BSDF, plug it into the color input of the diffuse shader.
If you have a roughness value or texture, set it in both roughness input of diffuse and glossy shaders.
If you had something plugged into normal input, plug it into all 3 normal inputs of nodes.
If you had metallic set to 1.0, use two glossy shaders with different roughness value instad of one diffuse and one glossy.
If you had transparency set lower than 1.0, add a transparent shader and a mix shader.
More complicated materials need SubSurfScattering, Anisotropy, Transmission, but Diffuse and Glossy are the basement.

Hello :). The Principled BSDF is actually waaay more complex, since it accounts for non-linear fresnel changes when increasing roughness

@JachymMichal Sorry I am new to Blender I didn't understand what you meant.


text:
Blender Fluid Simulation does not work even after baking at 300 Resolution subdiv
I created a fluid simulation with a domain and a flow mesh, and baked it even at 300 resolution, but still no fluid appears in the scene.

Can check the blend file, but first is it possible that the normals on your emitter mesh are inverted?

@ZargulTheWizard: nearly... ;) emitters faces are not inverted, but a lot other faces are, and i think you should first fix that. Then update your blend file and i will check again. e.g. your trunks...[1]: https://i.sstatic.net/WdDEd.png


text:
Max of 8 UV maps on one Object?
Working on a vending machine. Needing all the objects to be one object to port it in a mod for a video game. need multiple UV maps. In the UV Maps Tab in the Object Data Properties I go to add a new UV Map. At the moment I have 8 and will probably need around 11. When I press the Plus icon nothing happens and it wont let me add one. I can remove a layer and it lets me add one to replace but I can't go over 8. Am I missing something or is this a limitation?

As I understand it you don't actually need multiple UVs, you just need multiple material slots. You can UV and texture each object separately and then join them and you'll have one object with multiple materials. The UVs of each part will overlap with the other parts, but that isn't a problem because they are assigned different materials. Unless you are using a game engine that has very specific limitations (unity and unreal work fine with multiple materials in same object).

Sadly its the infusion engine which is quite tricky.

Hi :). Yes this is a limitation of OpenGL, only 8 UV maps max.

That's not really an issue. You can offset similar islands which is prefered anyway, you can even have stacked UVs (per material as mentioned) and/or you can use UDIMs: https://docs.blender.org/manual/fr/2.82/modeling/meshes/editing/uv/workflows/udims.html

Like others here stated before, altough you might need everything to be one object, you don't have to use so many UV maps. I often use only one, and most of the time with overlapping faces. As long as those faces are assigned to different materials with different textures using the UV map that's no problem.


text:
Select object and move the view simultaneously
is there a way to select something (in edit/object, I'm interested to see if this is possible in either mode) from an area of my workspace and then zoom in/out and pan to a different area (off screen at the time of the selection) and place my selection there?
Thanks

Press N for Numbers panel, click the View tab, enable Camera to View:

Press Numpad 0 and adjust your view, or if you already have the correct view, press Ctrl + Alt + Numpad 0 to set camera to this view.
Now select the object, then the camera (so the camera is active). Ctrl + P, then O to parent the object to the camera.
Now by moving the view you also move the object:

Remember you can have more than one camera, if you don't want to mess with the existing one.

Thanks for the answer, though that's not what I want to do... It's a very simple feature in other programs (just holding MMB after making a selection and then you're able to move around in the workspace) but, from the sound of it, there's no way to do that in Blender.

@Kyriakh can you describe how it differs from what you want to do? I didn't show panning (shift + MMB) on the screenshot, but you could pan as well: https://i.imgur.com/gfSRbZO.gif

Let's say I have a cube in one area of my workspace and a sphere in another. I zoom in real close to the sphere (so that the cube isn't in the view) and now I want to move the sphere near the cube so I select the sphere. Can I move around in the workspace (pan/zoom) while holding the sphere until I find the cube and place the sphere there? I'm oversimplifying as to be clear about what I want to do.

@Kyriakh what do you mean by "holding" the sphere? In the GIFs above I'm holding the Susanne - perhaps you don't want it to scale together with viewport, only to move together with viewport?

I mean grab the object and move it around (with G). But then the object can only be moved to another place in the workspace that's on screen at the time that you press G. If I want to go beyond that I have to place the object somewhere, move the view (with Shift+MMB) or zoom out (with scroll) and then grab it again with G. Both of these things (Shift+MMB and scroll) don't work when G is "active". The first one is changing the axis that you're moving and the second one doesn't do anything.

@Kyriakh I see. I think that would require creating a new "Move" operator that allows for that by replacing the MMB functionality. Or you could use my solution (I could make it simpler with less steps) so that instead of 1. Press G, 2. move object around, 3. When you also want to move the view, drag MMB, 4. release MMB and again move only your oblect, 5. Click to place the object --> you would do: 1. Ctrl+Shift+Numpad0 as in my answer, then select the object and press G, 2. No change, 3. Click, then drag MMB, 4. release MMB, press G, 5. no change

I tried the second one but it doesn't work. However, I like the one about creating a new "move" operator (I assume you mean shortcut), so I'll try that one. Thank you very much for all this help! :-)

Select the object, go to the desired place, use right click to set the 3D cursor then press Shift S "Selection to cursor".

So, there's no way to "hold" something and move around at the same time?

I don't think it's possible.

Ok thank you very much anyway! I'm used to being able to select something and move the view at the same time (with another program I'm using) so it's been bugging me a lot. It's good to at least know that that's not possible in Blender.


text:
How do UV layers and materials relate to each other?
So I understand that one mesh can have more than one UV and also more than one material.
What I haven’t figured yet is - how does one define which material uses which UV in texturing the mesh.
How does that work? Ideally both via the UI and via python.

I'll give a couple examples where I use myself more than one material for an object and also more than one UV for a Material:
Case 1) Multiple materials for an objet is probably more common than multiple UV's and in this case I use two materials for a mesh (one rough and one smooth)
Case 2) Multiple UV's in a material (and an object) comes very useful when you want to use decals and in this case I use a normal decal to simulate an engraving. Here we will have the object with two UV's but also the material will make use of the second UV (by the uv node in the material that is linked to the image that will mnake the bump indicating in which specific UV that image will be laid upon leaving the first UV for the material properties). You can also use this to make a detail map.
And I can save myself a headache in geometry!  In case you were wondering, if I disconnect the UV map node the engraving goes all over the place because it will deploy in the first UV by default if not specified otherwise

By default, every object has a single UV called "UVMap".  You can find it in the properties editor, Object Data Properties tab, in the UV Maps panel:

In the same panel, or in the UV Editor window, you can assign additional UVs to an object, giving each a different name.
When you create a material using nodes in the shader editor, many of the nodes have a Vector or similar input, like this image texture:

There are two ways to tell the node to use a UV.  If you want to use the default UVMap, then you plug in a Texture Coordinate node's UV output:

The other way is to use a UV Map node and set the name of the UV you want to use in that node:

as you can see, you can use the UV Map mode to plug in the default map, or you can change the name to the other map you created.


text:
Duplicate object and knife project in python
I am trying to code an addon that does the same thing as knife project but

duplicates the target object that will be cut
operates on the duplicate
separates the two cut pieces
deletes the one that isn't hidden by the piece used for cutting

I get as far as duplicating with this code
import bpy

class DuplicateAndKnifeProjectOperator(bpy.types.Operator):
    bl_idname = "object.knife_project_patch"
    bl_label = "Knife Project and Create Patch"
    bl_description = "Perform knife project and create a new patch mesh"

    @classmethod
    def poll(cls, context):
        return context.object is not None and context.object.type == 'MESH'

    def execute(self, context):
        if len(bpy.context.selected_objects) > 1:
            # Select the target object to be cut
            target_obj = bpy.context.object

            # Select the cutting object
            cutting_obj = bpy.context.selected_objects[0]

            # Duplicate the target object
            duplicate_obj = target_obj.copy()
            duplicate_obj.data = duplicate_obj.data.copy()
            bpy.context.collection.objects.link(duplicate_obj)

            # Apply any transformations to the duplicate object
            duplicate_obj.matrix_world = target_obj.matrix_world

            # Set the duplicate object as the active object
            bpy.context.view_layer.objects.active = duplicate_obj

            # Enter Edit Mode for the duplicate object
            bpy.ops.object.mode_set(mode='EDIT')
            bpy.ops.mesh.knife_project(cut_through=True)

            return {'FINISHED'}
        else:
            self.report({'WARNING'}, "Active object is not a mesh.")
            return {'CANCELLED'}

def menu_func(self, context):
    self.layout.operator(KnifeProjectOperator.bl_idname)

def register():
    bpy.utils.register_class(KnifeProjectOperator)
    bpy.types.VIEW3D_MT_edit_mesh_context_menu.append(menu_func)

def unregister():
    bpy.utils.unregister_class(KnifeProjectOperator)
    bpy.types.VIEW3D_MT_edit_mesh_context_menu.remove(menu_func)

if __name__ == "__main__":
    register()

But the cutting generates an error that says
RuntimeError: Error: No other selected objects have wire or boundary edges to use for projection

and the outliner look like this:

What should I do instead?

I would try the following code for the interior portion of your "execute" function:
# Select the target object to be cut
target_obj = bpy.context.object

# Select the cutting object
cutting_obj = bpy.context.selected_objects[1]

# Duplicate the target object
duplicate_obj = target_obj.copy()
duplicate_obj.data = duplicate_obj.data.copy()
bpy.context.collection.objects.link(duplicate_obj)

# Apply any transformations to the duplicate object
duplicate_obj.matrix_world = target_obj.matrix_world

# Set duplicate object as the active object
bpy.context.view_layer.objects.active = duplicate_obj

# Select only the cutting object in edit mode
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.mode_set(mode = "EDIT")
cutting_obj.select_set(True)

# Cut the duplicate object
bpy.ops.mesh.knife_project(cut_through=True)

For me, selected_objects[0] would always return the cube, no matter the selection order between the circle and cube, so using index 1 fixed that issue when selecting circle first then cube. I also select only the circle cutting object within edit mode. I believe you're getting that error because Blender thinks the cube is the cutting object.


text:
How can I tell if a mesh is visible and not occluded in a render with an orthographic camera using python
I have an imported model with a complex set of parts, some of which are internal - i.e.: always occluded by other parts - think of an inside lining in a sofa.
Is it possible somehow to tell programmatically if some parts are visible in an orthographic view?
This is not about testing if they are in the camera's field of view - it is about checking if they are occluded by other parts.
I am thinking of color-coding them, rendering and checking if the color is visible, but I want to know if there's another way before going down this path.

I'd probably approach this with ray casting... This might help you: https://blender.stackexchange.com/questions/28557/problem-with-casting-rays-from-the-camera-into-the-scene-for-each-pixel/28561#28561


text:
How do I combine displacement and surface deform?
I have a plane mesh (with high poly count) that looks like this thanks to a displacement modifier:

Now I would like to deform it so that it lays neatly on a much larger sphere while preserving the geometry of the extruded cubes - sort of in the way a something made of rubber would.
I've tried using a plane shrinkwrapped to the sphere, and then a mesh or surface deform on that but it squishes the cubes down.
How do I get the mesh to deform but keep the variable thickness?

Maybe you should change the order of modifiers? First shrinkwrapping it and then displacing the surface with the cubes? Depends on how you mapped the displacement onto the surface.

@GordonBrinkmann - thanks, but no good results. Squished though in a different way

would you mind using geometry nodes?
with this node setup:

you get this:

Advantages: low poly count, procedural, high performance

That's really nice (and I will try it) but no. My workflow has a step in which the height and position of the cubes is drawn as colored polys on SVG, and then converted to the relevant grayscale, so that won't work

ah ok, i understand that. So it might be a good idea to write such an info in the question so that people know what answer makes no sense ;)


text:
Simple workflow for projecting image onto mesh
I have a geometry that I have acquired via photogrammetry (for now - better methods might come later) that looks like this:

and a background image that I have positioned and resized like this:

and here are the two together:

Is there a simple way to project the image onto the mesh?
By simple I mean one of:

a 2-3 steps workflow
a python-automated workflow (and if so please help with this)

in the end this should be a step that is repeated 4-6 times, one for each view (top, bottom etc.) in a design process (which means the views might be custom-drawn, and the geometry not acquired via photogrammetry).
I've gone htrough pretty much every answer here but I don't think any of the answers qualify as simple workflows.

Something like Edit mode > u > unwrap > project from view (bounds) would produce UVs that give you this result. But that knid of method usually requires multiple projections from different viewpoints  to multiple UVs and a form of procedural or manual blending between the projections so that you don't see the edges of each projections.

@L0Lock - that seems to work beautifully, thank you very much. Would you care to elaborate on the topic of multiple projections and blending between them?

You might find the bench scene of the latest Captain Dissilusion video very informative for your workflow. https://www.youtube.com/watch?v=SHx4xVhfS3w It's tedious, but I think that's what you want. The part you want starts around 4:30

It depends a lot on the mesh and the textures you actually have so you have to adapt all the time. I haven't done this in years, it's an old method of texturing, so on my part I will leave it at that.


text:
Selecting folders with bpy.context.window_manager.fileselect_add
I am slightly confised by the UI behaviour for selecting a file within an operator.
I got things working thanks to this answer but as far as ai can see the process is:

select folders recursively by clicking the default button
only if I click on the default button without any subfolder being selected I clos the modal and get the path of the selected folder

Is there a way to make this work ore intuitively? for example: double click recurses, and clicking on the default button selects?
Or is this the standard way for Blender and that's it?

what is double click recurses, and clicking on the default button selects?

This is the way the finder on Mac OS behaves when you navigate folders

import bpy

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"

    directory : bpy.props.StringProperty(subtype='DIR_PATH')

    def invoke(self, context, event):
        context.window_manager.fileselect_add(self)
        return {'RUNNING_MODAL'}

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

def menu_func(self, context):
    self.layout.operator(SimpleOperator.bl_idname, text=SimpleOperator.bl_label)

# Register and add to the "object" menu (required to also use F3 search "Simple Object Operator" for quick access).
def register():
    bpy.utils.register_class(SimpleOperator)
    bpy.types.VIEW3D_MT_object.append(menu_func)

def unregister():
    bpy.utils.unregister_class(SimpleOperator)
    bpy.types.VIEW3D_MT_object.remove(menu_func)

if __name__ == "__main__":
    register()


text:
Where context do modal events "live" in the UI?
I am trying to set up a set of shortcuts that trigger a few custom operations I've written in Python.
Do I need to invoke the modal in each area of the UI or do shortcuts work (i.e. get captured by the modal) regardless of which area is active (which - as far as I understand - equals the area where the mouse is currently hovering)?
I have a vague recollection of reading somewhere that events are global to all windows (while operators will or won't work depending on the context polled).
Also - testing code things show that if I invoke the modal multiple times, once for each context, shortcut events will trigger multiple times too.
Do I get it right? and are there sort of best practices on how to set up shortcuts vis-a-vis areas and modals? and documentation?


text:
Does the array modifier take up memory for each element?
Typically 3D engines can use less memory and show more of the same items by something like 3D instancing which reduces draw calls.
I'm currently learning more about at the moment but I'm having a hard time understanding if the Array modifier uses instancing or is actually duplicating each object. Does anyone know this or can point to me how to discover if it is or isn't using this technique?

I'm pretty sure each copy takes up memory. I think all modifiers are implemented by calculating a complete mesh with the modifier applied. Checking RAM usage confirms it is way higher when you ramp up the number of copies.

Some additional functions like merging (or adding another modifier) require full copy of mesh data. Otherwise, you will not be able to add modifiers on top of the array.
Example of merging (You can see, that blocks are merged into one mesh):

If you want to get instances, you should use different techniques like Geometry Nodes, or Instancing on faces.


text:
2D Physics on 3D object
I have a project that needs to give 2D physics to a 3D object. Here's essentially what I'm trying to create.
This 3D cube (I squashed its scale to look like a plane), should be able to translate and rotate in 3D space, but there is a circle that can only translate on the surface of one face of the 3D cube. However, if the cube rotates around, the circle should move following the gravity of the world. This is sort of like an accelerometer display or a pinball machine.
This is what I'm trying to achieve:

One of the constraints that I'm facing is that:

The circle should never leave the cube's surface
The circle needs to have mass
The circle needs to collide with the edges

However, I'm struggling to find the necessary tools in Blender 3.0.1 that can achieve this. Does anyone have any ideas?

Sure.  You want it acting like a pinball machine, and pinball machines are 3D, so it shouldn't be a problem.  We'll just use non-rendering physics:

We'll start with six boxes, forming the walls of our box, all parented to a central empty to control it.  These six boxes all have animated, box collision, rigid body physics.  All but one of them are disabled in renders.  (Here, I've also changed some to wireframe display in the viewport.)
We put a ball in there.  It gets rigid body physics as well, although dynamic, not animated, and sphere collision.  Likewise, it is disabled in renders.
Finally, we make the rendering circle.  It is parented to the same empty as the boxes, so it acquires their rotation, but it has a copy location constraint targeting the sphere.  In case the sphere jumps, because we want a little tolerance for the box, we also shrinkwrap to the rendering plane.
There would be plenty of other ways to do this as well, ranging from rendering the circle in material nodes instead of giving it a mesh, to actually projecting the physics ball onto the plane after rigid body physics gets us the transform, via shrinkwrap modifier or geometry nodes.

Brilliant! I absolutely love the creativity!

I wish there was a way to use a 2D simulation which should be faster.
My take here is to use a rigid body constraint to limit the Z movement to 0.
The ball doesn't roll, because there's no floor for it to roll... In a way, this directly answers the question for 2D simulation, where a circle wouldn't roll either, though I understand this is probably not actually what OP wants :)
Rigid Body Constraint
Create an empty, In  Physics Properties add  Rigid Body Constraint, Type: Generic, Disable Collisions unchecked , Limits > Linear > Z Axis from 0 to 0:

And Objects:

First object - some passive rigid body that stays in place - In my case I just used the collider (and that's why I don't disable collisions)
Second object - the ball.

Parent everything to another empty and rotate that empty to control the plane:

As for rotating around, it's absolutely possible, as scene's gravity vector can be driven, but understandably it's not very convenient (not without a somewhat complex setup at least where it would maybe depend based on camera perspective?  )

Ignore the above comment, I changed the answer to use default gravity... As for the roll... I could write a Python script that automatically adds the correct roll to the sphere...  I guess it would be tricky to decide if it should roll based on touching a side wall or a floor...

but you know you can delete comments...do you? ;)


text:
In 2.93, origins selected instead of objects with affect origins unchecked
I have tried reinstalling and installing multiple versions (2.93 and 3.0)  and this is happening for me every time right from the beginning.
I had just installed blender on a new computer running ubuntu 20.04 and it was working fine for about half an hour.  I believe the issue started when I added a curve or a path and couldn't select it in object mode.  I then realized I was selecting its origin.  In edit mode i can select the object and manipulate it normally but in object mode the origin is selected instead of the object and affect origins is unchecked.  When I do check it the object moves opposite from the origin.

Is it possible you accidentally parented the camera to the object (Ctrl+P)? Doing that and checking Affect Only Origins seems to be the only way I can cause the object to move the opposite direction of the origin when I attempt to move the object. If this might be the case, select the camera and the object and un-parent them with Alt+P and select "Clear Parent". Also, any chance you have your camera locked to view?

The issue starts happening on a fresh install with default settings.  With various distributions.  I’m wondering if it could be my operating system somehow... it happens with both my mouse and tablet.

Next thing I'd try is making sure your gpu is supported (you can check here) - https://code.blender.org/2019/04/supported-gpus-in-blender-2-80/ - and that your drivers are up to date. If that's all in order, and the problem still persists - and this is a longshot- uninstall your tablet (or at least make sure blender doesn't recognize it) and go in mouse only. I only say this because I've seen a couple issues recently (one last night actually) where tablet drivers have caused issues in blender, although that caused a white screen at startup and was also affecting adobe software.

On that note, I'll add, any chance you have a Huion Tablet?

I've been using the same tablet (wacom) with blender on my laptop for months now with no problems, however I haven't been able to update my new system yet because I can't get ubuntu to see my wifi dongle so perhaps it's a driver issue.  graphics cards is nvidia rtx 2060 so no issue there.

Yeah. I don't really have any other guesses - but driver issues (outdated and the like) are known cause of "funky" behavior from time to time. Hopefully you can get your system updated so you can see if the problem is still there afterwards.

Thanks for all the help folks, switched OS and updated my nvidia driver.  All seems to be well now.


text:
Blender 2.93 stops recognizing my graphics card (Nvidia RTX 2060) every few hours. Ubuntu 21.04
I keep having to restart my pc in order to get blender to use my graphics card (NVidia RTX 2060).  It works great until it doesn't.  I refresh a screen in render mode and there's just nothing there.  switching to CPU works.  Then I restart PC and everything is back to normal.  I'm using Ubuntu 21.04, I don't seem to have any other problems although when I tried to use Optix once it did freeze my pc (mouse having a nervous breakdown in the corner and only partially responsive.).

Are you using Blender Snap or from the official website? also make sure your drivers are correctly and using Nvidia  proprietary drivers

I downloaded from the blender site, not sure what snap is.  I think I am correctly using the proprietary drivers, how would I know if I’m not?

A snap is a software package, you could download the snap version using the Ubuntu software (it's like an app store). For your drivers, I think you might need to get some help over some Ubuntu forums for a better answer, but basically, you need to go to the "Software and update" app and check what driver are you using in the "Additional Drivers" section

hmm, I am using the latest proprietary nvidia driver for my gpu.  I'll check out the ubuntu forums though, thank you.


text:
Separation of a multicolor 3D object in X3D format based on its individual colors
I am a biochemist and I would love to 3D print a multicolor model of the Corona Virus Spike protein by means of a FDM 3D printer.
As input file I downloaded a multicolor X3D-file from https://3dprint.nih.gov/niaid/sars-cov-2
In these X3D files, different colors are assigned to different parts of the 3D protein model. Usually, the 3D protein models do not have more than eight different colors.
My question is now, how do I select a certain part of the protein, which has one specific color? In other words, how do I separate a part with one color from the rest of the 3D model? This separation by color is required because all differently colored protein parts have to be exported as separate STL files, which are required as input for multicolor 3D printing with FDM 3D printers.
After spending several days, I have found an insufficient solution:

Import the 3D protein model in the X3D file in Meshlab and convert the vertex color to face color by " Filters --> Color creation and Processing --> Transfer color: Vertex to Face "
Export this modified 3D protein model in OBJ format and don't forget to deselect color in the face section.
Import the 3D protein model in OBJ format in Blender and separate 3D model by material:
a) Click on the 3D-object to select it.
b) Change to Edit-Mode
c) Press the P key
d) Separate the mesh by material
--> Unfortunately this procedure does not separate by color as it results in splitting the 3D model in 5000 objects with 5000 materials instead of 8 or less parts.

Is there a better way to achieve separation by color?

There might exist a better answer without using a python scripts, which I'm not yet aware but this is all I got for now.
check this thread  for a similar discussion
https://blenderartists.org/t/select-vertices-according-to-vertex-color/471451/9
there is a python script which is shared by "oscurart"
go to edit mode and select a face which you want to and execute the script


text:
Why my sphere render is coming out with squares and in the viewport looks fine?
I followed a tutorial and in the viewport my scene looks fine but when I render it it turns out like this:

and this is in the viewport

Using Eeves to render

hello, maybe share your file? https://pasteall.org/blend/

Instead of increasing the subdivision surface levels, you should use shade smooth on the object (right click > shade smooth). Also make sure the subdivision surface modifier's levels are the same in viewport and render

@Gorgious Thanks! This worked, The levels in the viewport were different than in the render.

so now I noticed that the sphere has a weird ballon-like texture on the sides https://ibb.co/dm3cD4s how can I smooth that out?


text:
Why my render has that black area? If in the viewport shading view looks fine? Rendering in Cycles
I added an additional (not finished) render in cycles where the plane has a glass material and the figures are sticking out in the bottom whereas in the viewport shading doesn't look like that.
Thanks

[

Hello, maybe overlapping faces? (Z fighting)

@moonboots I have some figures touching each other but they are not overlapping and the figures are not sticking out at the bottom.

maybe share your file? https://blend-exchange.com/


text:
Sculpture mode issue
I'm having issues with sculpture mode. I draw objects for 2d animations and after a while I finished when I want to edit it in the sculpture mode I cant do it. I select the object I want to edit then entered the sculpture mode it shows the brushes and all but soon as I try to edit or something it doesn't work my layers are unlocked and a was able to edit it before but now it just don't work for me. maybe I pressed something wrong or... I don't know

Can you share your file? Pretty hard to quess without it

I dont now how but i actually get that sorted. Thank you anyway! :)


text:
Glare node missing?
I have issues to find a glare node in shading mode. I have latest version of blender and and I Do as in all tutorials in internet but trouble is I cant find glare node.

hello, the Glare node is in the Compositor, not the Shader Editor, maybe it's your mistake?

Yes I had idea of that. I need to start learning how to use compositor mode thanks


text:
Rigged Object wont move in object mode
So I have connected object to Lattice and Lattice to bone.003 and it is the bendy bone. So bone.001 moves the bone and the bone.003. And the bone.002 is the main bone what moves everything. Everything works fine in the Pose Mode as I planed but in the Object Mode Lattice and the object wont follow if I drag the Armature. Have look on the picture Any suggestions?

hello, could you please share your file? https://pasteall.org/blend/

As you see everything is quiet simple to understand there is nothing difficult you can make such thing in seconds thing is everything works in pose mode but when you move armature in the object mode the object and the lattice wont move along

it makes things easier if we can test your setup, it looks like you're trying to move the object with the lattice, which is not possible, lattice will deform the object, not move it, what you can do though is parent both the object and the lattice to the armature, the lattice will follow and deform?

I Did parent option Bone and yes it follows but on the Pose mode when you rotate or move main bone the lattice and the object moves way to much and lose original position will say deforms .. idk .. anyway how you share the file?

Use  pasteall.org/blend and copy paste the link it will give

Opened link uploaded file and? That's it?

upload your file, copy the URL it will gives, and paste it here

what format should I save the file? Because when I save it it's 50.0 mb but the it accepts only 25 mb

maybe don't share your whole file, only keep the minimum, and use another platform if it's too heavy, like wetransfer, send to yourself and share the link it will give you

Okay will do new file

https://pasteall.org/blend/cf28d3204c4648ca92162d805e48a974

There it is Thanks for trying to help me

Please if you sorted can you tell me how you did it and would be nice if you send me the file. On this one I didn't connect the lattice and and object to the armature because it cause the problem .. anyway I'm waiting for your respond

Ok I've answered, I hop it works

For some reason the armature is no longer the parent of your lattice, so select the lattice, go in the Object panel > Relations and select Armature. Do it for the object called GPencil as well as you want it to follow.

Thank You You really helped me everything is fine now. I'm new with the Blender and I'm really grateful for your help. Thank you! Thank you! Thank you!

you're welcome  ;)

It didn't work for my actual project. Once I parent the lattice or the object it change size and location. I cant share you the file because it weights 44mb

so maybe first unparent with Alt P > Clear and Keep Transformations, then do all the operations

I tried and It doesn't work, is there another way how can I share the file?

what if i just send it to your email is that posibble?


text:
Why is my volumetric lighting shown in the viewport but not in the render?
I am working on Blender 2.93.0, using EVEE as a render engine. My friend (and all the tutorials I've seen) did the exact same thing than I did and has no problem seeing the volumetric lights rendered. I've been looking for hours in online tutorials and still have no idea what the source of the problem is.
Also, I have to point out that I am a beginner, I began learning Blender a few weeks ago, so I really don't know much about rendering. Just to try it out, I checked all the boxes concerning lighting in the render settings and it barely changed anything (I then unchecked them of course). Thanks in advance!

This is something I wouldn't mind taking a look at, if there was a file.  Can't say I know off the top of my head, other than that I'm not a believer in putting volumes in the world.  Need to know what version you're using too, there have been some viewport related bug fixes.

sorry @user:24636 I had to create another account to respond to you. I wanted to send you my packaged file with blend exchange, but for some reason the service isn't working right now. So here's a wetransfer link I'm on version 2.93.0

The issue is with Cube.010, which is hidden in viewports but not in renders.  When you unhide this object (alt h in 3D viewport, object mode) you get a preview that's roughly the same as you render; when you hide this from renders, you get a render that's roughly the same as your viewport with it hidden.
Look on your outliner for anything with an eye icon and a camera icon that disagree....


text:
Why does GPU rendering of glass look so wrong compared to CPU? Cycles
Why does the GPU (bottom) rendering look so much worse with weird light bands at the bottom, compared to CPU (top) rendering. Is this a driver issue with the GPU?

What gpu are you using?

I would suspect you're right, an issue with the driver or the GPU itself. I usually just have performance differences between CPU and GPU, but the finished result always looks the same.

I assume the way you constructed this example was to move the default cube up by exactly 1 meter via G + Z + 1, and then make a plane under it.
This means that the bottom face of your cube and the plane are coplanar.  The software can't reliably determine which face is in front of the other.  Actually each result is technically incorrect, the CPU result just appears to handle the z-fighting better.
You need to move the cube up by some additional small amount.

Thank you for the answer!


text:
Procedural natural stone wall in geonodes
So im trying to make this pirate cave and im stuck on getting the walls/ceiling to look anywhere close to realistic stone. I tried to instance objects on a plane but got a result that looks both pretty blocky and also too blob shaped(there is also a remesh on this particular object).
In the second attempt i tried to deform existing geometry by joining my improvised blockout and adding a bit of noise to it. That went even worse and seems to be very prone to errors due to the quality of the mesh, it doesn't look great either.

I was going for this sort of stone, pretty weathered and relatively sharp. If anyone has any idea how to achieve this general look, be that with geonodes or without I would really appreciate your input.

IMHO if you want to recreate these kinds of rock formations as is, you should study how they are formed. It's a very complex and lengthy process that takes hundreds of thousands of year. First the rock is formed under the crust of the earth with great temperatures, then it is ejected by tectonic powers on the surface of the earth. After that, there is thermal, rain, wind, waves etc. that cause erosion. And a bunch of other factors. Personally, i think a possible path to realism here would be a combination of what you already have as geometry and some clever texturing to make it more believable

For realism texture is essential ... any reason to use GN at all ... here is used just a texture on cylinder shape https://vimeo.com/user8735075


text:
Instance Points on Curve only at peaks and troughs Geometry Nodes
So im trying to attach ropes to this bridge at every peak and every trough, specifically everywhere the gradient of the curve is zero. Is it possible to calculate this in Blender so the ropes are only instanced at those points. And if so how could you make the count of points equal to the number of minimums and maximum in a given curve. I will attach my current node setup for the curves.
Thank you guys in advance.

Here is what you can:

Resample curve and check each point if previous point and next both higher or lower


text:
How to align planes to curve spiral in geonodes?
I am trying to align the incline of instanced planes to the spiral curve they are instanced on. As you can see in my current setup the alignment on the x and y axis sort of flips part way through the spiral. is there a way to correct this so the planes follow the spirals tangent upwards but don´t flip?
In the second image you can see my basic setup for this.
In the third image i've tried to solve it with a profile curve but the spiral sort of curls inwards. is there a way to prevent this?
Thank you guys in advance.

Does this answer your question? https://blender.stackexchange.com/questions/271084/spiral-slide-with-geo-nodes/

And of course you could use the node Set Curve Normals (Blender 3.4+)

Simply use a set curve normal set to Z up before the curve to mesh as pointed out by quellenform.

Additionally if you need the curve to be flipped on its side, just flip the width and height values of your profile curve to get the desired effect.


text:
How to use "Point Separate" without losing edges?
When I use "Point Separate" on an object, the edges disappear:

Is there a way I can use the Mask function of the Point Separate node without losing the edges in the mesh?

With Blender 3+ you can solve it relatively easily in this way:


text:
Rendering a PNG/Leer
I simply copied a PNG picture in my scene, but when i hit render, it wont show up. I checked the render-settings but couldn't find anything.

pls provide your blend file. open https://blend-exchange.com/ and follow instructions

You need to pack your image into the Blend file (File > External Data > Pack resources) and upload it again so that we can see it.

and please watch some free beginner tutorials: https://www.blender.org/support/tutorials/ they are really helpful and free

If you drag'n drop an image into Blender, it is a so called "Image as reference" and won't be rendered. They just show up in the viewport. So if you want to render them, use image as planes or a plane with an image shader.
So do this:
Shift-A  -> Mesh -> Plane
Go in shading tab, press New
press Shift-A (in shading, not in the viewport),

Texture -> image texture
connect it like this:

click on open and choose your image file.

I want to see "Leer" in my rendered image...

got that, i update my answer.

Thanks for help!

you are welcome!


text:
Importing textured model into Photoshop
I'm very new to Blender and have entered into the 3D world to mix it with my photography. I have made the following glowing torus and would like to import it as it looks on Blender into Photoshop.
Any clues on how to do it? Right now, whenever I click on 'New 3D Layer from File' in Photoshop, I'm getting just the Polygons and that is not what I want.
Also, is there a way to make the torus smoother? Zooming in, I can see that the edges look more like tangents rather than a smooth curve and I would like to eliminate that.
This is probably a basic question but since I'm still getting the grips with the fundamentals of 3D, doing an internet search while lacking the technical jargon has been difficult. :(

How I'd like my render to be imported in Photoshop (I'm importing an .obj file)

What I'm getting right now on Photoshop (just polygons)

Do you want just a picture of the 3d render, or the 3d object itself? Also, to make the torus smoother, try adding a subdivision surface modifier in the modifiers tab, or using the Shade Smooth option.

It seems like Photoshop is not receiving the material settings from blender. If I recall correctly, the .obj format does not store material data. Is there a different format you can use? Also - it looks like you've got volumetric effects in the blender screen shot, I doubt you will be able to get photoshop to render those.

Thank you person132 and GiantCowFilms for the reply! I want the fully-rendered 3D object itself, not just an image. Is it possible? In the meantime, I'll look further into your answers on Google. You've given me a good direction. :)

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


text:
i'm made a rig with empties for controls but they are not appearing in one file
Every time I turn off the hair I can't see the mesh in Blender 2.8 but in rendered view it is visible and the rendered result is not showing it
enter link description here
please try and render

could you be more precise please? What hair? What is visible and not visible? Perhaps show some screenshots

In the particle systems properties, on the right side of the list of particle systems, there is a monitor and camera, these control the particle visibility in the viewport and render.
You have both visibility options turned off for your particle systems, you need to enable the monitor for viewport visibility and the camera for render visibility.


text:
I Keep Finding layers Stacked in each other
Im building this character. When I click a vert and move it turn out there's another vert in that area with the same facing. I keep finding these throughout the model and I have no idea how im causing them.
The image below is verts where stacked on each other.

you've somehow duplicated your mesh, try first to remove doubles, in 2.7: W > Remove Doubles, and play with the merge distance on the bottom of the left panel

Thank you ! your the best :)

you also could have tried L to select the separate meshes  ;)