How to use these 6 textures ripped from a CryEngine game, with cycles render? I have extracted a character model and textures from a game using NinjaRipper. The game is the mmorpg Aion and uses CryEngine.

I found in the generated files 6 textures for the same mesh, but I have no idea on how to combine them to get the in-game appearance :

Based on the tutorials I could find on youtube, I am kind of guessing the purpose of the ones on the left (Diffuse, normal and specular maps?), however, the other ones are a total mystery.

The character itself looks like this in-game :

I noticed the Cryengine docs section on textures isn't complete but I managed to download a model and look at some of the textures. Hopefully these educated guesses will point you in the right direction.

I'm not seeing anything that matches the texture and color of her skin,
so that could be the game-engine vetex shader coloring the model and
using 1 for texture details. The model I downloaded also had 1a as an
alpha channel for the eyelashes.
Seems to be masking out the face to apply some effect on the lips.
Don't know about the rest.
You guessed it, the normal map. This one doesn't have an alpha
channel to handle gloss as mentioned in the Cryengine docs.
The eyebrows on this image don't match 1, So its possible that they
are only using the blue parts, perhaps in combination with 2.
This seems to be the Unified Detail Map, Which is separate from the
Normal map. This has an alpha channel so its controlling the glossiness.
Possibly for an effect in the eyeball geometry, Perhaps with the
sclera bit in 4

With all this in mind, you may need to do a few adjustments to some textures for blender, and you don't have to use all of them. For example; Blender doesn't use alpha channels to control glossiness, you will need to make a specular map based on the Alpha channel of 5.

The exact setup will depend on whether you are using Blender Internal or Cycles.


How to get rid of the odd lines shown in the image? I made the texture 2048x2048 in GIMP.
The odd lines are caused by GIMP's blur.
I'm not killer with nodes, so how do I get the height map not to show these odd lines?

These "lines" are the border lines between different values on the height map. The Bump node converts grayscale gradients to normal map angles and the gradients only work on these borders (or value steps). Since you are using a 8 bit image you only have 256 different values to play with. To make things worse, you are only using a small part of that gamut (you don't use fully white to fully black) so you end up with about 70 grayscale values.

So what you need to do is to take your height map back to what ever image tool you use, convert it to a 16 or 32 bit image, adjust the levels so that the information uses the full gamut and blur the edges away.

This problem is a handling problem, not anything that a specific tool introduces.


How can I subdivide this if I cannot use the loop tool cut? So I want to subdivide, then use LoopTools and finally circularize that section to include that piece of the model in the object (the one in blue on he photo and previously modeled), but I can't. Please, any suggestions?
Thanks in advance to everyone who took the time for reading this!

At least one of your polygon has more that 4 vertices ; this one has 5 vertices:

You can't use the Loop tool because you've got NGons (more than 4 vertices). You can use the Knife Tool instead.


Where are IPO curves and deltas? I'm following an old tutorial from January 2006 (Blender Art Magazine). It mentions IPO curves and delta channels. I'm now working in Blender 2.75a and I can't find any IPO curves except the Graph Editor and F-curves. Also can't find delta channels. Has it changed since version 2.40? If so, how or where to find the same functionality in new Blender?

The online manual states that "In Blender 2.5, IPO Curves have been replaced by FCurves, however, editing these curves is essentially still the same."
https://www.blender.org/manual/animation/editors/graph/fcurves.html

I'll dig more for "deltas" info.
[edit] see this thread an BA it may help you: http://blenderartists.org/forum/showthread.php?219126-Move-Existing-f-Curve-to-delta-equivalent [/edit]

I discovered there is an option "Animated Transforms to Deltas" available through the space bar command search tool, it should derive by this GSoc work http://aligorith.blogspot.it/2011/05/gsoc11-greeting-goodies.html (this is what the last comment in the above cited BA thread refers to)


How to visually rotate uv/image editor's canvas? I'm asking if it possible to rotate uv space same way as canvas in photoshop or alike drawing software, only to make drawing more comfortable in some cases, not actually rotating texture

The UV/Image Editor is not intended to be a full fledged 2d editor like Gimp, Krita, or Photoshop, but to be a tool toward small editing and basic texture set up that might then be opened up in a better 2d editor. HOWEVER, I am somewhat of a blender addict and fell in love with the paint tools as they have been added through the GSOC a few years ago, and with some help from some pretty good friends worked on an addon to use the 3d view as a 2d editor. Result ended up being the Artist Paint Panel, and then evolved into the EZDraw panel. Coupled with the Texture Paint Plus version on my github as well as the EZdraw popup, there is a lot I do with 2d painting in the 3d view now - I almost only go to the 2d editor window just for the isolation of a single texture image versus the multi layer effect in the 3d view. FOr now it only works with Blender Render, but we will adapt it to Cycles as it becomes possible.


How can I make texture repeat 'n' times in blender I want to repeat the uv mapped texture by precisely 'n' times without using array etc. How can it be done?

Use the Min and Max Values of the vector mapping node:


Make white molecular particles on the outside and red on the inside? I have been struggling to try to make the inside of my molecular mannequin red (to sort of representing blood) and the outside white. For a reference ...

I have now aimed for a collection of white/red spheres, have tried count, random, and so on without coming close to what I want.
I want to render it in Eevee any suggestions? Something I can do in the shading tab?
Here is my try ...

I'm not sure if reference object in your linked video is done by the same way, but you can try ...

for outer particles - add Solidify modifier to your object
for inner particles - copy outer object, Apply modifier, go to edit mode select one outer vertex, select Linked L, delete, Recalculate Normals Shift+N

Like this you create "inset" object without overlapping particles.

Enable under Collision

Activate Collision with others
Enable under links
Activate Particles linking with others


How to render an animation starting in the middle? So, i am rendering a heavy animation, and i'm halfway done. However, i stopped the rendering so i could work on another project during the day, and i plan to resume the render overnight. I just cant tell Blender to start rendering the animation in the middle. BTW this is still 2.79b. Thanks guys.

In the properties panel choose Render settings (the camera). There is an option to choose your starting frame as noted in the picture below:


Normals not at centroids Why aren't the normals for the two inner rectangles located at the rectangle centroids as are the normals for the two outer rectangles? The four rectangles are supposed to be identical.

I'm running v2.80.44.

Thanks.

Solved. Reduced problem to four rectangles and noted vertex count in status bar. The two inner rectangles each have an extra vertex.

This also shows that the location of the normal is not the centroid of the area, but the centroid of the vertices.

Blend uploaded to .


How to delete relationship lines? I imported this building, and there are all these relationship lines in it. How do I delete the relationship info? I know how to hide the lines, but assuming they're 'junk', how do I get rid of them?

Select objects, press Alt+P. Select Clear Parents and Keep Transform, if you want to keep their current positions.


Animation Nodes - How to make a series of waves For future projects with motion graphics, I wish to know how to make transition with waves with AN.
Below examples were made in Moho Pro, in which waves are morphed into rectangles. Speeds are varied.

We start by creating a grid that is high resolution along the y axis and offset its vertices by some amount equal to a multiple of the sine of a multiple of the vertices' y locations. Since this is a grid, a float range should represent the y location of the vertices and thus we have:

Notice that the mesh morph into a rectangle when the multiple (offset amplitude) approaches zero. So, we are going to create a number of waves that moves and morph into rectangles in a delayed fashion. To do so, we use a loop that takes factors as iterator, this factor ranges between zero and one, where it is zero at the start of its animation and one at its end. We are going to modulate the amplitude of the offset based on the factors as follows:

Then, we are going to offset each wave by a certain amount. This amount depend on the factor as well as the index of the wave. The factor is used as a factor in mixing between zero (no offset) and some end value (max offset), the max offset is determined by a multiple of the inverse of the normalized index. The normalized index is computed by dividing the index by the number of iterations, the inverse is computed by computing one minus the normalized index, the multiple is computed by multiplying the number of iterations (waves) by their width to make them stack tightly.

Finally, the factors are generate by evaluating a delay falloff:

The speed and iterpolation can be adjusted from within the falloff node.


imported .stl model is tiny. How can I set the scale correctly? I am importing .stl to blender. Once it was imported, the object appeared in blender as a tiny dot at the center of the grid(0,0,0)
For example, when I created an object with the dimension of 1.18cm X 2.99cm X 3.19cm, then export it to .stl. Later on, I import it to blender, the dimension became
1.18m X 2.99m X 3.19m. Why does blender change cm to m? is there something I am not setting correctly in Blender?

STL file does not have information about units and their scale, https://en.wikipedia.org/wiki/STL_(file_format)

So you need to set the units and scale in Blender before importing your stl. This is done on "Scene" tab under "Units" group.


Why are the internal parts of the model disappear in blender game engine I have problem with my project when i import a 3D world inside blender it be normal the texture good and clear but when i run the game it be like this:

Normal view:

If someone can help me i will be thankful :)

There are a few things that could be causing this.

First, backface culling

That happens because the inside of the mesh are backfaces and somewhere, (in the object data panel or in the materials panel in the properties menu) there is a checkbox for backface culling that is set to true. If you turn it off, then the backs of the faces will no longer show through.

Second, Your camera/viewport could be inside the mesh a little bit.

Third, your normals could be off in some way. Go into edit mode, select everything, and "recalculate normals." you can find this command by pressing the space bar and typing 'normal' until the command comes up (if you are using 2.79 controls) or by pressing f3 (if you are using 2.8 controls)


How to switch between two fonts using a decoding animation while the letters rain in from the sky So far ive found a tutorial for the decoding animation and got that setup.

I want the random letters to be font-A and have them decode into into font-B while falling into place from the sky, then decode backwards into another word. The falling from the sky part is kinda optional, i just need to know how to use 1 font for the random characters and another english font for the decoded word

You can try per character animation using Decompose Text node. I think this node is much more flexible to use.
In this example i used falloff to offset size between two text instead of slicing.

For multiple text we can create text list. To appear each element once in a circular fashion we can use Shift List node. The setup below makes text element appea every 40 frame one by one.

Full node tree with a above setup added:

For back and forth effect we can create switches for matrices. Each switch will have two inputs reversed and non-reversed matrices list and output is altered using modulo function.


