text:
Movie editing : VSE or compositor?
Currently editing a short-movie in Blender (~11min), I did reach some limits of the VSE. Some part of the movie is black and white, and for the first time Blender began to give me "not enough colors" like a gif would do. I never had such a problem with the VSE, and hopefully for me troy_s was able to point out the limits that have the VSE, and the compositor don't.
So here comes the question.
The VSE is limited, but has a timeline. It's almost necessary for me, having to deal with 3 audio strips (4 with music, 5,6,7 ... with sounds) for each video strip. On the other hand, the compositor is much more powerful, but doesn't offer a timeline like editing softwares would. You definitively can't visualize the time of your strips, all time-depending properties would be just number, not quite easy to read and work with.
So what is the best way to manage editing of short-movies or longer movies ? Use the VSE and loosing quality and flexibility ? Use the compositor and loosing any sensation of time, trying to align audio strips without even see the waveform ? Or Blender is really limited for editing and I should learn an editing software ?

Update 5+ years later
Here is a list of changes in my workflow. Hopefully it can help you !
Editing software : I've totally abandonned the VSE. I used Premiere Pro for a time, now switched to DaVinci for 2 years. By far the best software I used (Blender VSE, Sony Vegas, Premiere Pro, DaVinci). Nothing come close to it in terms of performance.
Shooting settings : For any project with a little bit of grading, we now shoot at 10bit, 4:2:2, slog-3.cine. Otherwise, 8bit, 4:2:0, slog-3.cine
Camera : Mainly using a Sony A7S iii. Amazing sensor and quality. Additionnally we are using a Sony A7 iii.
CGI : Currently EXR are a bit hard to work with in DaVinci, for AgX colorspace. Most of the time I'm rendering PNG sequences, then compositing and grading them in DaVinci. Requires a bit of setup but no real limitations in quality and quickly found a personal workflow that suits me.

It's a very challenging set of questions. As with any set of questions, the answer depends on contexts. Once you begin looking at the issue of "quality", the solutions are quite clear. The outlines provided below have been with motion picture making since near the advent of film, and continue on to this day in many projects.
It should be noted that you should test your footage in the compositor to see if the result achieves the quality level you need based on your original question. If it doesn't, then the whole following answer may be moot.

So what is the best way to manage editing of short-movies or longer movies?

What is outlined here is loosely what is described as an offline versus online post production process. The terms offline and online here, do not reference internet connectivity, but rather:
Terms

Offline: Sacrifice quality for performance in a context where performance is deemed more important than quality. This is typically the design context of tools that require real-time interactions, such as the needs of NLEs with editing where timing and beats is more important than precise float precision correctness.
Online: Sacrifice performance for quality in a context where quality is deemed more important than performance. This is typically the design context of tools that require float precision bitwise precise accuracy, such as the needs of compositors and grading software[1].

Use the VSE and losing quality and flexibility? Use the compositor and losing any sensation of time, trying to align audio strips without even see the waveform? Or Blender is really limited for editing and I should learn an editing software?

The problem here is that your questions actually contain the answer. The TL;DR answer is that you should use both.
Outline
For those unfamiliar with how motion pictures typically are broken down in post production, the following is a high level summary. Animated projects have similar overlaps, but the footage is typically iterations of previsualizations. The path typically looks akin to:

Logging. Log the footage that has been shot.
Editing. Loosely can break down into Assembly, Rough Cut, Fine Cut, Final Cut. At this point the picture is considered "locked", and post production work can commence.
Post Production. Sound etc. forks off here. The outline continues to focus on the picture components. All relevant tasks now have a completed, frame accurate blueprint to work from.
Visual Effects. Work done using compositing tools on a frame by frame basis using the highest quality plausible.
Conforming. Essentially taking all of the various "bits", and assembling them back together into the final shape of the motion picture.
Grading. Grade on the final image frames.

At this point the picture can be reassembled back into the original blueprint's shape, and merged with audio, and encoded to various output encoding needs as required.
Visual Effects
So it would seem that you've managed to edit your piece. The question now becomes, how to achieve this sort of quality baseline with Blender?
Use your VSE edit as a blueprint. Sadly Blender's VSE lacks Edit Decision List support. An Edit Decision List is essentially a text file blueprint that is legible to many different applications. There are a number of formats, but essentially they all communicate the structure of an edit without passing around heavy pixels in files, allowing various softwares to reconstruct elements as required, using the precise edit timing of frames etc. So how to get a useful series of frames out of the VSE if we need to manually accomplish what EDLs are used for?

Make sure your media is using the highest quality inputs. Decoding in Blender from codecs will reduce all codecs, even at higher bit depths, to 8 bits per pixel. This is a limitation of the current system. If you decode outside of Blender using a tool such as FFMPEG, you can generate potentially highest quality sources, and then load those as still images in the VSE.
Keep tight organization on your shots. If you have a short that requires 192 shots, and 17 are visual effected, organize those 17 shots into discrete folders with subfolders of the iterations. One subfolder should hold the original archival frames, another with your compositor generated output. In the VSE, you can switch between the versions by re-linking your media to the iterated versions.
Note that where a shot overlaps another shot in your edit, you'll need to effect one, several, or all shots in the overlapped sequence individually. This will require dumping all of the frames for each shot involved in the overlapped sequence. For example, if ShotA consists of 200 frames and dissolves for 30 more into ShotB, which is 70 frames plus the 30 overlapped, you'll want to keep those shots on separate channels so you can dump the full 230 frames (200 + 30 overlap) from ShotA and the 100 (30 + 70) frames from ShotB.
Complete all per-shot visual effects.

Grading
After all visual effects are touched on, you should have an iteration of your motion picture with all archival shots in place, including the newer highest quality visual effects. You can re-link against the same strips and "reconstruct" the final picture. From there:

Keep all temporary effects and adjustments on separate layers. We are only interested in the highest quality archival frames, untouched. Use the timings and adjustment effects as part of your blueprint, perhaps via markers in your timeline.
Export all of the frames for your entire project, with black slugs in between. In the old, dark ages, folks would use junk fill on their workprints when preparing for a negative cut. This approach is similar in that it uses black frames where the current reel isn't being utilized. The key is that each reel is precisely the full length set of frames of your final work and remain perfectly in sync.
Load your picture locked set of reels into the compositor, or utilize scene breakdowns to work on smaller sections. One reel per input node.
You can then use a few mix nodes to reconstruct your edit for grading and proper linearized adjustments for grading etc.

[1] It should be noted that in rendering circles, the terminology is flipped. That is, an offline render is considered the best quality render possible.

Thanks a lot for your answer. I never understood how to achieve that and you gave me here a good idea of what it takes. I would have a lot of questions but only one summarize well my concern : is this workflow (rendering the whole movie length with black slugs for each shot into images) the same for other softwares ? It looks like a lot of disk usage and seem a complex workflow. Beside of that, does Blender have all image and video format needed to achieve "perfect" quality ? Or are others softwares better than our beloved Blender ? Thanks again, I really appreciate your effort on guiding me !

Other software can seamlessly flip between offline and online variants, but nothing is terribly perfect. Resolve for example, will auto flip and is pretty performant, but has a challenging reference space to negotiate. Nuke and Fusion can load EDLs, but also have some challenging aspects. Blender could add interchanges via OpenTimelineIO quite easily, which adds support for everything overnight, so the VSE could export markers and strips, and re-construct them in the compositor more automatically. It's a discussion. The answer above has holes. Post any further questions and I'll try to answer.

Ha ha, I go to OpenTimelineIO Docs on the github and find you've already been there Troy :D  Do yuo envision the VSE writing a OpenTimelineIO file that the compositor can read and reconstruct? Seems like an ideal thing for the Nodes Everywhere developer to integrate as its fundamentally a database thing.

@3pointedit folks don't quite understand the importance of interchange files. Pixar writing a universal handler should tell you much about just how important they are. In theory, being able to construct timelines for export into other software, or across areas of Blender would be a huge win.

@troy_s : Can I use the compositor to extract my video files (.mts) to images, or should I use FFMPEG for that ? I feel you're saying the compositor uses floats, but at the same time that decoding inside of Blender reduces to 8 bits ... And I asked another question about audio, if you're willing to guide me about it. Thanks again for your help, I would never found such precise answers about my concerns. Thanks !

How you decode footage can have a bit of a difference in the final copy that ends up encoded in an RGB wrapper. If your camera is an A6000, it is only 8 bit encoding, so Blender's 8 bit decoding will be more or less fine, depending. If you get a higher quality camera that records at a greater bit depth, you would need to use an external tool to decode the edit frames in question. Different decodes though, can still generate different quality RGB sources in some contextd, so it is worthwhile to test. TL;DR with an A6000 recorded on board, decoding in Blender is fine likely.


text:
Extrude the faces near my selection
I have made a good selection in geometry nodes that I'm happy with:

I feed it into the extrude node, and I can extrude the vertices and edges using that selection correctly, but when I try it with faces it wont acknowledge the selection, does anyone know why? Thanks for the reading!

pls provide blend file because you didn't even show us how you did the face selection. thx.

Does it necessarily matter? The selection if based off of normals, and comparing with equals and adding them together, I will include it in the question now^^

tbh your selection makes not that much sense to me. can u tell us how you want to select it and why? so maybe tell us your end goal? or do you just want to select "inner faces" of a cube? so e.g. to select the "inner" faces you could do this: [1]: https://i.sstatic.net/NTx30.png

That was more or less what I was trying yes, turns out my selection still works but I needed the 'Evaluate on Domain' node after the selection set to 'points', so thanks for the tip :)

glad it worked for u

source: Stack Exchange

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

sort: votes


text:
How to stop certain parts of an mesh from deforming when posing armatures
when im posing with armatures my character decides to scruch up when i make look down then stretch when i look up.

this is the original model:

if anyone wants to know the mesh is made from multiple parts
if you have an answer id like to be informed
heres a copy of the files

Hello please share your file, remove the pats that are not useful

how do i share the file?

use https://blend-exchange.com/ (follow the instructions and share the link it will create)

