text:
Problem with Array Modifier - Rotation
I am trying to apply an array modifier. It is an object offset modifier for rotation around an empty. Watch this video. What am I doing wrong and I get these hick ups in the modifier?
https://www.youtube.com/watch?v=lxH7V-w-QaA&vq=1080p
Please increase in the video the resolution if it is low by default.

Hello and welcome. Please provide some context and explanation by verbally describing your issue, don't just post, images, videos, files to download, or links to external sites. See What is the problem with posting an image or link and asking “How do I do this?”

Hello hard to understand what's your problem, maybe share the file with the problem once it is visible

and honestly - instead of adding music to that video you would have better improved your question and told us all the steps you did and what you mean with "hick ups".

Before trying anything else, Ctrl-A apply the (object-level) scale of your arrayed object. The object-offset mechanism iterates the transform between modified and target objects, once for each element, so it will be doing that to the scale, too.

Ok, you are correct all of you about not mentioning everything and adding music.
Here is a video where I tell everything.
https://youtu.be/AO3YfGPUSf4

I figured that out. We have to apply Ctrl+A and then from the menu "All Transformations".


text:
Twisting rectangle with text surface
I'm trying to do something similar to this is Blender:

Animation here: https://www.instagram.com/p/BqQKtNmHsCw/
I can get the shape and animation to look quite similar based on the linked answer, but how do I actually add the text uv texture to my object?

Thanks. Just added an image of the desired effect.

Hi. If the linked question doesn't help, then please explain why it doesn't help and how your question differs.

Will do. Thanks.

I gave it a try:

Start with a Bezier Circle (Add > Curve > Circle)
Add a cube and change the x-dimension to 2 * pi. You can calculate directly in the input field and you can use constants like pi. It should be 6.28 m and so it fits the circumference.
In Edit Mode gave the cube some additional loop cuts with CTRL+R. Scale the cube to your liking, but keep the x-dimension. In scale-mode press Shift-x to lock scaling on that axis. Delete the end faces. It should look like this:
Edit: Make even more subdivisions ;)
Add a Simple-Deform-Modifier. Set it's mode to Twist, the Axis to X and the Angle to 360°
Add a Curve-Modifier. Due to our calculation it fits perfectly.
To animate the twisting you can animate the cubes x-rotation
For Texturing unwrap your cube and place your stripes on the text created in an image editor of your choice.
You can animate the texture later. Therefore you can rotate every second stripe around 180° to let them move in opposite directions.
To animate the texture set up your material and animate the x-location.

Hope that helps! ;)

Thanks a lot! But I can't seem to twist around the x axis? I've tried using an empty and rotating it, but it doesn't twist the object on the right axis..
Any help would be greatly appreciated.

Did you try all axis? You have to rotate the cube around the longest axis. Maybe there is something rotated in the local axis? Try ro apply the cubes scale and rotation by pressing CTRL+A

I followed the linked answer above and got the shape and animation to work now, but now I just need to figure out how to do the text texture and animating it. Thanks for your help!

source: Stack Exchange

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

sort: votes


text:
Same gradient material for each instance (Geometry Nodes)
I'm having trouble figuring out how to assign a gradient material for each instance in geometry nodes? I have this recursive setup of circles where I want to assign a gradient material that faces the same direction on each instance:
Simplified sketch of what I want to achieve:

3d viewport:

Realising instances and trying to assign a material to each index:

Material:

Rest of the geo node:

Hope that someone can help me figure this out :) Thanks.
Blend file:

Without setting it up myself, can you tweak & apply the setup from this post to your problem maybe: Set Different Material on Each Instance? To make it easier to reproduce your exact complex GNodes setup, you could share your .blend file. You can use this service to upload your file: Blend-Exchange and then copy the link to embed the file to your question (like described here: Blend-Exchange Help.

Please be more specific about your problem or provide additional details to show exactly what you need. The way it's written now, it's hard to see exactly what you're asking for. Thank you!

Hi quellenform
Thanks for you response. I added a quick sketch of what I want to achieve with the gradient material.

Updated the question a bit. My problem is still to get the same material instanced on each circle and then to make it face the same direction. I had some luck with using an image material for each instance, but then I couldn't figure out how to make the material face in the same direction

If you don't realize instances then each instance should have its own Generated coordinate space.

Thanks :) But it doesn't work in this setup, unfortunately.. If I don't realize the instances the whole setup doesn't show in the viewport, and because each instance is rotated the material will most likely be rotated in different directions.

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


text:
Text uv layer texture
I'm trying to do something similar to this is Blender:

Animation here: https://www.instagram.com/p/BqQKtNmHsCw/
I've got the shape and animation working, but I can't figure out how to animate the text layer on the 4 different sides?
Here's an image of my shape so far:

I followed this to build the shape: How to animate text over a twisted mesh (or text flowing along an infinity loop)
Also I might need to smooth the object without interfering with the twist or rounding the sides?
Edit
This is how it looks when I follow the linked suggestion / open Robin Betts' file:

I'm not able to determine what Axis, origin the simple deform modifier uses. Is there an addon plugin that I need to install? (I'm using v.2.79)

Ahh, OK. your 279 is earlier than mine, and indeed, you have no option to set the deformer axes to selected world axes, only to define them using another object's space. I''ll make a version that replaces those settings with objects which define the axes for the deformers and post it up when I can. Hang on in there..:)

@RobinBetts No need to do that! Just downloaded v.2.8 and now everything works! Now I just need to get used to the new interface. Thank you so much for your help!

Cool. I'm still getting used to 2.8 myself, and I have to say, even after a while, I'm finding it slower for modeling. I'm going to have to create a lot of personal shortcuts to replace the standard ones which have been stripped out to clear the keymap. You could always download the latest 279.. it depends where you're at.

The Material
A material is set up for the object, coloring an emission shader with an image in the object's UV space, through a Mapping node:

Unwrapping
If you're following a method something like this one, then you're just unwrapping flat surfaces, before they are modified:

There is a seam down every longitudinal edge, so it's just U unwrap, followed by rotating/scaling in the UV Editor.
Although the UV space has been set up to allow different text on every face, in this case the UV islands have been snapped over one another, so they all refer to the same region of the image.

Modifiers
After Twist and Bend modifiers are assigned as shown in the linked answer ..

Animation
Now the Location: X field of the Mapping node in the material can be keyframed between 0 and 1 to loop the translation of the UV texture space (trim the last  frame, where X = 1 = 0, to get a seamless loop):
Here, the loop is shown without the animated twist: only the text is being animated across its surface.

Here, with the twist as well..

Thanks a lot! I've tried quite a lot of different approaches now and most of them seem to rely on the simple deform modifier twisting or bending on an axis - but my version of Blender doesn't seem to have that option? Is it an addon that I need to install?

@AllanKristiansen  Not familiar with very old versions.. the method linked from here doesn't depend on a custom or object orientation for the deform modifiers.. just the selection in them of one of the world axes. The twist is achieved by hooking.. which rotates the mesh before it is deformed. Can you reach the modifier settings illustrated in the other answer?

It's version 2.79? In the linked approach it's twisting on "axis, origin: z" and bending on "axis, origin: y" in the simple deform modifier module?
When downloading your file, the twist and bend doesn't look like the examples you've shared here?

@AllanKristiansen dang. Just downloaded my own file to check.. I hadn't included the keys on the empty which animated the twist.,, so have replaced the link. But everything else fine.. just different panels open? What version are you using?

I'm using version 2.79. Yeah it's the same as the last file, but this time just with some keyframes. It isn't bending or twisting in the right direction.
Just added an edit on my original question if that helps.


text:
Animate size of each letter in text with effector
I'm fairly new to Blender so this might be a really simple question. I want to animate each letter in a text with an effector (different shapes and patterns) in a similar way to these references:

https://studiodumbar.com/media/pages/work/amsterdam-sinfonietta-identity/1549645332-1586263695/as_case_motionsinfonietta_intro.mp4

https://studiodumbar.com/media/pages/work/amsterdam-sinfonietta-identity/1331194541-1586263695/as_case_andriessen-moore_detail.mp4
The closest I've come to any tutorials is this: https://www.youtube.com/watch?v=LtKmb4E7CuY&ab_channel=BlueFoxCreation but I have no idea how to animate each letter in a text this way.
Would be greatly appreciated if anybody could help me out.

The use of images in your question would be appreciated.  Please  do that.  Its your choice. Video references outside of BSE are less  preferable.  Can you show your current work?

Are you trying to animate individual characters or masses of characters in Blender?  Can you please state whether or not you have used drivers in Blender?  For example would you understand some part of this reference https://blender.stackexchange.com/questions/135382/how-to-create-drivers-but-maintain-the-ability-to-modify-the-property/135383#135383.  Please note there are tutorials on drivers here on BSE and ... on the famous video website that has a name that rhymes with noonoob

The best choice are Animation nodes, but since I'm not able to handle it, my way would be letters as square images in collection used as particles on grid scaled by texture
as effector.

All those effects are probably distance calculations.  Blender has resident ways to calculate that.

@atomicbezierslinger Added reference images. I have tried to play around in Blender but I haven't come close to doing anything that's similar to the effect I'm trying to achieve.

I'm trying to animate each individual letter in a text (I have no clue how to achieve this without having to separate each letter manually).

If you’re fine with using animation nodes, I’ll have look.

@bstnhnsl Haven't worked with animation nodes before, but I'm open to learn anything new :)

Animation Nodes
Animation Nodes is a blender add-on for visual scripting. See the Docs for more info. As you haven't worked with Animation Nodes before, I'll be a bit more specific i nmy explanations.
This is an all-AN-solution, if you don't care about creating the text object inside AN, you can skip the first 2 Steps and just create it by hand.
Text Input
We have different options to get our text into animation nodes including but not limited to:

Text Block Reader reads a text block in Blender. Best for multiline text.
Text Input if you only have a few words
Random Text thats what I am using here, so I don' have to think about words.