Quickly add texture coordinate and mapping nodes shortcut? I know there will be a very quick and easy answer to this if someone knows it. I've seen it a few times in some videos where these two nodes can be added in with just a shortcut but i can't seem to remember how to do it or find the videos which show it. I do have the node wrangler add on. Using blender 2.79b.

thank you

Just figured this one out. Ctrl+T will do just that. The action is named "Texture Setup" in case you wanted to use the search function to edit the hotkey.


Some of the normals have been flipped when in tried converting my model to low poly I have used decimate option for converting my model to low-poly after doing that some of the normals have been flipped. I haven't understood that why is it happen. can anyone suggest me solution.

Thanks in advance.

You can easily flip all your faces into one direction by clicking Ctrl + N
This should solve your problem.


image texture doesn't work I made a manatee object and took a picture of the toy's fabric.
I try to add the jpg file as image texture but it seems doesn't work.

could anyone help me with this problem?? (T-T)
Thank you very much.

The manatee model has no UV map. So Blender does not know how to use the texture image.

You can either create a UV map, or change the vector input of the image texture node.

Below, add a 'texture coordinates' node and plug object or generated output to the image texture node.

Then change projection method to 'box'.


How can I recreate this lighting? We have had this bed created for us by a third party and I'm wondering if it is possible to recreate this lighting in Blender Cycles? I create simple bed mock ups from drawings and this would help tremendously in their presentation.

I have looked at various guides and tutorials but haven't found anything tailored to my needs.

1) With Blender (Cycles Render) and Photoshop you can do it this way:

Create your object.
Create a plane under your object. Keep this plane selected. In the Properties panel > Object > Cycles Settings, enable Shadow Catcher.
In the Properties panel > Render > Output > Choose PNG and RGBA so that you can have a transparent channel, and in Film > enable Transparent.
In the Properties panel > Render > click Render.
Open your image with Photoshop, you have a PNG file with transparency and there is a shadow under your object.
In Photoshop, put a white layer under the object layer.

2) As Risingfall says, if you know how the Compositing works, you won't need Photoshop, just use a white background and an Alpha Over node.

3) A more basic solution is to play in your 3D scene with a structure of planes that either have Diffuse shader so that they can receive shadow, or Emission shader, so that they stay 100% white.


Blender Texture Painting I have an image texture with black color. After i unwrap the object with smart UV, I have painted the entire object with colors. While i render, there are some part that have black stripes, and i assume it should be the color of the image texture. But if i have painted the entire object, how come there are still some part that is not being painted so it shows the color of the image texture?

Totally beginner here and Thank You so much.

This is the blend file i am using.

Look in your tool settings under Properties for the Options panel, and set your bleed higher than 0, preferably 2 or maybe 4 pixels so that it will go 'outside' the uv mapped mesh, filling in the visible seams left by not enough overlap.

Here is your file with the subdivision turned on, and then a full strength dab applied across the black area.


2d image to a 3d model Anyone know any add ons or anything that is robust enough to turn a full body 2d image of a person into a 3d model?  If something like that even exists.

For an example if I took a full body picture of myself and put it into the software to convert it into a full 3d obj model.

This link is a good example of what I'm trying to accomplish. But a full body obj instead of just the head

https://youtu.be/geQCzan6Usc

Is this possible to do within blender or by any other means?

What you are referring to is called Photogrammetry, another option could be a 3D scanner

At this stage there aren't any options available in blender and I don't know of any addons. What is currently available is standalone software that creates a 3d model from an image. Some of the available options listed in the above link might be used to get a 3d model that you could then import into blender.

Normally blender users use images as a reference when modeling or sculpting within blender. An image can be shown in the 3DView as a background image or attached to an empty.


How to fix topology seams I am trying to model a part of an airplane. I have a problem with some slight distortions in the mesh. How can I fix this so that it  looks like a smooth continuous surface.

What it should look like:

blend file

I found a method that works to some extent, it is not perfect but I think it is the best that can be done with the topology.

Duplicate the mesh

we will use this to create a seamless version

Delete the faces where the cutout for the seat is

this is the geometry that is causing the problem

Select the edges at the ends of the hole and use the Grid Fill tool, Ctrl + F

The grid fille we fill the hole with some nice polygons, these will not look distorted

Add a subdivision surface modifier to the mesh

Select the mesh with the topology for the hole
In edit mode select the faces at the hole and a few faces and around it as well

Add the faces to a vertex group.

Add a shrink wrap modifier to the mesh with the hole

Select as the Target the mesh without the hole
Select as the Vertex Group the vertex group we created in step 8

Final Result


Objects not detecting each other? I have a sensor object that I need to execute a certain function once it detects a certain static object. Everything works, except it always has difficulty detecting it. The only way to make it guaranteed to work is if I scale the static object by an absurd number, this way it will always collide; however, I can't have my object be so large! Is there any way to fix this issue and have my sensor object detect the static object consistently? Thanks!

Collisions detect intersections of faces only.

If your object is "inside" the over object without intersecting any face it can't be sensed.

If you want this kind of detection you need to ensure the sensing object has no gap that a sensed object could "hide" without touching a face (and vice versa).

The background is simple: The physics engine does not perform "inside" checks. It assumes that objects will intersect a surface before being inside another object. This is for performance reasons. Unfortunately small fast travelling objects can do exactly that.

A possible solution for you is to add additional faces inside the surrounding object.


How do you add emission to singular faces So i'm trying to make assets for a video game and I recently hit an obstacle, and that obstacle was adding emission to a certain face on my 3D model.... Can anyone help me out?

With the object in Edit mode:

Select the faces you want to be emissive.
Create a new material slot for your object, if necessary, (+ on the right)
Either create a new emissive material (+ bottom center to copy and overwrite the material in the selected slot, or New if the slot is empty), or if the material is already created, select it from the dropdown list (below the Assign button)
Hit the Assign button.


When duplicate groups the copy is in the same group Old problem of mine:
When a duplicate a group the newly generated (copy) objects are
part of the old group.
Is it possible to have the new object in a
new group?
Thanks.

The reason that this is happening is that when you duplicate an object all of its properties are duplicated as well, not just the geometry. Group membership is one of those just like materials and modifiers. There isn't a way to copy only a limited portion of an objects properties so it's all or nothing. The shortcut provided by Dan will work to remove the object from the group. Remember that you can add and remove multiple object from groups with Alt+G to add to a group and Ctrl+Alt+G to remove from group. The name of the group can be changed in the outliner.

Update: In response to Kim Holder's statement about 'Alt+G'. That is correct and what I should have put was 'Ctrl+G' to add to a group. When you do that the Operator window in the Tools panel will give you the option of naming the group or you can change the name in the outliner.


Is it possible to use two GPUs in viewport rendered preview, and not only for final render? I have two Nvidia GPUs and they work fine in normal rendering (when I press F12, both are working).

However, in viewport, when I select "Rendered" as a viewport shading mode, only one is used. Is it possible to use both of them in viewport?

Yes. Open User Preferences and go to the System tab. Under Compute Device, select CUDA and multiple gpus (should be the one with (2x)). Next in the Render context, make sure that Device is set to GPU. It should now use both for rendering in the viewport.


How to create a plane about such dimensions as the length of other edge? How to create the square (plane) about such dimensions as the length of some  other edge from the scene?

There are several ways to model with precision, and the first step in this kind of modeling will be to turn on Edge Length and / or Face Area options in 3D View > T panel > Mesh Display rollout.

After duplicating the original edge there are several options to model square plane then.

Extrude with snapping

Turn on snapping with Shift+Tab and set it to Increment. Alternatively, without turning it on hold Ctrl while extruding.
Extrude edge and see the values of the edges.

Duplicate and rotate original edge

Set the Pivot point to Active Element, duplicate original edge, rotate it by 90 degrees around appropriate axis (in this case Z).
Select all and press W > Remove doubles (because one appeared when you rotated the edge).
Select 2 vertices on the edges' ends and connect them with F. The triangle was created.
Subdivide the diagonal edge. Select the vertex which apeared after subdivisioun, turn on snapping, set it to Vertex and grab selected vertex to align it by X and Y axes with already existing vertices.

Read:

Showing measures in the viewport
How to model effectively using exact measurements - related question.
Mesh Display panel - wiki


Creating water in a glass another newbie question...
I have created a glass in this way: pic2-4.
Then I tried to create water in it by duplicating an inner layer and making it a separate object: pic 1-5.
The problem is: when I extrude the top vertex to create a water surface (as I duplicated an inner layer after I created a glass and deleted a top vertex in it) I cannot close the hole in the surface. Also, there are grey shadows, which I suppose shouldn't have appeared.
Maybe there is another way to create static water?
The file is here: https://www.dropbox.com/s/dxt3xajio75if1o/file1.blend?dl=0

Select the vertex you extruded, and bring out the Properties panel (hit N or click View -> Properties). Under Transform, make sure Local is set, then manually set the X and Y coordinates to 0, but leave the Z coordinate as is. This will adjust the vertex's position to right above the object's origin, without moving it up or down.

Strictly speaking, the hole is still there after this, but it has a size of 0, but it may become visible again after subdividing, as this may also move some vertices. To remove it altogether, you need to click Apply in the screw modifier, then go into edit mode and remove double vertices. To do this, select everything by hitting A as many times as needed, then hit CtrlV followed by D or click Mesh -> Vertices -> Remove Doubles.


How does a normal map contain more information than a heigh map? I know that a bump map stores height information as 1D grayscale values, while normal maps store normal information as 3D color values.
However, a normal map can be obtained from the spacial derivatives of the bump map, what can even be done in standard image manipulation softwares, like Gimp.
So, I would conclude that the normal map does not really stores more information, it simply stores it in a "fancy" processed way. Both maps would be just different standards for representing the same thing and there should be no reason for both bump and normal maps exist. We could chose only one by convention.
However, both bump and normal maps are commonly used, even together sometimes. They are both implemented in Blender and other 3D softwares.
So I suppose I must be wrong in some way, and both maps actually achieve different things. But I can't figure out what I'm missing