Some vertices are assigned to other vertex groups than head. To fix that, select the head in Edit mode, Remove from All Groups, then assign them to the group called head:

Thank you so much! i just started making meshes and this really helped!

one more question... when i reassign the vertex groups i still want the neck part of the head to follow the neck bone is that possible or would i need to connect a certain part of my mesh to the other

In that case remove the vertices at the bottom of the neck from the vertex group called head and assigned to the one called neck

Ok! Thanks for helping!

Btw, put the Armature modifier on top of the modifiers stack, then Solidify, at last Subdivision Surface

is putting them first prioritize it more?

Yes the order matters, if you put Armature first, the armature will only manage the low-poly object, it will be much lighter to calculate, etc

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


text:
Is there a quick way of changing the % Resolution in Output Properties?
I'm always working with big images (> 4K) and very often I use the % Resolution to make quick renders with the original proportion to progressively see the results/issues of the render. Unfortunately, there's no option to add this slider to the Quick Preferences (Q), and I have to adjust this value manually.

Are there other ways to quickly change this value without going to the Output Properties every time?

There is a way to assign this action to a shortcut. Head to the Scripting tab (or open a Text Editor view) and paste this script:
bl_info = {
    "name": "Quick Render",
    "category": "Rendering",
}

import bpy

class QuickRender(bpy.types.Operator):
    bl_idname = "quick.render"
    bl_label  = "Quick render"
    bl_options = {'REGISTER'}

    def execute(self, context):
        # setup quick render settings and kick off render
        old_percentage = context.scene.render.resolution_percentage
        context.scene.render.resolution_percentage = 50
        bpy.ops.render.render('INVOKE_DEFAULT')
        # restore old render settings
        context.scene.render.resolution_percentage = old_percentage
        return {'FINISHED'}

addon_keymaps = []

def register():
    bpy.utils.register_class(QuickRender)
    wm = bpy.context.window_manager
    # setup where to run the shortcut
    km = wm.keyconfigs.addon.keymaps.new(name='Object Mode', space_type='EMPTY')
    # setup the shortcut key
    kmi = km.keymap_items.new(QuickRender.bl_idname, 'R', 'PRESS', alt=True)
    addon_keymaps.append(km)

def unregister():
    bpy.utils.unregister_class(QuickRender)
    wm = bpy.context.window_manager
    for km in addon_keymaps:
        wm.keyconfigs.addon.keymaps.remove(km)
    del addon_keymaps[:]

if __name__ == '__main__':
    register()

Running the script will enable Alt+R in the 3D view which starts a render with 50% resolution. Look at the comments in the code if you want to change the shortcut details. You can also register the script, so you don't need to run it everytime you open up your project:

I have adopted the code from the Blender addon tutorial. How to setup the shortcut is here and the render call here.

I accepted the answer, because it does facilitate the change of the resolution percentage. The only thing is that the resolution is now changed to the new value defined, and I have to go back to the Output Properties if I want to change the value to another one. I believe that now it is just a new thing that I have to append to your script. Thanks for helping!

The script just changes the percentage for rendering, but restores the old setting. I don't know if it's possible to have a "shortcut slider". You could extend the script with multiple shortcuts for different percentages (like Alt+1, Alt+2 etc.). If the shortcut slider is not possible yet, you could make a feature request to the Blender team https://blender.stackexchange.com/questions/1190/best-place-to-put-feature-requests/1211#1211

You're right about restoring the old settings! I may have done something wrong or edited it somewhere not needed.


text:
Search through Array in data objects

I've no python experience, How can I condense so It's flexible for array length ?
basically I like to manually freeze objects(Disable Selection), I've got that working perfect, now I just need to Unfreeze all objects in one click.
Instead of that code smell, how can I check array.length using Python?
anything like this ?
for object in data.objects
object.hide_select = False
Cheers!

for item in bpy.data.objects:
    item.hide_select = False


text:
How to remove the behaviour of 3D cursor
The behaviour of holding shift and right click moving the the 3D cursor ?
Can't find anything in keymap, like it don't exist.
Any ideas ?
I want to change hotkeys.
ps - I don't want this behaviour, can it be done
Or even better, how to toggle on and off the 3d cursor with a hotkey

Not sure about cursor not being in keymap... It should be here if you try to use search for it and you can change it to whatever you wish

That's the very first thing I tried, that's just the placement (which I only really need) it's the removing the behaviour of "movement" shift and left click. I was wanting to make a pie menu for shift left click but I can't because the 3D cursor seems to be hard coded into shift left click.

You can delete this thread, fml all I had to do was create a hotkey with shift and right click and it overrides the hardcoded cursor behaviour ><
So annoying haha.


text:
Changing Workspace Without Going Into Edit Mode
Looking to see how I can change workspace without it automatically forcing edit mode.
I'm someone that uses this function a whole lot, so this small niggly in your opinion, is a big annoying burden. It breaks the workflow.
I had a small work around for a bitty where when I changed workspace, I had a timer on a script where it would change edit mode to object mode. (but this method fails now)
https://www.youtube.com/watch?v=lYjPPjrkzUg
More description: Only does it when an object is in the scene (regardless if selected or not) and my pie menu is only calling: bpy.context.window_manager.windows[0].workspace = bpy.data.workspaces['Rigging']
I'll give ya a hug if you can help me out xD

Not sure what you mean? Changing workspace doesn't automatically switch to edit mode here. If a particular workspace has a 3D view in it, switching to it will mirror the 3D view mode that you'd selected in the previous workspace.

I'm working on a clunky way. Unhiding an empty, selecting it. then switching workspace, deselecting empty and then hiding. This seems to work... bit over kill tbh!

@JohnEason are you sure? The Modeling and UV Editing workspaces always switch to Edit mode. Heading back to the Layout workspace always switches to Object mode (when you were in Modeling or UV Editing). But switching between workspaces Layout and Shading keeps the mode. And the Texture Paint workspace always switches to Texture Paint mode. But I don't know how this magic works.

I agree about the Modeling one but TBH I never use it so hadn't tried that one. I suppose it's logical though as you'll want to be in Edit mode if you're modellng. The same applies to the UV one, but at the time it wasn't clear what the OP was referring to.

You can set it in the "Active Tool and Workplace settings" panel:


text:
How do I select a collection using a string name
How do I select a single collection using a string and making it the active selection? Any ideas please.
I'm aware of selecting objects in collections, looking for how to pick a specific collection by string.
(python)
I know it's to do with this:
bpy.ops.outliner.item_activate(deselect_all=True)
--
How do I get it to be like this? (Mock Up)
bpy.ops.outliner.item_activate("MyCollection")
EDIT -
You can delete this question as I found an alternative way in doing what I needed to do.

Appears that you can't :S https://docs.blender.org/api/current/bpy.ops.outliner.html?highlight=outliner#module-bpy.ops.outliner

Since people have made an effort to answer this question, rather than deleting it I would ask you to write up your alternative for people who have the same problem in the future, please.

I never explained I wanted to select a collections so when it's active I can press f2 to rename it. Instead of looking for it in the hierarchy and renaming it there. I use pie menus to run small code snipets: bpy.ops.object.move_to_collection(collection_index=0, is_new=True) worked a treat!

You need to access from the context master collection.
import bpy
context = bpy.context

def recurLayerCollection(layerColl, collName):
    found = None
    if (layerColl.name == collName):
        return layerColl
    for layer in layerColl.children:
        found = recurLayerCollection(layer, collName)
        if found:
            return found

master_coll = context.view_layer.layer_collection
current_coll = recurLayerCollection(master_coll, bpy.context.collection.name)
target_coll_name = "Lights"
target_coll = recurLayerCollection(master_coll, target_coll_name)

if target_coll:
    context.view_layer.active_layer_collection = target_coll
else:
#    create a new collection in the master scene collection
    target_coll = bpy.data.collections.new(target_coll_name)
    context.scene.collection.children.link(target_coll)
    target_coll = recurLayerCollection(master_coll, target_coll_name)
    context.view_layer.active_layer_collection = target_coll

How about target_coll = bpy.data.collections.get(target_coll_name) instead of using the recurLayerCollection?

@MarkusvonBroady causes an error when trying to set as active collection. TypeError: bpy_struct: item.attr = val: ViewLayer.active_layer_collection expected a LayerCollection type, not Collection

Aah, I see, thanks for clarifying!

@MarkusvonBroady If you happen to know or find a better way to set the active collection in the view_layer please let us all know since this is a bit much.


text:
How do I disable selections on all objects I have selected?
I'm looking to to disable selection all objects I have selected.
I can do 1 at a time but I can't find how to: foreach in current selection group, disable selection objects.
I edited out the code due to people thinking it was mine lol

You normally do this sort of thing with a for loop; using bpy.context.selected_objects.  That's a list of all of the objects you have selected.
Here's an example:
import bpy
for object in bpy.context.selected_objects:
    print(object.name)
    object.hide_select = True

This isn't exactly what you asked for.  The 3rd line is debugging and prints the names of the objects it's deselecting.  Take it out if you don't want the noise.
EDIT:  Having the broken code in my answer is confusing people in the comments. I've removed it and left only my working code above.

also notice that the SEL_OBJS line should be separated by a return from the ACT_OBJ line because they are two separate statements.

Cheers, I wasn't trying to write code, I was just giving an idea what I wanted by looking online for examples.

@MarcVolkers  My first example above will do what you wanted.  So would the code you posted, formatted the way I have it now.

fwiw I don't think that even indented properly the original code would work, bpy.context.object points to the active object, so the loop will make the same object unselectable many times. Also although it's valid in this context maybe a word of warning that using object in python is not advised since it overrides the base type object. And making an object unselectable automatically unselects it from the viewport (not from the outliner though) :)

@Gorgious you're absolutely right on bpy.context.object and on unselect.  Editing answer now.

It's not freezing the entire group still, just 1 out of max group

The top code should be freezing the entire group.  As we discussed in the comments, the second one, as written, isn't. So I removed the second one to avoid confusion.

Youtube video showing it's only freezing one object in selected objects. https://www.youtube.com/watch?v=X3OO1GpUNaA  | I'm running the script through pie menus,