After you have typed in your text, linked a file or created a random string you have the possibility to process the text further. Repeat it, trim it, change case etc. Press shift + a and look through the different text nodes, I think they are easy enough to understand.
I'll go with some uppercase repetition similar to your example.

Creating A Text Object
We need to tell Blender, that we want a text object in the scene. We use an object instancer to create that object and an object output node to fill it with our text.

Separating the Text
Thats probably the most difficult part. Add a Seperate Text Object Node, select the Text Object you just created and click update.

Text Grid
Add a Grid Mesh Generator, that creates an easy to control grid for us. We use the vertex positions (through the Mesh Info Node) of this grid to align our letters with an Object Transforms Output. We won't actually see the mesh in the viewport or the renders.

If we didn't care about the order of our text that would have been it. Unfortunately...

The vertex indices start in the bottom left and go up, we want them to start in the top left and go right. SO we need another step:
Ordering the grid vertices
We rotate the grid by 90deg with a Transform Matrix and a Compose Matrix node and reverse the vertex list with a Reverse List node. Great.

This was basically just the Animation Nodes Setup. There are a lot of different ways with Animation Nodes to achieve the scaling, I'll show only one. But maybe that helps you experiment a bit.
Scaling each Letter
This is one possible Node Setup:

What is happening here?
We use the vertex location to create a random value for each location using a Vector Noise node. As we dont want our letters to scale different in each direction, we are happy with 1D noise. The Vector Noise node outputs negative numbers, so we add 1 to always kepp them positive. you could use a Map Range node so you'd have more controll over min and max values instead. We then compose a vector out of the noise value. The same value for X,Y and Z because again: we want the scaling to be uniform.
To animate the noise I use a Vector Wiggle Node in combination with a Time Info node to change the offset of the Vector Noise.
That's it. If you have any questions, let me know.
(Thats a long answer, but in the end you need 15 nodes. Thats managable imo.)

What comment?
Glad you learnt sth new or at least copied the node tree. :) Create sth cool!

Awesome! Thanks a lot! I think this is exactly what I need to get started. I'll try and experiment a bit and then I might have a few additional question :)

Great. I just realised, you don’t need the reverse list node, if you rotate the grid mesh clockwise (-90deg).

somehow i got a mistake in my screenshot. that shouldn’t have worked. the text input should go into the fill socket, not the text socket. my bad.

Worked great for smaller amounts of text, but my computer simply can't handle it when I scale it to something that looks like the examples I posted. Thanks anyway!

Which part doesn't it handle? The update part takes it time on my end, but the animation runs at 60fps in eevee (white emission on black background)

Yeah it's the update part which it can't handle. I'll try and be a bit more patient and see if it actually runs after I hit update.

It's still really slow after I update.

then you'll need to render it first.

Particle system
It's old fashioned way, but still working:

Add Text object, type your words, Convert to Mesh, Separate by Loose Parts, move them into a new Collection
Add Plane, add Particle System, source Faces > Grid, render as Collection, under Field Weights set Gravity zero
go down in properties to Textures, create a new one, go to texture properties, set any you like (I used Distorted Noise), Influence > enable Size

Note:

You would have select all letters and search for Origin to Geometry with Pivot Point > Bounding Box option and tall letters position manually (took me a minute with enabled Options > Transform > Origin).
Letters separated into individual objects get (for some reason) reverted sequential numbering. So particle system starts with last letter. To revert it you can rename objects manually or use this script (thanks to p2or) - Copy script from the link, paste into a new blender's Text Editor, Run the script (Alt+P) with cursor in Text editor. Select all letters in viewport and press Ctrl+R . It brings a dialog window, type "name_###r" :)

Awesome thanks! This looks like a great place to start. Any way to animate the text layer without converting to mesh or is this just something that you have to work around in blender?

Its actually way easier in animation nodes. with no manual converting. and you can change the text on the go, link a file etc. I'm on it.

Hehe You just beat me to exactly the same answer! You can ensure the origins go to the right place for (un-kerned) letters by having the Pivot point set to 'Bounding Box' when you call up Origin to Geometry.. no need to do it by hand, although I did have to do them one letter at a time.. don't know why.. @bstnhnsl.. also look forward to AN approach.

Great it works for you. I would like to ask you delete your comments here that doesn't make a sense for followers now, all important I put into the answer. Thank you to keep this site organised. About Deform Modifier - comments are not meant to be a chat, also only one question per post is allowed. Please create a new one if you didnt find answer. Anyway I'm not sure what are you asking for.


text:
How to fix this UV distortion on a face?
I am trying to UV map a model of some robot tracks, so that a texture with horizontal lines wraps evenly around it. However I am running into an issue whereby everything looks okay, except for the outer faces, where instead of the line traveling straight across to the other side, there is some kind distortion running diagonally across the face. I know this is related to the face being made up of 2 triangles but how do I go about fixing this?
Here is a screen shot of the issue:

The side faces are not rectangular in shape, they are actually trapezoidal in shape, so the UV map as to reflect that and mimic its shape so no distortions are introduced

This looks like something I was checking out a few days ago. Check to see if subdivisions help. The question: https://blender.stackexchange.com/questions/81380/why-does-an-even-subdivide-change-the-displayed-texture

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


text:
Scripts with sound path - Imported audio not working with Save Game as Runtime
I'm using a Blender 2.74 and am trying to pack external audio data into a .blend file. I am using Windows 7. If I try run my game on other another computer, everything but the audio seems okay.
Here is the audio script:
import aud

def main():

    cont = bge.logic.getCurrentController()
    own = cont.owner
    scene = bge.logic.getCurrentScene()
    gunspawn = scene.objects[own.name]

    # sensors
    Message = cont.sensors['Message']

    #sound of glock shoot
    sound = aud.Factory.file("C:/MakeHumanZip/project_last_back/sounds/glockshoot.ogg")

When I pack the external data into the .blend the audio only works on my machine. The audio doesn't work on other Windows 7 machines and the scripts eventually crash.
Can anyone help me with solution?

Can you provide your blend file through https://blend-exchange.giantcowfilms.com/ for test it,

Referring to a file in a python script doesn't tell blender that it is using an external file, so it isn't included when packing external files.
You can add a sound strip to the Video Sequence Editor or you could add a speaker in the 3D scene and open the sound file with that. Both of these methods allow blender to pack the audio file into the blend and I expect that both will be included when exporting to the game engine runtime.
An even better approach would be to use a sound actuator and open the sound file with that, which allows it to be packed. You can then use the actuator to play the sound or access other properties with a python script, you can also use sensors to play the sound without the script.
cont = bge.logic.getCurrentController()
actu = cont.actuators['Sound']
cont.activate(actu)

i have more o 10 scripts for transform all to logic bricks is very complicated now. i need try solution with path in to the script but need work without errors the error is cant load aud file in all scripts only in other computer in my work fine.

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


text:
Blender takes a long time syncing objects
Why does Blender take more time synchronizing than it does to render. Does anyone know a solution to this problem?
A screen shot of the sync screen:

Only by this screenshot I can only say that nearly 8 000 000 faces are causing this. Meshes are to heavy. I don't know if you use some modifiers along this and what textures you have used.

If you used cycles, then you can enable Persistent Data under Render Properties >Performance > Final Render. This way, only for the first frame object synchronization is performed or when the objects are changed. It comes at the cost of increased memory usage. See also here

This may not be a solution, but does help me speeding up the animation render.
In my case one object needs a lot of time to synchronize. While this is happening the computer is not really busy. To use these ressources I started a 2nd instance of blender (background render at the commandline) starting rendering the 2nd half of the animation. This increased the render time of both render instances just a little bit which in general accelerates the animation render almost by a factor of two.
I don't know how that is influenced by the specific scene and the hardware used. But for me it worked pretty well.

Good idea, could you provide some insight on when or why the synchronizing takes long.

At the moment I don't exactly know what blender is doing when synchronizing an object. It probably has something to do with the number of vertices and maybe with the texture applied to the object (and UV unwrapping). This is probably a good new question.

I am having the same issue across the board.
My solution is:

Clean all un-used nodes in material editor.
Make instances real
where it's possible. (on object level go to "apply, make instances
real")
reduce texture files to the absolute necessary (i had lots of 4k textures in a 4K composition but technically I would need less for optimal display)
under file- external data - PURGE all external stuff that is not used in the scene
save the file, quit and re-open it.


text:
How to hide UV seam through texture?
Could you guys please help me with this annoying problem? Is there a special way to go about fixing this marking seam problem? There's no edge crease and everything's in smooth.
I tried blending the UV edges in texture paint, but that doesn't make any difference.

edit:
I forgot to mention that it only shows with the UV normal. any of the other textures it doesn't show.
Thank you in advance!