The maps do not achieve different things; they both turn into normals to be read by the shader or raytracer.  But you're not wrong: you can make a typical tangent space normal map from a bump map and a UV-mapped mesh*, but you can't make a bump map from a tangent space normal map**.  If anybody is saying that a normal map contains more information than a bump map, they're mistaken.
But there's a difference between having more information and having more precision.  And when talking about typical formats-- 8 bit per channel, RGB(A) images-- a normal map has more precision than a bump map, because it uses more channels to store that information.  The normal map is using 16 bits per texel to store its normal.  (Alpha is unused, and one of the color channels is redundant.  Well, almost redundant.)  The bump map is only using 8 bits per texel.
There is one, tiny way in which a normal map contains more information than a bump map, but it's not a way that anybody cares about: a normal map can actually flip the normals, by using a blue channel less than 0.5.  Of course, nobody ever does that.  If they did, it would be more appropriate to say that the normal map uses 17 bits per texel to store its normal (because then, the redundant channel's sign, less than or greater than 0.5, matters.)
What would happen if you were using 16 bpc images?  The difference in precision between the normal map and the bump map would no longer be noticeable.  Does that mean that a bump map would be indistinguishable from a normal map?  No, you could distinguish them, because of the different ways that they interact with texture lookups and filtering.
*You can make an object space normal map from just a bump and a mesh.  But PS is assuming a default plane mesh-- you can't make a normal map of any kind without a mesh.
**You can approximate it.


Inverse Kinematics - saving, loading file and showing animation in BGE I'm working on a application where I want to save animations as a script where I write only changes in positions.

something like :  L_Hand L_Arm -0.015 0.20 -0.18     (Start_of_Chain(dynamic) End_of_Chain(static) X Y Z)

and show it by inverse kinematics algorithm (something like CCD).

So questions is:

Can I directly save the animation in some file format like my script?
(because I haven't good view about all file the formats blender can export animations)
Can I load that file and show animation in BGE application?

My main idea is about saving and loading animations not frame by frame, but
only in script. Then show the animations in the BGE.

Properties like

  L_Hand L_Arm -0.015 0.20 -0.18 (Start_of_Chain(dynamic) End_of_Chain(static) X Y Z)

could be easily described by XML or JSON. These data could be then dynamically read and applied to "channels". For correct use see current Blender API.


Is there a way to project field of view lines outward to look for camera overlap? I am configuring a camera arrangement in a room for a MoCap system. I would like to know beforehand whether or not every camera will have at least one overlapping camera FOV over the volume in which we are monitoring moving objects.

In Blender, assuming I know the camera's properties, can I extend the small pyramid representing the camera's FOV outward so that it projects all the way until it hits the wall? See image below for depiction of what I would like to try to do.

Thanks!

Sounds like you simply need to increase the Camera Size property.

It will virtually extend a camera's view frustum taking into account FOV, offsets and any other properties.


Outdoor HDRI too bright I am quite new to Blender, but I have already gone through a couple of tutorials.

Now have finally started making a scene myself, lamps and indoor HDRIs works fine, but when I use outdoor HDRIs (from Poliigon) I seem to do something wrong because everything gets extremely overexposed. I cannot see the textures on the ground or even the shadows.

Example of what I mean:

Same scene but with a studio HDRI:

I suppose I have just forgot some simple detail, but I can't seem to find the source of this issue.

Use some math nodes to turn down that brightness. For an HDRI like that, all you should need to do is multiply the value down to where the sun seems to be at a normal brightness, and then add usually 1-2 back for sky lighting.


Lost the slots tool/option There should be slots next to global but I cant find them.

What slots are you referring to? Where are you missing them in 2.79b or 2.8? – gtzkw

He is probably referring to layers and the interface looks like 2.79b.

  There should be slots next to global but I cant find them. - Volt

Press numpad/ or View > View Global/Local.


Cannot use CUDA on my Mac I have a Mac Book Pro (High Sierra 10.13.6), with an Intel I7 processor and an NVIDIA GeForce GT 750M Graphics card with the very latest drivers installed. My problem is that when I look at the Systems tab in Blenders preferences I cannot see any mention of CUDA under the 'cycles compute device'. My graphics card is there with a ticked checkbox, but I just have a 'None' or 'OpenCL' option above that. How do I get the CUDA option to appear, so that I can use my GPU to render instead of my CPU?

Blender doesn't support gpus on Mac, I own a Macbook with Radeon 555x gpu and i7 - 9750H, and it can't render on gpu


Cannot Move Object That is Keyframed I have a sphere in my scene, and I keyframe its position. However, I later decide to change its position on that keyframe, so I go back to the keyframe in question, and attempt to move the object. I cannot. It seems that Blender will not let me move an object on an existing keyframe. Is there a setting I am missing? Also I cannot adjust it's position between two keyframes to add a new one in the middle. It seems as though setting a keyframe locks it in stone. Any help would be appreciated.

You can right click the key frames and clean them or you have to delete them and place the object in desired position and then add the key frames.


How to model with precision My 3D modeling skills are limited to SketchUp, so forgive my lack of experience. I don't understand how to model something, in programs like Blender, with precision when it comes to measurements. How can I make something exactly 1/4 inches thick, or extrude a face by 2.38 inches, or 25 mm?

You can just enter an amount when some operator is called.

First you'll have to set your units:

Then, if you choose Metric, you can press, for instance, E (Extrude), and then press, for instance 2, to extrude the selected vertices, and move then by 2 meters.


Placing spheres in a perfect circle on a ring I am trying to place multiple spheres on a circle ring but am finding it really hard to get them into position. Is there an quick method to accomplish this or is there a tutorial that teaches such stuff.

Below is a quick illustration of what i want to achieve

Add a single sphere, and a curve to the scene (a Bezier Circle should do). Reduce the size of the sphere down to about 0.1 depending on the scale of the scene you're in.

Next, add an array modifier to the sphere and bump up the counts to about 10 or so you can see something. Finally add a curve modifier to the array of spheres. The spheres should follow the curve and you can now increase the array count depending on the scale of the sphere until both ends meet.

End result:

NB: If after doing this, the spheres don't connect at both ends evenly, just select the sphere in object mode and scale it slightly until they meet. You can also hold Shift while scaling for more precision.

An alternative (but more cumbersome) way is to use dupliframes, see How can I duplicate a mesh along a curve?


How can I make these eyelashes 'folllow' or 'pull' the verticies of the head object? I want to make a 'blink' shape key for this character. The eyebrows and eyelashes are on different UV maps and are different objects than the head. Is there a way to make the eyelashes and eyebrows follow the face's deformation? I.e. if I pushed the eyelids or lashes in in edit mode and made it a shape key for 'blink', can both lashes and eyelids move at the same time?

You should be able to do this by hooking the vertices of the eyelid to the eyelashes, so that the eyelash pulls them down, (which is what I think you are trying to do).

1) Select the portion of the eyelid you want to pull down, and create a vertex group for it in the vertex panel.

2) Select the eyelashes that will affect the eyelid, then select the main mesh (in this case, the body, if that is the mesh that the eyelid is part of).

3) With those two objects selected, press Ctrl+H, making sure you only have the part of the eyelid you want affected selected, and no other vertices.

4) Now you will notice that the eyelashes actually pull the vertices of the eyelid down with it when it moves, but it is probably going to look bad at first.

5) Select the main mesh, and go to the modifiers tab. Here you will see a modifier automatically added for the hooking object. You can adjust both the falloff type, radius, and the strength of the hook. This is for automatically adjusting the hook's influence proportionally. You also should select the vertex group you created earlier. This is for easy adjustment of the hook's influence. Using the settings in the modifier tab for the hook, adjust the strength and falloff until you get a value that nicely moves the eyelid.

Note: This method works best with an object that has not had any subdivision modifiers applied yet, because the adjustments will be much smoother.

Hope this helps!


Adding multiple green screenplates into an animated 3D environment This is my first question here and I am relatively new to Blender...

I am creating a music video of band members videoed in a green screen environment to be placed on an animated 3d stage.

I will record each member separately, but I wish to be able to see all separate recordings in the one screen shot of the whole stage.  I will also have close ups of each member but I am ok with that.

My problems are as follows and I would like to know how to fix this:

When I render a shot my render comes out the size of my green screen frame size and not the 3d camera view point of the stage.

Q 1
Why can't I place my green screen recording onto the stage and the end result view be larger than the green screen frame size?

Q2
How do I include the footage from two green screen recordings into the one render scene?  I am hoping that once I solve Question 1, Question 2 might be self evident.

I look forward to your assistance.

Your best bet would be to add the green screen video as a video texture on a plane object. You would need to create a black and white alpha mask clip as well to drive the transparency on the material node. This way you can have a plane object for each person in the scene and place them in the scene as needed.
Here's a test scene I just put together using this Minion green screen footage here: https://www.youtube.com/watch?v=QjN0BsUqeb4
I used blender's compositor to key out the green screen and create a black and white alpha matte video file (it's not a perfect key, but good enough for this demo):

Then I imported the green screen video use the Import Image as Plane feature. I find setting the image material to Emission works better than Diffuse in this scenario.
Then I set up the material to use the BW video file as the factor input for the Mix node that is mixing a transparent shader and the colour emission shader.

Final Output from Scene:

I should also mention that another advantage of handling the transparency via the Material as opposed to doing it in the Compositor after rendering is that you can see the character properly in the viewport when setting up your scene. This is very helpful in the pre-rendering stage for scene development.


How to move a bone in weight paint mode How do I move a bone while in weight paint mode like the picture shows?

First select your armature, go to pose mode, then select the mesh and enter weight paint mode.
At this point you can select bones (with right click) and pose them without leaving weight paint mode.


Not every bone position is saved on the pose library I'm trying to save the facial bone poses to use them later simply clicking on a button. Let's say that I would make this first pose :

I started from a neutral pose and I rotated,scaled and translated the bones,so I have reached this final pose :

I saved the bone positions using the pose library. When I did "apply specific pose library pose to the rig",not every pose has been set correctly. Infact,the bone called "DEF_jaw" has been ignored. I tried to place it again in the position I want,but every time it is ignored. Can someone tell me why ? Check also the attached video for a better understanding....

what I did

I attach also the blender file...

It was tough, but I finally found an answer for that issue. The thing is, Pose library don't save positions of bones with DEF in the beginning of their names (I don't know if it's also true for endings and middle, cause I didn't try this).So to use Pose Library, rename the bones with DEF