You're not running the script @MarcVolkers.   If you're invoking the code from a pie menu that means you stuffed it in an operator.  Edit your question and show the actual code from the operator, probably the execute routine, and I'll update my answer.  (Hint: the operator takes a context variable, so you want to use it instead of bpy.context.)

How do I make this work for the pie menu :) I'm a novice in python. I see in running in the scripting window, but I kinda need it working as a fast command (how do I convert this so i can call it via hotkey, piemenu etc)

Let us continue this discussion in chat.

Just out of curiosity wouldn't for object in list(bpy.context.selected_objects): be safer execution since setting object.hide_select = True is modifying bpy.context.selected_objects each loop iteration?

@Ratt It would be safer, because it would prevent mistakes if the code was later modified to add something that changed selected_objects, and yes it is possible that setting hide_select might reorder selected_objects.  Good spot.

Please take a look at proper code formatting in python. Formatting and indentation are essential for python code. If you don't follow the rules, your code will not work as intended.
You have to indent the content of a for loop. And there must not be any blank line between the header and the content of a for loop.

Cheers, I wish I never wrote anything :S I deleted it, I'm looking for some one to write something or point me in the right direction.


text:
Engraving a text string in Blender Internal Render
I am trying to engrave a plaque (metal, stone) with some text.  The person who redirected me here had this example (with author's permission)
My current workflow is slow.  I prepare a picture of the text (in Gimp), use it as a bump map node in the "final" material (to influence the metal or stone texture).
I'm looking for a shortcut: can I use a Blender text (possibly on a separate layer, not rendered as such) to achieve the same?
I can create the engraving - the key is being able to change the text over, without altering the geometry using a boolean operation, or without re-creating the maps (bump or displacement).

Related: http://blender.stackexchange.com/q/2612/599, http://blender.stackexchange.com/q/9005/599

What's wrong with using a boolean operator? Than you can just change the text and it will update the geometry. You could put the text in a separate layer and exclude it from the render.

@cegaton your answer seems good, the only thing to to is not applying the boolean and make the text not renderable with it's properties or changing layer.

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


text:
How to change the python version in blender
I'm using Blender 2.71 and it comes with Python 3.4.0 even though the most recent version is 3.4.1. Is there any way to change this?

What for? Of course you can use a different Python installation or update the Python libs and compile Blender yourself. http://blender.stackexchange.com/questions/5287/using-3rd-party-python-modules-scipy http://blender.stackexchange.com/questions/302/how-to-change-the-python-version-that-blender-uses

By the way, the most recent version of blender is 2.74.

Ok. I'm still using 2.73a.

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


text:
Video editing displays white screen
I have Blender 2.72b on Windows 8.1 Pro and whenever I get to the video editing and import a video, I get this

How can I fix this problem?

Can you upload one of your videos or just a part of it?

What do you mean?

I've tested .mp4 (h264), .mov (h264) and .avi (uncompressed) clips in windows 8.1 and it works as expected. I assume it's a graphic card issue, like here: https://developer.blender.org/T37904. Do you have installed latest drivers?

I have the latest drivers (ATI Radeon 3100 Graphics).

Then there must be a codec issue. Which video formats you've tested? Can you upload a part (1-3 seconds) of one .mp4 that displays white?

I already had a graphics card driver problem with Blender. The developers helped me out to find out whether the problem is one with the driver.
You should use the opengl32.dll from http://download.blender.org/ftp/sergey/softwaregl/ and place it next to your blender.exe as described by sergey to find out if the problem is your driver. Beware, that Blender might be very slow while using this wrapper dll as everything is done on CPU only without using your graphics card. If it's working this way you know it's a problem with your driver/graphics card.


text:
Transparency not working in cycles
I have Blender 2.75 and I am working on a project. I want to import a transparent window texture but when I do this happens:

It doesn't look transparent in Blender. When I render it with a light and a green cube behind it this happens:

The bars are transparent but the background turned black. The same thing happens with another texture when I import it. The background of the texture is white and doesn't blend in with the brick texture:

How do I make these textures transparent the right way?
EDIT: When I add this node setup:

The 3rd texture (with the background not blending in) just shows all white and it's a black border when rendered.

What is your node setup for the bars?

I think you do not have any alpha information in your black and white images. Try simple plugging the color socket in to the Fac of the mix node.

In cycles the proper way to use a texture with transparency is to mix a diffuse shader (or whatever shader[s] you are using for your material) with a transparent shader based on the alpha output of the image texture node.

@KalebProvost  What does your node setup look like?

The 3rd picture texture (with the background not blending in) doesn't show when I use the node settings.

@KalebProvost It's kind of hard to tell exactly what you're doing wrong without seeing a few more details of what you are doing.  Would it be possible to post some more screenshots or upload your .blend to Blend-Exchange?

I edited the question to include my node setup. It works for the bars but not the last texture.

@KalebProvost  Does the bars texture have an alpha texture?

both of them do.

@KalebProvost  Would it be possible to upload the texture you are using?

http://imgur.com/UKHkCKV Here it is.


text:
BSDF options not availble in texture
I am learning Blender and I like to search tutorials but on some steps, I need to use BSDF but I have this:

Is there anyway to change this?

Welcome to the site :) If you feel an answer solved the problem, please mark it as 'accepted' by clicking the green check mark. This helps keep the focus on questions which still don't have answers. You also may want to check out the help pages or the 2-minute tour to get situated.

You have your render engine set to Blender Render. Set it to Cycles instead by selecting Cycles Render in Info > Header (at the top of the window by default):

See How is Cycles different from Blender Internal? for more information.


text:
No CUDA and GPU option
I have Blender 2.73a with AMD Radeon 3100 Graphics. I saw this page on how to make cycles render faster. It says when I go to User Preferences> System> Compute Device, It has no CUDA option, which means there is no GPU option. How can I fix this?

Make sure your graphics drivers are up to date and that it is compatible with Blender, just because you have a graphics card doesn't mean it will work.

Just used the OpenCL steps.

Does it show up on older versions of Blender?

CUDA is only available for nvidia GPUs. AMD cards can use openCL (Disabled in official builds).
Here is the wiki page on it http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/GPU_Rendering

read this to activate GPU OpenCL rendering : http://blender.stackexchange.com/questions/21777/turn-on-cycles-gpu-render-on-non-cuda-computers/26195#26195


text:
How to animate armature in blender/python?
I tried to animate simple bones with python, keyframes are inserted in timeline but nothing happens,
Partially this question is copy-paste of that one (sorry) but I didn't find answer there
Controlling armature through python
import bpy

import math
import mathutils
from mathutils import Euler

rig = bpy.data.objects['Armature']
bone = rig.pose.bones['Bone.00']
print("temp", rig)

rot = math.radians(5)
bone.rotation_euler = Euler((rot, rot, rot))
bone.keyframe_insert('rotation_euler', frame=1)

rot2 = math.radians(100)
bone.rotation_euler = Euler((rot2, rot2,rot2 ))
bone.keyframe_insert('rotation_euler', frame =50)

UPDATE:
After running few times and removing previous keyframe animation is still cached somewhere how to clear it ?

By default bone rotation mode is set to Quaternion. Either chage it to Euler or use bone.rotation_quaternion

@JayReigns Thanks!


text:
Shape Burst Gradient / 2D SDF in Shader Editor
I've been looking to create a 2D SDF effect in Blender's Shader Editor, but trying to research this only shows 3D SDF content which makes it difficult to find answers. Photoshop can create the desired effect, here's an example using Large Luigi as a base

Using the above settings in Photoshop/Photopea's Layer Style menu, you can create a greyscale gradient that follows the contours of an image's alpha (generally really useful to know for making 2D SDFs!) I'm looking to recreate this in Blender's Shader editor, but had no luck so far.
Is there any way to replicate this with an Alpha input from a texture node? It shouldn't rely on geometry or lighting, this should work on a standard plane. Doesn't need to be performant either, this is just so I can bake down geometry without needing several hundred separate images to bring into Photoshop.
Thanks for reading, any thoughts on this would be greatly appreciated!

Does this answer your question? Procedural Border Detection on a Flat Object

It's really close and could be useful, but this isn't the exact answer I'm looking for as this relies on geometry data. For my use case it needs to have the same effect from just an image alpha input on a plane.

You could create the geometry based on alpha…

This seems a candidate for batch-processing in Photoshop, or using something like ImageMagick (convert).. This manual page +find ''Distance Gradient Morphology' takes you to a useful-looking chunk.
'

Creating geometry for the alpha of each image unfortunately wouldn't be practical for my use case.
Distance Kernels in Photoshop are exactly what I'm looking for, I'll have a read into each method soon. For now batch processing seems to be workable, but this documentation is a great resource for me to look into. Thanks Robin

It's computationally expensive, but gets the job done, automatically:
Geonodes:

Shading:

Result:


text:
Check if object exists in specific collection (Geometry Nodes)
Similar to this Python Boolean expression, I am wondering if there's a way to determine if a specific object exists within a Collection through Geometry Nodes.
For example, this GN Modifier could be freely added to any object in the scene. The Geometry Input is compared to the Instances in a Collection Info node (ideally without realising the Collection), and returns True if the mesh is found in the Collection.
This would be really useful for making Collections that have specific GN functionality (ie, move a Suzanne from the "1x Scale" collection to the "2x Scale" collection).
If there's any other approaches/more performant methods to do something like this, I'm open to exploring them. Thanks for the help :)

I think the newly added naming of geometry serves this exact purpose. It would mean no need to compare anything, just name your objects are identify them with it. I haven't play with names yet so it's more of a guess.

This could be one to consider (maybe setting the name by a driver expression from the Python thread linked), but I'm looking for a more dynamic approach than manually renaming each element. This way an object could be moved between collections and inherit GN settings for that specific collection.

I see, you could still give dynamic names in GN but it would mean all objects need to have a GN that sets geometry names.

You can take advantage of a Blender defense mechanism that does exactly that:

If the collection contains the object itself, it shows you a warning and returns nothing.
Unfortunately this method will fail if you pass an empty collection