this looks like normals problem (but how to be sure ?). If this is it, go to edit mode, select all and "ctrl + N".  But surely sharing the blend file (you can do it in that site http://blend-exchange.giantcowfilms.com/) can help to understand what is wrong.

thank you lemon for your comment. I would upload the whole thing, but it has so many textures and sculpted models. It's not a normal problem. The only reason why the color is messed up is because the normal map strength is beyond 1.5. The problem I'm faced is just the mark seam line showing through texture.

Well I figured it out with much googling. I even redid the mark seam and everything.
Turns out when creating a new image texture, I had to click on the checkmark that says 32 bit float and now the seam problem went away along with some sloppy normal map problems that I kept getting. I guess the extra resolution is needed.
source: https://developer.blender.org/T42056


text:
How to make a sandbag wall?
I need help trying to figure out the best way to make a sandbag wall.
I've tried a few methods, but it doesn't look that good. I could just try again, but before that, I want to know if anybody out there has some tips that I could try out.
I would appreciate any!
I have no issues making the sandbag itself. I just want to know the best to stack them without it flattening everything and going into each other. How would you do this?
Here's how I want them to look like:

THANK YOU in advance!
edit!
Here is what I've done so far:
I created a big mesh I call the barrier to form the shape I want the sandbags to fall into. It was my collision/passive mesh.
I duplicated my sandbag more than 20x and made it to active. I let gravity do the work and this is how it turned out.

I liked it, but I it doesn't look like a bag sand, but a bag of styrofoam.
I combined all the sandbags into one mesh so I can easily edit the cloth physics panel to reflect all of them. Not sure if that was a good idea or not.... but oh well.
I thought doing a weight paint in the middle would help retain the middle and then do the cloth physics.. well that didn't look good. Okay now I know pinning isn't the best choice.
Basically I want the sandbags to stack onto each other and I really don't know how to make it work. I could definitely do this manually, but I was hoping to find out if there was an easier way to do this. Maybe if there's a manual way to go about this without it going through other objects that would be great too.
Thanks again!

"I've tried a few methods, but it doesn't look that good" Could you show us what you got and why it displeases you?

Thanks you two for replying back! I edited it and included my embarrassing attempts. lol

That last image looks awesome

@ Mr Zak  the pinned one? LOLOL

I think using soft bodies would be best for this. Or the more time consuming way of manually laying each one and then shaping them to look like they are folding over the bag underneath it.

Final result:
You can use Array modifiers along with simple Sculpt to achieve similar result. It's a bit more of manual work but it's pretty simple and rewarding at the end.

Mesh:
You will need something similar to mesh from the screenshot. The goal is to have brick-like array. Top part is duplicate of the bottom part, cut in a half and manually placed.

Modifiers:
Here you will need at least two Array modifiers (width and height) or three if you want to have some multiple rows.
One of them (width, in this case X axis) should have checked Merge to connect top part of the mesh.

Sculpt:
When you make the wall with desired size it's time to duplicate it to another layer. To have some backup.
After it, apply modifiers from top to bottom. It's good idea to go to Edit Mode, Select All and Remove Doubles just in case.
You can add Mulitresolution modifier (I've added it with Subdivision 1) but it can stay low poly.
Go to Sculpt Mode, turn off Symmetry Lock X, choose Grab Brush and start tweaking the mesh. Remember to change Brush size/strength once in a while to give it more detailed look.
You can do this with mouse, no need for tablet to do this.

Blend file:
First layer contain mesh with Array modifiers, second one is the final mesh.

I'm having a ... "Why didn't I think of that" moment. Thank you! This way may be the best since I'd have a lot more control!

@PepperAddict Most important thing is that you can make it low/medium poly and without heavy CPU use.

Nice technique, +1 from me! Now I'm wondering if one could achieve this fully non destructively with modifiers alone, replacing the sculpting step with a displace modifier.

@DuarteFarrajotaRamos I've tried it at the beginning but since some of bags are "smudged" over the others, Displacement just don't look well compared to manual method. It's totally possible thou but most irritating thing is that sooner or later Displacement texture will produce gaps between bags.

Check my answer bellow :). The trick lies in the type of coordinates used and the direction of deformation. It will obviously never achieve the level of quality you get with manual sculpting, but it can achieve a vaguely acceptable result

This was heavily inspired by LukeD's answer, but veers more towards an optimization route, in detriment of realism.

It is totally non destructive, fully modifier based, and uses a single instanced mesh object, for memory efficiency and maximum modularity.
The mesh itself is a trivial block box, with a seam in the middle, using  a three-way Mirror modifier for the symmetry. It can be easily replaced by any other custom made mesh, with fabric wrinkles, or more detailed surface, which can then be clone duplicated to build the wall shape as desired.
The majority of the work for the irregularities then lies solely on two Displace modifiers, one for a large scale deformation and one for a small scale deformation
The trick here is to use the option under Direction set to RGB to XYZ, so that instead of "pushing" the surface along normals the bags are actually deformed in space in a more involving manner.
Also the Texture Coordinates should be both set to Global instead of local, so the deformations are calculated in scene world space, instead of per object; avoiding a repeated object pattern effect, and creating both consistent deformations between bags and matching continuity without overlaps or gaps.

Pretty nice! I had similar results with Color Ramping textures and playing with Midlevel, it looked more "pumped" (this was a method to hide gaps) because of it. Thanks for the RGB to XYZ tip, it's super useful!

Welcome. :) Hum, Didn't think of color ramping textures, nice one, I'll have to give it a try also.

Oh man thank you so much for this. I didn't think to use the displace modifier.  Thank you thank you thank you.

I think soft bodies are the way to go with this. But I am terrible at them and just playing around for a couple minutes seems like it would work. Baking times might be crazy though with that many sand bags.
You would need to play with the settings more to get the right amount of stickiness, mass and bounciness.

Hey, thank you so much for your suggestion.  I'm going to give it a try right now and then let you know how it turns out. I'm not sure why your answer had a -1. This was really helpful.  Thank you again!

Its not the greatest answer I admit but I was hoping maybe it can get you started, then when someone who knows soft bodies better than me could post a more complete answer. Also you may way to put some collision walls to hold up the bags from falling over, then hide them from the render.

This one seems so easy, but for some reason, my computer can't handle soft body physics.  Thank you again for your suggestion. That does look like it is exactly what I want. I'll try again tomorrow!


text:
Principled Hair BDSF not showing hair
Im just testing out some stuff like different shaders, Im trying out the Principled Hair BDSF but the hairs arent showing up, Im in cycles

The provided blend file contains a sphere with a glass shader. How is this related to the question about hair? Have you uploaded the wrong file?


text:
Hide/Smooth seams between repeating spline objects
I am trying to create a spline/curve unit mesh and need help figuring out how I can hide this seams between each segment.  Pictured below are screenshots taken from blender of the effect I'm trying to create, the base mesh before applying the twist modifier, after the simple deform twist modifier.
Joining the objects is not a solution for me and neither is creating a duplicate, joining the dupe and transferring the custom normals with the data modifier.
The intention I have is to create a single mesh unit that I can use in Unreal Engine to create mesh of any length or bend that blend seamlessly together, the length of which can change dynamically at runtime.
I would appreciate any and help finding resources that address this type of issue and how to hide these seems such that when I import the mesh to unreal I can use a spline mesh component to create seamless chains of any length and bend.

hello could you please share your file? https://blend-exchange.com/

Well, your question is maybe a bit useless on this site, because the visible seam in the shading comes from how Blender handles these normals on unconnected faces, that it does transition smoothly between them. When you repeat those pieces with an Array modifier in Blender, you can make the seam smooth by using a Weld modifier afterwards which merges the vertices on the border. However you cannot export this modifier to Unreal. So what makes it useless here is, the solution depends on how Unreal handles discontinued surfaces or if there is a way to merge them... not Blender.

Thank you all for the replies, doing some more digging and looking at the normal at the edge I started to see that the issue was starting to be that the edge normal were not lining up.  And it dawned on me that @Gordon Brinkmann was right.  The best way to solve this for my use case was inside unreal.  Instead of applying the twist modifier in blender, I applied it to the spline mesh component in unreal and I now have the desired effect.  In theory there should be a way to solve this in blender, by aligning the counter part normal but I am not sure how to do so effectively.


text:
Missing Vertex groups with imported FBX
I'm trying to import an FBX from another app but the vertex groups are missing.
The groups import fine on an OBJ but not an FBX (which I do need)
Is it possible to import vertex groups via an FBX?

Yes it is. How did you verify that the other software exported the groups in the fbx?

I use Modo and added a Part (its essentially a vertex group and the same as a Polygroup in ZBrush). An OBJ will carry them across to blender but they wont export in an FBX

Why don't you use the obj export? (I'm just trying to find a workaround for you, don't know anything about modo exports.)

I noticed that FBX export with rigged mesh is missing the vertex groups in the FBX file, (import the created fbx file in a new blender window), to get vertex groups into an FBX, i had to also include/select the armature when exporting


text:
Problems with character with "Stretch to" when exported as FBX
I'm working on a humanoid slime character, then his animations are super soft and stretched, then I use the "Stretch to" Constraint, but when I export it as FBX, the entire mesh distorts, but in Blender it remains normal, only if you import it FBX is distorted in Blender, what could it be? please help me, this model is urgent

https://www.youtube.com/watch?v=1Xm1h700uhk your problem is examinated at around min 41.00.

Hello and welcome to BSE. Can you share your blend file https://blend-exchange.com


text:
Geo Node Sample Average Material
With Geo Nodes I am generating spheres along a mesh with multiple materials, I would like to have the spheres inherit the materials they are closest to and when along a border to average the shaders based on distance, in example if the left is red and the right side of the mesh is blue the speres in the middle should be purple.

Could you provide your Blender file using https://blend-exchange.com/ ?


text:
Washed out colour on UVProjected image (viewport and render)
a noobish question here - I'm learning to work with UVProject modifier, but the colours I'm getting are totally washed out, both in my viewport and in render.
What I already tried:

switching between cycles and eevee
turning on/off ambient occlusion
changing Colour Management settings in render tab.

Can you please suggest what am I doing wrong?
My nodes and image I'm getting:

Original image:

Other settings:

Do you have a completely black background? If you have any value in your World bg it will add that as ambient lighting to your scene. Also try messing with the Color space setting on your image texture node.

It was the background. Thank you!

Do I mark the question as answered? Can't find a way to do that.

If you are plugging the image into the Emission input of the Principled BSDF it will still be mixed with the white color of the Base Color, maybe instead use an Emission node?

Changing the background to black worked but I'll definitely try changing the nodes just to experiment a bit. Thanks

@Ithindir  I just added the solution as an answer, so accept that and it should close the question!

If you want to render an emissive material with 0 lighting contribution from the surroundings, make sure to set your background to fully Black.

vs.


text:
texturing acting weird
I am fairly new to blender, did a few tutorials and alway struggling with texturing and the results when I do my own more complex structures.
Here a simple example: the left pane is a newly added pane mesh with a marble texture, the right one is a newly generated face started from 4 dots taken from another object which has the same texture / material.
I tried it this was as my texture looked distorted all the time like on the second picture.
I have no idea what could have gone wrong, any idea?
Sry if I haven't used the right terms - I am still in the beginning of that learning curve and happy to get feedback.