Which features are not supported when GPU rendering? This question would seem to have a straightforward answer, but after reading through the Blender Manual's section about GPU Rendering, and also searching elsewhere online, I have not been able to find a list of which features are not supported when rendering with a GPU.

I remember that Open Shading Language is not supported, but I'm sure there are other unsupported features that I either don't know about or have forgotten about.

Does anyone know if there is a resource page available somewhere where I can get a list that makes this clear? Thanks.

Unless I misunderstand what you are looking for, the Blender manual seems to have a pretty thorough list of supported features per device.

As of current Blender 2.78, this list includes all supported computing hardware types, like CPU, GPU, OpenCL, or CUDA; and the available , experimental, and unsupported features for each of them, like motion blur, hair, volume, smoke/fire, subsurface scattering (SSS), Open Shading Language (OSL), CMJ Sampling, Branched Path integrator, and displacement subdivision.


How do I scale a skeleton down with out affecting the animation time + the location of the skeleton Basically what I want to do is scale a skeleton down. The reason for this is that I'm ripping a model from another game and I want to use it in Unity. When the model is ripped from the other game, it is way too big for unity and has to be scaled down in order for it to even show up on the screen.

This is my model. It has a walking animation.

Now I want to scale the model down from it's original scale to 0.2 by 0.2 by 0.2, I scale the skeleton down so that the mesh goes with it.

Now I'll have to apply the scaling, so that it's the smaller scale is the default one, instead of the big one.

As soon as I apply it, the model moves away from it's original location, and the animation is all messed up, it goes much faster to it's walking destination because he's smaller.

How do I avoid the skeleton, and most importantly, the animation from messing all up?

When exporting from Blender, calculate the size as 100 percent and export it, eg fbx scale 0.01 or 0.1 This is fixed in ue4.


Which 3d software is right for me? I know this place is a Blender community but i wonder what is the best 3d software for me.
The reference of the my work I want is
https://www.youtube.com/watch?v=02k126v3Zu4 /
https://www.youtube.com/watch?v=NApVOHrbhqg /
https://www.youtube.com/watch?v=UxBl73QX000 /
Will Blender fit my inclination?
I can use touchdesigner and after effect but never used a 3D program
And I want to make an image like an Amnesia scanner
Do you have any tutorials to recommend?

Yes, blender is the software you are looking for blender can do almost everything you imagine, also the big advantage of using blender is that you will get a million of tutorials about how to use it on YouTube , also it is open source so you will not even have to spend a coin on it, the only thing is you will have to be patient in order to create something as you want because there are many users who find it hard and leave it in the middle, so start from basic and one day you will achieve the results you want.


Using Dynamic Paint To Spawn Particles Through Vertex Groups What is causing the particle system to not follow the density group? Use modifier stack is enabled, both objects are well subdivided and the canvas object is an unmodified plane.

Unfortunately it's much more complicated than it should be. I can elaborate once you tell me if that's an option for you.
A possible workaround: Create a particle system sparks that is emitting continously. Place the PS where the laser hits the surface. If you want to randomize the bursts of the sparks some more, you can randomly turn on and off the visibility in render. Note that this might look weird if your spark lifetime is more than a couple of frames.
You could refine that a lot more using animation nodes, by grabbing the position of live particles and placing a custom object where they are relative to the point where the laser hits the surface. This way you have more control when turning them on and off.
Or you could try baking the sparks using physical objects and rigidbody physics. Bake 10 or so, parent them to an object that follows the laser, use animation nodes to only show 3 or 4 at a time and evaluate their f-curves, depending on the current frame and their "birth time".


code for "separate and select it in object mode" so i'm creating a macro out of separating selection in editor mode, and then select the separated mesh afterwards in object mode... i have very little knowledge of what i'm doing, but i'm doing it never the less...
so i need some help.  what would the code be for selecting the last separated mesh after coming out of object mode?  sorry if this doesn't make sense.  i wish blender would just select the separated mesh in object mode right after you separate it.  i don't know how to find the separated mesh basically.
How would i go about doing that so it would work every time with any object?  Thanks

A solution is to store your selected object name first and then deselect them after you separate the mesh.
Something like this:
org_obj_list = {obj.name for obj in context.selected_objects}
# This is a Set comprehension in Python,
# which create a set of name from the context.selected_objects
# context.selected_objects will be a Iterable collection of some object

bpy.ops.mesh.separate(type = 'SELECTED')
# This will call the separate operator in your code directly
# the type can be a enum string in ['SELECTED', 'LOOSE', 'MATERIAL']

bpy.ops.object.editmode_toggle()
# Switch back to object mode from edit mode

# Those separated object will also be selected now
# We then check if selected object is the one we saved before, then deselect it.
for obj in context.selected_objects:
    if obj and obj.name in org_obj_list:
        # Deselect selected object
        obj.select_set(False)
    else:
        # Set the new created object to active
        context.view_layer.objects.active = obj

Not sure if this is the best practice, but it do work.

A custom operator:
import bpy

class SeparateSelectionActive(bpy.types.Operator):
    """Separate object by selection and set it as active object."""
    bl_idname = "mesh.select_separate_active"
    bl_label = "Separate Selection Active"

    # An enum for prompt dialog
    separate_method: bpy.props.EnumProperty(
        items = {
            ('SELECTED', 'Selected', "Selected mesh"),
            ('MATERIAL', 'Material', "Based on material"),
            ('LOOSE', 'Loose', "Based on loose part")
        },
        name = "Separate Method",
        description = "Choose a method to separate mesh",
        default = 'SELECTED'
    )

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

    def invoke(self, context, event):
        # Prompt to ask a method to separate
        return context.window_manager.invoke_props_dialog(self)

    def execute(self, context):
        org_obj_list = {o.name for o in context.selected_objects}

        # Separate using selected method
        bpy.ops.mesh.separate(type = self.separate_method)
        bpy.ops.object.editmode_toggle()
        for obj in context.selected_objects:
            if obj and obj.name in org_obj_list:
                # Deselect everything selected before
                obj.select_set(False)
            else:
                # Set the new created object to active
                context.view_layer.objects.active = obj
                self.report({'INFO'},f"Set active object to: {obj.name}")
        return {'FINISHED'}

# A menu inject into View3D > Edit > Mesh tab
def _menu_func(self, context):
    self.layout.operator(SeparateSelectionActive.bl_idname)

def register():
    bpy.utils.register_class(SeparateSelectionActive)
    bpy.types.VIEW3D_MT_edit_mesh.append(_menu_func)

def unregister():
    bpy.utils.unregister_class(SeparateSelectionActive)
    bpy.types.VIEW3D_MT_edit_mesh.remove(_menu_func)

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.mesh.select_separate_active()

After register it as an Operator, you can search and run this operator in edit mode within 3d space:

Or in View3d > edit mode > mesh > Separate Selection Active after append a new menu function to make it searchable in Blender 2.90.

You should see a prompt asking a method for separating:

These options is exactly the same with original separate operator.
And this operator will separate it, deselected original mesh, make the new created mesh active:

Note: If the separate process make the one you want to be active unchanged, this operator will active the wrong mesh since it's still the original mesh with the same name.


how do I bring back the initial menu to configure a mesh? I hope this is easy: how do I bring back the Math Function menu for a mesh once it has been initially created?  After I first configure the function the menu disappears and I can't seem to bring it back.

The math function menu like all object initialization menus can only be used when you create an object, if you go to edit mode or use any operation in the 3D view port, it will disappear.


How can I improve the topology of this object So I made this object. But when I try to smooth it I can see some weird issues in the geometry.
How can I improve the retopology to make those issues disappear?

From one sub-d way of looking at it, you've got 2 curvatures to capture: the one around the hole, and the one around the cylinder. To keep the cylindrical curve even, it should consist of edges parallel to the bend, as evenly spaced as possible.
So one approach, working in the flat, before bending the piece, is to try to capture the curvature of the hole using only cuts into the lines which will be parallel to the bend...

.. also isolating the hole from the bend by making it the result of an inset: puting a rim of faces around its perimeter.
Working under  Mirror and a Subdivision modifiers, you can see the curves you will wind up with.
The rules aren't hard and fast.. you can bend the up-down lines a little, and add edges around the cylinder wherever they help you out.


Blocky noise texture in blender How do I go about creating a blocky noise texture similar to the one attached. This was done in After Effects using the Fractal Noise effect set to "Block".

This answer and this article from the blender documentation came really close, but the blocks are still too even and all neatly aligned in columns and rows.

You can try with a mix of voronoi textures (with randomness = 0).
check this setup and result:


Render turns out blurred in composite I made this animation, but when it renders it comes out very blurry. I think I did something in the render layers, but I can't figure out what. I tried reset everything to default settings etc. I changed and tried every setting I could think of, copied the animation to a new file, loaded without UI, checked and unchecked different settings.
But when I render the end result is as I said very blurry. But when I change the view from composite to viewlayer everything looks oke. I never had this before.
Anyone knows what causes this?
Thank you.

.Blendfile

You have a blur node in your compositing view. Removing this removes the blur.


How to set the weight of an entire mesh? I am creating a simple lever in blender for an animation. I have connected it to a single bone for rotation. When I weight paint the mesh to the bone, however, I cannot paint the entire mesh. The brush always leaves an unpainted vertex. Is there any way to set the weight of an entire object so that every vertex will be painted?

Go into edit mode on the mesh. Press A to select everything, then go to the object data tab to the right. It looks like an upside down pyramid. Under vertex groups, you should see a group named the same as your bone. Press assign with everything selected. That should work.


Making a curved area in an object plane I have this object. I want to make the selected area fully plane. Any pointers on how to do it ?

Select the edge loop.
Snap the cursor to it (Shift+S-->Cursor to Selected).
Select other loops up to the top of the mesh.
Set the pivot point to "3D Cursor"

Hit S,0 and hit Enter.

If you want to make the flattened surface look like a square plane you may add one, and join it with your mesh using Bridge Edge Loops option. Delete some edge loops X, add a plane and subdivide it (W-->Subdivide). Select the edge loops as pictured below (remember you have to have the equal number of verices in each separate meshes to make a bridge). Then press Space, type bridge and select Bridge Edge Loops option.