Empty collection or no collection. Maybe at some point we will be able to read warnings inside geonodes.

That's a hilariously good solution  Works exactly as needed, thanks for the help!


text:
Z Depth Wave Art in Blender Compositor (Joy Division effect)
I'm looking to recreate the effect from this Photoshop tutorial:
https://youtu.be/cafn5fvvIIk?si=RTSC_UQ-T83RsqFB
The video covers the exact problem at 1:00, in which using the standard Displace node can sample the same pixels more than once. Photoshop's solution is to stretch the displacement, then apply it to each individual line, but this approach isn't possible without Repeat Zones in the Compositor.
The setup below makes a wave texture using Modulo, which gives a similar idea but has that issue with sampling lines more than once. I'm aiming for each line to be one contiguous line without going back on itself, like a graph. Anything that'd help would be appreciated
Blend file for the composite setup below:

Can you share your Blender project file? Instructions for sharing.

Added that now, although it only adds a basic wave in Compositing as is. It's a decent start though


text:
Grainy still image even at 20,000 samples

This is a Glass BSDR material with two thin area lights behind that are causing the grain. Seems crazy at 20,000 samples but I'm new to this so any intel would be much appreciated!
Here is the .blend file: https://drive.google.com/file/d/1CY5ucFPGJGROIK-r7XVHNEsETBWRrdje/view?usp=sharing
Cycles.
No Denoise (this just made it smudgy and worse).
No Noise Threshold.
No Time Limit.
Light Paths> Max Bounces>
Total: 36
Diffuse: 8
Glossy: 8
Transmission: 12
Volume 0
Transparent: 8

I believe that It might be related to your shader settings.
Select the desired object, go to the Shading tab and try playing around with the Roughness values.
Keep in mind that it might not be related (only) to the base roughness, but to the other roughness parameters (in Coat, Sheen).
Also, it might be related to the mesh itself, double-check that.
Same as you, I am a new contributor here, so someone else might have better answers than me, however, I'd advise you to share your project file, so that someone more experienced can check, and help, if it comes to that.

Thanks for the feedback. Blend file added. I think you're right about it having to do with the material.


text:
What are these little black lines in this model's render?

Here is the .blend file: https://drive.google.com/file/d/1YNLehfyhDKlli38UJtu8iA8EP_Au-yHG/view?usp=sharing
Thanks for any help.

Your geometry is much denser than it needs to be .. (I managed to decimate to 0.05 without degradation) but it's not a good starting-point for clean simplification.. do you have an SVG version of the logo, so we can demonstrate?

To the title Q ... those are hidden edges ... is it possible you are using Freestyle feature? (I cant open your file).

No idea what Freestyle does but it was checked and unchecking it fixed it! Thank you guys for the feedback.

Here is the SVG Robin since I'm new to this and curious about geometry. Is this high density also why I'm getting that awkward, non-smooth texture on the sides of the emblem? densityhttps://drive.google.com/file/d/1mPi_pL5LETBG8pn-rJiN36foco4NXqRX/view?usp=sharing

https://blender.stackexchange.com/a/308253/2214

As vklidu said - you have checked the freestyle option in the render settings. If you uncheck it, the lines are gone:

Wow thanks so much


text:
Match real-life photo shading (stone statue)
In preparation for a shooting, I'm trying to match a 3d scan to a photo found online. The environment is 4 statues made of stone and I'm trying to match the shading and material for a future VFX shot.
My issue is that in my render, indirect lighting look way stronger than in real life (in shadowy areas). I have no idea what I could do to "reduce bounced light" or something like that. I'll explain below the exact issue.
The real-life photo

The Blender setup
My setup is quite simple :

The 3D scan as a mesh, with a generic stone texture found online
The wall behind and below it with the same stone texture and set to Indirect only
An HDRI for the world, that matches more or less the real-life photo
Render engine : Cycles
Color managment : AgX

Sadly, the most basic version of my scene is 300+MB. Too big for blend-exchange. Here is a version without packed resources.

My current result and the issue
For now, I have this result :

Which isn't too bad for a preview, but unsatisfactory. Here is the issue I'm facing.

In the photo, the surroundings of the shadows don't look to give much indirect light to shadows. It looks like the light in shadows mainly comes from the environment (e.g. sky). It is almost uniform, like a version of the shader of the stone just darkened a bit.
In my render, the shadows are heavily brightened up by the indirect light. We clearly see the indirect light coming from below. In addition to that, the indirect light seems more colored than in the photo (it may be just because of indirect light being brighter).
Note that my issue isn't about changing the exposure of the shadow areas. The issue isn't about the intensity of indirect light, rather it is about the distribution of indirect light in these areas. Indirect light from surrounding stone being too strong compared to the global indirect light in the scene.
Current solution
For now, the only thing I've found that helps is to reduce the saturation in dark areas with the following nodes :

It does improve a bit the situation, but still the indirect light from near the shadows looks way stronger. So it's not really solving my issue.

My question
What could be the reasons for such difference between real-life and my render ? What way should I go to improve the matchiness of my render ? Is there something obvious that would improve the situation ? Like change HDRI, change material, change exposure+lights, ...
My final goal is only to match the photo, anything else can be subject to change if needed.
Many thanks for your time !

maybe your material is too reflective / too smooth? or maybe your sun light is not powerful enough.

@Luciano Thank you. The roughness is already set to 1, and I can't really just turn up the sun lights otherwise I have to darken the stone texture to compensate. The result would be identical.

Real life light and shadows can't be replicated 100% in 3D by one light source only, in order to get more realistic light, you need to add some elements to make you get the result. To replicate one light bulb real life light, you probably going to need more than two or three light sources to get the same light in 3D, there are other elements that could also help, like Ambient Occlusion. When you do 3D Light and HDRI is a good starting point, but not enough

@Emir Are you implying that my HDRI is too different from real-life, and that if I capture an HDRI on-location, it should match perfectly ? The shooting not having taken place yet, it would be a great info to have before-hand. So thank you :)

Actually the opposite, even If you have the HDRI from the exact location, doesn't meant that only that should be you light, to match the 3D object with the real life one. The HDRI from the same location is a good start and from there tweak your light with other thing, as mentioned, Ambient occlusion is one of those, a light source placed in some specific areas and so, lastly, try to color correct your scene

@Lutzi Actually Luciano is not totally wrong, the Sun at noon has a strength around 1000 W/m² (the unit Blender's sun lamp uses as well), so to get "realistic" lighting you could set the Strength to 1000. The thing is that our eyes can adapt to this and real cameras adjust aperture, shutter speed and ISO to not have everything blown out. So maybe when you adjust your scene to get the stone exposed correctly with that sun, the shadows might be more correct, too. But the render engine does not work exactly like real cameras, a render has no shutter speed, ISO or aperture to adjust exposure.

@GordonBrinkmann Do you think I should also go into a 1000 range for HDRI strength (HDRI with a direct sun of course) ? Thank you all for your comments ! Super interesting, I'm gonna do some more test.

@Lutzi Well no, not really. As I said, the adjustments you can make on a real camera are different than what you can do in Blender, also our eyes and brains have different ways of adaptation. But if you are going for realistic results you can either try many ways of faking it with multiple lights etc. like mentioned earlier by Emir or make a bright sun (not 1000, but 10 or more) and adjust exposure, contrast etc. The problem is, in reality light bounces around countless times, but you cannot set so many bounces and samples to simulate it if you want your render to finish one day

I cannot say I have a definitive solution for you. To get something exactly like reality just by trying to make it close to reality is hardly possible, since you cannot get all relevant factors exactly like reality. Anyway, maybe just for information, here is an answer I once wrote where someone had a problem with the lighting of his HDRI for an interior scene. There I show examples how you can get more realistic results without additional light sources or fake glass to let more light in: https://blender.stackexchange.com/questions/271730/hdri-lighting-too-dark-and-hdr-image-just-acting-odd

@Lutzi Your lightning is over lighted ... in your scene you are combining indirect lighting by simplified statue model with texture that is already containing light + environmental light (HDRi) and all of that on a 3D scan model that use a texture also already lighted even before mentioned light sources hit a model surface... so those are like 3 light sources used on final result. It interest me, but  can give you answer later evening if it still fits to your schedule :) ... BTW there is an addon Real Camera, that is made for easier transferring real camera parameters to blenders envi.

@vklidu I have at least 2 weeks before the shooting. My texture isn't containing light, it's a pack texture from AmbientCG (color, displacement, AO). The 3d model is only a mesh with no texture. So, none of the 3 light sources you are talking about. Thanks for your time !

What you were described in comment above is not what I see in your .blend file (and what I can see from your screens) and what I see in your blend is what I see on your screens ... so there is some misunderstanding :)

@vklidu The mesh is a 3D scan, the material is a separate multi-file stone texture. I've updated the corresponding part of my question.

That is not the point, but leave it :) Comment section here is on a way to be moved into chat room (since chatting is not allowed here) ... so maybe it will be more clear from my planed answer. But if you are using specific texture that we should match, it make sense to share it too (HDRi and backplate I already downloaded from a net) ... BTW this is a location of shooting or you are looking at a general workflow. Thanks

@vklidu No specific texture, I just need to match the shot. This is indeed the location of shooting and general placement of camera. But no idea what camera has taken the photo, in our case we'll use a Sony A7S III (s-log3.cine).

In general - the issue you mentioned is problem of indirect distribution, you already know that. Shadow under crossed hands if fine, so problem come from bottom indirect rays (or HDRi side) ... you could try to eliminate it in shader. Also highlights in your render are darker (thanks to color management that is trying keep color range wider, some Look-Contrast could help). Anyway, instead of playing with all the color profiles and high dynamic ranges to restore non-existing light  condition ... it seems to me straight forward for this purpose to just fake it :)
Cycles
At the end the setup is simple as hell ... there is not much to share ...
Here I used:

Sun - Strength 3,5
World - grey color 0.3
Color Management - sRGB - Standard
Material - is just image texture (sRGB) pluged into Diffuse shader

All the light adjustment is happening between World grey value and Sun strength (alternatively you can also use RGB Curve node behind image Texture node).

