text:
Is it possible to change reflection direction?
Completely new Blender user here. I'm part of a work training program and am just beginning to learn how to use Blender. As a personal goal I am trying to cobble together a Companion Cube from Portal and managed to make the core of the thing (I don't know how to be honest, just messing around with buttons) and I added a reflective floor underneath it for a neat look:

My question is if it's possible to change the direction of the reflection so that only the centermost corners are aligned while the left and right, from camera perspective, are not. Here's a crappy MSPaint mockup to illustrate:

Thank you in advance to anyone who takes the time to help, much appreciated from a complete newbie.
Edit: HenrikD's suggestion is step in the right direction, thanks a lot!

try moving the plane down or rotating it a little. Light work like it does, you need to use it that way. Its not 2D drawing

It's not clear what exactly you are talking about. Could you edit the question and try to define your desired result in more detail?

tip: get a real object and a real mirror, put the mirror on a table and move the object around / move your head while looking at the object+mirror+reflection. You'll soon figure out how to position your object and camera on blender (if the image you want is possible in real life).

You can map the normal input to obtain some various deformation effects (distorting mirror) so:

The node setting is the following (mix rgb is only here for the gif above):

The mapping: add some X if the view is Y aligned and some Y if the view is X aligned. There is probably some possible calculation to do it automatically from other inputs.
Another distorting mirror, as example:

It maybe helps to draw a picture which is more accurate in 3d, so we see what you want exactly.
You could try to move and rotate the reflective plane as @HenrikD suggests,
you might even use a convexly or concavely bent floor to deform the reflection.
If you want to make very specific changes to a reflection, you might actually try to have a real object (which you then can modify how you want) as a "fake" reflection and place that under a partially transparent plane.

Surface normals can be used to change ' the direction ' of the reflection without changing the geometry, but that would not look realistic at all so I doubt that the question is actually about that... I think there could be some sort of misunderstanding in the question here...

I took the advice HenrikD gave me and made a more accurate render of the desired effect however now I seem to be missing emissions in my render. Were my actions wrong or were my expectations wrong?


text:
Variable length list in Preferences (displayed as UI List with a selection checkmark)
I would like to have a list in the preferences of my Add-On where the content of the list is read from a file. (And therefore the length of the list is not known.)
In this list I would like to have a check mark icon for each list item and only one should be selected. Both the list as well as the selected item of the list should be saved with the Add-On's preferences.
Normally such a list would be done with a PropertyGroup and a UIList.
But I don't know how to do it in the Preferences as it is a class of it's own.
Can someone help me to show how to achieve this?
PropertyGroup for storing the data from file:
class Library_List(bpy.types.PropertyGroup):
    lib_name: bpy.props.StringProperty(name ='lib_name')
    lib_last_mod: bpy.props.IntProperty(name ='lib_last_mod')

Class for reading the file:
class ReScan_Root_Library(bpy.types.Operator):
    bl_idname = "panel.rescan_root_library"
    bl_label = "Rescan Library"

    def execute(self, context):
        ...
        LibList = open(LibList_path, "r")
        for x in LibList:
            if not re.match(r'#', x) and not re.match(r'\n', x):
                in_temp = x.split()
                Lib_In = bpy.context.scene.lib_list.add()
                Lib_In.lib_name = in_temp[0]
                Lib_In.lib_last_mod = int(in_temp[1])
    return {'FINISHED'}

I defined a UIList:
class CUSTOM_UL_items(UIList):
    def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index):
        split = layout.split(factor=0.3)
        split.label(text=item.lib_name)
        split.label(text=str(item.lib_last_mod))
    def invoke(self, context, event):
        pass

And trying to add it to the preferences interface:
scn = bpy.context.preferences.addons['My_AddOn'].preferences
row.template_list("CUSTOM_UL_items", "", scn, "lib_list", scn, "", rows=2)

I try to define lib_list in the init as:
bpy.types.Preferences.lib_list = bpy.props.CollectionProperty(type=Library_List)

but this is obviously wrong as I get the message:
ui_template_list_data_retrieve: Property not found: PREF_PT_Preferences.lib_list

How do I define lib_list? If I define it as bpy.types.scene.lib_list I also get an error message.
I have CollectionProperties in my scene and they work fine. I just don't understand the way the Preferences are working and also never worked with UiLists.

i would recommend provide what you have (so we don't get the impression that you only search someone who does the work for you) and then we can improve your code and don't have to write everything on our own.

Hello. You want to use a CollectionProperty rather than a PointerProperty

If I would have the code, I would not ask for help. I don't understand how I can reference other classes from the preference class, so that it gets saved in the preferences and not in the actual file, like all other properties do. I also don't understand how to generate a UIList when I don't know it's length. (I read in a file and store the content in a list.) I'm not a programmer so sometimes I'm struggling to understand some concepts behind the Blender API. I also try to analyse the asset_browser_utility from you Gorgious but it's quite complicated for me. You are using PointerProperties.

I also look at this example: https://gist.github.com/p2or/d6dfd47366b2f14816f57d2067dcb6a9
where I could replace the ADD operator with my operator which reads in the file. But in this example the content is coming from the scene. I have no scene as I'm dealing with the preferences. I have some properties in my preferences but these are all defined in the preference class. I make a PropertyGroup with the variables for each line in the file (FileName, ModDate...). I can instance that PropertyGroup and add an new instance for each line of the file. But how do I connect it to a UIList & Prefs?

I updated my initial question with some code I tried. But the UiList is not working as it can't find the property.

You don't define lib_list in the init as bpy.types.Preferences.lib_list = bpy.props.CollectionProperty(type=Library_List)
Here is the correct way.
import bpy

class CUSTOM_UL_items(bpy.types.UIList):
    def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index):
        split = layout.split(factor=0.3)
        split.label(text=item.lib_name)
        split.label(text=str(item.lib_last_mod))

class CUSTOM_PG_library_list(bpy.types.PropertyGroup):
    lib_name: bpy.props.StringProperty(name="lib_name")
    lib_last_mod: bpy.props.IntProperty(name="lib_last_mod")

class AddonPreference(bpy.types.AddonPreferences):
    bl_idname = __package__

    lib_list: bpy.props.CollectionProperty(type=CUSTOM_PG_library_list)
    lib_list_index: bpy.props.IntProperty()

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

        layout.template_list("CUSTOM_UL_items", "", self, "lib_list", self, "lib_list_index", rows=2)

classes = (
    CUSTOM_UL_items,
    CUSTOM_PG_library_list,
    AddonPreference,
)

register, unregister = bpy.utils.register_classes_factory(classes)

Thanks Karan for the Answer. Unfortunately I can't make it work in my Add-On. I updated my Question with the error I get.

you need to register CUSTOM_PG_library_list

use this addon-template

It was registered but I made the mistake that I declared CUSTOM_PG_library_list after I declared PREF_PT_Preferences.
In the register classes (in init.py) I also added CUSTOM_PG_library_list behind all others which was another mistake.
Now I moved CUSTOM_PG_library_list in front both in the definition as well as in the register list and now it works. I was not aware of this order as in the rest of my code the order did not made a difference. Apparently, for the Preferences class it matters a lot.
Many thanks for your help!

source: Stack Exchange

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

sort: votes


text:
Separate in two parts a Mesh using Knife Project
How can I separate this mesh:

Using this plane:

In two separate parts, the on above the plane and the one under?

Objective:

What I want to achieve is to separate the mesh in two part like a boolean modifier (extruding the plane a little bit, in the way to have a 3d mesh instead of a 2d one) would do.
EDIT
The hard part is to make two separate meshes using the separate by loose parts operator, like after a boolean difference operator as explained above.

Why I don't use boolean:

I cannot use the boolean modifier due to some non-manifolds (or overlapping) vertices and edges in the mesh.
Is this all possible or not?

Related - http://blender.stackexchange.com/questions/5320/cutting-a-mesh-in-half, if it's not strictly needed to use the plane.