Rigged Mesh Behavior Is Different Despite Same Weights In the attached images, I have a mesh that I rigged with automatic weights. The auto-weight turned out pretty good, minus a few tweaks. However I ran into issues with the mouth and eyes.

I applied weights to the teeth and eyes based on the weights of the nearest vertex, or based on what was half weight-painted (auto weight got the top eye-lids and not the bottom, same with some mouth meshes).

After testing the head movement, I noticed the bottom gumline of the teeth doesn't move with the rest of the mouth, despite having the same vertex weights, Same is true with the eyebrows and eyelashes. When moving the neck bone I noticed the problem persisted with the bottom gum line but not the eyebrows or eye lashes. As far as I can tell the weight painting is the same on both bones.

The goal is obviously for the eyebrows and eyelashes to move as they do in the neck movement image, and the gumline to stay with it's set of teeth.

I tried separating the meshes and connecting to the head bone (as you would do with hair?), but when the head and neck moved they didn't keep their position on/in the head. Does anyone know how I can fix all this?

If two vertices, even if near to each other, move differently, surely they have different weights.

When using automatic weighting, this common problem arise when some vertices get weight from some bones and other form more (or less) bones, so if you check only the head and the neck they seem similar, but in fact they are different.

In edit mode, if you select a group of vertices you can read the weights of the active one (last selected) in the N properties panel, so making a comparision between two vertices that have a different behaviour will underline where the problem lies.

An useful trick is to use the "selected to active" function, in which you select a group of vertices (like all bottom teeth), then shift select the vertex to follow (in my example it could be the center vertex), and press the little folder button (you have to do it for all the involved vertex groups, if some vertex group have influence on the selected vertices but not on the active, you have to use the remove button in the vertex weight tab).


Obtain UV selection in Python? Using Python, can one select or find what is selected in the UV Image Editor?

I tried accessing the UV screen itself and found its SpaceUVEditor but got stuck there.

Any thoughts?

The UV map being shown in the UV Image Editor is the active one, accessible through uv_layers.active variable of active object's mesh data.

According to API docs, loops and all UV maps in uv_layers are aligned. Which means, if you have the indices of every selected MeshUVLoop within current mesh's UV map, you'll get the corresponding MeshLoop at the same indices within that mesh's list of loops. From there, you can get their vertices.

To make my explanation above clearer, here's a sample script that will print selected UV loops' vertex coordinates to console. The script won't work if use_uv_select_sync button in UV Image Editor's header is toggled on, in which case MeshUVLoop's select property is ignored.

import bpy

# UV data is accessible only in object mode
prev_mode = bpy.context.object.mode
bpy.ops.object.mode_set(mode='OBJECT')

# Update vertex selection properties, in case the script wasn't run in
# object mode
bpy.context.object.update_from_editmode()

# Active object assumed to be a mesh and already have a UV map
mesh = bpy.context.object.data
uv_map = mesh.uv_layers.active
selected_loops = []
selected_vertices = set()

for index, uv_loop in enumerate(uv_map.data):
    if(uv_loop.select):
        selected_loops.append(index)

for loop_index in selected_loops:
    selected_vertices.add(mesh.loops[loop_index].vertex_index)

for vertex_index in selected_vertices:
    print(mesh.vertices[vertex_index].co)

print('*' * 20)

# Restore whatever mode the object is in previously
bpy.ops.object.mode_set(mode=prev_mode)


Stylus-Activated Pie Menus? Tablet Mode Sculpting? How to access pie menus when in Tablet mode?

In Tablet mode, the keyboard will not be accessible, thus requiring access to the Pie Menus via the stylus pen. I need these menus for Viewpoint shortcuts, switching design modes, etc.

Please Help. TIA

You can map one of the pen or tablet buttons in Wacom Tablet Properties to Ctrl+Tab as per this list of Blender shortcuts. Note that you can create a specific setting just for Blender.

Go to Wacom Tablet Properties
Optionally, set a specific application
Select the dropdown menu for the button you plan on changing
Select "Keystroke..."
Press Ctrl+Tab, optionally name the shortcut key, and then click on OK

(click images to enlarge)


bpy.path.abspath is appears to be messing up I am working on an addon and I have a StringProperty that is a File_Path, you select the file and it reads the xml at the location. These string property's automatically use relative paths, so my code is if "//" is in the path it automatically uses bpy.path.abspath on it to convert to an absolute path, but it dosesn't seem to be working right.

The .blend is in D:\Pictures\3D Models\Models\file.blend
The file selected is at D:\Pictures\main_car\file.xml
The output from the StringProperty is //..\..\main_car\file.xml

When this output is converted using bpy.path.abspath it becomes:
D:\Pictures\3D Models\Models\..\..\main_car\file.xml
not where the file actually is. It is like it isn't backing up far enough before it goes into the main_car folder

As someonewithpc said, .. means one directory up. Thus,

D:\Pictures\3D Models\Models\..\..\main_car\file.xml

is the same directory as

D:\Pictures\main_car\file.xml

although the path is overly complicated (not cleaned up).

You can shorten it by realpath() or abspath() from os.path:

import bpy
import os
os.path.realpath(bpy.path.abspath(your_path))


how to make object float in water How to make water pass through pipe with object link leafs and dust https://youtu.be/qGD1bD44B70?t=13s   as seen video i want to make same as like

they would make the leaf float wih water,  I want the water to carry the leaf, as a physical object.

You could try to simulate this with a particle system and force fields.


Error overriding default property for MESH_OT_primitive_torus_add? Following this Stack Exchange page:
How to set the default vertex count to added geometry?
I was able to effectively override the default property for the circle, cylinder and UV sphere.
When I followed the exact principle, imported the MESH_OT for torus primitive and try to override its defaults, blender fails at importing its MESH_OT module.
Code:
from bpy.types import (
    MESH_OT_primitive_torus_add
    )

According to Blender, this can not be imported, I fail to understand why!
If anyone has experience with this and has successfully done so, please lend a hand.
Here is a screenshot of the error message:

The issue seems to be where you are trying to do the import, I expect the script you are adding is read too early to get access to bpy.types. While there is a way to alter the default setting, it doesn't seem to effect creating new objects, my guess is that the presets system overrides the defaults.

If you are adding a torus with a python script you can set the parameters used in your script.

bpy.ops.mesh.primitive_torus_add(major_segments=12, minor_segments=8)

For adding objects manually, the best way I can see is to use the presets system. You do this by adding a torus, then use the operator properties panel to adjust the options used, then click the + next to operator Presets and give it a name.

then your preset options will be available.


Making an Invisible Material in the Cycles render engine I'm a newcomer to Blender and have created a scene in which I want to animate the disappearance of an object. I don't know if this is the 'right' way to do this, but I managed to get the desired effect by having a big block move over the object to be disappeared, and I added a boolean Difference modifier to the object to be disappeared.

This gets me the effect that I want, but I haven't been able to get my big block 100% transparent. It's almost, but not quite, entirely unlike a solid object, but it still casts a shadow and appears to have other visual effects on the animation that I don't fully understand.

Can anyone hand-hold me through creating an absolutely invisible material for my big block, or teach me the 'correct' way to accomplish my goals?

Thanks!

If you want the object to disappear gradually I would do it with the material.  To make it disappear from top to bottom/side to side etc. (like a box covering it up as you described) I would se this node setup for it's material.

You can then animate the value on the greater than node (the one in yellow) from 1 to 0 to make the object disappear from top to bottom.  If you want left to right use the X value from the separate XYZ node.

This works because taking the X, Y, or Z component of the generated texture coordinates gives a gradient from 0 to 1 from left to right, front to back, or back to front respectively.  The output of this, sent through a greater than node to chop it off at a certain point, is used to drive a mix shader mixing the normal material (in this case the diffuse shader) with a transparent shader.  When you animate the value of the greater than node you are animating the cutoff point.


Is there any way to save my screen layouts across projects? I want to save my screen layouts like "Default", "Scripting", "Animation", etc. across projects. Meaning that if I update it one place, it will update across all projects (just like how changing "user preferences" works).

I know I can save a startup .blend with customized layouts. But I work on 2 projects at the same time, thus I need to sync the layouts.

Edit: What I need is being able to change the layout in project #1. Then it would update across project #2 and project #3 as well. It doesn't have to simultaneous - it's ok if I need to reopen project #2 and project #3. But I don't wish to change layout in project #1, then make the same changes in the startup-file (thus twice the work).

In User Prefrences > File:
Uncheck Load UI

Then, your window layout will be preserved regardless of what file you open.


I there a way to move multiple vertices preserving a straight line I have a mesh where one side is tilted (marked red in the image):
What I want to do is move selected vertices along the red line so that bottom line (marked white in the image) remains straight.
When I move the selected vertices along the red line's local axis the bottoms line is getting bent in the middle.

What I want is to move the selected vertices and get the bottom line rotated as one straight line.
I just worked around by adding another straight edge. rotating it, subdividing it in the middle and then replaced the old edge with the newly created one.

P.S. I didn't use the rotate tool since I wanted the two sides to remain straight.

I can´t see in which axis you did the capture but for Option A I will assume it is a TOP VIEW so:
Select both of these RED circled vertex, now press S, SHIFT and DRAG to the RIGHT to scale them and make them align at SCALE 0 for both vertex.

If this is not what you expected, you can select and SLIDE the vertex you are interested by selecting the vertex and then press GG to move it

If this is still not what you expected, then select the vertex you want to align parpendicularly. Press X, D. Your vertex will be removed. Now, use the KNIFE (K) to make a clean cut from the appointed verted like in this graphic marked with the BLUE line as option 2.

Thanks for voting me up on this question or selecting it as your answer.

BFCT_Schiller


Split render script for VSE? I am looking for an altenative of this script (which split renders a .blend file, much faster): https://github.com/jendabek/BlenderRenderController
but for Linux and working with the latest Blender version. Do you know how I can speed up VSE rendering? I think a bash script can help too (or a python), because there is this api: https://docs.blender.org/manual/en/latest/advanced/command_line/render.html
But somebody must have written this already, I hope. I have 12 cores which I want to utilize.

Use the parallel render add-on: https://github.com/elmopl/ktba/tree/master/scripts/addons

Install it.
Add an absolute path to ffmpeg in the add-on preferences.
Find the Parallel Render options in the Render sidebar.