To better control indirect floor light I deleted all back wall floor faces and set solo material to back plate catching shadow of 3Dscan on the wall, but can be shadow catcher as well.

Sidenotes
I dont know what is your shooting story, but make it better integrated next to the statue figures, consider generate depth map (even as image sequence) used for displace rather than 3D model, because statue is kind of bass-relief so shape characteristics and light behaviour works a bit differently.

For more advanced integration I would take 360 equirectangular image at shooting location, that can be used as environment and source of light and like shadow catcher like in this video ... under the video is a link to BA for more info or here Shader for HDRi envi ... currently part of addon Photographer
Or reconstruct scene from 360 HDRi

Thank you ! It's super interesting seeing another setup. I have a hard time appreciating Eevee but I reckon your answer is already better than mine.

@Lutzi ... Just if you noticed the update to Cycles version ... Did it solve your issue?

I was able to get the same result as yours (material and lighting), with a sun light and a world emission just like you. I took a few pictures of the environment for reconstruction but didn't even need it to use it. In the meantime, I realised I could also separate the indirect pass to better tweak it if needed. Thanks again for you answer !

The look of your bas-relief is awesome viewed from the front ! Sadly in my shot, we see the statue from a 45° angle, so the backside doesn't look good. But still, it helps me see what I could change on the statue to better match the original style.

Great it helps ... sure you know the best what will work for you. Good luck with your project :)


text:
exporting cryptomattes using HALF FLOAT multilayer EXR - not working
I have no problem when exporting light passes (render layer) as multilayer EXR using Half Float. But Half Float doesn't work when exporting cryptomattes. I have to use Full Float to make it work. I'm using blender 4.1.1
Is this normal ? or blender's bug ?


text:
Geometry nodes inverse curve trim
I need to make curve corner trim like on image below (green lines). Any help appreciated.

I have no idea what you mean.

I need to get only green lines like on image (Right up corner)

This setup stores on points center position and 50% distance to two neighbors (centers of segments connecting the points), spawns triple-point curves "o-o-o" on those points (it's important the midpoint is in origin), then sets the endpoints to a linear interpolation between stored halfway positions and stored center position:

Imgur mirror (SE image hosting has problems)

Imgur mirror

Hi, thank You for help. By the way is there a quick solution to inverse it? Because I'd like to separate corners from middle edges, but keep both

@Mateusz88 for scaling mid segments you can just split edges and then scale elements

Thank you it works


text:
Smooth normals to avoid squares in shading
I am trying to make ripples using Geometry Nodes and I got some problem :

This is how the generated bump map looks. Is there a way to smooth that overlapping bump data ?
I use Geometry Nodes proximity to create round mask near object, then plugged it into a noise texture vector input in the shader editor.


text:
How To Check Ortho View In python
I can't seem to trigger operations on a certain viewport view
I have installed pyautogui, so I can run hotkeys via python, it's working, as in triggering from scripts. I have tied the hotkeys to external scripts thay auto transform.resize locked in the a constraint Axis. (means I don't need to press scale key, X,Y,Z)
When I have an object selected and in Front Orthographic, I use the UP menu on my custom pie-menu to call my script that will auto scale on the Z-axis (scales it up), feels very natural. The problem arises when I change to Top Orthographic Because the viewers perspective has changed and not the Z-axis the desired behaviour is wrong.
pseudo·code:
//Check if Front Orthographic //If True //Run pyautogui.hotkey('ctrl', 'alt', 'S')

//Check if Top Orthographic //If True //Run pyautogui.hotkey('ctrl', 'alt', 'O')

Chat GTP tried this, but it fails but it looks like it should work.
# Check if the current view is set to Front or Ortho View
if bpy.context.space_data.region_3d.view_perspective in ('FRONT', 'ORTHO'):
    # Resize along X and Y axes
    pyautogui.hotkey('ctrl', 'alt', 'S')

if bpy.context.space_data.region_3d.view_perspective in ('TOP', 'ORTHO'):
    # Resize along X and Z axes
    pyautogui.hotkey('ctrl', 'alt', 'O')

This code snippet does not work, but it may help another user understand what I may be after

Hi. Please wrap your code using code tags so it is easier to read

The answer was here: Blender Stack Exchange
With help from Chat GTP, I edited to create this:
def get_view_orientation_from_matrix(view_matrix):
    r = lambda x: round(x, 2)
    view_rot = view_matrix.to_euler()

    orientation_dict = {(0.0, 0.0, 0.0): 'TOP',
                        (r(math.pi), 0.0, 0.0): 'BOTTOM',
                        (r(-math.pi/2), 0.0, 0.0): 'FRONT',
                        (r(math.pi/2), 0.0, r(-math.pi)): 'BACK',
                        (r(-math.pi/2), r(math.pi/2), 0.0): 'LEFT',
                        (r(-math.pi/2), r(-math.pi/2), 0.0): 'RIGHT'}

    return orientation_dict.get(tuple(map(r, view_rot)), 'USER')

class ViewOrientationOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "view_orientation.operator"
    bl_label = "View Orientation"

    def execute(self, context):
        view_orientations = []

        # Find the active 3D view area
        view_area = next((a for a in context.screen.areas if a.type == 'VIEW_3D'), None)
        if view_area is not None:
            # Get the view orientation and perspective
            r3d = view_area.spaces.active.region_3d
            view_matrix = r3d.view_matrix
            view_orientation = get_view_orientation_from_matrix(view_matrix).capitalize()
            view_perspective = r3d.view_perspective.capitalize()

            # Append the view information to the list1
            view_orientations.append(f"{view_orientation} {view_perspective}")
            if view_orientation == "Top":
                pyautogui.hotkey('ctrl', 'alt', 'O')

            if view_orientation == "Front":
                pyautogui.hotkey('ctrl', 'alt', 'S')

            # Check if local view is enabled
            if view_area.spaces.active.local_view is not None:
                view_orientations[-1] += " (Local)"

        print("\n".join(view_orientations))
        return {'FINISHED'}

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

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


text:
Making a face out of 2 Edge selections

It's maybe tricky to explain my problem, but I always find myself with this silly shape. I'm looking for a way where when I select 2 edges it creates a quad from it, is this possible? At the moment I extrude and wield the vertex in one corner, this is a smelly way of doing it cause then I might need to snap the vertex to X, Y or Z axis.
F addon makes a triangle, I'm still trying to tweak that where I can get better results, still a work in progress. I'm also trying to get Chat GTP to create an addon that might solve this problem.
Until I can come up with a solution, I'm asking if anyone out there will give me a few pointers in the right direction.
If it helps I work a lot in Ortho views.
So one idea is to the the 2 vertex points of the edges and somehow triangulate a 90degree position to make a a corner vertex to help bridge a face. (something like that lol)

With F2 addon, select the corner vertex.

select the edges, duplicate, R180 to rotate 180°, snap to the vertices

f2 Addon seems to extract a vertex? not really what I'm after.

No... try it. Select the corner vertex then F key

F key, not E key... and check if the F2 addon is activated.

https://i.sstatic.net/eq5sk.gif

@lemon I think you can write this as an answer

@moonboots, is it worth an answer? if you ask, why not...

@lemon not sure why it would not worth it?

F2 addon is done for that. It is a standard addon, so just activate it.
For what we ask here, select the corner vertex, and pressing F, it will construct a losange face like so:

For myself it was just extruding the vertex :S but I think I was dragging instead of clicking... duh! Thanks


text:
(Auto) Flipped Faces
Update, mad I had to click each individual item by hand, if anyone finds a way to auto do this process, please answer here"
Is there a way to auto select only the red faces that are pointing towards user? so I can flip all normals at once? instead of clicking on each object and selecting flip normals.
Cheers!

Do all the red pieces have the same orientation? If so, you could select one of them and then pick Select > Select Similar > Normal from the top left menu.