You are using UV coordinates for your texture. I highly doubt the newly created faces have usable UVs right out of the box when you did not unwrap them. I would highly recommend you watch beginner tutorials on UV unwrapping and UV mapping.

I didnt expect such a quick response, thanks.
Unwrapping did the trick - the faces (picture 02) had some UV map but I should have unwrapped it. Thank you :)


text:
Horizontal lines appear in the cycle render when using principle volume for the material
If I delete the object with principal volume, the Cycle render will work fine.
I tried lowering the volume step rates render to 0.01 and increasing the max sample, but it did not work. How can I get rid of those lines?

That seems very unusual. Is the volume object unusual shape, or is it just a primitive like a cube?

They are cubes. One used principle volume and one used volume scatter as material. I turned off my sun light, and these lines disappeared.

Wait, multiple cubes with different materials?


text:
render preview looks different to rendered image
i'm creating a short toonshaded animation for a high school project and had some questions about the rendered preview vs. final image.
the rendered preview looks exactly how i want it to look with all the shadows and everything, but the rendered image looks way flatter than the preview. but in some scenes the final render looks fine. how can i fix this to make the final render look like the preview?
(using eevee)

Hello, make sure that your lights are enabled for preview and render in the Outliner, also make sure that the Scene World option is enabled in the Viewport Shading panel?


text:
mouth rig won't work – disconnected from body rig, bone groups not showing
I am trying to create a rig to move the mouth and eyes of a cartoon bear but I have encountered some issues. For context, I have created these rigs separately from the body rig... I've already animated the walk cycle and other things so I am not sure if the animations will be affected if I update the rig and assigned vertices at this stage.

New bone groups don't show when assigning vertices – So I've created the bones for the mouth rig, but when I click on the mouth on edit mode (after parenting it to the rig) the bones will not show. Sometimes it works and I am able to assign the vertices to the bones correctly but I have to redo it again due to the following issue:

Since I have created the rigs separately, I am not sure how to make it so that the mouth rig and body rig will work together. Do I parent the mouth rig to the head or the body rig? I have tried parenting them to the main rig before, but there was another issue where the head was completely deformed....
Please give me tips on how I can solve this problem and make sure that I have a working rig for the mouth and eyes which will not deform the rig and will let the updated bone groups show up in the vertices area.

Join (Ctrl J) the mouth mesh to the body mesh and also the mouth armature to the body armature, but make sure that the bones of the mouth armature have different names