(For really fast render use AVI JPEG and PR, but you'll have to render audio separate afterwards and mux it yourself)


DOF in cycle render shows in solid view but not in render Hi I'm rather new to blender and have seen a lot of tutorials now on Youtube and done a thorough research here on the topic Depth of Field. I also created the first renders but have a problem applying depth of field.

I inserted an empty object called FocusPoint and set up the camera details with focus on FocusPoint and an aperture of 5.6. When switching on DOF for viewport in the properties panel under shading I see a DOF in camera view with solid texture. When switching to rendered preview or when rendering with F12 the DOF is not visible. BTW also when changing the aperture afterwards nothing changes also in solid view.

All the tutorials on applying DOF do just the same but it seems to work for them. I am using Cycles Render.

I don't understand what I didn't get. Do I need to do another customization?

I have stripped down the file to just a box and set the FocusPoint to the upper front edge.
Here is the screen showing both views:
The blend file lies here

In your case i recommend you to change F-stop to radius in the "Aperture" settings. You'll immediately see the blur.

BUT!

Firstly, you should invert your normals: --> ctrl-n
Youl'll find that's working correct.

Secondly, learn blender basics before doing experiments.


How can I analyze whether my camera is looking up/down? The question is exactly the same as the title: How can I analyze whether my camera is looking up/down? :)

A bit of explanation: I am writing a script that handles both 3rd and 1st person view, and now got stuck at the point where I want setting a cap to prevent the view from turning around vertically.

For this I made an "if... elif... elif..." statement.
The first branch tests, whether the sight is between the caps, and if so, then lets the user move the view.
So after that, I need to check which direction the user wants to move the view, plus which direction is it stuck to. These do for the 2 other branches.

So this is why I'd need your help.

Awaiting your answers :)

When the camera's X rotation (in euler rotation) is at 90 degrees it is looking parallel to the ground. Less than 90 it will be pointing down at the ground, greater than 90 is pointing up.

if camera.rotation_euler.x > 90 and camera.rotation_euler.x < 180:
    # looking up
elif camera.rotation_euler.x < 90 and camera.rotation_euler.x > 0:
    # looking down


Blender I Hotkey not doing what it is supposed to I am trying to make an animation in Blender. To set the keyframes I am supposed to press I, but it doesn't do anything associated with the animation. It my be doing an invert. I have no idea. I am a beginner and help would be appreciated.

Blender uses several different 'modes' - the same keys sometimes work differently depending on the current mode. The mode menu is normally shown at the bottom of the 3DView.

Pressing I while in object mode will bring up the insert keyframe menu, unless you have specified a keying set for it to use automatically. When a keyframe is inserted you also get feedback in several areas - the timeline will show a yellow line on the frame that has a keyframe and numerical values will have a yellow background (this changes to green when you change frames)

If you are in edit mode of a mesh object then I will perform an inset on the selected part of the mesh.

CtrlI will invert the selection - both in object and edit mode.

Also blender uses "focus follows mouse" which is a bit different than most Mac and Windows users are used to, you need to have the mouse cursor over the part of the blender window that you want to perform the action, which for insert keyframe would be the 3DView.


Looping cut with the same length did you guys have any trick on how to snap the loop cut with the same side length of the box?
what I usually did is I always do count the length of the side then calculate the value to match the length. it really frustrates me to do it over and over again. thanks :)

In your example you can create  a "ruler": select the 5 vertices of the corner, Shift+D to duplicate them, move over on the Z axis, rotate them 90 degrees on X axis with pivot point on the first vertex, create 4 loop cuts, select the first with Alt left click, move it on Y axis with vertex snap On, pointing at the second vertex of the ruler. Do the same for the others loopcuts. Repeat until done.


Dyntopo setting to generate quad faces Is there any setting in texture painting to change the behaviour of the Dyntopo so it will generate quad faces rather than triangle faces ?

Triangles define better areas than quads (details). That's internal. There is a function on object mode, though. Click your object. Enter edit mode. Select all your faces. Press spacebar (I assume you´re on 2.79) and search: Triangles to quads.

You can also use REMESH from the modifiers.
You can also try decimate to reduce the "poly" count.

Maybe this will help you.


Render Clean Diffuse Colour Only Blender 2.81 I'm trying to render an image with an output that is the pure diffuse colour only.
In earlier versions of Blender I would have just used the internal renderer and created emission materials. But, in 2.8 with Cycles or Eevee, there is always a slight noise on the image.

In the viewport with viewport shading, it gives the result I'm after.

With the default Eevee samples I get this result with soft edges and a noise in the flat colours.

If I set Eevee's samples to 1 I get clean edges, but still a subtle noise in the flat colours.

I know the noise is very subtle, but I need it to be a solid colour. I was hoping I could use the compositor to get just the diffuse, but I couldn't figure out how. I still ended up with the noise in the result.

Thanks for your help
Dan

Hello and welcome bro!

I suppose the thing is post processing noise dither from Properties > Output

Dither intensity = 1:

Dither intensity = 0:

Dither intensity = 2:


Nodes are deactivated/inactive/greyed-out and cannot alter value I have nodes but somehow they are greyed out and I am unable to change values. Did I press a hotkey accidentally? If so what was it?

An example is attached below;

This issue could have been caused by linking in an object from another scene. When you link in an object, "ghost" materials are created - completely identical to the materials from the original file, but uneditable.
If this is the case, then simply append objects or materials themselves and you should be able to edit the nodes again.


Overlaying 2 transparent images on another texture I'm new to the exchange, I am going around in circles trying to get my nodes setup correctly in blender cycles. The basic setup is that I have a brick texture, which I want to overlay/mix 2 grunge textures with transparency in. However, although everything appears fine in material view, which is how I want things to appear, when rendered everything is black. I've eliminated lighting as a problem. I've read article after article on using transparent images in cycles as well as watched several youtube videos, but still my setup seems to be wrong. Maybe what I am trying to do isn't possible.

I've uploaded the blend file to my onedrive, so you can take a look at it, bare in mind I am no artist and this is a simple model for uploading to a virtual world, so it's nothing fancy and I'm still learning, so my geometry might be a little rubbish too. lol

If someone could set things up for me, I would appreciate it, then I can learn from what I see.

The blend file can be found here: https://pkamc-my.sharepoint.com/:u:/g/personal/atlockey_myoffice365_site/EQcTn5iMnZdHpNzOjup10XoBXa1WnJrgr1239vGw4osPpw?e=9KHroh

Cheers

Andy

You're mixing up shaders with texture compositing operations.

The shaders are the ones with the green sockets, and you should never connect other colours to the green sockets or vice-versa.

The yellow and gray sockets are used for colours and values respectively. In practice it means you'll use the yellow sockets to add colour textures to your shaders inputs, and grayscale textures (or single values) to control properties.

(that's a gross over-simplification, but it will help to have a minimum grasp of what you should/shoudn't connect to each type of socket).

With the above in mind, remember that you can mix and combine textures BEFORE connecting them to a shader. So in this case you should use mixRGB nodes to combine them and plug the result to the shader.

In your example of brick texture and grunge textures it would be just matter of blending the first grunge texture over the brick texture (using a mix node if the grunge one has alpha channel will do, but you could also use a different blending and connect the second texture's alpha to the Fac input to drive the mix).

Once you did that, the output of that mix will be textures 1 and 2 blended, so you only need to add another mix and blend the third texture over.

That will be your "combined" texture that you will plug to the colour socket of your shader (most likely a diffuse shader).

You can add further work to your shader if you need some glossiness or other surface properties to your material, but that's basically the procedure of combining textures.

*) Note that mixing two shaders (one transparent and an emissive/reflective one) to create a material with transparency based on a texture's alpha is a completely different procedure.


Starting build modifier from one end I have a cube and have applied the Build Modifier on it. Is there any way to start the build from one end and gradually build it fully to the other end?

You need to sort the vertices:

In Edit mode, select the vertex that you want to choose as the first one, then ShiftS > Cursor To Selected.

Select all, go in the Mesh menu > Sort Elements > Cursor Distance.

In the Operator box, click on Face. Now it should work. If you want to check the vertices numbers, go in the Preferences > Interface > Display > enable Developer Extras. Then in the 3D view > Viewport Overlays > Developer, enable Indices.


Approach to get fastest flat color render times? I am creating an animation that shows the assembly of a Meccano toy (erector set).

I am not concerned with showing any shadows or reflections, I just want my objects to be simple colors.

How should I approach lighting and material settings to get the fastest render times?

The fastest flat-colour renders usually come from using Blender Render, although it's also possible in Cycles which may be quicker if you have a lot of geometry.

Blender Render:

All you need to do is enable Shadeless on all your materials, and then the diffuse colour will be what controls the colour of that object.

To be doubly sure you're not calculating anything unnecessary, delete any lights in the scene and disable all the Shading options in the render settings (except for Textures if you have any textures applied)

Cycles:

Use an Emission Shader - this will indeed emit light (onto any other kind of shaders), but it won't have any shading on it and renders quickly.

If you do that for all your materials, then there won't be any other surfaces to emit light on to. However, if you do have a few diffuse surfaces and want to prevent the objects from emitting light, just disable all but the Camera rays for that object:

Finally, just to make sure it's as fast as possible, set the render Samples to something reasonable like 32 or 64 (or even lower if you're not too fussed about crisp edges), disable Shadows and set the Max and Min bounces to 0:

If CPU is not being used fully:

Finally, while it's rendering take a look at your CPU usage in your OS's task manager. If it's not using 100% of the CPU, it can help to render with more than one Blender at a time:

If you disable Overwrite and enable Placeholders, Blender will create a small place-holder image as it starts rendering and won't rerender any frames where the image already exists. This way, if you open another Blender and render the exact same thing at the same time, they won't overlap and will be able to render at double the speed (unless of course your CPU usage was above 50%).

You might still never get to 100% CPU usage if you're limited by your hard-drive/network speed or the amount of RAM available.


Render crops image from compositor I made a 3D tracking, and noticed that after rendering the image is cropped. I got the camera through the 3D tracking. Why is this happening and can we fix it without making new 3D tracking?

Here is a screenshot at the top is the compositor, and below is render:

When compositing a render over an image you have to make sure that your render dimensions for the scene are set to the same size as the background image.