(can't) They are duplicates of the others around, I'm unsure how they are even flipped. I would manually do it but they're 4 windows :S I will do it if no answer. I might look at chat GTP and see if it's possible.

Why wouldn't select similar work in this case? Also you can try recalculate if you haven't already.

Christopher Bennett is absolutely right.

Find a face, that is exactly parallel to camera sensor (perpendicular to camera view, the one you're looking at exactly "face-on"). If there isn't one, or you're unsure, you could create a temporary camera (assuming you don't want to mess with existing one), set its rotations to $<0, 0, 0>$ (pointing down), create a plane, ✲ CtrlP parent it to the camera, then set this new camera as scene camera and ✲ Ctrl⎇ AltNumpad 0 align the camera to view:

If the face you found is a separate object (like with the camera trick), just select it together with the main object(s), then ⭾ Tab go to edit mode. (You may want to scale this face down and move it out of the way if you followed the camera trick.)
If the chosen face appears blue (normal pointing towards you correctly; it does if you followed the camera trick), just select it and ⎇ AltN, F flip it.
With the chosen face still selected, ⬆ ShiftG, N Select by similar normal, and in the popup panel (if you don't see it, press F9) type 0.5. This will select all faces looking more towards you than away from you. Now with faces selected just ⎇ AltN, F flip the normals:

Though beware, this will flip the backfaces as well! In your case you may want to first hide faces you don't want to affect by e.g. L selecting entire hulls of other geometry and H hiding them. Or after applying the method, A select all, ⬆ ShiftN Recalculate Outside.

 Warning, Potential AI generated content⚠
This post is suspected to have been generated with the help of an artificial intelligence, chat bot, or other language model tools without proper attribution.
There is reason to believe this post was not written by a human due to its structure, and grammatical construction, and has been marked by our community.
Current AI chat bots are a language models, that means they are like a parrot, they can mimic human language well, but they are built to write seemingly logical, seemingly factual grammatically valid text, rather than actually be correct, like a human would.
The veracity of the following content cannot be ascertained.
See the Concerns regarding AI generated content.

Chat GTP:
Unfortunately, as of my knowledge cutoff in September 2021, Blender's Python API doesn't provide direct access to the face orientation information displayed in the viewport. Therefore, it is not possible to automate the flipping of the red faces based on the face orientation overlay using a script.
To flip faces based on their orientation, you would need to rely on alternative methods or tools within Blender. One option is to manually select the red faces in Edit Mode using the face orientation overlay, then use the "Flip Normals" command (Ctrl+N) to flip their orientations.


text:
Can these hotkeys be edited?
I'm not a giant fan of moving the hand about the keyboard. "i" for example is a gross key and requires to look down. Am I able to redefine these keys? I'm asking so I don't spend ages trying to find them in the hotkey manager.
I would much prefer keys that are like 1,2,3/ qwer/ zxc
Cheers!
updated: It's not the inset I'm looking to add/change hotkey. it's the sub menu hot keys (when you are modifying the inset). O = Outset | B = Boundary | I = Individual I am not a fan of these hotkeys, they are not useful for a power user.

It's not the inset I'm looking to add/change hotkey. it's the sub menu hot keys (when you are modifying the inset). O = Outset | B = Boundary | I = Individual

Although you can, some of the shortcuts already have those keys, you might need to map them too https://blender.stackexchange.com/questions/193094/customizing-shortcuts-in-2-8-vs-2-79

Sorry, just out of curiosity: is there a reason for this interest in the Inset tool? Some new tutorial using it? Because the question how to change these hotkeys came up three times or more in the last two or three weeks... maybe CG Cookie's "Blender Basics 13"?

O and I are disgusting keys, anything that requires looking down is idle wasted time. It may sound nuts but time is time.

These keys are builtin, in the source code.
For instance, you can see here how is handled "(I)ndividual" from the inset operation.

case EVT_IKEY:
  if (event->val == KM_PRESS) { ...

And EVT_IKEY is:

EVT_IKEY = 0x0069, /* 'i' (105). */

I'm guessing I can't change then, I have a work-around that will work for me until I can. Ty for help!


text:
How can I control the influence areas of bones when using the automatic weights feature?
I created my own 3D character model, and it's a cartoon-style animal character. I made a skeleton for the character. I noticed when I moved the character's eyelids that the forehead of the character moved. One option would have been to fix this by painting (weight painting). The character's head had other similar issues, so this solution was laborious in my example. I increased the number of bones, even though I wasn't sure if I needed the added bones. This solved the problem. If a bone's influence area is too large, if you add another bone near it that doesn't move when you move the other bone, the influence areas of these bones will decrease. Now I can use the same skeleton for other works with some adjustments. This doesn't completely eliminate the need for adjustments through painting (weight painting). But it significantly reduces the amount of correction needed.

I want to use the automatic weight feature because in a more complex model, weight painting is a quite laborious way to manage the influence areas of bones. Do you have similar experiences?

This somewhat obvious thing came to mind when I found this solution of mine. Blender's automatic weights feature can't know exactly how you want the character's surfaces to move in different parts of the character if you have too few bones. It determines the mobility of the surfaces based on the existing bones, of course.

Please do not write an answer within the question and simply put "here's one solution" in the title. Filtering this site for unanswered questions will not recognize that you provide a solution here. Edit your question so that it stands as a question, then give the answer in the answer's section. This way you can after a short grace period accept your own answer as solution. By doing that, other users will easily be able to see there is a working solution to this problem.

The sad reality is you always have to work on your weights. Automatic weighting provides a basis for you to improve on, that's its job, but it'll never generate an animation-ready character.
You can optimize the result of automatic weighting by scaling bone envelopes (alt+s) so that they contain the parts of the mesh you want them to affect. For this you have to change the bone display type in the armature properties to "envelope".
There are other ways to change weights than painting, though. You can select mesh elements in edit mode and assign them to your vertex groups manually. This won't respect normalization (which is necessary for a character to deform correctly and is done automatically when painting), so a good way to go about it is to proceed top-to-bottom, for instance : select the entire head area, assign it to the "head" vertex group, then select the right-side eyelid, unassign it from the "head" vertex group and assign it to the "eyelid.R" vertex group, and so on. Once this is done, you can grab the Blur tool in weight paint mode and smooth out the transitions.
Adding additional bones for the sake of automatic weighting is very bad practice. It will complexify the rig for no good reason, impacting its posing and playback performance, and will make future ajustements and troubleshooting harder. I highly advise to not do that.

Also, if your mesh is too complex for weight painting, it's probably too complex for animating in the first place. You need simple meshes, because they are easy to weight paint, you have better and simpler control in the topology for good deformation, simpler shapekeys, and lighter meshes needs less resources to deform.

I didn't mean to suggest adding a lot of extra bones and thus creating complex structures. I also didn't mean to imply that hand-painting should be completely avoided.


text:
Gravity not affecting the Scene
I have a proj on uni to simulate an asteroid clashing on to another asteroid and shattering. I already have the collisions, cell fracturing of the shattering asteroid, animations, and gravity set to 0 (more on this) but the problem is that the fractured "rocks" shatter too fast.
I can send in my .blend file if you would like to see it because I don't know how to describe this situation as much as I can

You could increase the Speed value. Or bake the simulation and then scale the keyframes in the Dopesheet, or use the Time Stretching to slow down the animation.


text:
Blender Solidify Modifier Adding Thickness Seperately (Seperate Angles For Different Faces)
I applied a solify modifier, but the shape seems to split into 2 directions. May I know how to solve this?
Currently it looks like this:

I want it to look like this:

Can anyone help?

This looks like split edges on the loop where the division in the shell appears. Select all in Edit Mode,  M > Merge > By Distance. See if that works.

@RobinBetts hi yes, this has solved the problem. thank you very much! is there any reason this happens? as the first time I did it, it worked alright, the second time had a split.

I can't tell, of course, but a very common cause is imagining that a right-click on an extrusion cancels the extrusion. It doesn't. It cancels the move, leaving a 0-length extrusion (invisibly) in place. Ctrl-Z is needed to get rid of the recently-created faces.


text:
How do I correctly use the boolean modifier on a gear in Blender 3?
ANOTHER UPDATE
Bool Tool seems to union, difference, and intersect in the way that I expect. I later noticed this issue again even with the updated version.
https://docs.blender.org/manual/en/latest/addons/object/bool_tools.html
END ANOTHER UPDATE
EDIT UPDATE
Here is the .blend file

END UPDATE
Two possible solutions

Upgraded from Blender 3.0.0 to Blender 3.6.5
Was not using Merge by Distance

I am trying to make a custom gear to attach to my 6V motor. In short, I could use help with the correct steps to use a boolean modifier on a gear in Blender so I can create the desired shape. I come from a openSCAD background and trying to learn Blender 3.
Using the Extra Objects add on I am adding a gear from the mesh selections. I am able to export this to an STL and I can slice this correctly in Cura.
When I import the axle shape to remove I use the boolean modifier on the gear and make sure to hit apply. If I hide the imported object the full gear shows as if the boolean was not performed.
I tried to solidify the created gear, thinking that might be part of it. However I am unable to get the boolean modifier to apply as I wish.
I decided to see if I could get the boolean modifier to work on a cylinder, I see the correct shape in both object and edit mode. Exporting to STL using selected items I am able to view the STL in Cura. And slicing works as expected.
So I decided to create a gear where the cylinder is the base. Remove the axle and apply the boolean modifier. Add the gear around the cylinder with enough base to overlap. Join these objects. Shows up in Cura with xray errors and slices incorrectly. I am pretty sure this is due to me creating the object in Blender incorrectly as I have seen this with other objects and been able to adjust my design.

The gear that you added using Extra Objects: you are saying that the boolean modifier doesn't work on it? It works fine for me. I selected the edges around the top and bottom centers and pressed the F key. I checked the face orientation. I created a cutter object. Then selected the gear, added the boolean modifier and selected the cutter object. It appears to be OK when checked with the 3D Print Toolbox. If you still have a .blend file with the Extra Objects gear you made with the imported cutter and upload it to https://blend-exchange.com/ it would make it easier for someone to help you.

Thank you for replying. Here is a file.io copy of the .blend file.
https://file.io/BaTj6vUOIeIK
I tried again, I had not done the F key. While in Edit Mode if I press F once I ddo see an adjustment to the number of verticies.  Pressing F again causes the gear to be incorrectly created. Best I can tell this is to switch to UV Face Select Mode, but most search results are for the F Keys. I think you are onto something here. One adjustment I made was to make the cutting object the same thickness as the gear, shows in blender ok, but cura still does not recognize the removed section.

I get this message at the file link you provided: "The transfer you requested has been deleted."
As a guess it's possible that you have some duplicated vertices. Have you tried Merge by Distance when in Edit Mode?
This is what I did. If Merge by Distance didn't fix your gear, maybe this will help.
I added the gear and selected the edges Of the Base diameter. This is in wireframe so it is easier to see:

Then I pressed F to fill those areas. The image shows the top, but the bottom is the same:

I pasted in something to use for a boolean cutter, selected the gear, added the modifier as shown:

The result after applying the modifier and the 3D Print Toolbox information. The Non-Flat faces are caused by the cutter I used:

I edited the original post with the link of the blend-exchange you recommended this time. In the mean time, I will try these options you have suggested.

I realized I was on Blender 3.0.0, ugrading to 3.6.5 seems to have solved this. However, I also gained some improvment to this print by using Merge to Distance. Thank you for your help.

@JabberwockyDecompiler I'm glad I could help. I don't know if it was the case with your object, but when you are extruding a vertex and you press Esc, it creates a duplicate of the vertex. In that case you can either press Ctrl + Z after Esc, or use Merge by Distance to remove any "extras".


text:
Stencil Texture : How to align it exaclty to the camera region by code?
I'm doing texture mapping with tracked stencil video texture.
The probleme is that I cannot place the stencil exatly at the size of the camera vieport/region when looking from the camera.
I have tried to center it via python but is't  using the panel region(panel and menu bar included), not the caemra border. Also even if I painfully manage to align it with the camera, it goes of if I zoom, change panel size or switch workspace.
If the alignement could be automated, I could batch cam map the whole object/sequence.

This requires some Pythagorean math and probably some trigonometry as well AFAIK.


text:
v2.8 cycles - weird color change in Fire Simulation when over background
When I render a frame where the fire goes beyond the plane and over the background the color goes brighter and unsaturated. This happens only in the final render, not in the viewport render. (pic) Tell me if you need any other information about the material and object settings.

This color problem is what I am talking about: https://i.sstatic.net/6xFi1.jpg

With what program did you open the image?

I have the background as transparent. In the render view of blender and in Photoshop when added a black background its very noticeable.

You need to describe what you are seeing better. Provide an arrow to where you are talking about in the image, and where it “seems correct” with another image. Sounds like rudimentary compositing and the nature of emissive yet unoccluding fire / flames, but will wait until you provide more information.

Oh sry. I thought it was clear enough. I was talking about this. https://imgur.com/a/hY1Y5oC

That’s still not enough information. Show what you think is wrong, and how you are achieving it.

It is not a problem or a bug as you may think - the smoke is translucent/transparent so the light passes through it and you see what is on the other side. In this case - a plane that appears to be gray. Hence the change in color.
I guess you could increase the smoke density so the light wouldn't pass through it.

oh thanks, thats reasonable.


text:
Geonodes: Extrude and randomly rotate extruded faces
I want to extrude some faces, then rotate the 'top' faces from the extrusion around their centers a random amount. So far I have a Set Position node selecting the top faces from the Extrude node. I use Vector Rotate to get the rotation, and can set the center using a Position node through calculate on domain set to face.
The only problem is that the random number is calculated independently for each vertex, so that the faces become non-planar.
I tried using Evaluate on Domain for the random number, but it doesn't seem to work.

Since a vertex belongs to more than one face, your evaluate on face domain is actually interpolating between top and side faces, creating different results.

New solution without "Repeat Zone"
Since repeat zone is very costly, it's better to use just. But to avoid interpolation between top and side faces, we use "face of corner" to select exactly from which face we want to take the position and rotation

Explanation:

We are setting positions for vertices (so every value is evaluated per vertice)
If we change the evaluation domain to faces, since we're still evaluating vertices, the results for each vertice will be an interpolation between all faces one vertice is connected to
So we use "evaluate at index" with one "face index" to evaluate for one specific face instead of interpolating
This face should be the "top" face, and the node that does this selection is "Corners of vertex"

Each vertice has a number of corners (= number of faces)
This lists all corners, sorts them based on "ascending weights", picks the one with index=0 (the one with the lowest weight)
We just need to pass "weights" in a way that the "top face" has the lowest weight
The "Top" selection from the extrude node has value = 1 for top and 0 for the other faces. We invert this with the "subtract" so the top has value 0 and the others have value 1 and connect it to the weights

Old solution
Using "repeat zone" is never a great solution, but I think in this case it's the way to go.
Here, we loop each original face and extrude them individually.
This way we can take a mean of the vertices and evaluate things on a single face. (This would also allow you to separate the original face and take its center if you want the "arms" to be rotated together with the top faces)
(If you're on Blender 4.3, you can use a "Foreach element" instead of a repeat zone, and a few nodes could be discarded)

File with both solutions

I don't really agree for the Repeat Zone, especially if it loops on the vertices and if it can be done simpler as stib's solution. Also performance wise, I'm guessing your solution would be more costly than stib's. I even more discourage to use For Each, about which devs have already warned about the cost and that it should be avoided if attributes can do the job : https://developer.blender.org/docs/release_notes/4.3/geometry_nodes/#for-each-element

@Lutzi, that's why I started with "using repeat zone is never a great solution" (performance-wise, my answer is terrible). But, if you look closely at the other solution, it's not exact. The center of rotation is not at the center of the top face (due to interpolation between top and side faces), and the random value is being attenuated by the interpolation as well. It may be more than enough for the OP, but it's still not exact.

I also disagree, repeat zone is an amazing tool. In this case it's doing something attributes can achieve and cost way more resources. So, I discourage anyone reading to use loop nodes for this case, especially for heavier geometry.

Well... I just confirmed by testing: the other solution is not exact. The center of rotation is not at the center of the top faces. The result is "different" from what was asked. The faces are planar, though. To achieve the proper results with attributes, one would need to transfer the top attributes to the side attributes (including not only rotation, but also position)

Sorry I didn't get the issue at first. I see it now, for now I agree that repeat zone appears to be the better way. I'll try to find an attribute-only solution which would be awesome.

@Lutzi, found it and edited my answer :D

"exists" is true for all elements of the geometry (because the name exists), this is because an element of an attribute can't be empty, this is why many nodes have a separate output telling you if the result is valid to differentiate between valid zero output and default zero output. Instead of using "exists" just connect the "top" of the extrude node. BTW you can remove 2 noodles if you use "evaluate at index", because you're sampling from the same geometry you're evaluating stuff on.

@MarkusvonBroady , I don't think I can understand your comment.... I checked "exists" and you're right... now I'm confused as to why did it work?

@DanielMöller maybe for the same reason Lutzi's answer worked :D try moving the input geometry and see if it alters rotations

@MarkusvonBroady, it worked because the "top" faces are the ones with index 0 as corners of the extruded vertices. But I took your suggestion as to not leave it to fortunate coincidences.

Math-free field-only solution
Here would be my way of doing it. It uses fields, which should be light on resources. I wouldn't recommend using Repeat Zone (or upcoming For Each) especially for heavier geometries. It would cost more resources.
We can capture the face position and normal on the face domain, then use these to rotate the position of the vertex.
We have to compute the position after extrusion. Extrusion being achieved along face normal, we scale the normal vector by the same amount as the extrusion and we get the position faces will have.
The issue that Daniel Möller has pointed out is here solved by capturing the position and rotations before extrusion, and thus avoiding interpolation issues. Basically the whole extruded region knows to which faces it should belong. It should work for any mesh.
Here are the nodes and an animation. Credits to Markus von Broady for condensing my nodes and find the minimal setup.

your normal works, but not your face position, due to interpolation maths mentioned by Daniel Möller here. You need to vector math: scale by the number of face neighbors of the evaluated vertex. To see the problem, try using "transform geometry" before your setup to move the cube away from origin.

Aaaah I just clicked, indeed my solution is wrong with a Suzanne head. I'll try work on it.

@MarkusvonBroady I also updated my solution, which avoids doing any math. I think it's the simplest we got for now ? Simplest and which works I hope.

Great! You're capturing needed stuff before extrusion, so that all extruded geometry has a copy, and therefore the average takes the same values, so interpolation gives the original value. Here's this setup simplified to just 10 nodes (+ transform for testing + triangulate for better triangulation) https://i.imgur.com/ChBC7IL.png

Oh nice ! I'm updating, thanks for the input !

This is a very simple and elegant solution.

However the captured position is at the original face (works for rotating around normal, but not for free rotation)

@DanielMöller You're right, I lost track of the original question. I updated it, thanks for your input !

The trick is to store a random rotation as a named attribute on each face. Seems a bit kludgy, but because it stores a single rotation vector for each face it works.

Although your answer is way cleaner than mine, I believe the named attribute is also being interpolated (as in the original question), and that's why you need a greater value (2.5, compared to 1.3) to achieve small rotations. Since all neighbor faces have zero rotation, the interpolation ends up equal in all vertices. I guess the desired rotation value should be multiplied by 3 (always two side faces and one top face connected to the vertex)

Daniel Möller is right in the comment under stib's answer:

[...]the named attribute is also being interpolated (as in the original question), and that's why you need a greater value (2.5, compared to 1.3) to achieve small rotations. Since all neighbor faces have zero rotation, the interpolation ends up equal in all vertices. I guess the desired rotation value should be multiplied by 3 (always two side faces and one top face connected to the vertex)

The interpolation averages all surrounding faces:
$$x = {x_1 + x_2 + x_3 + ... + x_n \over n} $$
You can multiply unselected values by zero (and conveniently boolean translates to one or zero):
$$x = {x_1×0 + x_2×1 + x_3×0 + ... \over n} = {x_2\over n} $$
So to get the actual selected value, multiply it by $n$.
There's so many answers here that I decided to add additional quirk, making it a pure field:

Imgur mirror (SE image hosting has problems)
Now you can use it like so:

Imgur mirror

Whoa!! Great. Are pure fields faster than named attributes?

@DanielMöller I don't think the difference (whatever's faster) is significant, it's more important that you won't get a name collision. However, by "pure" I just meant that there's no geometry socket in the group, so you can use it to calculate positions without actually modifying them, perhaps useful to chain operations efficiently, but I don't know if that will be useful to anyone.


text:
Wind tunnel simulation (laminar flow)
I’m having some troubles with smoke simulations in Blender.

The one you can see here was made by Kev Ryan in Houdini, and I wanted to know if you think it is possible to recreate the same effect in Blender.
I’m having a lot of trouble creating such a non-turbolent smoke (laminar flow).
Thank you all in advance for helping me out

I've never seen laminar flow made inside of Blender, I would guess it's not achievable with the native physics simulation tools. It may be possible with geometry nodes, but it would be quite a complex task.

It seems to me I didnt read your Q carefully ... you are asking how to achieve non-turbulent (lines) smoke, right? If so, here is edit ...
Smoke sim
Simple example that works for me ...

Small Plane with Array modifier set as Flow > Inflow, Heat > 0

Cube set as Domain, Border Collisions check all without Left&Right

Sphere set as Effector> Colider

add object Force > Wind, Shape > Plane, Strengh > 4?

If sim generates gaps in smoke lines encrease Time Steps Maximum (here set to 8)

Notes ...
I'm not sure if Blender calculates back-flip turbulence ... I missed them here ... but in this case it does something what I would call like that ...

Your reference doesnt seem to highlights this effect anyway so I guess not an issue here.
Another test: Here the wind is set probably too high, so you can see fluffy steps, so more subframes - more time to bake :)

Another option
Probably too complicated and not finished now, thanks to some issues (bugs) - Fluid sim as Guide for Liquid Domain - with zero gravity you can bake liquid sim to be used as Guide > Domain for final smoke sim. The purpose of this version was to get "missing" back-flip turbulences, but I don't think there are any, so probbaly I will delete this part keep it focused :)

It does quite nice effect and it works for my quick test...

... but for example with lines it is crashing for some reason (I will have to check it why). Also Guide Domain feature seems to be bugged ... it works for Replay or for Modular bake type, but it is ignored when I try to Bake smoke sim as All, hm.

This actually looks really good, but I like the effect the smoke creates, just for the looks actually


text:
how to reset rotation?

I know, I can reset a rotation with Alt+R. But this resets the rotation always with the pivot point of the object.
But I rotated my object with pivot point cursor : R > Z > mouse movement.
And no, I cannot do "undo", because I changed my mesh in the meantime, I just want to rotate it back.
If the cursor wasn't moved, is there a way to rotate it as it was before?

Yes, I could change my pivot point to my 3d cursor, but is there a quicker/more elegant way ... ?

You can align your origin to a face of your object, the Alt R, is there one of the faces that would work?

@moonboots: i am not sure... :( - meanwhile i changed the pivot point to 3d cursor and that worked fine. i just hoped there would be an easier solution, which i didn't know

Object > set origin > origin to 3D cursor, then Alt+R

@Geri: that's what i wrote in my last sentence...

Oh, sorry. By pivot point I thought you meant the transform pivot point, not the object origin.

Pivoting about a cursor point gives you a combination of rotation and translation, not rotation alone-- all "true" rotation exists only about the pivot point of the object.
If you have rotated about a cursor, then you've changed the location as well. You can clear location changes by Alt+G.
However, if your object's location is not at 0 before the pivot about the cursor, then Alt+G won't put it back where it was.  If you haven't stored that location somehow, and it's not in the undo queue, then it's gone forever.  Blender won't bother remembering all the places that some particular object has been.
If you need to store a "rest pose" location, there are three ways to do it.

Rather than manipulating the object directly, you can parent it to a bone and manipulate that bone.  Bones have explicit rest poses that they'll return to.  This is what I recommend and use.

You can store the transforms of the object as a delta.  To do this, start with the object where you want it, then Ctrl+A > All Transforms to Deltas.  Now, when you clear transforms (rotation, location, or even scale), it will return to the orientation it had when you created the deltas.  This is not my recommended solution because deltas always seem buggy to me-- there ends up being situations where they don't seem to work right, even though I've never figured out exactly what's going wrong well enough to make a bug report.  It may have to do with object transforms being handled very differently from bone transforms by Blender, and I prefer the way that it handles bone transforms.

You can parent the object in a state such that its inverse contains the position you want.  This is tricky-- it requires parenting the object while it has no transforms, to a parent with the proper relative position to it, and then repositioning the parent.  This is complicated enough that it should be considered only as a last resort.

edit: I suppose there's actually a fourth way to kind of store a rest position, although I think of it as being kind of temporary: keyframe transforms.  You can go back to that keyframed frame whenever you want to restore transforms.  But this is kind of temporary because you probably want to also be using keyframes to, you know, actually keyframe stuff.  You don't want to have to change frame or paste keyframes with time offsets to return to your rest pose.  Still, this is something I do when I just need to hold onto a particular transform for a short while, so it's probably worth mentioning.

very nice explained, thx for that. Unfortunately all 3 are only solutions for the "future", but not for now, where i didn't do the things before, which you are describing.

Yeah, sorry.  Check the location on a backup?


text:
How to UV Unwrap without Split Edges (Geometry Nodes) ? Can I create something like Smart UV Projection?
I don't understand UV in Geometry Nodes very well. I have watched a lot of tutorials, most of them use Split Edges method. Is there a way for me to unwrap UVs from the model without using Split Edges ? I really want to do Smart UV Projection Right in Geometry Node.


text:
Shearing instances in geometry nodes
I am making a geo nodes for walls(and doors), but I am having trouble figuring out how to shear the instances. Here is my current node setup:

The delete geometry node just erases the ends. This looks like:

This makes is so I can use edges to express walls. However, if i raise a point to create a ramped wall, I get this:

It follows the rotation sometimes correctly, sometimes not. I believe this is due to my align rotation node, but what I really want is this:

Is there a way to accomplish this?

Hello, was figuring out the same not long time ago here https://blender.stackexchange.com/questions/324437/instances-on-curves-non-uniform-skewed-scaling/324569#324569

(Using Blender 4.2.2)
Approach

The overall transformation of each wall is done in two times. Firstly (see left side sub-figures above), using the explicit Rotation and Scale inputs of the Instance on Points node as well as its implicit Translation, walls are aligned and scaled in X and Y directions. The only transformation in Z direction is an offset such that a wall center is collocated with the associated edge mid-point. Secondly (see right side sub-figures above), a shear in Z direction is applied using a Set Instance Transform node.
Analysis
It is assumed that the building structure is defined by a mesh made of a set of edges in the XY plane, the Z direction being used for elevation. Let $\vec{t}=(t_X, t_Y, 0)^T$ be the unitary vector tangent to an edge in the XY plane, $L$ be the length of this edge projected on the XY plane, $h$ be the height of this edge projected in the Z direction, $C$ be this edge mid-point. Let $M$ be a point after the Instance on Points node and $M'$ be its transformed by a shear in Z direction proportional to its distance from $C$. $M'$ position is defined as:
$$
\vec{OM'} = \vec{OM} + \left( \vec{OM} - \vec{OC} \right) \cdot \vec{t} \times \frac{h}{L} \vec{e_Z}
$$
where $\vec{e_Z}$ is the unitary vector in Z direction. Consequently $X'=X$, $Y'=Y$ and:
$$
\begin{array}{rcl}
Z' & = & \vec{OM'} \cdot \vec{e_Z} \\
   & = & \vec{OM} \cdot \vec{e_Z} + \vec{OM} \cdot \vec{t} \times \frac{h}{L} - \vec{OC} \cdot \vec{t} \times \frac{h}{L} \\
   & = & Z + X t_X \frac{h}{L} + Y t_Y \frac{h}{L} + \vec{CO} \cdot \vec{t} \times \frac{h}{L}
\end{array}
$$
This relation is rewritten as the product of a line vector by a column vector as:
$$
Z' = \left( \frac{h}{L} t_X, \frac{h}{L} t_Y, 1, \frac{h}{L} \vec{t} \cdot \vec{CO} \right) \left( \begin{array}{c} X \\ Y \\ Z \\ 1 \end{array} \right)
$$
It means that the 4x4 transformation matrix to apply is the identity matrix, except the third row associated to Z coordinate that is replaced by the above line vector.
GeometryNodes modifier

Math nodes:
1. The computation of different parameters is triggered by a single Capture Attribute node set in Edge domain.
2. The vector $\vec{P_2 P_1}$ aligned with an edge is computed by subtracting its end points position.
3. $\vec{t}$ and $L$ are computed after the projection of $\vec{P_2 P_1}$ on the XY plane.
4. $h$ is recovered by separating the Z component of $\vec{P_2 P_1}$.
5. The vector $\frac{h}{L} \vec{t}$ is captured under the name "Shear".
6. The position of $C$ is defined as the average of the position of $P_1$ and $P_2$. It is to notice the minus sign of the one-half factor because the vector $\vec{CO}$ is sought instead of $\vec{OC}$.
7. The displacement $\frac{h}{L} \vec{t} \cdot \vec{CO}$ is captured under the name "Offset".
Dark pink nodes:
A generic wall is made from a Cube mesh primitive such that local X direction is the thickness, local Y direction is the length and local Z direction is the height. Its length is set to 1 to be scaled afterwards to $L$. Its origin is at mid-thickness, mid-length and mid-height.
Dark red nodes:
8. The first transformation of the generic wall is implicitly performed by an Instance on Points node combining successively a scale, a rotation and a translation.
9. The scaling vector is set to $(1, L, 1)^T$.
10. The rotation is computed by an Align Rotation to Vector node such that the local Y direction of the generic wall is aligned with $\vec{t}$.
11. The translation is determined by a Mesh to Points node set in Edge domain, to spawn the scaled and rotated wall such that its origin is collocated with the edge mid-point.
Dark green nodes:
12. The shear matrix is assembled by editing the "Row 3" of a Combine Matrix node, which is providing by default the identity matrix. Only "Column 3" is unmodified.
13. Transformations are combined by multiplying matrices. In such a product, the right most transformation is applied first, while the left most transformation is applied last. Consequently, the shear matrix is connected first to the Multiply Matrices node, and the transformation already set by the Instance on Points node second.
14. Combined transformations are applied through a Set Instance Transform node.
Resources
(Blender 4.2.2+)

I have learned in the past couple of days that it had something to do with matricies, but it was a little too daunting for me. I did figure I needed to both rotate and shear, but the math was a hard to remember. Thanks for the great explanation!


text:
"Remesh" modifier hides my text object
At first, I had a simple text object:

Then I pressed Alt+C and selected Mesh from Curve/Meta/Surf/Text in order to convert the text object into a mesh.
Now I want to apply the Remesh modifier, however, it hides my text in normal mode and in the rendered image (it is visible in the edit mode though!).
Screenshot (normal mode):

Screenshot (edit mode):

Why is my object invisible in the normal mode and when I render it?

The Remesh modifier doesn't seem to work on flat objects so you need to give your text some volume/thickness.
In edit mode select all the faces and press E and extrude the text a little to give it some volume.
The Remesh modifier will now work but will remove all but one letter of the text until 'Remove Disconnected Pieces' is unchecked on the Remesh modifier.

Thanks a lot! Apart from your solution, setting the "Extrude" value to 0.001 on the F (Text) tab before converting to a mesh also works.

The remesh modifier tries to divide the volume of an object into a bunch of cubes and create new vertices where the edges of the cubes cross the original mesh. This only works if the mesh has a volume. Thus you need to either extrude the mesh or increase the "Extrude" value of the text before you convert it into a mesh.

You should also disable "Remove Disconnected Pieces" in the modifier and increase the "Octree Depth" value. This value defines how small the cubes used for the remeshing will be. But be careful, don't set it too high. The number of cubes increase with two to the power of octree depth times three. A value of 6 should be enough.