After further research, I have decided to scrap everything that I had before (it isn't that complicated). You can see my edits if you'd like to see the "old" way.
1. Select all vertices
This is pretty self-explanatory. Make sure you're in edit mode, then hit A
2. Use the Bisect tool
Just drag and you should get a live display of where it will cut. (You can alternatively use the plane and knife project at this stage if you'd prefer. Just make sure to enable "cut through.") When you are done with Bisect or Knife Project, you should have the "cut" selected.
3. Rip/Tear the selected ("cut") vertices
For this step, hit V, then left-click before moving the mouse. This essentially makes a nice set of double vertices on the edge of the cut.
4. Select the top or bottom
Deselect all, then you can use the L select linked tool on the top or bottom. Make sure you get everything in the top including the half of the cut line.
5. Separate the mesh
Use P + Selection to quickly separate.

Here is the complete GIF (I finished the operation in 30 seconds):

Sorry for misunderstunding, I modified the question, I'm trying to separate the mesh in two parts, not only cutting throught it.

Ok, I'll add that to my answer in just a second...I am preparing some gifs for you.

Isn't there a way to select the above mesh with an operator or something that can be done with a code?

If you had the add-on that let you rotate the view, you could do it in one operation with the box select tool. For some other elaborate ideas see this: http://blender.stackexchange.com/questions/50591/how-to-select-part-of-a-mesh-by-using-a-helper-plane

DIdnìt understand the examples in the given link

Do you understand the techniques using "circle select" in my answer?

Let us continue this discussion in chat.

If using Bisect it's simpler to choose Clear Inner or Clear Outer options in the operator settings to delete the  rest or to use the trick from the linked question.

@MrZak Good idea, and if done programmatically, duplicate, then bisect both...one with clear inner and one with clear outer.

Sorry this post is a little old but this is the most appropriate for my issue.
My goal is exactly the same, split a mesh in two part but not only with a simple line (so I can't use Bisect tool) but also with a curve (that's why I need to use Knife Project tool) and with scripting, so I can't imagine to unselect parts that I don't want etc. My post : https://blender.stackexchange.com/questions/208095/split-a-mesh-with-a-curve-knife-project-tool I tried your solution JakeD with a Knife Project tool

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

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


text:
Use PIL Library in Blender
I installed the PIL library using the .exe installer of the version 4.0.0 taken from this site (The Python Software Foundation website). Then I checked using the python shell if the PIL library was installed and it didn't give me error, so I assumed that's installed. Then I tried to copy from the installation folder of the library the folder named PIL into the folder C:\Program Files\Blender Foundation\Blender\2.78\python\lib. Then I tried to put in a text "import PIL", and it worked. (Before doing the copy of the folder PIL told me that no PIL modules were installed). Then I tried: "from PIL import Image" and it gave me errors. Any way to make blender use properly the PIL library?
EDIT:
The error it gave me it's the following:
Traceback (most recent call last):
File "\Text", line 1, in <module>
File "C:\Program Files\BlenderFoundation\Blender\2.78\python\lib\PIL\Image.py", line 67, in <module>
from PIL import _imaging as core
ImportError: cannot import name '_imaging'

Please [edit] your question to include what errors it gave you.

I solved, I had to check the version of the Python used by Blender. To do this, you need to go in the bin folder (located in the same folder as the lib one), and check the version of python in there and then use the appropriate version of PIL library.

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


text:
Cut shapes off a surface
Is it possible to cut any shape on a nurbs surface? I tried to use boolean modifier in the image below but it appears an error...

There are a bit of errors:

The pot-like object has to be converted to a mesh. (Alt+C then Select Mesh from Curve/Meta/Surf/Text)
The modifier should be applied to the pot-like object and the object in the modifier should be the parallelepiped (The one Selected in The Photo).
The normals in the pot-like object are pointing in the wrong
direcion, so you have to adjust them if you won't the modifier not
to have a strange behavior.  to adjust the normal press tab to go
into edit mode, then press w and select Flip Normals

Then The modifier Should Work.


text:
Casting virtual light in live action footage
When I want to add a 3d object to a live footage or an image, and say that object is glowing. How can I render only the ligh (just like shadow catcher where we can render shadows only) so I can use it in composition.

https://blender.stackexchange.com/q/140460/30849

https://blender.stackexchange.com/questions/140460/is-there-a-way-to-utilize-emissions-in-vfx https://blender.stackexchange.com/questions/321890/vfx-explosions-and-shadowcatchers https://blender.stackexchange.com/questions/164080/emision-catcher-for-blender


text:
I have a problem about selection
I don't know why there are two points near the corner(Blue). I want to put it in the middle or normal(Green). How do I do it in the middle?
Thank you

Hello and welcome. Please use a title that matches the content of the post. It should read like a question, be descriptive but succinct, unique and identifying, summarizing the problem so that anyone searching for similar issues is likely to find this. Remove anything superfluous, avoid using words like "this", "help with", "issue" or "question about", instead describe what "it" is. Remember, your title is the first thing visitors see, answers you get depend heavily on it. See What is the problem of asking “How do I do this?"

It looks like you have stray, loose vertices (not joined to any edges) in your top polygon face. Simply box select them and choose the delete menu with 'x' and then "Dissolve Vertices" to get rid of them.

@R-800 if that were true, where would the actual face dots be?

The face dots should always be centered on their respective faces. Since the dots in question don't appear to be centered on any faces, I took them to be stray vertices and not face dots. Only you know whether they are vertices or face dots. I can't tell from the picture. If they are face dots, mystery solved. If they are vertices, dissolve them.

This is expected behavior. The two face indicator dots are for two different faces (the top and the bottom of the mesh, in this case). They are both showing because you have X-Ray for the 3D Viewport turned on. They are to the side because they are positioned at an average of all the face’s vertices, not their center. There may be a way to change this in Blender Preferences, but I doubt it.


text:
Is there a way to extrude these faces in a way that the connecting faces stay aligned to the axis?
I have tried extruding then scaling along normals from individual origins, but that doesn't quite do the right thing...

And after extruding and scaling I get this mess:

As you can see, the top of the chest behaves as desired, but the bottom of the chest gets weird angles in it's extrusion, as if I was scaling from the origin, even though I am scaling from individual origins.  I expect this is from it treating the entire selection as the 'individual origin', but idk how to make it work like I want...

I assume you've applied the scale to both objects (Ctrl-A > Scale in Object mode) before you extruded? - You should just need to Alt-E > Extrude along Normals with the pivot point set to Median Point. I'm not sure why you're trying to scale after extruding?  I think we'll need to see your Blend file. You can share it via blend-exchange.com following the instructions there to copy the full link on that page. Then edit your question here and paste the link into it.

@John Eason - Even before reading your comment, I was finding in my own tests that the method you describe doesn't create fully flat facings of each of the object's extruded sides, but rather, bows outward each side's extruded results slightly. I have not been able to figure out how to ensure complete flatness for every side's extrusion, even when scaling along normals. Very frustrating.

@JohnEason I am trying to scale after extruding because when I just extrude it seems to want extrude along the z axis.  I can look into uploading the blend file later.

If you open the bottom-left operation menu after extruding you can check 'Offset Even' which should correct any distortion.

@JohnEason that checkbox along with using alt_E instead of just E fixed it for me.  If you would please write that up in an answer I will gladly accept it as a solution.

I've done a quick mock-up with seperate box and top objects here.
Use the Face > Extrude Along Normals menu or Alt-E > Extrude Along Normals hotkey rather than extruding and scaling.

In my case the extrusions were correct, but if you get distortions you can check the Offset Even checkbox on the bottom-left Operator panel.

Final result


text:
Importing an stl into BambuStudio shows geometry, but in Blender, there is nothing
I looked into this issue and it doesn't seem to be quite the same as what I'm experiencing. I'm playing around with some models to get them ready to print, and three of them are all messed up when I import them into BambuStudio. With this in mind, I just want to correct the models in Blender, but when I import any of them into Blender, I get no geometry to show up. I followed the suggestions I could find online (Pressing ., zooming in and out, scaling differently, etc...) and still am not seeing it. Any ideas for where I can go from here?
In the first picture, you can also see that I can still see geometry from a different model, but the one I'm working with: "watcher2_SubTool1.stl," just doesn't show up. I also notice that the dimensions are 0, and reset to such no matter what I set them to. I scaled it up a ridiculous amount in the screencap to see if that does anything, but I also tried scaling down and still nothing happened.
I also have a second screencap from Bambu, which shows the collection of models, with the one I was importing into Blender specifically selected, where you can see that it's messed up, but that the geometry is still present.


text:
How to rig a truck/trailer so that the trailer follows the truck
I am trying to rig a truck with a trailer so it can be animated along a path/curve. Having the trailer follow is not a problem, but in order to look realistic it shouldn't follow the exact path of the truck it is attached to, but a shorter one.
There is surprisingly little documentation about this on the web, for Blender or any software.
I have seen that this dynamic is sometimes built into ordinary car rigs, where the front axle of the car is animated and the rear is dragged behind it in a realistic manner, but no tutorial I have found has a setup like that explained.

How about put the trailer's origin right in the middle of the wheel base on the ground, and let it track to the position where it hooks onto the back of the truck.  Have no idea how to work the reverse.

I actually managed to make it work using Bones and kinematics.
Basically I used the description from:
How to IK rig legs
.. to create an inverse kinematic constrain.
But additionally I added a copy-constrain from the "target_bone" to the foot and then it worked. (target copies from foot)
I cascaded it 3 times to get an articulated trailer:

Edit: Here is the dependencies I have for one instance:
From How to IK rig legs :

'foot' is child of 'shin'
'shin' has IK constrain from 'control'
'foot' copies rotation from 'control'

At this point you should be able to move the foot and the shin changes accordingly
My Addition:

'control' copies location from 'foot'

Note: that these constrains must be bone constrains (i.e. in pose mode) not object constrains.

I am trying to follow your instructions but cant make it work. First of all, there should be only one joint in my case. Secondly, I don't really get what the purpose of the target bone is. In the interest of simplicity, wouldn't 2 bones in total be enough; truck-bone gets its rot/loc from an empty following a path, and trailer-bone simply drags behind?

I don't get the control bone purpose 100% either. See my edit for an overview of dependencies.
You always need one bone more to define the end-point of the previous bone. Thats why I have an additional bone which I called 'dummy'

I would attempt this method (I do believe that this totally doable in Blender - could be wrong though - I want to get you thinking with this limited example though, because it may spark some ideas for you):

Your rotational pivot center will be at the center of the axle being dragged, and your point of tongue will apply this radial & linear directional force. Meaning in short that you will rotate on your axle center until you find equilibrium with the direction you are pulling.
If the distance you are pulling exceeds that of the triangle formed between the tongue and the two wheels of an axle, then you will drag the trailer for a bit (until the trailer rotation catches up). For the correct answer you may want to check the Math & Physics stackexchange sites.

Here's a quick example of something close to what I was thinking, this was done using constraints, and it is not updating the pivot point, so it looks kind of funny when you get away from it.
I do believe that the solution to this is using drivers, but I'm not totally sure, without spending the time to play with them.
When I get a moment, I will try to update this answer, as I am hopeful.
Constraint Example:

From some of my own experience with this problem, it's very difficult with just constraints/expressions/keys, since the trailer only follows due to ground friction. (if you hold a toy truck in the air and turn the trailer, it will not naturally straighten out)

I am not sure if this is still relevant but I figured it out for me.
The key mystery is to use Inverse Kinematics twice to let it look realistic.


text:
Cube is not created

import bpy
a=0

def in_5_seconds():
    a=1
    print(a)

if a==1:
    bpy.ops.mesh.primitive_cube_add(size=2, enter_editmode=False, location=(0, 0, 0))

bpy.app.timers.register(in_5_seconds, first_interval=5)

I want to create a cube in 5 seconds.
I changed the value of a to 1 using the def command in the system console, but the cube is not created.
Please tell me a solution

The code is ok, but indents are wrong (in screen capture). I've corrected it editing the question.

Print out context, print(context.copy()) and will notice many not available ie have None values  when run from a timer thread.  See https://blender.stackexchange.com/questions/135970/context-is-incorrect-when-calling-from-a-timer  See the modal timer template in text editor for another way to wait to delay an operator running which will have context.

@lemon I find the current version of the question to be very confusing. Why have two versions of the code with commentary about the changes? The first version shouldn't be in the question at all based on the code shown in the screenshot. Fixing that indentation maybe part of (or all of) an answer.

@Matt, look at the edit history. The first version did not used code sample formatting.

@lemon Yes... I'm aware. The edit history exists to show the edit history, and shouldnt be necessary to understand the question. It is redundant and confusing for the question to also show an edit history. It is also inappropriate for edits to fundamentally change the question, as yours has done. Your edit should have fixed the formatting to be consistent with the screenshot and nothing else. By changing the indentation from what is in the screenshot you changed the question.

@Matt, you're totally right, thanks for the edit. Haven't read the screenshot carefully enough.

Modal Timer Operator.
For original code, the operator will never be called.  Putting a print in the if statement will show it is never run.  If the if clause was true; operator would be called once,  when the script is run or imported. It is not run again when the timer method is called after 5 seconds.   Suggest googling (stackoverflow) "python variable scope".  I imagine this is why @lemon edited, thinking it may be a pasting error.
However the @lemon edited script with indent wont work see: Context is incorrect when calling from a timer
Instead could use a modal timer operator, when a number of seconds has elapsed, call the add primitive cube operator and finish.
How to run a python script at regular intervals?
Edited version of Text Editor > Templates > Python > Operator Modal Timer
import bpy
from bpy.props import IntProperty

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

    _timer = None

    delay: IntProperty(
        name="Delay",
        default=10,
        )

    def modal(self, context, event):
        if event.type == 'TIMER':

            if self._timer.time_duration >= self.delay:
                print(
                    "Cube added after ",
                     self._timer.time_duration,
                     "secs")
                # remove timer
                self.cancel(context)
                # call the operator, return its status
                return bpy.ops.mesh.primitive_cube_add()

        return {'PASS_THROUGH'}

    def execute(self, context):
        wm = context.window_manager
        self._timer = wm.event_timer_add(self.delay, window=context.window)
        wm.modal_handler_add(self)
        return {'RUNNING_MODAL'}

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

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

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

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.wm.modal_timer_operator(delay=5)

Test run
Cube added after  5.001951217651367 secs

FYI I edited the code because it had no indent at all as not formatted. Though tested it and obtained the cube.

Thanks for the FYI.  Would have done same. btw Appears to have a https://en.wikipedia.org/wiki/Zero-width_space <200b>if a Anyway FWIW (zero?) editing code and running such that timer does call operator, for me on linux results in seg fault.     Would recommend not using context or operators from a threaded timer and use a modal timer.


text:
Toon Shader – Change Color of Shadows
I made a character for a mobile game in Blender rendered with Cycles, and i used a toon material as shader. Now, for each toon material i create, i used an 'Image Texture' as a color gradient. I like the result, but i'm trying to work more on the shadows of the character, not cast shadows, but of the character itself. What i cannot figure out, using an image texture(png) as a color gradient, is there a way to change the colors of the shadows of the material? only of the shadows.
This is my character:
Thank you in advance

I think you have more controll over the overall toon shader in the blender internal render engine...

Thank you, i was thinking if there is a way to do it in Cycles

If you can find a way using the blender internal render engine, you will also have the advantage of shorter render times

I would like to keep using Cycles because i already set lightining and all other materials/textures, and to not change it again, but in case i will make also a test with internal render

related https://blender.stackexchange.com/questions/69709/how-to-change-the-shadow-color-in-blender-cycles

I think you are going to love the new "Shader to RGB" node in Eevee: https://youtu.be/10I2eWm7z70 As for Cycles, it appears that the Compositor is the only way to control such things. You can do a shadow pass and adjust color in compositor, maybe even try Cryptomatte which can auto output all materials and objects for separation and masking etc in compositing.

For quick reference, Cryptomatte and Shader to RGB node (Eevee only) are both available in Blender 2.80, not 2.79. I just saw another video on shadow color edits with Shader to RGB node. So cool! https://youtu.be/t91X4eukZY4

I like the character.  :)

What do you mean by " I use Image texture as color gradient"?

Eevee
Just an illustration of Coby Randal's comment - Shader to RGB node.

In case you want to keep AO ...

Note: I wanted to composite AO pass (instead mix it in shader), but with this shader is AO pass wrong for some reason.

I haven't found a way to change the color of shadows with only materials in cycles, I mean there is a way, but by doing so all shadows made by that object will be tinted (either on itself and that would include the background). A more controlled way would be by using the compositor in post, production.

You can't change the color of the shadows directly as far as I know, but via compositing you can. Try messing with a color balance node and see if it is to your liking. https://docs.blender.org/manual/en/latest/compositing/types/color/color_balance.html
edit: actually, if you are willing to switch to eevee, you might be get more control over your shadows.
https://www.youtube.com/watch?v=t91X4eukZY4 Here is the tutorial I followed, except I didn't split the RGB, didn't use a diffuse shader to modify the base, and just simply used a color ramp with the different colors I wanted for the shaders. Try it c:


text:
Blender not opening (Mac OS)
Blender won't start up on my computer anymore. I have tried to uninstall and download different versions of Blender, but nothing seems to work.
I installed a plugin that didn't seem to work with my version of Blender and after that I could not open up Blender again.
There seems to be a lot of solutions for this for PC, but I haven't been able to solve it for Mac.

Ok found the answer here.
I needed to open Terminal and delete a userpref.blend file.
cd ~/Library/Application\ Support/Blender/3.3/config

(or whatever version of Blender you are using)
Type ls to see the userpref.blend file.
To delete the file type rm userpref.blend


text:
What is the most efficient way to model this kind of wrought-iron shape?

I only care about the sphere and its design, not the bird on top.
This kind of curvy iron design shows up on many Victorian designs and other examples of old-fashioned smithing. How can I efficiently produce a sphere like this? (Also feel free to comment/edit if you know a more precise term for this than just "curvy Victorian ironwork.")
My first idea was to make a wireframe UV sphere, then model the curvy bits separately. Then, if I could somehow snap the curvy bits to the sphere in a way that makes the bits follow the curve of the sphere, I could do something with an Array modifier. However, I don't know how to snap objects that way.
Another example of the "curvy bits" I'm talking about:

(source: rackcdn.com)

Here's the solution which may help you, but as Gunslinger said, there is no shortcut in this case: http://blender.stackexchange.com/questions/28198/how-can-i-model-a-spherical-tesselation-such-as-this-one-in-blender

Looking at what you're wanting to achieve, I think using the decimate modifier >un-subdivide with 1 iteration should work well to get you started, and keep a uniform pattern across the model. Hope that helps get you started.

This is no shortcut. But you will have detailed control over your model.
I would start with a highres UVsphere and then add geometry with snap and shrinkwrap to follow the spheres surface.

Then add a solidify modifier followed by a subsurface modifier:

You can apply the solidify modifier and fiddle with the geometry if you want to make it beveled or such.

Unfortunately, I can't accept multiple answers, or else I would have accepted this one too!

Some assorted ideas.

Left to Right.
Start with sphere or cylinder.  Place Ends. Push Pull. Loop Cuts.
Proportional Editing.
Curve Modifier. Example Curve in Red.
Sizing to Curve. More proportional editing
Modify Twist on Curve.  Consider Shrink Wrap Modifier to sphere for curve only.  Not Mesh.
You can be more artistic than shown above
Arrange to sphere not shown


text:
How to totally save a self-contained Blender object to ensure no data is lost?
From reading questions like this, it seems that saving a .blend file does not actually save everything in it.
What settings do I need to apply so that Blender always totally saves the file every time I hit CtrlS, so that no data will be lost?
I want to be sure that any changes to textures, UV maps, etc are preserved.

I don't think there's any easy way to save everything, but the closest to what you want is to activate the automatic packing of external data.
This doesn't, however, save everything. For instance, it doesn't save the render result.
To activate this, go to File>External Data>Automatically Pack into .blend.

Video files or image sequences will not be packed.
Painted textures have to be saved as external files before they can be packed (else they will disappear).
Physics cache can be saved to disk (with different commands), but will be saved  on a folder where the original blend file is stored, but will not be packed as part of the blend file either.
For more specifics please see: https://www.blender.org/manual/data_system/data_blocks.html?highlight=pack#data-block-types

Render result is also not saved.


text:
Cannot properly align textures
I'm making a cube. The half of the cube is green, the bottom is gray. It's supposed to be a precise split, but no matter what I do, it looks like this (image is of an edge of the cube):

One side is above the halfway point, the other side is below the halfway point. If I add a single pixel to the left side, it goes below the halfway point. Similarly, if I add a single pixel to the right side, it goes over the halfway point.
How do I precisely split the cube into green and brown, with the dividing line being exactly halfway between top and bottom?
This question is related: Exported UV map is blurry and doesn't line up with UV mapper(editor) but it has no answers. I suspect I may have a similar problem, or at least I could fix my problem if I knew how to fix that other problem.

I'm sure that this isn't the simplest answer but you could split your cube in two pieces and make one piece green and the other brown. Than you could join (in the menu, object, join) the two pieces to one cube again.
(You can assign different colors to objects or to a part of an object in edit mode)

How do I get the two boxes to snap together?
snap settings
These are my snap settings, but the two boxes aren't snapping at all. Do I need to somehow tell Blender what object I want it to snap to?

After fiddling randomly for a bit, it snaps if I drag it well past the face (so I drag it into the other box, then it snaps back to where it should be). I'm going to just assume that's how it's supposed to work.


text:
How to procedurally generate a veiny skin material?
I want to make a Cycles material that looks like these images:

The material should be slightly translucent and have thin veins underneath it.
I understand how to make the translucency, but the veins are giving me trouble. Is this something that can be made procedurally in Cycles, or will I need to make a vein texture in GIMP and somehow combine it with a skin material?

You can generate a skin material with veins like this using wave textures, musgrave texture, and translucent materials. The waves are distorted to get the meandering of veins. Different wave textures are combined with different orientations to get the veins running in different directions. The musgrave textures is used to make the veins appear and disappear in different areas.
The bright spot is from a lamp below the 'skin' illustrating the translucency.

This material is generated as shown below:

A good reference for generating veins in skin is at https://gooseberry.blender.org/shading-kenny-the-caterpillar/

The blend file:

You might want to isolate the veins from your Vein texture. This could probably be done by using some green screen method. With this, mostly the veins will show on the texture, and not the rest of the things on it.
However, you might want to consider making your own texture as the one you have there doesn't seem "seamless" nor would it look natural as the same veins would repeat everywhere :P
Another thing you could do would be to layer the textures and materials and see what best fits your preferences. Add some transparency to the Vein Texture and Materials, and I think that might look ok.
Gd luck.


text:
How to add a defined radius between two curves in geometry nodes
Is there a way to add a defined radius between two curves in geometry nodes?
(The two curves are also defined in GN.)

Update:
This is what happens when I use Bezier Segments with the proposed solution. The vertical curve is extended to infinity in -Z and the Radius is fallen apart. I tried to reverse one or the other curve but it doesn't help:

This is such an important function (for creating procedural designs from scratch) that it would be great if some developer could come up with a proper fillet solution.

As far as I know, as it stands you currently have to roundtrip convert to mesh and back to do that.
You have to convert the curve to mesh with a Curve to Mesh node, to be able to use a Merge by Distance so you can convert back to a bezier curve and fillet.

This shouldn't be much of a problem for straight segments only, but can cause loss of fidelity if you have curved splines.
Alternatively you can save a few steps by instead starting with a Mesh Line primitive instead, and just converting to curve afterwards.

Thanks for the suggestion. I hoped there is a way to remain in "curves territory" as the tangent is better defined as with meshes. Also I have more curves which needs to be connected with different radii so I have to see if I can do that with the converted meshes.
Such a radius function between curves is so essential, I wonder why it is still missing from the GN toolbox.

@Steve But the radius is done on a curve in this answer... the problem is just merging the two connecting points together - the Merge by Distance needs a mesh. But afterwards Duarte converts the mesh back to a curve and sets the radius. It's not that there is no such function for curves, the problem is your curves are not connected - a Join Geometry node does not merge the control points.

Oh, I see. Sorry and thanks. I'm coming from a NURBS workflow (Alias) where curves are treated separately. "Attaching" them would change their mathematical definition (introduce a multi-knot at the attachment position, which is not desirable in Alias). Converting the curve to a mesh an then back again is actually changing the curve especially if it's curved a lot. (I guess that was Dueart's comment.)
I need to get my head around the way Blender is working with curves.

I tested the above setup and it only works with lines. With my original setup (with two Bezier Segments) it creates some very strange and broken curves as a result.

Yes, that is the issue with roundtrip to mesh and back, it is only lossless for straight curve segments. The minute you use curved or tesselated bezier segments, the subdivisions causes losses when converted to mesh.

I updated the original post with a resulting image. It's not just that the curve looses it's form but it seem to completely mess up the radius.

Lower the resolution of your bezier segments to 1.

Lowering it to 1, removes the "curvature" of the curve making it to a straight line. That solved the problem of the weird radius but also kind of destroys the curve. I marked your solution as the Answer as there seems to be no pure curve way to achieve this.

you can capture bezier data (handle positions), and restore it after converting back to curve

Does that help when the curve segments are set to 1? (Straight) How do I capture them? I tried with "Curve Handle Position" and then "Set Handle Position" for Left and Right and then "Join Geometry" but that did not do anything.


text:
UIList with checkmarks (one on all others off)
I have an UIList in which I display a PropertyGroup defined like this:
class CUSTOM_PG_library_list(bpy.types.PropertyGroup):
  lib_name: bpy.props.StringProperty(name ="lib_name")
  lib_last_mod: bpy.props.IntProperty(name ="lib_last_mod")
  lib_active: bpy.props.BoolProperty(name="lib_active", default=False)

class CUSTOM_UL_items(UIList):
    def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index):
        checkbox = "CHECKBOX_HLT" if item.lib_active else "CHECKBOX_DEHLT"
        split = layout.split(factor=0.1)
        split.prop(item, "lib_active", text="", emboss=False, icon=checkbox)
        split.label(text=item.lib_name)

I never worked with UILists so I have a bit of a hard time to understand how they work.
In the UiList, I would like to be able to only set one checkmark at any time. (Switching the others off).
Unfortunately, toggling the checkmark on or off is a different action as selecting one line in the UIList.
Is it possible to bind the click on an UIList line (name or checkmark doesn't matter) together?
So if I click on a line it toggles the checkmark belonging to that line to on but also turns all other off.
(One needs to be selected, so there can not be a state where all are off.)
How can I achieve this? Do I need an update function to lib_active or some sort of an update function to the UIList itself?
EDIT:
Here is the call from the UI:
layout.template_list("CUSTOM_UL_items", "", self, "lib_list", self, "lib_list_index", rows=2)

The look should be like this:

What I would like to avoid is this:

(UIList selection and Set Checkmark are mismatched.)
I don't know how to "synchronize" the click on a list with the state of a checkmark. For example, I can toggle the checkmark without selecting the list, which is also not what I want. Checkmark and active line in UIList should be always the same.

if i understood you right, you don't want a checkmark, but more an enum value, is that right?

Note the data.active_propname value is changed when you click on a UI list element. Where do you store it ? How do you call the ui list template in your layout code ?

I updated the question with the UI call and with some clarification on what I want.
@Chris : No, I want the checkmark but always in sync with the selected UIList line.
I have some more data in the PropertyGroup which will be displayed, so it is not just the name and the checkmark.

@Gorgious This UIList is shown in my Add-On's preferences. The question is a follow up to my other question:  https://blender.stackexchange.com/questions/316781/variable-length-list-in-preferences-displayed-as-ui-list-with-a-selection-check  Dealing with Preferences in combination with UIList is very hard for a beginner as there is very little documentation especially on UILists.  Outside of the preferences where the SCENE is used for data it is much easier.

preferences.lib_list_index is the index of the selected item in your UI list.
You can directly use that to display a checkbox when drawing your item.
class CUSTOM_UL_items(UIList):
    def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
        # The for loop is used to retrieve the current item index in the list
        for i, list_item in enumerate(data.lib_list):
            if list_item == item:
                break
        split = layout.split(factor=0.1)
        checkbox = "CHECKBOX_HLT" if i == getattr(active_data, active_propname) else "CHECKBOX_DEHLT"
        split.label(text="", icon=checkbox)
        split.label(text=item.lib_name)

Thank you! When I test it, I get the index number of the selected item instead of a checkbox. What do I do wrong?
Also, could you explain what the for loop does? Do active_data and active_propname contain the selected line in the UIList?

So, the for is to loop trough the amount of entries in lib_list and it breaks when it is the same position as the index from the UIList active item. This I think I understand, but i is an integer. Does getattr gives back a "positional" integer where it finds the active_propname in the active_data?

@Steve you understood well. I made a mistake, layout.prop can't show an icon IIRC for an integer field. You can simply set a label with the icon. See my modified answer

Fantastic, thanks! I put a "print(active_data, active_propname)" statement inbetween and it showed lib_list_index as active_propname. I just didn't know how to handle it and change it to lib_active or any other way to display the checkmark. Your modified solution is very simple and elegant! I keep forgetting that the draw_item function is a constant loop.

I'm still confused by the UIList... :-(  Where can I put additional code that should be executed when the user clicks on one of the rows? I need to set lib_active in my Property_Group to True on the one item the user clicked but to false on all other items. The code in the UIList is a constant loop, so there is no point constantly setting some variables there. Is there a function that is called when a user clicked on a list item?

@Steve you can add an update callback to the active index lib_list_index: bpy.props.IntProperty(update=on_index_change) see https://docs.blender.org/api/current/bpy.props.html#bpy.props.IntProperty

Many thanks! I really appreciate it. Now it looks exactly how I wanted it and now I also understand the logic behind UILists.

Sorry to ask again, but I found one more thing I can't figure out: how can I deselect everything in the drawn UIList? When I make a bpy.context.preferences.addons['My-AddON'].preferences.lib_list.clear() before reloading the content, it turns all lib_active to False but the UIList is still showing the last selection. So in the class where I reload my library content, I would also need to clear the UIList. How can I do that from another class?

Looks like it's a problem of refreshing the interface. Logically, clearing the lib_list should be enough to clear the UIList and remove the list content but it's not. The UI only changes when I move my mouse over the UIList. Then it get's redrawn and the list items get cleared. Is there a way to force a redraw of the UIList after I clear lib_list? I have another UIList in my Add-On which works on scene properties and there I have a clear button which clears the corresponding PropertyGroup. There, I don't have any refresh problems only in the Preferences window.

I was able to solve it by adding lib_list_index = -1 after lib_list.clear(). This way the selection in the UIList is cleared. I don't know if this is the "proper" way to do it but it doesn't complain and there are no error messages.


text:
How to reload icons which are already registered as previews
I try to understand this Blender Example:
Blender Docs: Preview
import bpy

class PreviewsExamplePanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Previews Example Panel"
    bl_idname = "OBJECT_PT_previews"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

    def draw(self, context):
        layout = self.layout
        pcoll = preview_collections["main"]

        row = layout.row()
        my_icon = pcoll["my_icon"]
        row.operator("render.render", icon_value=my_icon.icon_id)

        # my_icon.icon_id can be used in any UI function that accepts
        # icon_value # try also setting text=""
        # to get an icon only operator button

# We can store multiple preview collections here,
# however in this example we only store "main"
preview_collections = {}

def register():

    # Note that preview collections returned by bpy.utils.previews
    # are regular py objects - you can use them to store custom data.
    import bpy.utils.previews
    pcoll = bpy.utils.previews.new()

    # path to the folder where the icon is
    # the path is calculated relative to this py file inside the addon folder
    my_icons_dir = os.path.join(os.path.dirname(__file__), "icons")

    # load a preview thumbnail of a file and store in the previews collection
    pcoll.load("my_icon", os.path.join(my_icons_dir, "icon-image.png"), 'IMAGE')

    preview_collections["main"] = pcoll

    bpy.utils.register_class(PreviewsExamplePanel)

def unregister():

    for pcoll in preview_collections.values():
        bpy.utils.previews.remove(pcoll)
    preview_collections.clear()

    bpy.utils.unregister_class(PreviewsExamplePanel)

if __name__ == "__main__":
    register()

What I don't understand is: how can I reload the icons from a custom function after they are registered and drawn?
I don't understand how I can reference and change them later.
Can someone shed some light on this?
Thanks.
EDIT:
Okay, so as it seems, there is no way to reload the images in this example.
At least, in this example one has an ID for the images so the following reference works:
pcoll = preview_collections["main"]
layout.label(text=r"",icon_value=pcoll["SomeFile.png"].icon_id)

There is another example in the Blender Templates: ui_previews_dynamic_enum.py
This produces a dynamic list of images but there is no ID so I can't reference it as above.
Here is the code:
import os
import bpy

def enum_previews_from_directory_items(self, context):
    """EnumProperty callback"""
    enum_items = []

    if context is None:
        return enum_items

    wm = context.window_manager
    directory = wm.my_previews_dir

    # Get the preview collection (defined in register func).
    pcoll = preview_collections["main"]

    if directory == pcoll.my_previews_dir:
        return pcoll.my_previews

    print("Scanning directory: %s" % directory)

    if directory and os.path.exists(directory):
        # Scan the directory for png files
        image_paths = []
        for fn in os.listdir(directory):
            if fn.lower().endswith(".png"):
                image_paths.append(fn)

        for i, name in enumerate(image_paths):
            # generates a thumbnail preview for a file.
            filepath = os.path.join(directory, name)
            icon = pcoll.get(name)
            if not icon:
                thumb = pcoll.load(name, filepath, 'IMAGE')
            else:
                thumb = pcoll[name]
            enum_items.append((name, name, "", thumb.icon_id, i))

    pcoll.my_previews = enum_items
    pcoll.my_previews_dir = directory
    return pcoll.my_previews

class PreviewsExamplePanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Previews Example Panel"
    bl_idname = "OBJECT_PT_previews"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

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

        row = layout.row()
        row.prop(wm, "my_previews_dir")

        row = layout.row()
        row.template_icon_view(wm, "my_previews")

        row = layout.row()
        row.prop(wm, "my_previews")
preview_collections = {}

def register():
    from bpy.types import WindowManager
    from bpy.props import (
        StringProperty,
        EnumProperty,
    )

    WindowManager.my_previews_dir = StringProperty(
        name="Folder Path",
        subtype='DIR_PATH',
        default=""
    )

    WindowManager.my_previews = EnumProperty(
        items=enum_previews_from_directory_items,
    )
preview_collections = {}

def register():
    from bpy.types import WindowManager
    from bpy.props import (
        StringProperty,
        EnumProperty,
    )

    WindowManager.my_previews_dir = StringProperty(
        name="Folder Path",
        subtype='DIR_PATH',
        default=""
    )

    WindowManager.my_previews = EnumProperty(
        items=enum_previews_from_directory_items,
    )

The only reference to the actual image in this code is in the panel, like here:
row.template_icon_view(wm, "my_previews")

This is the actually selected image. The following code tells me it's number in the list:
bpy.data.window_managers['WinMan']['my_previews']

But how do I reference the whole list?
How do I list the newest (eventually reloaded) state of this list and how can I search for some content in it?

My intention was to create icons in my interface with an initial status and then change the icons based on some functions.
Reloading the icons with the same key throws a "key already exists" error and it is not possible to change the value (Path & File Name) of that key.
So at last the solution was to have a second function (after the initial loading of the icons) which can be called and in that function one has to first close the preview collection (which removes it's content) and then reload the icons.
I think it makes sense to have two sets of icons: one set for fixed icons and another one for the dynamic icons.
I wrote a quick example which works fine for me:
import bpy
from bpy.utils import previews

icons = previews.new()

icons.load(
    name='Test_Icon',
    path='/_DATA/Temp/Icon1.png',
    path_type='IMAGE'
)

def Load_Icon_F():
    icons.clear()
    icons.load(
        name='Test_Icon',
        path='/_DATA/Temp/Icon2.png',
        path_type='IMAGE',
        force_reload=True
    )

class LOAD_OT_Icon(bpy.types.Operator):
    """Load Icon Operator"""
    bl_idname = "load.icon"
    bl_label = "Load Icon Operator"

    def execute(self, context):
        try:
            Load_Icon_F()
        except Exception as exc:
            self.report({'ERROR'}, 'Error loading Icons. ')
        return {"FINISHED"}

class TEST_PT_panel(bpy.types.Panel):
    bl_category = "Icon_TEST"
    bl_idname = 'TEST_PT_panel'
    bl_label = 'TEST'
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'

    def draw(self, context):
        layout = self.layout
        row = layout.row()
        row.operator(
            operator='load.icon',
            text='Reload Icons',
            icon_value=icons['Test_Icon'].icon_id
        )

def register():
    bpy.utils.register_class(TEST_PT_panel)
    bpy.utils.register_class(LOAD_OT_Icon)

def unregister():
    bpy.utils.unregister_class(TEST_PT_panel)
    bpy.utils.unregister_class(LOAD_OT_Icon)
    bpy.utils.previews.remove(icons)

if __name__ == "__main__":
    register()

I just realized that my code only works once. :-(
Pressing the button a second time, gets an error and the error is caused by icons.close().
I don't understand why it works once but not a second time. It is so hard to work with these previews or I am too dumb to understand them. Does anyone have an idea why the close() function is not working the second time? (I reload the preview right after the close() so it's not empty.)

I replaced close() with clear() and then it works. Looks like close() get's rid of the preview but then I still don't understand why I was able to close() it the first time and then load() in to the closed preview the new icon. This just don't make any sense to me.


text:
No module named ‘_bpy’ when using python multiprocessing?
Is there any solution for the problem which was described on the development forum:
No module named ‘_bpy’ when using python multiprocessing?
I'm trying to use multiprocessing to join meshes but I get the bpy import error.
with concurrent.futures.ProcessPoolExecutor() as executor:
   results = executor.map(join_op, index_list)

Error message:
Process SpawnProcess-1:
Traceback (most recent call last):
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\python\lib\multiprocessing\process.py", line 314, in _bootstrap    self.run()
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\python\lib\multiprocessing\process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\python\lib\concurrent\futures\process.py", line 240, in _process_worker
    call_item = call_queue.get(block=True)
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\python\lib\multiprocessing\queues.py", line 122, in get
    return _ForkingPickler.loads(res)
  File "C:\Users\username\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\My_Addon\__init__.py", line 15, in <module>
    import bpy
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\scripts\modules\bpy\__init__.py", line 20, in <module>
    from _bpy import (
ModuleNotFoundError: No module named '_bpy'
Traceback (most recent call last):
  File "C:\Users\username\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\My_Addon\operators.py", line 518, in execute
    for result in results:
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\python\lib\concurrent\futures\process.py", line 575, in _chain_from_iterable_of_lists
    for element in iterable:
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\python\lib\concurrent\futures\_base.py", line 621, in result_iterator
    yield _result_or_cancel(fs.pop())
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\python\lib\concurrent\futures\_base.py", line 319, in _result_or_cancel
    return fut.result(timeout)
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\python\lib\concurrent\futures\_base.py", line 451, in result
    return self.__get_result()
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\python\lib\concurrent\futures\_base.py", line 403, in __get_result
    raise self._exception
concurrent.futures.process.BrokenProcessPool: A process in the process pool was terminated abruptly while the future was running or pending.

I don't understand the workaround posted as last entry in the mentioned link.
Is there a guide or better information for using multiple processes in Blender?
(I tested it on 4.1 as well but I get the same error.)
EDIT:
Here is a little dummy script that shows the problem (can be run from Blender script editor):
from multiprocessing import current_process
if current_process().name == 'MainProcess':
    import bpy
import concurrent.futures

print('Here we go... \n\n\n')

index = [1,2]
first_mesh = []
second_mesh = []

NewCollection = bpy.data.collections.new("Test")
bpy.context.scene.collection.children.link(NewCollection)
bpy.context.view_layer.active_layer_collection = bpy.context.view_layer.layer_collection.children[NewCollection.name]

for x in range(4):
    bpy.ops.mesh.primitive_plane_add(size=0.5, enter_editmode=False, align='CURSOR', location=(x, 0, 0), rotation=(0, 0, 0), scale=(1, 1, 1))
    bpy.context.active_object.name = "first_" +  str(x)
    first_mesh.append(bpy.context.active_object)

for x in range(4):
    bpy.ops.mesh.primitive_plane_add(size=0.5, enter_editmode=False, align='CURSOR', location=(x, 0, 0), rotation=(0, 0, 0), scale=(1, 1, 1))
    bpy.context.active_object.name = "second_" +  str(x)
    second_mesh.append(bpy.context.active_object)

def join_op(i):
    override = {}
    if i == 1:
        override["active_object"] = first_mesh[1]
        override["selected_editable_objects"] = first_mesh
        with bpy.context.temp_override(**override):
            bpy.ops.object.join()
    if i == 2:
        override["active_object"] = second_mesh[1]
        override["selected_editable_objects"] = second_mesh
        with bpy.context.temp_override(**override):
            bpy.ops.object.join()

# Multi Processing Version
with concurrent.futures.ProcessPoolExecutor() as executor:
    results = executor.map(join_op, index)

# Non Multi processing version
#for x in index:
#    join_op(x)

You can comment out either the multi processing version or the normal version. Running the non multi version nicely joins the meshes as intended.
Running the multi processing version, doesn't joins the meshes and gives the following error message:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\python\lib\multiprocessing\spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\python\lib\multiprocessing\spawn.py", line 125, in _main
    prepare(preparation_data)
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\python\lib\multiprocessing\spawn.py", line 236, in prepare
    _fixup_main_from_path(data['init_main_from_path'])
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\python\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\python\lib\runpy.py", line 288, in run_path
    code, fname = _get_code_from_file(run_name, path_name)
  File "C:\_BLENDER\blender-3.6.8-windows-x64\3.6\python\lib\runpy.py", line 252, in _get_code_from_file
    with io.open_code(decoded_path) as f:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\WORK\\TEST_MultiProcess_Import_BPY.blend\\Text'

The error message is a bit different, because it is run from the Blender script window and not as an Add-On but at the end it tries to refer to some path f: and looking for some Text.
I guess it's the same problem, that for spawning a new process it needs some BPY components which it can't find.
It would be great if someone would have a working solution or workaround.  (For an Add-On, not for the script window .

Well, there is no module named "_bpy", it's "bpy", without the "_".

Could you post the full code that would reproduce the issue?

Yeah, but why does it try to import _bpy? I'm importin bpy right at the beginning of my script. I'm not trying to import _bpy anywhere. That is coming from the multiprocessing module. The rest of the code is very large. The join_op I'm calling works fine when called without multiprocessing.

I mean sure, there might be someone here who just knows, without looking into it, but what are the chances? You should provide some example code that one can just copy/paste and run to reproduce the issue - I think that always increases the chances of getting help. It's best if that can be the full actual code you run, but at least a stripped down version that only reproduces the issue might also be helpful.

"Is there a guide or better information for using multiple processes in Blender?" I don't think you can use multiple processes in Blender and I think that's the issue. You can use bpy from a single process inside Blender and if you need to speed up some complex calculations, you can do that in Python separately. The post in your link explains, how to separate bpy stuff from multiprocessing the way I understand it.

I added a little example that can be run from the script window. It produces a different error message but I guess the problem is the same. (Spawning processes with their own python interpreters including BPY.)

Yes, well, bpy is only an API that accesses Blender, so you cannot make it multi process because it's for accessing Blender's functionality, that is one process - Blender. So this is not supposed to work. I mean as far as I understand at least.

Have you read this section of the bpy scripting Gotchas page?

Threading is more problematic than multiprocessing as I understand.

Joining meshes would be perfect for multiprocessing as the data is unique (if the mesh list is done properly). In the link of the link of my post is a big discussion about the path problematic regarding python and Blender python. I was hoping that in the meantime someone came up with a solution for those problems.

You can do that, but you would need to do that in Python without bpy and you would need to move data back and forth and also Python is generally way slower for stuff like that than languages like C++, so what you have in Blender. It's not a very good idea probably. Also joining meshes seems to be multi-threaded in Blender anyway from my very quick rough test just seeing CPU core utilization in Task Manager.

I just tested my non Multiprocessing version on a large dataset and from the 8 cores of my machine, only one was utilized by the join operation. (14% CPU)


text:
Using new hair curves, how do I stop interpolation going through the ears
I'm unsure if there's built-in way of doing this without diving into geometry nodes.
I can see in the interpolate nodes modifier the interpolate node takes a guide group ID which is generated from parted meshes. I'm unsure how to control this attribute to stop these hairs from interpolating between specific guides.
Is there a better way?

Interpolation guides set to 1, no intersecting.

Interpolation guides set to 4, curves intersect.


text:
Grease pencil strokes are visible in the viewport but disappear when rendered!
I've been trying to work this out for sometime now but it's still not working.
Z pass is turned on as well btw.
Any help would be appreciated

In the second screenshot, it's a bit small to read, but the render says something like "Remaining 2:51.15" and "Samples76/100". So the render is not finished yet - Grease Pencil is a post effect that will be added after rendering.


text:
Stl file import problem
I try to import the stl file, but it looks like it has zero dimensions.
I tried to deal with the problem according to this topic:
cannot see the geometry of the imported stl file
But unfortunately it didn't help.
This is the site I got STL from:
https://skrimarket.com/slicer/new?printable_id=3049&printable_type=ProductComponent&product_id=1224
Can you help me?

Hello and welcome. Please use a title that matches the content of the post. It should read like a question, be descriptive but succinct, unique and identifying, summarizing the problem so that anyone searching for similar issues is likely to find this. Remove anything superfluous, avoid using words like "this", "help with", "issue" or "question about", instead describe what "it" is. Remember, your title is the first thing visitors see, answers you get depend heavily on it. See What is the problem of asking “How do I do this?"

Hi. The link you provided requires an account and cannot be downloaded, you also didn't provide much info we can use to diagnose the issue. We don't have much to go by making this question unanswerable. Go through the linked question which is most likely to solve your issue with one of the solutions, otherwise please edit your post with more details or a file we can look at using blend-exchange.com


text:
how to capture a ball in cloth?
as in, so the ball falls into the cloth that's lying on a torus, then gets captured in it.
I've tried soft body and rigid body, neither worked with collisions or not. i don't really have any further ideas.

Did you set the cloth collision collection?

i have tried to set the ball's collection, i dont know of the cloth's collection though


text:
Blender won't bake fluids
I'm very new to Blender, I'm trying to flood this subway hallway with water but the Bake button is inactive, un-clickable no matter what settings I've changed. Another user even opened my files and they were able to hit the Bake button without changing anything. So I'm really confused as how to fix this on my end. Another issue is that rendering seems incredibly slow, don't know how to make this any faster. Any advice is appreciated.
Files in Drive: https://drive.google.com/drive/folders/1RZyb080ltdcVuteUk24lMaIKXPNSUiFg?usp=sharing


text:
Difficulties in creating accurate textures from reference image: how to handle certain areas
how do I get this texture from this image? In particular I don't understand how to make those brown/grey parts, I already tried editing the starting image on photoshop or painting directly on blender but the result is not the best and not accurate

Quite possibly like this tutorial shows, https://youtu.be/bQFX9tXMCdI?si=kZ6mA3eVxkEwpAiM, you can model a section of the weave and render it with alpha as a texture and use that as surface texture as well as alpha for creating the holes in the flat mesh.


text:
Camera Solving, the trackers in 3D space are inverted
I have a shot I'm tracking and the problem is that after I hit Setup Tracking Scene, I check the points in the 3D viewport and the trackers that are supposed to be in the distant background are closest to the camera and the trackers that were tracked in the foreground of my footage is farthest from the camera in 3D space; it's somehow inverted.
I set the origin and floor markers.
I'd appreciate any help. Thanks!

Dropbox link to Footage Sequence and .Blend file:
https://www.dropbox.com/sh/vbzan9by8p8dp1f/AABu2wP8uSUodfdhIFt8a7q7a?dl=0

Can you go to File > External Data and select Automatically Pack Into .blend and then upload your .blend file to Blend Exchange?

Your solve error is? Please read: http://blender.stackexchange.com/a/42332/3710

Thanks for the repy.   See how the tree marker is close to the camera

Does this answer your question? How can I get better results when doing camera motion tracking?

I had this same problem. The points closer to the horizon were solved to be the closest point to the camera. That was when I was using auto detected points. I started over and manually selected a lot of high contrast point, only kept the good ones after looking at the graph clip editor, and then the scene solved perfectly


text:
Will getting a better Graphics Card Help with Frame rate issues?
I currently have an AMD Radeon R9 200 series.  I'm willing to spend ~$400 on an upgrade. I've heard Blender cannot really use AMD cards (or really any other cards that aren't Nvidia) very well. Will upgrading to an Nvidia card help with the 3D view frame rate? Its getting difficult to time more complicated movement with only a 10 fps preview (and yes, everything is simplified, no physics, Solid view, yadda yadda).
I know using quick render is an option, but that's a lot of wasted time in the long run.
Also,
if I have an Nvidia card, could i change this from CPU to GPU? Would that also help better my Frames per Second?
Thank you all very much!
Thank you all for your answers! The actual rendering isn't much of a problem since I often send the final renders to RenderStreet(A render farm). Viewport is the main thing I'm concerned about, and thanks to you all, I see I mainly need a better CPU ALONG with GPU, BUT that I also kinda have to wait for the big 2.8 update for the viewport overhaul.
I wish I could checkmark all your answers, cause they all helped!

The computer device is only used for rendering, not for the 3D view.

So this is an old thread, but wow does 2 years make a difference. Just saw a youtube video by gamernexus and the Vega64 in cycles does INCREDIBLY well. See here: https://youtu.be/gKBLrkZtIVk?t=480 The blender team really closed the gap here in Cycles OpenCL performance.

For GPU rendering with Cycles Nvidia Cards are advised, at least for the time-being.
A better GPU will also bring a better viewport experience, with faster frame rates and better quality.
However there's one caveat, have in mind that while a better GPU might give you better viewport FPS, the current rendering system is very outdated and undergoing a major overhaul for the next big release (Blender 2.8).
What this means is that the system is very old and inefficient and can't really take advantage of current technologies or fully use the current generation bells and whistles.
There are bottlenecks that will make performance gains very CPU dependent and not scale linearly with high end GPUs.
Short Answer: You might get better performance, but not necessarily too much

Yes, with Nvidia you can render using GPU and also you can use it for OpenSubdiv compute.
Is not true that computed device is only for rendering. GPU is used also for drawing viewport using OpenCL.
Only if you have 2 and more graphics cadrs, one is marked as "(Display)" this card is used for drawing viewport, other ones are only for rendering (and preview render in viewport)
BTW: for 400USD I highly recommend Nvidia 1070. The best ratio speed/price/power comsumption and 8GB VRAM allow you to render complicated scenes without "CUDA: out of memory error".
EDIT: one important thing here: if you have very slow CPU, fast GPU don't raise fps too much, because they must work synchronized. CPU is "the boss" and send calls to GPU. Other words: CPU must tell to GPU what is going on and GPU work with this data.

I beg to differ. In the 3D viewport it doesn't really matter if you use a cheap AMD R9 card or an expensive NVIDIA card. In fact, it can be even slower if you don't know what you are doing (aka leave double-sided lightning on).

AMD (Piledriver) FX-6300 3.50GHz (4.10GHz Turbo) Socket AM3+ 6-Core Processor

^thats my CPU. What would you suggest be the upgrade?

authors: Темур Бекмуродов


text:
Overlaying different scenes in the video editor

I started to divided a video editing project into different scenes, as illustrated in the image below. Here the background, i.e. the clouds, is in scene 1 and the text overlay is in scene 2. While working with scene 2, to position the text, I would like to see scene 1 in the background. Is this possible?

Is this the "correct" approach to work with Blender for projects with several text overlays and other visual effects?
A small version of the .blend file without the cloud movie in the background, can be found here. Note that a still image is located in the stock image folder.
Here are some extra info:

The text overlay, i.e. scene 2, is rendered in Blender internal where the shading is set to transparent.
In the Video editor the blend type for the strip is set to alpha over.
Clouds and text shows up when selecting Scene 1, the background, but the text can not be positioned or adjusted from there.

Seems good. Just enable transparent background rendering in your Scene 2... But maybe it's enough to just use a simple Text Effect Strip instead?

"maybe it's enough to just use a simple Text Effect Strip instead?" I condensed down the project to a simple example, the real project contains a large number of  strips, mixed forth and back, that it is getting unmanageable. I added some extra info to the question, I'm not sure where to enable "background rendering"?

I render out the 1st scene to a single frame .png file and use that as a background pic for the second scene's alignment.  You can alternatively create a temporary video of scene 1 and use that for the background, remove it when you've got the alignment done.  Note that bkd pics have to be viewed through that scene's camera, or when in Orthographic mode.

To move the text layer in the VSE select that scene strip and add a transform effect to it. For better quality move the text in the source 3D scene.


text:
Voxel Data Animation Issue
Original Question:
I am trying to render a time voxel data set.
I have my 8 bit RAW file, with time series as still frames.
I am using BI rendering, as voxels aren't supported in Cycles yet.
When I select a Still Frame Number it works just fine if I render one frame using F12, or Render. So I know my texture file is good.

If I add Keyframe animation, the keyframe link works ...

... but then if I click to Render Animation all frames are rendered with the first texture and does not load the other frames.

Edit:
I found a workaround to this (see post below), however, the keyframe input with Still Frame Only, does not work. So I can only setup a scene of duration my number of frame in the texture.
Any clue how to work around this?

Does it work if you don't use a keyframe and just manually set the Still frame number?

It does !  that's the banging my head around part !

Microscopy TimeLapse in Blender
This is a tutorial on how to generate a microscopy timelapse movie in blender starting from TIFF Stacks.
Concept
4D microscopy dataset are composed of a serie of 3D matrices, usually in TIFF stack. Each voxel, correspond to an intensity in 3D space. We are going to use this, and make each voxel "emmit" light in blender.
Software needed

FIJI (Main Website)
Blender (Download Page)

Preparing the data
In order for blender to take a voxel dataset (3D matrix) as a texture, we need to convert our images in 8bit RAW format. To do this open FIJI, load your TIFF stack, change it's format type in Image > Type > 8-bit, then save it as RAW: File > Save As > Raw Data. (See below GIF)
Write down somewhere the dimensions of your stacks (we will need it later). For example, the stack below is: 432x622x477 (XYZ)

Multiple Time Points
If you have a timelapse, then open it with FIJI as a HyperStack, the save it as a RAW file (after 8-bit conversion). You will be able to load each frames individually in blender.
Now we are ready to open blender!
Setting up one time point in blender
At the begining there was a cube
Open up blender, and you will be presented with the default scene, a cube a lamp and a camera. That's perfect that's all we need!

Now, let's take our cube, and resize it to match the dimensions of our dataset. Select the cube (Right click on it), and press N. Type in the dimension of your dataset, BUT RESCALED BY A FACTOR 10 (except if you have a real crazy beast of a PC... and even then...).

Then came the texture
Now we need to do the actual texture mapping. In order for our cube to carry our 3D dataset, we need to give it a Voxel Data texture. Create a material, and choose Volume for its type. Set it's density to 0, making it transparent (The reason is that we can then use the values of our voxels to set the density, making our objects appear in a clear volume).
Then add a texture, and choose Voxel Data for it's type. Set all the parameters as such:

Colors

activate Ramp This is where you will adjust the transparency and colors

Voxel Data

File Format > 8 bit RAW
Source Path > Choose your RAW file generated from FIJI
Resolution > X Y Z dimension of your stack from above
check Still Frame Only
Still Frame Number > 1
Optional: You can change the interpolation mode for better rendering results

Mapping

Coordinate > Generated
Projection > Cube

Influence

Density > Check and 1.000
Emission > check both and 1.000
Optional: You can play with the values, along with the transmitance, reflectance, and other texture parameters for other type of rendering

And finally came the camera
Now that our cube has a texture, we need to grab and settup our camera. In the Object Tree menu, select the camera and grab it with G. Move it outside the cube, and change the view to Active Camera using Numpad 0. Rotate and move the camera to look at the cube using the R and G keys. Once the camera is ready, you can render the cube using F12.

Alternatively, you can move around using the default 3D view, and once you have are happy with the view, you can press Ctrl + Alt + Numpad 0 to set the current view as Camera.
Setting up a movie
Now we are ready to create our first animation. We are going to use the blender Keyframes to change the time points of our dataset. Select the cube, and go to the texture tab. At the bottom of the screen set the End keyframe to the number of timepoints you have in your dataset (let's call this T, in my case 45).

Then go on the first Key, and hover the pointer over the Still Frame Number. Make sure it is at 1, and press I. (Or right click and select Insert Keyframe)
Move to the last time key, change the Still Frame Number to T, and press I again.

Rendering a movie
Now to render the movie, go to the render tab, set the resolution to your desired values (Important: the higher the resolution, the longer the rendering! If you just want to test something, use low resolutions.).
Set the output path of your animation.
Make sure the End of the movie is at T, and select the encoding. I quite like H.264, but feel free to use something else.
Finally, Click on the Animation button.
Go grab a coffee.

Results

Here are 2 example of rendering made using this, one is a single time point with 2 channel (Done with Compositing the rendering of two scenes, I'll make a tutorial about this at a later time!)
https://youtu.be/7d-0tc4HXc0

Next is a timelapse of nuclei marked with a fluorecent reporter gene.
https://www.youtube.com/watch?v=v31WQel4eCU

Tips and tricks
Rendering in view mode
Looking at a cube to select the area of interest in a microscopy stack is not easy, and rendering images all the time makes it painful. Blender has a neat feature, that allows to render in real time.
To activate it go to the Method to display/shade object in the 3d view, and select Rendered.

Even this is helpful answer ... this is not answer to your issue ... to make it organised you should ask a new Question and use this as answer there. Thanks

Sorry about this, I figured it out.
It was my own mistake
I checked the option Still Frame Only.
To anyone reading this, MAKE SURE IT'S UNCHECKED

Edit: I could not find any information about this online so I made a tutorial.
https://hackmd.io/s/rketOixDG

Can you copy said tutorial here instead. Make multiple answers if you have to.

I just posted it below


text:
Modeling V-Engraved / Chiseled Text
Are there any good Blender techniques for modeling engraved text with a "V" shaped groove/depression?  The image below shows what I am after. To model this, I used GIMP to create the gradient (using the "shaped" gradient function).

. . . then used it in a displace modifier.  The limitations of this approach are obvious . . . it takes a high level of subsurf to show the groove cleanly, and at this point the limitations in the source gradient become apparent.
The "bevel" setting of the text object offers something intriguingly close, but as far as I can tell it will only bevel outwards.  I don't know of any way to "collapse" the middle vertices into an angled groove, whether before or after converting to curve or mesh.  The "offset" setting of the text does shrink the outline, but as with "shrink/fatten" the feature does not seem to do well at collapsing loops to a single edge.
If there is not a convenient way to model this, is there at least a clean way to automatically remesh the displaced text to something suitable?  I wouldn't want to bother with manually remeshing a bunch of text.
EDIT: well I appreciate the assistance so far, however "manually retopologize" is not really the answer I'm looking for, I'm hoping for something a bit more automatic.  I've gotten partway there I think.  Some of this was suggested by the following topic: How to intersect objects and delete leftover internal planes?
Basically, if the text object is extruded, converted to a mesh, and the top and bottom planes are deleted, leaving only a tube in the shape of the letter, you can take the bottom edge loop and use "shrink/fatten" to completely invert it.  This will create a self-intersecting mesh with grooves in the right places.  One can then use the Mesh-->Faces-->Intersect (Knife) tool with Source set to "Self Intersect" to create cuts along those intersections.
While still not perfect, it's reasonably close to what I was looking for, and I'm hoping that there might be ways to tweak the process to get a "proper" mesh.

EDIT 2: The addition of a subsurf helps iron out the strange areas, and it is actually not necessary to use the "Intersect (Knife)" if the back part of the text mesh will be hidden:

Short answer is NO, yuo can use the offset value next to the bevel to draw in or out the face size. But you cannot clamp this at the verts, so you can get face overlap and distortion. Sadly there is no value that traces from the edge of an object. You could try a displace modifier but that tends to fail around concave corners as well.

Possible duplicate of How to make a bevel on text

Result ...

... later I noticed you did it by very similar technique, but since you didnt create your own answer (for a few years) and this Q gets still attention I created one with a few details to help followers to get nicer topology.
Intersect (knife) is still the core, but instead of Shrink/Fatten (you mentioned also issues with that) I got nicer result with Bevel operator.

Lets start with Text object and Convert to Mesh ...

... generate n-gon by Dissolve Limited (X), just under operator properties -lower value to 1 deg (so you don't loose smooth curvature at low angles of letter's shape). Now search for Decimate operator to get a bit even vertex distribution ...

Extrude outline in Z axis ...

Bevel (Ctrl+B) bottom ... move your cursor until entire G face is crossed ...

Now lets get rid off the unwanted parts ... search for Intersect (Knife) and under operator properties set Source - Self Intersect - this generates a cut in place of intersection ... from side view select all bottom vertices and Delete them. Search for Merge by Distance, once to merge middle cut ...

Note: To easily select middle vertices - Select All and than with Alt+Shift click on top edge deselect top edge loop.
Now use Merge by Distance again just for this middle rim to connect some nearby vertices (by adjusting Threshold value) to get nicer topology ...

Nice technique, great looking results. Best one I've see so far, this deserves more upvotes.

@DuarteFarrajotaRamos Thanks for nice words :) ... I like it too :) But never tested in other cases ... so I cant say how useful this technique is.


text:
Is there any way to assign a value to a variable in a driver?
I would like to change the hide_viewport state of a collection in a driver.
It is unfortunately not possible to add a driver to a collections's states. (It is possible to do this on objects but not on collections.)
The problem is that in the driver editor I can't assign a value to a variable (like var = 0 ) as this results in an "Invalid Python expression". Which is a bit silly as this is just a normal variable value assignment in python.
In an if statement in the driver editor one can assign a value (0 if whatever == something) but this refers to the value of the driven object. As the collection can't have a driver I would like to drive it's states by another object's driver.
Is there any way to achieve this?
Basically recreating the bpy.data.collections["Collection_Name"].hide_viewport = True  statement from a script in a driver.
(I can't use a script as I intend to append the collections and the driver objects in an empty file. Or can I attach a script to an object so that the script also gets appended with the object?)
EDIT:
This question is a follow-up to my question from yesterday:
Geometry Nodes - Collection Info: turn off visibility of input collection
It's about turning off a collection's visibility when it is affected by a "Collection Instance" geometry node, without any user interaction in the object lister.
EDIT 2:
To make this question clearer using the example from my other question:

The expression 0 if var == 0 else 1 sets the value of the X Location of the Empty to 0 or 1.
But what I would like to have is to set the value of the collection_variable to True or False. Like:
(collection_variable = True) if var == 0 else (collection_variable = False) and this is what is unfortunately not possible.
If I understand correctly the variables here are read only and only help to determine the state of the object's attribute which has the driver. Is there any way to set other attributes? (Outside of the scope of the current driver?)

The Problem is, that I would like to import a Master collection together with the object which has the geometry nodes to alter the content of the collection. Then a user drops his collections under the imported collection and so all of his/her objects get's modified by the collection instance node by the imported objects geometry node. Unfortunately there is no automatic way of turning off the original collection content and only show the modifications done by the geometry node tree. This should be automatic, not requiring the user to manually turn off the collections visibility.

One possible workaround might be instancing and realizing the entire collection when some (the variable) condition is met. All your original collections can have visibility and selectability toggled off.
In a separate geometry nodes object, you could link a Menu Switch to the Group Input.
Then the Menu Switch can be controlled by the driver, and you can write several variables or expressions in the Driver Editor.
With the Menu Switch, you can have Collection Info A, B, C...etc (as many configurations as you want)  and instance and replace different collections based on the location of an empty on the X axis as an example from your previous question.

The user Gorgious shows how a custom property of a collection cam drive an object, but it is not clear how an object can drive a collection.
https://blender.stackexchange.com/questions/237115/trying-to-drive-values-with-custom-properties


text:
Is it possible to create a volume scatter Cycles material with "real" scattering?
I might not understand the Volume Scatter material properly...
A real "milky" glass (like diffuse volumetric plexiglas) would scatter light in any direction. If you put a printed paper with text behind it, you could read the text when it is closer to the object. If you move the text further away it gets more and more blurry until it becomes unreadable.
I try to do the same with Cycles:

The first sphere has 0 scatter density, the second has 0.1.
The second gets darker as the light "scatters" inside but the text remains as sharp as with the first sphere.
In reality, the light from the texture would be also scattered and therefore the text would be distorted.
Is there a way to achieve this effect with cycles?
UPDATE:
I increased the amount of Volume samples (thanks for the suggestion) but it doesn't change the result. The plate on the right should show a  more distorted texture because it is further away:

In reality there is a major difference between a sheet of transparent plastic which has a rough surface texture and one which is glossy on the outside but has a scattering inner volume.
This is what I would like to achieve:

These are volumetric plastic materials whit different amount of scattering per millimeter. They have a very different appearance then surface treated materials.

First, try to turn up the number of volume bounces in Light Paths

But I think Roughness will approximate this with better performance, the difference is that scattering will only occur at the surface interface, and not at steps inside the sphere

Thanks for the suggestion with the bounces! Unfortunately the effect remains the same. I updated the original post with a sample image. I'm afraid that cycles will not be able to reproduce this exact behavior. Surface based roughness creates a very different effect, therefore I can't go that road. (I already have such materials and I have to show them side by side, like their real counterparts.)


text:
Voxel Data texture in Blender (Especially for Cycles/EEVEE)
What I'm up to?
I would like to render some CT/MRI data. The data is represented as a 3d array with float values. (Or a sequence of 2d images)
My scheme
As the blender manual describes, procedual textures have their 3D structure.
With the trick in the stack exchange QA (
Controlling volume density), this 3D structure can be visualised.
Thus, all I need to do is to convert the 3d array to a 3D texture.
Please help me achieve this either by node or scripting(preferred).
Thanks.

Edit
The picture below shows that the single image version is rather simple.

The following is the .blend file for the above screen shot. (Although, you might not have the image texture with it.)

The tasks above can be achieved in Blender Internal (see comments). I am now eager to know a Cycles/EEVEE solution

If you are happy with single image, why not to load all scans as image sequence and render that way? Just rename images in specific app to get names like scan_001, scan_002 and so on.

@SergeL Thanks for the reply. One of the advantage of rendering them with one cube is that I can keep the geometry-size small. Although your proposal may be one of the possible solutions, I don't want to see a cube on a cube on a cube ... on a cube, until it piles up to 1000.

found this. https://docs.blender.org/manual/en/dev/render/blender_render/textures/types/volume/voxel_data.html (I think I can solve this myself but still open for any kind of answer/advice)

The link above is well explained in the following video. https://www.youtube.com/watch?v=7PSPiUrrXsg. However, this is not a promising solution since this uses Blender Internal Renderer. Any Cycles/EEVEE solution is more preferable.

This is currently not available for the Cycles/EEVEE. However, one of the GSoC 2018 challenge aims to implement this. https://wiki.blender.org/index.php/User:Geraldine/GSoC_2018/Proposal
I will update this post once it is available.

Any updates yet?

Not quite. The branch for this is at https://developer.blender.org/diffusion/B/history/soc-2018-cycles-volumes/ but I cannot judge how this project went or how this would influence the blender source. Speaking of OpenVDB, the Sculpt team seems to be interested in using OpenVDB for re-meshing but that's yet another area so ...


text:
Can a Point Cloud be Spread Through a Smoke Sim?
I'm simulating a sand storm and need a large number of particles in my smoke simulation.
After reading about point clouds in Blender 3.0+ and using a few examples I was wondering whether they could be distributed through a mantaflow smoke sim instead of using particles.  Would they be more efficient?
Thanks!

If you want to drive particles by smoke force ...

add Particle System to Fluid object (or any other)
add Force Field object type Fluid Flow and set Domain Object under Physics Properties.

The Empty object in my example is Force Fields > Turbulence to make smoke a bit more dramatic :)
Gravity under Particles Properties > Field Wieghts is almost zero


text:
Make all faces in an object have the same texture tiling?
I am learning to make objects for Unity. I made the object in the picture. How can I make all faces have  the same texture tiling?

Also I have this set of faces that for some reason look odd (not have a texture tiling):

Even better: How would I make it so that in Unity, I have material slots that would assign themselves? For example if I have a bottle; material 1 for the bottle and material 2 for the wraper.
Thank you!

You must make seams, UV unwrap this object, and adjust the UV islands.

@DanielMöller What are seams? I just did UV unwrap and it seems to have worked. What are UV islands?

UV Unwrap
For the Texture to be displayed correctly, you have to UV unwrap your model.
Edit Mode -> Select all faces or only the portion that you want to unwrap -> (Top Menu) UV -> Select the method you want to use.
Seams
Seams are "cuts" along your mesh that help the UV with unwrap. You can select edges of your Model that should act as a cut in the UV. If you do not set any seams, blender will do it's best to create them itself.
In this picture you can see how a cube could be unwrapped. The seams are placed at the edges that are cut and no longer connected

Islands
Islands are disconnected UV parts of the same Model like you can see in this picture. If you are in edit mode and have face select enabled (not edge and not single vertices) you can hover over a created uv island and press "L". This will select all the faces of the island.

Procedural Textures
For Procedural Textures that have to flow over separate Objects you can create an empty, Us the "Object" Mapping method in the Shading node "Texture coordinate" and than select the Empty as an Object in this Node. This will take the Empty as a scale point which should give you equally sized Textures on all Objects.
Sadly I can not answer your question about Unity.

That with Unity might very well be. Your remark about the texturing is only half right. The scale will be the same but the orientation will not be. You can apply the rotation to fix this but you might not want to do this in certain situations.


text:
Blender render tab is not showing model
I want to do a test render of my project, but every time I hit render image, the blender render tab appears like nothing's in there to render, just blanc... I am wondering if anyone else had this issue before and what I can do to fix it. In previous versions of this there was no problem, but now suddenly something's not right. Also, the other renders that we did all worked.

this is what I see everytime I want to render it out. Just a blank blender render tab and a crashing blender program...
If anyone can help me, that would be more than welcome.
Regards, Bas

Hello maybe you have a video strip in your Video Sequencer? If this is not the case please share the file


text:
Geometry nodes: objects become too small when I "reset children"
I was trying to add sprinkles to a donut in geometry nodes but when I clicked "reset children", the sprinkles became really small. does anyone know why that happened and how I can fix it?

Apply scale (Ctrl+a) -- original sprinkles, icing and donut

I tried to scale the original sprinkles but it didn't work. thanks for the answer though.

I didn't say "scale" (s), I said "apply scale" (ctrl+a)

oh, thank you so much, it actually worked! (I'm new to blender so I'm still trying to figure out how everything works)

The discord channel suggested in the tutorial has lots of people facing the same issues every hour, it's a good place to go ask these donut questions.

ok, thanks again for your help