Your other option (say if the picture quite large) is to scale the picture to match the render size.

That can be done by adding a Scale node set to Render Size, which will give you a node setup like this.


Is there any way to make multiple objects convex hulls? Is there a way to make multiple objects become convex hulls using python and applying the operator to all selected objects?

Use the bmesh operator
Use the bmesh convex hull operator as outlined here https://blender.stackexchange.com/a/121815/15543
Test script, run in object mode. Turns all selected mesh objects into their convex hull.
import bpy
import bmesh

context = bpy.context

meshes = set(o.data for o in context.selected_objects if o.type == 'MESH')

bm = bmesh.new()
for me in meshes:
    bm.from_mesh(me)
    bmesh.ops.convex_hull(bm, input=bm.verts)
    bm.to_mesh(me)
    me.update()
    bm.clear()


Is there a way to acces external .blend file's data with python script? I'm writing an addon to parse a directory (and its sub-dirs) to write an XML file which describe the tree-structure of the assets contained in that directory.
At the moment, my standalone script works pretty well.

The fact is, I need to add some info to the XML, like the dependencies (linked libraries) of each .blend file the script found.

I found a way to do this (outside blender), with the module "pyblenderfile" : http://code.google.com/p/pyblenderfile/

The principle of this module is to open a .blend and get all its data. But it's pretty long and often buggy on large .blend files. Especially since it's included in a for ... loop!

So I wonder if there is a utility function or method into Blender API, to access other .blend files data (without having to wm.open() them) ?

There's no data API for the .blend file format.

However, it sounds like you're trying to make a tool similar to Blender-Aid (code is here). Perhaps that's better place to start.

Note that blendfile.py from Blender-Aid can be used as a standalone blend file reader.


How to select vertices based on their number of edges I am running the following code to generate vertices with 4 and 8 edges (plus the vertices of the outer loop):

import bpy
import bmesh
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete(use_global=False, confirm=False)

bpy.ops.mesh.primitive_plane_add(size=11.95, enter_editmode=False, location=(0, 0, 0))

bpy.ops.object.editmode_toggle()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.subdivide(number_cuts=29)
bpy.ops.mesh.poke()

Now I would like to select all vertices that have 4 edges connected. 'Shift-G - Amount of connected edges' works, but I would like a) get the distribution of vertices with 2/3/4/5/6/... edges, and then to automatically select vertices based on this criterion.

Use bmesh

Strongly suggest ditching bpy.ops.mesh operators for bmesh.

Test script, run in object mode, creates the grid mesh and pokes it.  The return of the poke operator gives the new faces as well as the new "poke" vertices.  For example sake have added to a vertex group named "Poke".

Select the vertex group "Poke" and will see that all newly poked, (linked to 4 edges) verts are in it. Alternatively see edit mode answer below.

Object Mode Script

Create a new mesh, load up the newly created bmesh, add a new object with the mesh and link to scene. No operators, no edit mode toggling, no selecting....

import bpy
import bmesh
context = bpy.context
collection = context.collection

bm = bmesh.new()
bmesh.ops.create_grid(bm,
        size=11.95,
        x_segments=30,
        y_segments=30
        )

ret = bmesh.ops.poke(bm, faces=bm.faces)
verts = [v.index for v in ret['verts']]

me = bpy.data.meshes.new("PokedGrid")
bm.to_mesh(me)
ob = bpy.data.objects.new("PokedGrid", me)
vg = ob.vertex_groups.new(name="Poke")
vg.add(verts, 1.0, 'ADD')
context.collection.objects.link(ob)

Edit mode.

Run this test script in edit mode.  Selects all vertices with 8 linked edges.

import bpy
import bmesh

context = bpy.context
me = context.edit_object.data

bm = bmesh.from_edit_mesh(me)
for v in bm.verts:
    v.select = len(v.link_edges) == 8

bmesh.update_edit_mesh(me)

Lastly on distribution, recommend collections.defaultdict

import bpy
import bmesh
from collections import defaultdict

context = bpy.context
me = context.edit_object.data

bm = bmesh.from_edit_mesh(me)

verts = defaultdict(list)

for v in bm.verts:
    verts[len(v.link_edges)].append(v.index)

print("Total Verts", len(bm.verts))
for k, v in verts.items():
    print(k, "linked edges", len(v))

Output.

Total Verts 1741
3 linked edges 4
5 linked edges 112
8 linked edges 784
4 linked edges 841


How to get a smooth curvature map from a normal map? I am trying to generate a smooth curvature map from a normal map. I already know how to generate a sharp curvature (from this post: How to convert a normal map into a curvature map )

Here is the normal map source that i got from the free pack "Rock and boulders 2" of Unity:

High quality normal map for your test: https://drive.google.com/file/d/0B1wP1Y8dmh8aVmN6VUpYMU02Q28/view?usp=sharing

The result i am trying to get in the compositor:

(and the sharp curvature that i can already make in Blender, it uses 1 pixel width)

My goal is to import the curvature smooth and sharp in Linear mode and overlay them together to generate a greyscale, then a color ramp will be used to generate the albedo. I am trying to reproduce this hand painted effect texture: https://youtu.be/dE0CM1C_soc

Python can be used to analyse your normal map and reconstruct the bump map and this can then be used to generate a curvature map.

Here's the code to run - simply paste this into a Text Editor window, load your image into the Image Editor, ensure it has '_nmp' or '.nmp' somewhere in the filename and click 'Run Script'.

import bpy
import os
import math

pixels = None
width = None
height = None

def get_pixel(x, y):

    global pixels, width, height

    base = (y*width+x)*4
    return (pixels[base], pixels[base+1], pixels[base+2], pixels[base+3])

def set_pixel(x, y, rgba):

    global pixels, width, height

    base = (y*width+x)*4
    pixels[base] = rgba[0]
    pixels[base+1] = rgba[1]
    pixels[base+2] = rgba[2]
    pixels[base+3] = rgba[3]

#Adapted from http://blender.stackexchange.com/a/80047/29586
def srgb_to_linear(c):
    a = 0.055
    if c <= 0.04045:
        return c / 12.92
    else:
        return ((c+a) / (1+a) ** 2.4)

# RGBA was previously held as 8-bit. Re-normalize to correct for 8-bit innacurracies
def normalize_normal(rgba):
    dist = math.sqrt(math.pow(rgba[0],2) + math.pow(rgba[1],2) + math.pow(rgba[2],2))
    if (dist > 0):
        return (rgba[0]/dist, rgba[1]/dist, rgba[2]/dist, rgba[3])
    else:
        return (0,0,0,0)

def calc_gradients(normal_x,normal_y):
    adj_x = (normal_x - 0.5)*2
    adj_y = (normal_y - 0.5)*2

    # Filter out the extremes to avoid infinities
    if adj_x < -0.99:
        adj_x = -0.99

    if adj_x > 0.99:
        adj_x = 0.99

    if adj_y < -0.99:
        adj_y = -0.99

    if adj_y > 0.99:
        adj_y = 0.99

    return (math.tan(math.asin(adj_x))/100, math.tan(math.asin(adj_y))/100)

def normalize(arr, width, height):
    #Get range of depth
    max_depth = -99999999999999999999
    min_depth = 9999999999999999999
    for x in range(0,width):
        #print("Normalizing(1)... %i" % x)
        for y in range(0,height):
            depth = arr[y*width+x]
            if depth < min_depth:
                min_depth = depth

            if depth > max_depth:
                max_depth = depth

    print("max = %f, min = %f" % (max_depth, min_depth))
    if max_depth > 1000:
        print("Limited max to 1000")
        max_depth = 1000

    if min_depth < -1000:
        print("Limited min to -1000")
        min_depth = -1000

    if max_depth == min_depth:
        max_depth = min_depth + 1

    #Normalize depth to 0.0 to 1.0 range
    for x in range(0,width):
        #print("Normalizing(2)... %i" % x)
        for y in range(0,height):
            depth = (arr[y*width+x] - min_depth) / (max_depth - min_depth)
            #print(depth)
            arr[y*width+x] = depth

def generate_curviness(heights, width, height, radius):
    #determine curviness at each point and store in RED channel
    curviness = [0.0] * width * height
    print("Calculating Curviness (%i)..." % radius)
    for x in range(1,width-1):
        for y in range(1,height-1):
            for d in range(1,radius+1):

                if (x-d)<0 or (x+d)>=width or (y-d)<0 or (y+d)>=height:
                    pass
                else:

                    h = heights[y*width+x]
                    hv1 = heights[(y-d)*width+x]
                    hv2 = heights[(y+d)*width+x]
                    hh1 = heights[y*width+x-d]
                    hh2 = heights[y*width+x+d]

                    if hv1 < hv2:
                        vcurviness = (h - hv2) - (hv1 - h)
                    else:
                        vcurviness = (h - hv1) - (hv2 - h)

                    if hh1 < hh2:
                        hcurviness = (h - hh2) - (hh1 - h)
                    else:
                        hcurviness = (h - hh1) - (hh2 - h)

                    curviness[y*width+x] += (vcurviness + hcurviness)/(d*d)

    return curviness