text:
Geometry nodes: problem with intersect boolean of mesh and instances
I`m making a roof generator, and I have a little problem with intersect of meshes:

And there is the result

Here is nodes and geometry:

i cannot see any intersection on your images!? can you please add an image with maybe some annotations where the intersection occurs? thx.

Do you try and add a Realize Instances node between the Instance on Points and Mesh Boolean nodes at the far end of the graph, just before the Group Output node ?

Thx, it helped)

intersection is in bool node

Does the Realize Instances node solve completely your problem ? Or are some issues remaining ? In this case, could you provide your Blender file using https://blend-exchange.com/ ?


text:
Unable to group duplicated objects?
In this article:
the last line says :

To turn all duplicates into real objects, simply
  select the icosphere and Object ‣ Apply ‣ Make Duplicates Real,
  Ctrl+Shift+A. To make the icosphere and the tentacle a single object,
  make sure they are all selected and go to Object ‣ Join, Ctrl+J.

After doing this, I now have a large amount of objects. Great! but unfortunately, when I select all of them and Ctrl+J to combine the objects, nothing happens. Is there something preventing me from doing this or am I overlooking something?

i think ur selecting lamp and camera also so its not working

I specifically de-select all objects besides the newly created (read: added) objects. also I don't use lamps.

if all joining objects are meshes, they should join, afaik. could you post the model as it is now to check? you could use http://blend-exchange.giantcowfilms.com/

Check that the active object is a mesh..

Add a Monkey (Shift+A)
Add a Circle (Shift+A) set the vertices say 10 or 12 (left hand panel or press f6)
Select the monkey and then the circle (order is important here)
Press ctrl+P -- object
Go to the object panel right hand in duplication section select verts
press ctrl+Shift+A then
press ctrl+J


text:
Iterate over CollectionProperty with blendfile.py
Over on this question I found out about io_blend_utils/blend/blendfile.py, which is a one-file-module to read a blender file without actually loading it into blender. I need to read the elements of a CollectionProperty, which I am currently only able to do for the first element.
I fear this is a very specific and advanced question. I am hoping @ideasman42 may be able to help?
My use case
I need to crawl through a bunch of .blend files to find all the texture atlases (created with the uv_texture_atlas plugin) contained in them.
Since there are many and large .blend files, I do not want to have the overhead of loading all the files into blender.
My code so far
    def group_iterator(block):
        """
        Iterate over a IDPropertyGroup BlendFileBlock.
        :param block: block to iterate over
        :return: All IDProperty blocks in the group or list
        """
        i = block.get_pointer((b'data', b'group', b'first'))
        while i is not None:
            yield i
            i = i.get_pointer(b'next')

    atlases = collections.OrderedDict()
    for blend_file_path in blends:
        with blendfile.open_blend(blend_file_path) as blend:
            scenes = [block for block in blend.blocks if block.code == b'SC']

            for scene in scenes:
                # get custom properties
                properties = scene.get_pointer((b'id', b'properties'))

                if properties is None:
                    continue

                # iterate through all the property groups
                for itor in group_iterator(properties):
                    if itor.get(b'name') == "ms_lightmap_groups":
                        group = itor.get_pointer((b'data', b'pointer'))

                        if group is not None:
                            # iterate over all the properties
                            for prop in group_iterator(group):
                                name = prop.get(b'name')

                                if name == 'name':
                                    offset = prop.get((b'data', b'pointer'))
                                    length = prop.get(b'len')
                                    blk = blend.block_from_offset.get(offset)
                                    blend.handle.seek(blk.file_offset, os.SEEK_SET)
                                    atlas_name = blendfile.DNA_IO.read_string0(blend.handle, length)
                                elif name == 'resolutionX':
                                    resX = prop.get((b'data', b'val'))
                                elif name == 'resolutionY':
                                    resY = prop.get((b'data', b'val'))

                            atlases[atlas_name] = (2**(resX+8), 2**(resY+8))
                            print("Found atlas %s" % atlas_name)

Thank you so much in advance (I have been trying to figure this out for over a day now)!
Regards, Jonathan.

So, I hear @ideasman42 left blender. In this case I will figure this out myself and post an aswer, once I found out. Also, there is #blenderpython IRC, I will post my question there, too.

blendfile.py actually supports getting elements of a collection property with some super neat and simple API!
    for blend_file_path in blends:
        with blendfile.open_blend(blend_file_path) as blend:
            scenes = [block for block in blend.blocks if block.code == b'SC']

            for scene in scenes:
                # get custom properties
                properties = scene.get_pointer((b'id', b'properties'))

                if properties is None:
                    continue

                # iterate through all the property groups
                itor = properties.get_pointer((b'data', b'group', b'first'))
                while itor is not None:
                    if itor.get(b'name') == "ms_lightmap_groups":
                        length = itor.get(b'len')

                        for i in range(0, length):
                            group = itor.get_pointer((b'data', b'pointer'))

                            if group is not None:
                                # iterate over all the properties
                                # (!) i specifies the index in the collection
                                prop = group.get_pointer((b'data', b'group', b'first'), base_index=i)
                                while prop is not None:
                                    name = prop.get(b'name')

                                    if name == 'name':
                                        offset = prop.get((b'data', b'pointer'))
                                        length = prop.get(b'len')
                                        blk = blend.block_from_offset.get(offset)
                                        blend.handle.seek(blk.file_offset, os.SEEK_SET)
                                        atlas_name = blendfile.DNA_IO.read_string0(blend.handle, length)
                                    elif name == 'resolutionX':
                                        resX = prop.get((b'data', b'val'))
                                    elif name == 'resolutionY':
                                        resY = prop.get((b'data', b'val'))

                                    prop = prop.get(b'next')

                                atlases[atlas_name] = (2**(resX+8), 2**(resY+8))
                                print("Found atlas %s" % atlas_name)

                    properties_itor = properties_itor.get_pointer(b'next')

BlendFileBlock.get(...) and BlendFileBlock.get_pointer(...) both have an optional base_index parameter which is gets you exactly this.
May this be of use to someone else out there :)
Happy blending! :D


text:
How can i animate beams of light in blender?
So i used the blender tutorial on youtube for creating and animating abstract waves. from blend master.
and although those were helpfull, it didn't show me how to animate them actually moving around, like what im trying to do.

I assume maybe the partical system is used for this? but im not sure. is there a tutorial on how to do this? or does anyone know how?
I haven't done much so far to even make this, as i have no idea where to start. i did make a simple abstract wave, but thats about it. An im using blender render.

Is this any different from your earlier question?


text:
Can a driver be used on shrink/fatten on a curve's control point?
I am trying to get the surface of a cylinder to shrinkwrap to the surface of another object. That in itself is easy. The idea is have the original surface adjustable through procedural controls.
The object I want to shrink to has to be scale-able at the top, middle and bottom. I have done this with a standard mesh and bones. Created drivers to control the thickness of the bones but not the height. However the mesh does not distort evenly. Even with weight painting the results are uneven.
The best result I get so far is shrinking to a cylinder with a curve modifier on it. To scale the curve you need to use shrink/fatten (alt s), which has excellent results. I want to control that scale with a driver but I can't. I can put hooks on the curve control points and put drivers on the hooks but it does not control the shrink/fatten.
Can I control shrink/fatten, on a curve, with a driver?
Edit: I think an alternative solution will get the result I desire, but I will leave this question posted in case someone comes up with an elegant solution to controlling shrink/fatten.
The alternative solution is to use a very low res mesh, hooks and subdivision. A cylinder with 6 sides, with three subdivisions/loopcuts along it's length. In edit mode select one of the three edge loops, Ctrl H to add a hook. Repeat for the other two edge loops. In object mode add a subdivision surface modifier with a couple of subdivisions. Now drivers can be added to the hooks to easily scale the surface of the cylinder, which will deform smoothly and predictably. No vertex groups or weight painting are necessary.
This gets the desired result, which is a smoothly deformable, curved surface, with drivers control the radius at three points.

Curves have Shape Keys. You can use these to define the shape and add the driver to them.
EDIT:
Actually I misread your questions. You can add a driver to a point's Radius  in the Transform section of the Properties panel to get the same result as shrink/fatten.

Nice. I didn't think of that. I will give it a go.

It does not work as easily as I hoped. The curve shape key does not hold the shrink/flatten data. Neither does the shape key of the mesh with the curve modifier on it. I can apply the curve modifier as a shape key though. However that applies the modifier, so it is removed. I would have to set up multiple curve modifiers with different shapes, or just use one, increase the max/min values to get more from that. It is possible, just needs to be properly set up in advance, in addition to the driver.

I misread your question, please see my edit.

That's it! I didn't see the radius in the transform section of the properties panel. I was looking in the curve settings.

I guess I could have said where it is as well, added to my answer.

I had looked this feature up repeatedly but did not find where it was from the manual or other posts. As everyone just mentions "alt s". You pointed me in the right direction.


text:
Geometry nodes: Character spacing animation
!UPDATED
I'm slowly trying to wrap my head around how geometry nodes work, but I'm having trouble with how I would go about animating the character spacing in each instance by proximity to an empty for example.
What I'm going for:

https://www.instagram.com/p/B_5U-SIBXl3/
And here's where I'm stuck:

I got the character spacing to react to a sphere in the scene, but how would I go about making each instance react to the proximity of the sphere?
Thanks in advance :)

With the Index node and a Set Position node you can control the position of the individual letters of the string. But I don't know you get the vertical position into that calculation.

Hi. The Geometry Proximity node does not work with an Empty because the Empty has no geometry, just a location. You need just to do some vector math to get the distance. Making a text that swings (x-axis) or a jump (z-axis) is easy to do that way (https://i.sstatic.net/kjkAR.jpg => https://i.sstatic.net/dtYga.gif) Stretching/expanding should be possible, too, I think. But I still have no idea how to several lines of the text with a vertical influence of the Empty. Maybe placing the letters on a grid would be a better approach? But how to duplicate the string for each row?

Updated: I got the character spacing to react to a sphere in the scene, but how would I go about making each instance react to the proximity of the sphere?
But is the right way to go about it? (see above) or should I fint a way to seperate each character later in the node system?

If you want to get close to this goal, you would have to approach this in a completely different way:
Instead of instantiating the whole group of letters you get with String of Curves as one object on a grid, you would have to instantiate the single letters from the String. You can do this by activating Pick Instance in the Instance on Points node.
All positioning, animations and everything where you want to have influence on the parameters must be done BEFORE the instantiation, because after the instantiation you only have access to the transformation of the single instances/splines/points.
Of course, you might think that after instantiation you could still extract the individual splines and their positions with the Realize Instances node, but that doesn't work for letters that consist of multiple splines, because Realize Instances then completely disassembles your individual letters and you can no longer work with them in a meaningful way.
So I have the following suggestion for you:

Just use a grid that has exactly the number of columns that corresponds to the number of your letters, and as many rows as you define.
Essentially, you have all the information you need at hand:

The number of rows and columns
The index and the positions of the letters per row and column

Now imagine that each point of the grid corresponds to a letter from your group of letters, and since the indexes of the grid points are nicely lined up and you know the number of your letters, exactly the text you defined will be visible per row. ...but as I said, the instantiation comes at the end.

First, you need to edit the individual rows of the grid so that it matches the distortion (or "expansion") you would like to have.

Since the indexes of the points of your grid are strung in order, you can easily use this grid for the base of your instantiation.
So far so good.
The trick is to find the right mechanism for a distortion/animation that suits your needs.
So in the last step, if you instantiate the letters on your grid and animate the whole thing a bit, it might look like this:

In this example, I just focused on the technique itself and tried to pre-build something in the right direction for you. I'm sure you can easily adapt this to your needs:

PS: The green nodes are especially relevant for you. With them you influence all parts of the grid's distortion as well as the animation.

...and of course you can do quite other things with this node group. Here are a few examples:

And here is the blend file:

Wow! This is absolutely perfect! Thanks a lot. Now I just need to wrap my head around what's going on here :)

You are welcome! Feel free to ask if you have any questions. I think the task/question is very good and it was fun to work on it. Good luck and have fun!


text:
Loop through instances (Geometry Nodes)
Reference to this question: Scale each instance by index
I kinda made it work with the answer provided in the previous post, but I'm having a hard time figuring out how to loop the instances when it reaches the end of the sequence.
What am I missing here:

Here's a reference of the effect I'm trying to achieve: https://www.instagram.com/p/CM5DvnqH92e/

Here is how you can do a looping animation in geometry nodes:

I use the frame, compare this to the index, and scale only that instance on this frame.
On the next frame, the next "index"/instance will be scaled. And so on.
To get the looping effect i need indizes from 0..10. So i use module with number of instances to get his effect.
result:

If you want to change the speed of the animation, just plug in a map node in between like this:

by changing the "to max" values you can change the animation speed.


text:
Scale each instance by index
I'm having trouble scaling each instance by index going from small to large for each instance one at the time. Right now my instances just go from large to small for the whole length:

And here are the nodes that go into the scale of instance on points node:

Hope that someone can help me out :) Thanks.
Edit: The answer below solved my question, but is there a way to make it loop through the instances? Now it just stops when it reaches the end.

i am not sure what you are going for, but with this node setup:

you will get this:

Awesome! Thanks you! This was exactly what I was looking for. If you have the time, it would be awesome to have an explanation of what's going on to have it go through the index like that :)
Now I just need to figure out how to loop the scale through the index, instead of stopping when it reaches the end.

Done. Sorry about that.

thank you!!!!!!


text:
Automated rendering actions in modal operator is cancelled
I'm trying to render a bunch of actions with a modal operator that is called with a timer. The first action is rendered as expected, and strangely some times the second and third are rendered aswell, but at some point
bpy.ops.render.render("INVOKE_DEFAULT", write_still=True, animation=True)

returns {'CANCELLED'}, which breaks my callback handler. If i render it in serial without "INVOKE_DEFAULT" it works just fine. I also tried calling the render operator multiple times if it failes, but without success.
If I use a higher timeout like around 2 seconds it seems to work just. But why? Is there some kind of race condition between my modal operator and the render operator?
class BC_render_modal(bpy.types.Operator):
"""Start blenderclonk render process"""
bl_idname = "action.render_modal"
bl_label = "Start render"

_timer = None

rendering = False
render_lsit = []
pending_list = []   # Actions of the currently rendered mode
composition_list = []

@classmethod
def poll(cls, context):
    return True

def execute(self, context):
    wm = context.window_manager

    # Prepare render list
    self.render_list = create_render_list(context)
    # Register timer to check render status
    self._timer = wm.event_timer_add(0.1, window=context.window)
    # Register post render reset function
    bpy.app.handlers.render_complete.append(self.render_complete)

    wm.modal_handler_add(self)
    return {"RUNNING_MODAL"}

def render_complete(self, scene):
    self.rendering = False

def modal(self, context, event):

    if event.type == "TIMER":
        if not self.rendering:

            if self.pending_list:
                print("Render action")

                self.rendering = True
                action_name = self.pending_list.pop(0)
                anim.selectAction(action_name)

                bpy.ops.render.render("INVOKE_DEFAULT", write_still=True, animation=True)

            elif self.render_list:   # Next render block
                print("Prepare render")

                mode, actions = self.render_list.pop(0)

                self.pending_list = actions
                prepare_materials(mode)

                if mode not in self.composition_list:
                    self.composition_list.append(mode)

            else:
                wm = context.window_manager
                wm.event_timer_remove(self._timer)

                bpy.app.handlers.render_complete.remove(self.render_complete)

                for mode in self.composition_list:
                    ComposeGraphics(mode)

                self.report({"INFO"}, "Render finished successfully")
                return {"FINISHED"}

    return {"PASS_THROUGH"}

EDIT:
Seems to be an issue with the render thread reporting finished before the job is actually done. Check out https://developer.blender.org/T52258 for detailed explanation.
Workaround:
This will lead to multiple failing attempts to start the render process but renders it eventually.
def modal(self, context, event):

    if event.type == "TIMER":
        if not self.rendering:

            if self.pending_list:
                print("Render action")

                self.rendering = True
                action_name = self.pending_list.pop(0)
                anim.selectAction(action_name)

                result = bpy.ops.render.render("INVOKE_DEFAULT", write_still=True, animation=True)
                if result == {"CANCELLED"}:
                    print("Render failed!")
                    self.pending_list.insert(0, action_name)
                    self.rendering = False

it's passed a while but I still have the same problem.
Is it possible that the issue is not solved? I had a look at the bug tracker and it seems closed but not solved...
Is there a better way in 2022 to launch a modal render and to be notified when execution finish?
I've also read in the issue that the suggested alternative is to use EXEC_DEFAULT instead of INVOKE_DEFAULT but to me this is unacceptable since I want to be able to interrupt render from UI.
Any news on this topic?


text:
Is there a way to apply uv texture in the middle of animaton?
I want to apply a UV texture (on the selected object)  in this frame but when I enter edit mode it pops back to the original position, can anyone tell me how to apply UV texture in the frame and this position? thanks

what kind of animation have you going? What Modifiers are active?

I was making some flowing paper and and I want to make them stick to the wall (as the image) and form an image. But when I try to put on uv texture and turn on edit mode, it just back to the original position and The paper are using cloth.

To unwrap it in the cloth simulated position you need to apply the cloth sim as shapekey, then activate that shapekey and project your texture in editmode, then delete the shapekey and add the clothsim back in.

It works, Thank you so much


text:
Weird bug with Alembic & Blender 2.8 + Eevee
I am working on my second project with Blender and I have a very weird bug.
I import Alembic files created with Quill and I time correct it with expressions to reproduce the stopmotion look (6fps or 12fps, converted to 25 fps).
It works well in the viewport and I already rendered my previous project with success in Cycles. Unfortunately, when I try to render my full scene with Eevee, my loops seems broken, and the animation becomes weirdly jerky and random.
On this short gif, you can see that the character animation is not smooth (sorry for the bad quality of the gif, it is limited by this website) :

When I try to unactiv some objects from rendering, it can randomly works again, but there isn't a specific object responsible of the bug.
It looks like that Eevee is randomly bugging with Expressions (or Alembic) when I have too many layers. I tried with differents Blender releases, it is still the same.
Is it a known problem ? Do you have suggestions to bypass this problem and finish rendering?
Thanks !

Welcome to the site! Firstly, please ask only one question per question. If you have multiple questions, ask multiple questions. Otherwise people might know an answer to your first but not to your second question and thus won't write an answer. Secondly, what do you mean when you say you try to "unactiv" layers and the animation looks "jerky and random"? Could you maybe even provide images, gifs or the .blend file (upload it to https://blend-exchange.giantcowfilms.com/)?

Thank you for your comment. I edited my post, I hope it will be more clear.

I think there is a synchronisation bug with the drivers in Blender 2.8, but I can't isolate it.
So, I used the fcurves in the graph editor to do the same thing.

Here is the expression I use to loop and keep the stop motion effect :
(round(25*round(frame*wantedfps/globalframerate)/wantedfps) - 1) % animationlenght+ 1
It works in the viewport, or with Cycles and lightweight scenes in Eevee. But it doesn't work with my scene with Eevee until I unactiv some objects.


text:
How to make object translations in the UV Editor (Scripting, Blender Python API 2.8)
I'd like to to perform translations on objects within the UV Editor via a Python script. Attempts so far have only affected the 3D Viewport.

From a user-based, non-scripted perspective, there are two methods I'm aware of: (1) toggle to transform mode and drag the object (2) adjust the X/Y values in UV Editor > UV Vertex.
However, neither of these methods print useful commands to the console.
Transform
This method prints a standard transform command, which if replicated only affects the 3D Viewport
bpy.ops.transform.translate(value=(0.16838, -0.0870929, 0), orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', mirror=True, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)

UV Vertex
And oddly, adjusting the UV Vertex values will print nothing to the console.

API Documentation
The UV operators documentation is where I would expect a solution, but it makes no mention of translations.
I've noticed space related parameters in the bpy.ops.transform.translate, but it seems they have more to do with the values of the translation rather than its context.
I'm currently exploring bmesh, but admittedly, I'm not entirely sure I understand the concept. A plugin I'm reading through from 2.79 does something like this:
bmesh.faces[0].loops[0].uv += vector

Any help is much appreciated. Thanks for taking the time.

The following is a response I received from Testure on Blender DevTalk:
It’s not only possible to do using bmesh, it is the correct way to do it.
In Blender, UVs are stored in loops, and loops can only be accessed through bmfaces. It’s super weird, but here’s a really rough breakdown of how it works:
First of all, when I talk about “loops” i’m not talking about edgeloops. In Bmesh, each face has N loops (where N is the number of edges in the face. Think of a loop as being a vert with a pointer to the next and previous verts that make up the face’s boundary. A loop is also like Bmesh’s attic. Any type of data that is not raw geometry coordinates gets crammed in there and you have to spend a lot of time digging through crap to find what you need (I could go on a pretty good rant about this but I digress). Anyway, that’s oversimplifying it a bit, but that should help you understand what I’m talking about.
OK so once you have a loop, you have to specify what loop layer you want data from. In your case, you want UVs- so you have to get and verify the UV layer using bm.loops.layers.uv.verify(). You’ll need that to manipulate UVs on any given loop.
Another tip- BMesh has no concept of UV islands or UV boundaries, or anything like that. If you have two quad faces joined by one edge, you might think that there are 6 verts, and thus- 6 UVs. You would be incorrect, there are two quads, so there are FOUR loops per face, and therefore 8 loops (thus, 8 UVs). If you want to “weld” two Uvs together, you simply give them the same coordinate, as long as they share a vertex Blender will treat them like they’re welded when a user goes to click on it in the UV editor. This is important to note- because if you’re trying to transform a vert’s UVs, it likely has around 4 UVs that all need to be transformed with it, or you’ve effectively “unwelded” the UVs and created a new split in the uv island.
I threw this simple script together, it should help you understand the nuance a bit better:
import bpy
import bmesh

from mathutils import Vector

def main():
    me = bpy.context.edit_object.data
    bm = bmesh.from_edit_mesh(me)

    uv_layer = bm.loops.layers.uv.verify()

    # it's useful to organize your UVs into a dictionary if you're manipulating a lot of stuff all at once,
    # otherwise you're going to be looping through bmface.loops a LOT.
    uv_verts = {}

    for face in bm.faces:
        print(f"Face #{face.index}")
        for loop in face.loops:
            print(f"\tv{loop.vert.index}: {loop[uv_layer].uv}")
            if loop.vert not in uv_verts:
                uv_verts[loop.vert] = [ loop[uv_layer] ]
            else:
                uv_verts[loop.vert].append( loop[uv_layer] )

    # now that we have a dictionary of UV verts, it's fairly simple to do transformations on the UVs on a per vertex basis
    # here we take all of the selected UV verts and move them up and to the right by .1
    for vert in uv_verts:
        for uv_loop in uv_verts[vert]:
            if uv_loop.select:
                uv_loop.uv += Vector( (10.0, 10.0) )

    bmesh.update_edit_mesh(me, False, False)

if bpy.context.object.mode == "EDIT" and bpy.context.object.type == "MESH":
    main()

Also, this is a really old doc so some of the info might be out of date/incorrect, but it was useful for me when I was trying to understanding how BMesh actually works.


text:
The Transmission weight = 1 in Blender 4.1 BSDF Node doesn't allow see through the object
In blender 4.1 when I use BSDF Node with Transmission weight = 1 the light doesn't pass through the object.

oops yes of course

To make Transmission work in EEVEE, you have to enable Refraction in the Render Properties under Screen Space Reflections and also enable Raytrace Refraction in the Material Properties and also give it a value > 0 for Refraction Depth (usually matching the object's size) if you want the IOR to have an effect on the refraction.
By the way, you can leave the Blend Mode at Opaque for this, because it is only needed for Alpha transparency, which is something different than Transmission.

Thanks a lot for your quick answer.


text:
after Rendering my animation, model was gone

after rendering my animation, i opened Video Editing then imported all my rendered imeges for the animation
after that i tried to open my 3d file, but when i did only Video editing pops up


text:
Cycles and OSL : how to implement a custom closure
I'd like to implement a custom shader in OSL (Open Shading Language) to reproduce the Hapke reflectance model (it allows to visualize the opposition surge effect, visible on the moon for example).
I have seen that it has been done in some scientific papers (see paper references below). But when I try to reproduce it I face a problem: even if I can write the reflectance BRDF function in my script, the float value obtained from it is not sufficient to obtain a rendering. I also need to integrate it through all the incidence angle possible (see Rendering Equation).
This integral is usually done through the use of closures in Blender cycles, if I understood well. But only a few closures are available, such as Lambertian or Oren-Nayar (corresponding in OSL to the method diffuse(N)). They would not fit my need, as Hapke's brdf function (f_r in the Rendering Equation) is dependent on the incidence angle and must be part of the integral, not multiplied afterwards to the integral result.

Do you know how I could create a custom closure in Blender Cycles? Knowing that I can have through nodes and drivers the input light incidence and the camera position.
If not, do you think I could use an existing closure to come close to the result I need?
Thanks in advance!

Paper references:

J. Villa, J. W. McMahon, et I. A. Nesnas, « IMAGE RENDERING AND TERRAIN GENERATION OF PLANETARY SURFACES USING SOURCE-AVAILABLE TOOLS »
L. Matthies et al., « Lunar Rover Localization Using Craters as Landmarks ».

Hi I think to do this you'll need to create your own closure, which means creating your own personal fork of blender. I've done this but I haven't made the git-repo with my code public because I'm still tweaking things. But here's a list of the files you'll need to add/change code for to create your own closure:
Modified: intern/cycles/blender/shader.cpp
Modified: intern/cycles/kernel/CMakeLists.txt
Modified: intern/cycles/kernel/closure/bsdf.h
Added: intern/cycles/kernel/closure/bsdf_(your_closure).h
Modified: intern/cycles/kernel/osl/closures_setup.h
Modified: intern/cycles/kernel/osl/closures_template.h
Modified: intern/cycles/kernel/osl/shaders/CMakeLists.txt
Added: intern/cycles/kernel/osl/shaders/node_(your_closure).osl
Modified: intern/cycles/kernel/osl/shaders/stdcycles.h
Modified: intern/cycles/kernel/svm/closure.h
Modified: intern/cycles/kernel/svm/types.h
Modified: intern/cycles/kernel/types.h
Modified: intern/cycles/scene/shader_nodes.cpp
Modified: intern/cycles/scene/shader_nodes.h
Modified: scripts/startup/bl_ui/node_add_menu_shader.py
Modified: source/blender/blenkernel/BKE_node.hh
Added: source/blender/gpu/shaders/material/gpu_shader_material_(your_closure).glsl
Modified: source/blender/makesdna/DNA_node_types.h
Modified:
source/blender/makesrna/intern/rna_nodetree.cc
Modified: source/blender/nodes/NOD_static_types.h
Modified: source/blender/nodes/shader/CMakeLists.txt
Modified: source/blender/nodes/shader/node_shader_register.cc
Modified: source/blender/nodes/shader/node_shader_register.hh
Added: source/blender/nodes/shader/nodes/node_shader_bsdf_(your_closure).cc
I would reference the Diffuse bsdf when it comes to looking at code. And then you can use the git logs for the toon bsdf for seeing what changes need to be made to add a new closure. It's a lot of code to take into account and understanding the git logs can be tricky since file names and locations have changed over the years since toon bsdf was first added to blender.
If you're still having a hard time adding your closure, I'll try and remember to post a link to my git-repo for my version of blender once I make it public. That will have the exact changes in each file you need to make to make your own closure.
I wish you the best of luck,
Nate


text:
Using Seperate XYZ node with Position attribute
I am trying to build a geometry node modifier that will display the position coordinates for each point of a mesh.  My thought is to use an Instance on Points node with String to Curves as instances.  The string values will be composed of the x, y and z coordinates for each point.  Here is my node setup:

Here is the result:

I know that the red dotted lines are where the problem lies.  They seem to indicate that I am providing multiple values while the Value to String node is expecting a single value.  I just can't figure out why the Separate XYZ node is outputting multiple values for X, Y and Z.  What am I missing?
Thanks!

you can search for "blender geometry nodes indexviewer". There are a lot of them on yt. here just one example : https://www.youtube.com/watch?v=jAiKVZyYUKU this should help you how to do it

According your actual experience, may I recommend to start with something like this : how to display point index next to the point?. There is another post about rendering floats, but I could not find it right now...

Apart from the helpful links provided above, for the simple question at the end to why the Separate XYZ node is putting out multiple values there is a simple answer: you use a Capture Attribute to get the positions of a cube's points. A cube has at least (like yours) 8 vertices. And 8 positions are multiple positions, aren't they? And the  Value to String can only convert one value, not 8 at a time.

Here is a second reference to visualize numerical values : Random values to string on each instance in Geometry Nodes?


text:
How to instance geometry rather than Objects?
I'm trying to reverse engineer the awesome setup of Felipe del Rio here.
I got as far as setting up an XY array with geometry nodes that instances objects using Line primitives. I want to repeat the XY output on the Z-axis, creating the basic shape of a building.
I am looking for a way to 'chain' the XY-axis output, but there are currently no nodes that instance Geometry directly (Blender 3.0 alpha). How would I achieve this?

I found Felipe del Rio's solution on developer.blender.org: https://developer.blender.org/project/view/121/
Felipe uses the Grid primitive, which gives you a 2d array option. No 'chaining' required.
I'll wait for further developments to see if instancing geometry becomes an option.


text:
How do I maintain the road's texture after applying the curve modifier to make the road a single object?
I created a road using a road-textured rectangular plane, bezier curves, an array modifier, and a curve modifier. But when I apply the modifiers to make the road one simple object, the material with the road texture gets applied to the whole road instead of individual faces of the road as it was originally.

Is there a solution to this problem?

You could try to assign the intended faces to the road-textured material, and all the other faces to another material. To get better answers, at least a screenshot would help.

Added screenshots

You have used object coordinates for the texture placement. You want to use UV, in the texture properties window make sure you are using UV for mapping. Before applying the modifiers go into edit mode and hit U->Reset. If this doesn't map the faces correctly to the texture, open image editor screen along the 3d view and adjust the UVs, most likely you just need to rotate by 90 degrees.

That solved the problem. Haha how simple... I was totally over-thinking it. Thanks!


text:
Black output of animation render
I have a VFX video project that consists of two scenes that are linked together with complex Compositing. I want to render the whole animation, but after rendering both scenes, Blender does compositing that turns everything into a black picture. However, the compositing isn't the issue because when I render any single frame, everything works right and I can see the anticipated result. I don't change anything in between; I just press the Render or Animation button. Using Cycles.
This is a screenshot of a frame rendered as a part of animation.

This is a screenshot of the very same frame rendered separately.

You can see that both have already gone through compositing so the problem has to be somewhere in difference of Still and Anim rendering.
Does anyone have any idea what's wrong? Thanks a lot.

There are a number of things that might be wrong, not the least of which is "nothing" ;-) Can you be a bit more specific about what you're seeing that's black, and what you're seeing that's okay? And WHERE you're seeing that? It's entirely possible that everything is rendering correctly, but that the Image Viewer is showing a black image as part of the compositing process. Upload a screenshot of the pane where you're seeing black. There's a simple setting that might fix what you're seeing.


text:
Remove inset area / Fill embossed text
I have a model that has some text embossed into it. I need to remove them. (We're still making it in the USA, but it is not legible when 3D printed.) Unfortunately this file was exported from something else and appears to be 100% triangles. What's the best way to do this?

This model is very complex and curvy on both sides. It makes things like disabling "Limit selection to visible" not useful because there is no perspective where all of the inset faces are visible.

If those insets were made as a part of model and if model has not very easy topology I can think that the easiest way will be to retopologize it, i.e. create another mesh atop original one using Shrinkwrap modifier. The lazy solution might be to remove embossed area and fill it with something like F > GridFill, i.e. creating flat grid surface instead of original one.

Your lazy way is definitely not for the lazy. There are thousands of triangles involve. I don't see how this can be done with the shrinkwrap modifier. I've only watched videos about shrinkwrap, but it looks like it would sink into the text.

Could you show us or share a .blend file?

@fabriced, Ugh! I don't know how I missed that the screenshot was not attached. I created it before I posted this. I bet the part about "We're still making it in the USA" seemed quite out of place without the image. Sorry.

Uploading a .blend so that others can take a look will probably be useful here. You can upload your file to Blend- Exchange and edit the resulting link into your question.

Unfortunately this file is not something I can share. But good to know for other situations. Thanks.

I'd suggest selecting what you need to without worrying about what else gets selected, then deselecting the extras later.

Switch to wireframe view (Z) so that everything under the cursor is selected
Use Circle Select (C) to selection the faces with the text.
Change your perspective so you can clearly see the extra select faces on the other side of the model
Use Box Select (B) or something like it to surround the region with the extra faces. Hold ⇧ Shift while confirming the selection to deselect.
Delete the remaining selected faces (⌦ Delete or X)
Select the open edge around the resulting hole with ⎇ Alt  RMB  RMB (yes, two clicks of  RMB to select the entire edge)
Fill with F, then if you wish, triangulate it to match the surrounding topology with ⎈ CtrlT ;)

Select the faces in edit mode, X and dissolve them

This looks promising. But my model is really complex and it makes it hard to select only the front without the back also. I'm learning to work with h & Shift+h & border select to get the right target. It's going to be a lot of work.

https://www.blender.org/manual/modeling/meshes/selecting/advanced.html

In edit mode click the "Limit Selection to Visible" button.


text:
Scratches on Metal
I know that there are answers to this question already but i tried doing the one answered by Gandalf 3 and this is what it looks like:

3d view

my node,
i love the look of it but i want to get rid of that blue shine and make the scratches not just get tiled, could anyone please help me?

http://blender.stackexchange.com/questions/51900/how-to-simulate-a-dented-surface-for-metal/51908#51908

You can make a procedural texture(never tiles)https://www.youtube.com/watch?v=e4BhdrFDHkQ    Or you can sculpt the scratches http://blender.stackexchange.com/questions/52127/what-is-the-workflow-to-sculpt-construction-lines-using-the-curve-stroke-method

As is visible from nodes and image, the image texture was used for scratches. To get rid of tiles you will have to make that image texture tileable. You can use photo editors' plugins or do that manually.


text:
How can I add shine on an object
Could someone please tell me how to add a small shine to an object, it should look like this:

You could also add it via a lens flare. Through the compositor. I feel it would give you more control as well. See this YouTube tutorial from Blender Diploma.
https://youtu.be/iMjcyL0QvIU

There are a number of key factors you must have to even get close to this effect:

You need to have a material with some amount of glossy mixed into it.
Then you need to bevel the edges of your geometry
Add a light to the scene (a strong one if possible).
You should be able to get some level of light reflection off the edge in the render.
Then in compositing you'll need to pump up the glint with nodes and then run it through a glare node to get something similar to the example.

Level Up Tip
If you can get that working, you might want to try Troy S's new LUT's for blender which allow your scenes to be rendered with high dynamic range. One of the main benefits of high dynamic range is that glints and glares are much more powerful in the compositing phase.
Screen Shots (using default sRGB LUT)

Material setup, geometry and light

Alternate angle of object in scene

Compositing Setup to accentuate glint and add glare effect

Thanks Todd, what light would i use and how would i turn up the glint? Thanks again

You can see in the screen shot that I'm using a spotlight from the back to get the glint on the front top edge bevel. I cranked the strength up to 5000 to add more reflection. The spotlight is good because it gives you more creative control.


text:
Lighting a City
For a while now i have been trying to recreate the picture below, it is a city scene from Spider-Man: Into The Spider-Verse.

But i am struggling with the lighting and my project ends up looking very dark with few reflections, here is a render:
What i would like to know is what i have to change in my scene to achieve the look i am going for. Inside of each of the buildings i have one plane with a city building texture on it and that is hooked up with an emission node.

I guess you need to put a bit of mist. Also maybe they mainly use image textures for their buildings.

what version of blender are you using?  Trying to open with 2.79 and it crashes immediately

sorry, i am using the 2.8 beta, although it was modeled in 2.79.

I agree with Rix Yarbrough, the scene needs more light.
But the light is not to use it as is, but to play with it later in the compositor. It just asks for some glare filter for the windows. You can add material index pass to your render layer to use glare only for windows (and set pass index for the material as well). Or just use Emission render pass.
Believe me, you will never get an image like your reference with raw render only and no post-processing.

Make the lights inside the windows brighter, maybe? Also maybe use some stronger, colorful world lighting, just to fake the effect of bright city lights. This will brighten up the scene more.

Try a night time HDR from: https://hdrihaven.com/hdris/category/?c=night
This will liven up the scene a little bit, but to make it as vibrant as your screenshot, you should add some colored lights between the buildings


text:
Makeclothes: singular matrix in corner weight
We're using the Makeclothes module in Blender to create clothes and we face a problem: while exporting, we get a small box with the error message: "singular matrix in corner weight".
After looking at the Python code, I find that the full error message was printed in the console. I get it, get the number of the vertex producing the error and we're able to select it.
Right, but what does this error means and how can we correct that?
Note: we delete the vertex, create it again and now that's OK. But the question remains: what does it means??

can you add a link to this Makeclothes addon you are using?

Here: https://github.com/TeoTwawki/makehuman/blob/master/blendertools/makeclothes/makeclothes.py  The error display is generated on line 555. But there's no real explanation (which is the case with other errors)


text:
How to track an unknown number of objects in a multi-module add-on
Trying to initialize an empty list that will later be manipulated by  operators on button click (add, remove, get). The list can either be populated with objects or object location tuples.
Pseudocode
Ideally the code would look something like this:
# __init__.py
bpy.types.Scene.prop_name = bpy.props.list(
    items = []
)

# some_operator.py
bpy.types.Scene.prop_name.append(obj.location)

Likely Solutions
Unless there's some methodology outside of bpy.props, EnumProperty or CollectionProperty are likely places to start, but no luck so far. Worst case scenario, I could use a string, then convert it later into tuples - but that seems excessively abstracted from the original goal.

@batFINGER suggested using a custom object property instead of maintaining a list - which is a good alternative for my use case and avoids bpy.props entirely. Below are implementations written with the help of devtalk.
Adding is fairly straightforward.
# add an object to list
obj["prop_name"] = 1

Getting a list can be done in a couple different ways depending on how unassignment is handled - adjusting the prop's value...
# remove an object from list
obj["prop_name"] = 0
# get list of objects
objs_list = [
    obj for obj in bpy.data.objects
    if "prop_name" in obj and obj["prop_name"] == 1
]

... or deleting it entirely.
# remove an object from list
del obj["prop_name"]

# get list of objects
objs_list = [
    obj for obj in bpy.data.objects
    if "prop_name" in obj
]

Either way, these 'get list' implementations avoid iterating through the full list of objects.

Update: Ended up using the other solution.
Other implementations were mentioned on devtalk, but bpy.props.StringProperty was quickest to implement.
# __init__.py
bpy.types.Scene.protected_object_names = bpy.props.StringProperty(
    name = "Protected Objects",
    description = "Objects that shouldn't be deleted."
)
# this prevents an unassigned error that bpy.props.StringProperty.default fails to solve
bpy.types.Scene.protected_object_names = ""

# persist_protected_object_names.py
for selected_index, selected_object in enumerate(bpy.context.selected_objects):
    selected_object_names.append( selected_object.name )
obj_names_string = ','.join(selected_object_names)
bpy.types.Scene.protected_object_names = obj_names_string

# some_operator.py
protected_object_names = bpy.types.Scene.protected_object_names.split(",")

Wouldn't do this. Can't see the reason to use a class property as a variable. and redefine it from bpy prop to list to string ... for a bpy.props defined class prop It's the instance eg context.scene.foo that is generally used in operators etc. This could be from my_addon import my_list ... or ...  Could simply tag any  object with a custom property  ob["protected"] = True

Tagging is a great idea. When I attempted importing, the list didn't maintain state across multiple files. Maybe you could post a solution.


text:
Jet stream of water
I would like to simulate a stream of water like the one in the picture, but I don't know how to simulate the fast-moving, white water.
Should I use particles to simulate foam or is it much better to concentrate in the material properties?
Thanks

I've tried 'Fluid' but it's totatlly not what you are looking for, then I've tried 'Particle System > Fluid' with a higher 'Timestamp' it was pretty ok until I increase amount of particles a lot and it's just went nuts. So my last try was with 'Smoke' and this was pretty (-10 temp in smoke flow) good but I cannot reproduce small flow radius at the top and wider at the bottom.

This guy does it pretty well but he not explain it too much: https://vimeo.com/70788800

Result:

This is closest I can get with my PC.
Setup:

Turn on Metric units.
Create small Cylinder. 17x20x60cm with 6 sides.
Press Space and find Quick Smoke.
Resize domain to about 5x5x5m - big size prevent from gathering smoke around stream.
Place everything like in the picture below.
In Render Tab > Light Paths make sure Volume is greater then 0. Higher value will give smoother stream as light will bounce more in it.

Smoke Flow:
With Cylinder selected go to Physics Tab.
Change Temp. Diff. to -5. Lower value gives more speed.
Change Flow Source > Surface to 0.1.

Smoke Domain:
Change everything as in a picture.
You can increase resolution for more detailed stream.
Vorticity change turbulance in stream. In this case it's low because simulation is small in metrics.
Noise Method > Strenght control how wide stream will be at the bottom (higher value, wider stream).

Material:
Materials aren't my thingy so here is only a small modification to smoke base material. Play with Brightness/Contrast for stream color.

Blend file:

Final toughts:
I think that with higher resolution and better material you could achieve pretty realistic results and my answer will be good starter. In addition to this you can use particle > fluid for those little drops around stream.

authors: Дмитрий Карабашиди


text:
Using Nodes for Laser Line
I am currently trying to recreate the laser line described in Making a Laser in Cycles - Straight Beam of Light?
I have selected the Cycles Renderer, enabled nodes on my light (spot and point tested). I can modify the strength and color using various node outputs so the nodes seem enabled. I have tested the other types of laser schemes presented in the link above but none produce output close to what is expected.
Is it the light source which I should be modifying the nodes for?
Something that feels quite strange to me is the use of the value of the cross product which I am uncertain how it would be defined. (area of the parallelogram between the vectors?)
Have I missed something fundamental about how nodes work and if so a source to start reading and learning about them would be appreciated.
Thanks in advance.

The use of the Cross Product in that example doesn't make much sense - in fact, I don't seem to be able to get that setup to work. The Value output of the Cross Product gives the average of the individual (X,Y,Z) elements of the vector. This could be argued to make sense if the X, Y, Z all have the same sign (ie, all positive or all negative) but as soon as you get a mix of different signs the result becomes effectively meaningless.
My own take on the 'Laser Line' issue would be to use a Point lamp with a small size (eg, 0.01) with the following nodes :

The 'Size' of the lamp will affect the width of the laser line, as will the value in the Less Than node.
Here a 'seed' vector is used to control the direction of the laser, adjustable via the Mapping node. This allows the vector to be easily rotated. The Dot Product compared the direction of the ray with the direction vector - if they are close enough (within the Less Than threshold) then the lamp emits light, otherwise it does not. The Ray Length is used to effectively tighten threshold the further the ray falls from the source - this ensures the ray doesn't 'spread' as it gets further from the source. Similarly, the Light Falloff node ensures the strength of the lamp remains constant regardless of distance.
This can produce the following result :

Thank you for the detailed answer, and apologies for my quite late approved answer tick. I have since this posting made a few different approaches to laser line simulations optimizing against different parameters (speed, realism) I'll see if I can get them to a shareable platform some day and post here for future searchers.


text:
Build a simple GUI that runs full Blender in the background?
I have a Cycles-Blender model, which I want to release to the layman users who don't know Blender and give them some freedom to manipulate and explore the model a bit (simple operations like rotating the model around or setting visibility of a certain object, etc.).
For this use, I want to build a simple GUI that "wrappers" Blender inside. For example, I can add a button that sets an object invisible in rendering.
Another important feature I need is the user being able to drag/rotate/zoom in/etc. the model, and as soon as user interaction is done, the render starts progressively. It's the same thing when you are in Object Mode with Rendered as Viewport Shading.
Is there an easy/clean way of doing this?
I am a CS student and know how to code in Blender-Python. So if there isn't a clean way, please also teach me the dirty way to do it. ;-)

This question isn't the same as How to create a custom UI?, which wants to customize around the Blender GUI. Instead, I want to build from scratch, as the layman users really need super simple GUI's.

have you considered a web based front end? https://sketchfab.com/tags/blender does a remarkable job depending on the end users machine and the scene complexity.

@rob Actually web based front end is even better! Wow, this looks very promising! Do you know how I can build a similar front end? I may need more functionality than what sketchfab already has.

I do not can you not directly use the sketchfab embed option? otherwise I would suggest opening a dialog with them as they may have skin-able version though a fee maybe required.

sketchfab is an excellent suggestion that I chose to follow. Thanks @rob!

Sounds like you're trying to re-invent the wheel.
I'd imagine you might use Python for your GUI
to remain consistent with Blender scripting.
I'd look into PySide.
It's an open-source Python wrapper for the Qt lib.
PySide can access OpenGL via PySide.QtOpenGL calls,
so you'd have a way to view your model that way.
Then you'd most likely use a subprocess call to Blender
on the commandline for your final render.
If you need to access bpy and all those features,
you could compile Blender as it's own Python module:
https://wiki.blender.org/index.php/User:Ideasman42/BlenderAsPyModule
You might look into the Blender 101 Project first.
https://code.blender.org/2016/12/the-blender-101-project-and-you
It might do what you're trying to accomplish.
Contributing to that might be an easier way
for everyone to enjoy using Blender, even beginners.

Many thanks for the pointers! This sounds great for all but one feature: as soon as the mode manipulation/zoom-in/etc. is done, it should start rendering progressively. It seems that worst case scenario would be to repeatedly call Blender's render process and update the display. Not sure if that's a good idea?

Progressive render from the commandline?  That's a tough one.  You can have pre-generated scripts that the user fills in values, by way of your GUI.  Then just run those to set render options.  http://blender.stackexchange.com/questions/3061/setting-render-options-from-the-command-line  - but I can't imagine you'd see the display update 'till it's complete.  Maybe by compiling Blender as a module it would give you access to the render buffer?  I'd imagine it's in bpy.data somewhere.  Then update gui after each pass.  You might have to look into the source code to figure that one out though.

I believe the proper path would be:  bpy.data.node_groups["Compositing Nodetree"].nodes["Render Layers"].layer[0] as your Image, with .layer[1] as Alpha, and .layer[3] as Z