def process_image(image_name, new_image_name):

    global pixels, width, height

    image = bpy.data.images[image_name]

    width = image.size[0]
    height = image.size[1]

    # The source image pixels - stream of R,G,B,A for each pixel, width x height
    pixels = list(image.pixels)

    # Gradient from each pixel in each direction - up, left, right, down
    gradient_u = [float] * width * height
    gradient_l = [float] * width * height
    gradient_r = [float] * width * height
    gradient_d = [float] * width * height

    # Determine gradient in each direction for each pixel
    for x in range(0,width):
        print("Capture gradients - Column %i of %i" % (x,width))
        for y in range(0,height):

            this_rgba = normalize_normal(get_pixel(x, y))
            this_rgba_gradient = calc_gradients(this_rgba[0], this_rgba[1])

            if x == 0:
                left_rgba = None
                left_rgba_gradient = (0,0)
            else:
                left_rgba = normalize_normal(get_pixel(x-1, y))
                left_rgba_gradient = calc_gradients(left_rgba[0], left_rgba[1])

            if y == 0:
                bottom_rgba = None
                bottom_rgba_gradient = (0,0)
            else:
                bottom_rgba = normalize_normal(get_pixel(x, y-1))
                bottom_rgba_gradient = calc_gradients(bottom_rgba[0], bottom_rgba[1])

            if x == (width-1):
                right_rgba = None
                right_rgba_gradient = (0,0)
            else:
                right_rgba = normalize_normal(get_pixel(x+1, y))
                right_rgba_gradient = calc_gradients(right_rgba[0], right_rgba[1])

            if y == (height-1):
                top_rgba = None
                top_rgba_gradient = (0,0)
            else:
                top_rgba = normalize_normal(get_pixel(x, y+1))
                top_rgba_gradient = calc_gradients(top_rgba[0], top_rgba[1])

            # Average each directional gradient with this one to give the gradient between the pixels in each direction
            gradient_u[y*width+x] = (this_rgba_gradient[1] + top_rgba_gradient[1])/2
            gradient_d[y*width+x] = -(this_rgba_gradient[1] + bottom_rgba_gradient[1])/2
            gradient_l[y*width+x] = -(this_rgba_gradient[0] + left_rgba_gradient[0])/2
            gradient_r[y*width+x] = (this_rgba_gradient[0] + right_rgba_gradient[0])/2

            # Store it
            ent_u[y*width+x]))
            set_pixel(x, y, (this_rgba[0], this_rgba[1], this_rgba[2], gradient_u[y*width+x]))

    # Now start with 0's and process the whole image pixel by pixel averaging the resulting heights generated by the surrounding pixels
    heights = [0.0] * width * height
    numpasses = int(max(width, height)/2)
    for p in range(0,numpasses):
        print("Pass %i of %i" % (p, numpasses))
        for x in range(0,width):
            for y in range(0,height):
                if y < (height-1):
                    height_top = heights[(y+1)*width+x]
                else:
                    height_top = 0.0

                if y > 0:
                    height_bottom = heights[(y-1)*width+x]
                else:
                    height_bottom = 0.0

                if x < (width-1):
                    height_right = heights[y*width+x+1]
                else:
                    height_right = 0.0

                if x > 0:
                    height_left = heights[y*width+x-1]
                else:
                    height_left = 0.0

                baseindex = y*width+x
                height_this = heights[baseindex]

                #Calculate and store the new height
                heights[y*width+x] = (height_this + (height_top + gradient_u[baseindex]) + (height_bottom + gradient_d[baseindex]) + (height_left + gradient_l[baseindex]) + (height_right + gradient_r[baseindex])) / 5

    normalize(heights, width, height)

    print("Storing Bump...")
    for x in range(0,width):
        for y in range(0,height):
            pixels[(y*width+x)*4+3] = heights[y*width+x]

    # Generate Red with radius 1
    curviness = generate_curviness(heights, width, height, 1)
    normalize(curviness, width, height)
    print("Storing Curviness...")
    for x in range(0,width):
        for y in range(0,height):
            pixels[(y*width+x)*4+0] = curviness[y*width+x]

    # Generate Green with radius 5
    curviness = generate_curviness(heights, width, height, 5)
    normalize(curviness, width, height)
    print("Storing Curviness...")
    for x in range(0,width):
        for y in range(0,height):
            pixels[(y*width+x)*4+1] = curviness[y*width+x]

    # Generate Blue with radius 25
    curviness = generate_curviness(heights, width, height, 25)
    normalize(curviness, width, height)
    print("Storing Curviness...")
    for x in range(0,width):
        for y in range(0,height):
            pixels[(y*width+x)*4+2] = curviness[y*width+x]

    print("Storing image...")
    new_image = bpy.data.images.new(new_image_name, width=width, height=height)
    new_image.pixels = pixels[:]
    new_image.update()
    new_image.pack(as_png=True)
    new_image.use_fake_user = True

    print("Done")

for img in bpy.data.images:
    if "_nmp" in img.name or ".nmp" in img.name:
        new_img_name = img.name
        new_img_name = new_img_name.replace('nmp', 'bump')
        print("%s -> %s" % (img.name, new_img_name))
        process_image(img.name, new_img_name)

The script will look for all images with '_nmp' or '.nmp' in the name and will generate an image of the same name, but with 'nmp' replaced with 'bump'. Each generated image will consist of 4 channels (RGBA). The Alpha channel will be a bump map generated from the normals, while the Red, Green and Blue channels are each a Curvature map - one with a radius of 1 pixels (Red channel), one with a radius of 5 pixels (Green channel) and one with a radius of 25 pixels. The curvature is measured only in the Horizontal and Vertical directions but the result seem reasonable to my eye (I've not got much experience of curvature maps - if there's a problem with these then let me know and I can update the calculations).

Here's the normal map (a section of the map from your question) :

Here's the result :

Bottom-right is the generated bump map, Bottom-left is the red channel (1 pixel radius curvature), top-right is the green channel (5 pixel radius curvature), top-left if the blue channel (25 pixel radius curvature).

The way this works is to first process the normals from the normal map to determine the horizontal and vertical gradients at each point. These are re-normalized to correct for any inaccuracies (such as 8-bit encoding) and extreme values are clipped to avoid problems before being averaged with its neighbours to get a gradient between those pixels. These gradients are then used to determine the difference in height between neighbouring pixels and those height differences built up into the bump map (this is the part that takes the time).

The resulting bump map is stored in the alpha channel and is then sampled to determine the curvature at each point, storing each in the R,G,B channels.

The script produces output of progress to the console - so run Blender from the command line to view the output. Beware large normal maps taking a considerable amount of time to process - on my system the full 2048x2048 map was estimates to take around 10 hours to complete so I used a cut down section for my testing (604x408 pixels) - which only took a few minutes to complete.

EDIT :

Just to clarify, the script takes the original Normal Map...

'rock5_nmp_clipped'

... and extracts the height information into a bump map with the same name but with 'nmp' replaced with 'bump'...

'rock5_bump_clipped'

...along with 3 separate channels, each with the curviness map calculated at different radii :

To analyse curvature using a different radius simply amend the calls to the 'generate_curviness(...)' function and re-run the script to generate a new image :

#Use radius of 25
curviness = generate_curviness(heights, width, height, 25)

e.g., change to :

#Use radius of 40
curviness = generate_curviness(heights, width, height, 40)

Using the Normal Map

The curviness stored in the R,G,B channels of the generated bump map can be used to add wear or additional effects :

Since we now have the actual underlying 'bump' information we can use this to drive other effects - such as the True Displacement - generating a much more realistic surface :

(Above example rendered using a single plane, subdivided to 256x256 faces and displaced with True Displacement (see displacement properties panel at bottom-right of image). All depth, displacement, and wear derived from original normal map, extracted by script.)


I've created a procedurally animated Rorschach test but I don't know how to stop it from being cut off on the edges? you can clearly see that the generated image is contained within the square or rather the plane that its on. Is there a way I can apply the texture to the object so that it doesn't reach the edges and isn't cut off?
edit: here is the node setup - I don't have the experience with nodes to see how unorthodox it is.

The key to prevent the texture from cutting off at the edges is to reduce its density towards the edges. The simplest way of achieving this is to use the Distance (Vector Math node) from the centre to adjust the output from the Musgrave texture. By using some maths functions we can change how quickly and how sharply the adjustment falls off as the point moves away from the centre.
I've replicated your nodes and added the ones highlighted to apply a factor based on the distance :

So the Distance from the origin is first passed through a Power node. The higher the power, the faster the falloff (so the sharper the edge). The multiply node allows the 'strength' to be adjusted and this is combined with the output of the Musgrave.
This produces the following result :


Baking a Path Animation for Export, Deleting the Path I have seen in various online tutorials that it is possible to animate an object along a path (NURBS curve), bake the animation and then delete the path.

Each time I bake the animation and delete the curve, however, the object reverts to the center of the screen and loses all animation.

Has anyone encountered this problem before?

Below is an image of the object and the path:

You probably missed Visual Keying selection part.You need to select it, cause when you check Transforms for the object animated this way, it's position is actually not changing, so by baking action, you get only 2 frames - for start and the end animation and both have the same value. You need to bake visual transforms instead, then everything works. There are two ways to animate object along the path. One with parenting.Then this set of options needs to be selected for everything to work smoothly for baking action:
You are using second way, with use of constraint. Then you need also select Clear Constraints option.


Mesh artifacts only on render I am making my phone in Blender and my mesh has weird artifacts on rounded corners only on render, not in viewport. Removing doubles and flipping normals doesn't help. I thought it's releated to non-quads on rounded surface but connecting verticles with knife tool also doesn't help.

What is this and how to resolve my problem?

You have a big and ugly n-gon (a polygon of more than 4 vertices) trying to bend as that curve.

You need to subdivide it into more faces.
Here's what you get when you delete that n-gon and do grid fill:

The curvature is better but far from ideal (plus you get terrible topology).

Try to create a curve that has the same number of vertices for both sides (and try to keep the rest of the topology as quads)


How to play an animation on a mesh? I have a pre-rendered animation that I want to play on a TV model in my new scene animation, and I really don't know how.

Would I do it within Blender, or should I make the material on the TV screen green, so I can green-screen it on?

Blender Internal:

Add a new texture and set the type to image or movie.
Select a file, then set the source to either Sequence or Movie depending on the format your rendered animation is in. (e.g. Sequence for an image sequence, or Movie for a single video file.)

Cycles:

Add a new Image Texture node and open a file.
Set the Source (this option will appear after you select a file) to either Sequence or Movie, again depending on the format your rendered animation is in.


How to achieve this look/unwrap (Swirl texture on tree) Trying to reproduce the following tree :

I fail miserably; how to achieve it ? Is it the mesh rotating or the texture ?

I think you are almost there, just unwrap with the Follow Active Quads option (select all in Edit mode then reselect one of the faces to make this face active) and rotate the UV map in the UV Editor:


Where is the Clamp Node I've been experimenting with nodes recently and following along with other people's work. I've noticed they used a clamp node that I cannot seem to find in the search menu.

This blender documents say it can be found under Converter>Clamp Node.
https://docs.blender.org/manual/en/dev/render/shader_nodes/converter/clamp.html

I've tried experimenting with the Math node but couldn't get the same results. I'm using Blender 2.8

Is there a way to create the Clamp Node with Node Wrangler

The Clamp node is available in Blender 2.81