Only render reflection of an object on an invisible object I have cubes on a glossy plane so they reflect on that plane. Is there a way to only render the reflection of the cube without rendering the plane itself? So I can get my cubes + the reflection with alpha? I want to be able to put the cubes on different pictures in photoshop and have the matching reflection.
I'm using cycles
Thank you in advance.

A bit late, but this can be done with two render layers.

Put the objects that are to be reflected on one layer and the mirror on another layer, and make sure that the camera and any light sources are visible on both those layers. Under Relations in the Object tab, make sure both layers are selected (hold Shift while clicking LMB to select more than one).

Go to Render Layers and add one render layer. Under Scene select the two layers on which your objects are.
On the first render layer, make sure only the layer containing the objects that are to be reflected is selected. Leave everything else unchanged.

On the second render layer, make sure only the layer containing the mirror is selected, and under Passes make sure only Glossy: Indirect is selected.

Now go to the compositor. Make sure you're on the Compositing tab and have enabled Use Nodes. One input and one output node should already be there. Leave those alone for now. Add another one one, Render Layers (ShiftA > I > R or Add > Input > Render Layers) and select the render layer containing your mirror. It should only have a single output socket, Glossy Indirect.

Add a Math node (ShiftA > N > M) and set it to Greater Than. Connect the Glossy Indirect to the upper input socket of the math node. This checks if the intensity of the colour is greater than the value specified in the lower input of the math node. Anything greater than this will be set to 1 and anything equal to or less than this will be set to 0. This output will be a mask, and the value you specify is the threshold at which to mask. Connect that to a Blur node (ShiftA > F > L). I'm using Gaussian and enabled the Bokeh option, but the exact settings are a matter of taste. I found that I liked this best, but you may prefer something different.

Add a Set Alpha node and connect the output from the blur node to the Alpha input and the Glossy Indirect output from the Render Layers node to the Image input.

Add an Alpha Over node, and connect the Image output from the first render layer to the upper input and the output from the Set Alpha to the lower input, the the output from the Alpha Over to the Image input of the Composite node that should already be there. Make sure Use Alpha is enabled.

I used a slight roughness on the glossy shader for the mirror, and this makes the reflections a bit blurry. This will cause some parts of the reflection to have very low intensity, but still greater than 0, which can make it appear as if the mirror is showing although there are no reflections (i.e. black edges around the reflections). The threshold (the value in the Math node) controls how much of these will be visible. The blur node blurs the mask slightly, to get the reflections to blend better with a background image. If your mirror's roughness is set to 0.000, you may get good results with a threshold of 0 and no blur node.

Since this uses the fact that reflections are indirect light, it will not work as expected if the objects whose reflections you want to see emit light. And using Glossy: Direct instead, will also make the reflections of the environment visible. Remedying that will be a bit more complicated. If needed, I'll look into that too, but for now, this is what I have.

The result...

And the .blend I've used in this example.

The PBR Dielectric node group used in the included .blend was taken from
How to Make Photorealistic PBR Materials - Part 1 courtesy of Andrew Price.


Shape Contour modelling I'm practising with this sphere object, and as seen in the example I have chosen a selection of faces, which I then merge by (faces), but the merged faces doing retain the sphere contour, but rather merge to a flat mesh surface. Is there a way to merge these faces but the same time the sphere retains its shape without the deformation.

Thank you.

No, it is not possible.
The deformation of the mesh is created by the different positions of each vertex. If you delete vertices, you will lose information thus losing the original shape.

There is no way for the software to know where you would want the face to bend, and as a matter of fact the preferred way to tell that to the software is to add vertices and move them accordingly.


How do I make color materials into a single image file? I created multiple cubic objects with solid color for each of them to group into one big cube (To import into Roblox Studio). I want the texture to look like this...

How would I do that? When I upload it into Roblox Studio the object is completely gray, but the object shape is there and also size. I searched on the web and couldn't find anything to solve my problem. Please Help!

What you need is BAKING. I recommend looking up some tutorials on texture baking in blender. Ideally, you should have used some color pallet and put uv faces on it to assign different color to different faces and using only a single material. you can then do a cleaner unwrap and bake the textures to this new uv map to get the final texture.


Object turns black when selecting the new image to which texture will get baked to in Blender Internal There are many questions relevant to baking in blender internal mode. But i could not find any solution to my problem.
After creating the object I unwrapped it and saved the unwrapped image with a name. Next, I assigned a image texture in the texture properties panel.
Next, I selected the image texture from the drop-down menu in the UV/Image editor and the texture is getting applied.
Then, to bake the texture, I created a new image, and just when I am selecting the new image, the object is turning black. I can't proceed to bake any further. Still it's showing that no images found to bake to.

If you Shift+ Z You will switch to "rendered shading mode" instead of "material shading mode" and will see the texture.

After you bake it, it should be viewable in material shading mode.

Your texture wasnt attached to the file, so I found a random one online


How to use a background image in sculpting mode? I know that you can use a background image in layout mode(?) with Shift + A and then do the modelling there (by setting the opacity lower and so on ..)
I was wondering if I could do a similar thing when sculpting so that I can sculpt the proportions 'better' by using the image ? I couldn't find a guide on the internet for this so here I am.

Go to the camera properties and choose the image background images option.


How to increase glare strength of just emission map? I am trying to create a bloom effect around my emission map using the glare node in compositing. The problem is that my emission map isn't bright enough for this to work. I don't want to increase the emission map's strength, because it washes out the detail.

What I've done is to multiply the value of the emission map, run that through the glare node, subtracted the brightened emission map from the result, and max/lightened the result over the result. The problem is that the subtraction isn't perfect, and it results in this black edge:

Is there a better way to go about doing this? I'm hoping for a way that doesn't require separating the emissive part of the mesh as a different object, because often the emissive parts won't be on isolated geometry from the non-emissive parts, if that makes sense.

Here is the blend file:

Since you are using over exposed Emit pass as a mask, there is no way to get proper pixel mix with rendered image. Even more because of border's pixels contaminated by background color (on antialiased edge). Also in your answer I can see edge in your render. Probably a bit better because of differences on Multiply values rather than mix type.

What I would try is to add Dilate-Erode node on "mask" to get rid of border pixels. This also brings all edges of mask highlighted because over exposed glare node. To compensate these appeared pixels I tried isolated only "glare" object color (can be done many ways, luminance is not probably the best way) and bring this part a bit darker to original, so pixels can be mixed more smoothly into final.

Note: I disabled Denoise node since produced worse result and was extremely slow. I also add Multiply after Glare, but your "before" is probably better you don't work with such low values, but result should be mostly the same. Environment texture was not attached so I used blender's Environment "studio.exr" texture.

These mixing of border pixels is always very sensitive for input, so its always quite a lot of tweaking. It's not like one group node you can attach anywhere.


How do I create new objects from a mesh created from animation nodes? Considering this limitation of AN here I'm trying to create one object for each mesh generated with AN, but as show in the link, the object instancer won't help. I also tried expressions and custom script but an error pops up saying that animation nodes data structures aren't accepted as arguments.

Is there any other approach?

EDIT

Ok, after reading the answers and checking the comments I'm going to try to be more specific. Bare in mind that this question comes from a bigger Graph of nodes therefore it may be difficult to explain clearly why some decisions have been taken.

So, for a list of objects I generate a list vectors for each object (which are the result of an operation that calculates the number of points inside a volume and that belong to another list of splines), with this list of vectors I generate a mesh composed of one triangle for each vector. Now, each of the elements in this list of meshes needs to be linked to a different object.

The problem with @Omar Ahmad solution is that he is feeding to the loop a list of objects but in my case as I'm already inside the loop for the mesh generator I cannot place an object instancer. Here is that part of the graph:

May be I just need to create a list of the generated meshes and put them out of the loop in order to use the instancer but I'm not sure how it will index it and if it will be in sync with object indexes.

I'm uploading the .blend if it helps.

Use the Object Instancer node to create n empty objects where n is the number of meshes you have. Then loop over both meshes and the empty objects and write each mesh to each empty object using the Mesh Object Output node. For example:

Notice how each mesh is its own object.


Music visualization is not working in animation nodes I am creating a music visualizer using animation nodes.

The music visualizer do the same as the music visualizer of animation nodes (templates) but it has an extra motion (bending) I did by a loop,the problem is that all the frequencies bend the same increment and not based on the frequencies.

I don't know if that a bug or something I did wrong,here is the bend portion:

The rest of the animation work without any problems but this doesn't.

So what Am I doing wrong?

The problem is that you used the Object Instancer without making deep copies.
Making a "Deep Copy" means that each individual object will have its own mesh data. Otherwise all instances will share the same mesh data block. So when you change one of them you'll change all objects.

Your loop essentially changed the mesh on all objects multiple times.

Maybe this .gif explains better what "deep copy" means:


Blender 2.91 Cycles: Why is the render result different from the viewport rendered view? I am following Blender Guru's mars tutorial and making a surface with rocks using two particle systems. One using bigger rocks and one using smaller rocks, both are collections of objects. The render result was fine at first but as I altered the rocks in the collection and made other changers, the smaller rocks disappear in the render.
In the 3D viewport rendered view, it still looks fine, like this:

but in the rendered result, there is like only 10% of the small rocks rendered. (Big rocks hided and material was adjusted to shrink the file size)

Does it has something to do with having two particle systems on one mesh? Because the plane in the back with only one particle system looks fine.
Here is the file:

It seems like some of your rock visibilities are disabled in the Outliner. Click on the funnel icon and click on the camera icon to display the Disable in Renders option:


Mesh becomes see-through in edit mode As illustrated in the screenshot, the geometry on the non-visible part of the mesh is visible in edit mode, even when the viewport shading mode is set to Solid.

It gets difficult to see and select geometry efficiently when this happens. I've observed that this happens when I set the units to centimeters (also in the screenshot).

Is this a bug? Is there a workaround? If this is a bug, where is the best place to report it?

You can download my .blend file here (size 7.53 MB).

It's not a bug, it's a feature! It's called "Limit Selection to visible", and it limits selection to the visible faces. To enable the Limiting, you have to click this button.


How to start imported Alembic animation at a specific frame How to? Imported .abc file starts at frame 1. I want it to start later.

Related

looping alembic
reverse alembic

Once you imported an Alembic Cache, the object in Blender will have an Alembic Cache Constraint.

Check Override Frame.

Go to your desired starting frame. Type 1 in the Frame property. Hover over the property and press I to set a key. Set a key on the next frame with the value of 2. In the Graph Editor, press ShiftE and select Linear Extrapolation. Then select the first keyframe, press T and make it a constant key.

Using a python expression
Type the following expression in the frame property:
#(1 - round((frame - frame_offset)%0.99999)) * (frame - frame_offset) + frame_hold

Replace frame_offset with the desired starting frame. Replace frame_hold with the frame which is held before the starting frame. frame doesn't change, it is a python variable holding the current frame number.
Example. To achieve the following:
Frame     Calculated
11        2   |
12        2   |  The frame held before is no 2.
13        2   |
14        2   |
15        2   < This is the starting frame (15).
16        3
17        4
18        5
19        6
20        7

The expression would be:
#(1 - round((frame - 15)%0.99999)) * (frame - 15) + 2


How to Offset Geometry of a Text Converted to Mesh I have a text object that has been converted to mesh. Recreating it as text is not ideal. I need to do the geometry offset of the characters (on $X$ and $Z$ axes).
Scaling wouldn't work as it doesn't scale the stroke but the shape overall. For example: I have an 'O' character ($20$m x $30$m) and I need the outer oval to get smaller and the inner oval to get bigger both by $0.2$ .
It is less straight-forward with characters like 'C' or '3'.

If I understand correctly your question, first simplify your letters topology with X > Limited Dissolve.
For some letters a simple inset (i) will work (and then invert the selection with Ctrli and delete the outer edges):

For some other letters it won't work and you'll have to extrude them, Shrink/Fatten with AltS, and delete the extrusion:


Can you control Explosions/ Smoke by frames? It looks like I have little influence on what the smoke/ explosion does. Sadly it goes directly from Frame 50 to 700.
What i want:

Frame 50 to 250 smoke/ explosion reach the half of the final expansion
Frame 250 to 450 smoke/ explosion should hold position but still smoking.
Frame 450 to 550 smoke/ explosion reach now very fast the final expansion
Frame 550 to 700 smoke/ explosion dissapear.

Is this somehow possible? Or do i have only influence on the speed with force fields?
I have a sphere which explode, should stop short, because its some futuristic stuff, and then finish the explosion

You should do some complex stuff, buy you can achieve it.
In general you should work with "Time Scale" attribute of Smoke Domain > Fluid > Settings so you can "pause" the physics or slow it down.
If you are using the particles system to create the explosion, the same should be done in sync with the Timestep value under Particle properties > Physics > Integration
Here's how to pause the smoke:


Bool tool and shading After booling with difference there is left weird shading on cube. How to fix it?

http://www.mediafire.com/file/hutki3noraf0ksg/bt.blend

2 Ways you can fix it

Click the Cube and go to shading in the left hand tool panel instead of smooth just click Flat

OR

Click on the cube and apply the boolean modifier only and add the edge split modifier to it. And bring the edge split modifier on the top then the bevel modifier in the order.


Cycles Random material with alpha texture I would like to set a random color matérial to many particules and apply 5 differents alpha textures also.
I achieve to apply a random color using the random object info node, what i want now is th apply randomly one of the 5 alpha textures on those objects.
I can't manage to apply more than 2 of them.

For random colors just plug the Object Info node's random output to a Color Ramp with the desired random colors as shown bellow:

Use a constant color ramp if you want only solid colors, or any interpolated version if you want a range of variations.

For random alpha textures inside a particle system it is probably easier to just create five separate objects (they can share mesh objectdata) with five different materials applied "By object" with your different alpha maps.
Group these objects into a single group with Ctrl+G and the use that group as dupli in the particle system.

Turn on the "Pick Random" option and the particle system will take care of choosing each object arbitrarily.


Mark sharp does nothing I understand this is a very basic question, but I cannot find the solution. Google & other Stack Exchange gave me no solution either.

I am following Blender Game Asset Creation guide from Blender Cloud, at some point Aidy selects his whole model and does Shade Smooth. Then he selects some edges and marks them sharp.

In Aidy his tutorial you can clearly see the difference between marking sharp and not. As seen here (this is taken from his tutorial)

When I do this in my Blender File, I see no difference. I've tried removing any doubles, but I can not think of anything else. What could be causing this?

As MrZak said,  Make sure Auto Smooth is turned on, (for manual edge split, the angle should be 180) ... For Auto edge split (Ie: blender decides where to split the edges) I find that an angle of 60 to 80 degrees works mostly, although it depends on the mesh :)


Internal "get/set" function of property? Here is my test code and picture:

import bpy

# Simple property reading/writing from ID properties.
# This is what the RNA would do internally.
def get_float(self):
    return self["testprop"]

def set_float(self, value):
    self["testprop"] = value

#bpy.types.Scene.test_float = bpy.props.FloatProperty(get=get_float,set=set_float)
bpy.types.Scene.test_float = bpy.props.FloatProperty()

bpy.context.scene.test_float = 12.34

When I don't explicitly set the "get/set" function for my property, after assigning the value, I can get the property value by 'scene["test_float"]', but if I explicitly set the "get/set" function, then if I try to type in the same commands, I will receive a error "KeyError: 'bpy_struct[key]: key "test_float" not found'" . So what should I do to get the same results by using explicitly
"get/set" function?

It's named "testprop" not "test_float"

When a property defined via

bpy.types.Scene.test_float = bpy.props.FloatProperty(...)

is assigned a value scene.test_float = value  it is stored. "behind the scenes" as a custom property scene["test_float"]  ("second time above")

In the get / set example ("first time above") it is instead stored in a custom property named "testprop".

Instead, had  the custom property been named "test_float" in the getter and setter, it would emulate the behaviour of the float property without a getter and setter, and be reflected in the value and existence of scene["test_float"] when set.

Perhaps this needs to be an edit in docs re what RNA would do internally.

Note if the getter is defined thus

def get_float(self):
    return self.get("test_float", 0.0)

def set_float(self, value):
    self["test_float"] = value

bpy.types.Scene.test_float = bpy.props.FloatProperty(get=get_float,set=set_float)

it will return a default value, in this case 0.0 even if the property has not been set.


Box selecting various strip types In the video sequence editor, dragging a box selection over the body of various strips produces different results.

As opposed to video and audio strips, meta strips don't get selected.

[EDIT] I would rather not drag a box aroundt the whole strip, because I'd be selecting adjacent strips. I use the multicam strip for cutting, which results in many multicam strips being next to each other seamlessly.

Can I set this behaviour to be more consistent?
[All strips beeing selected, multicam strips as well.]

import bpy

# Usage: Place the cursor over the strips you want to be selected and run the script.

# Define current frame and sequence strips

cur_frame = bpy.context.scene.frame_current
strips = bpy.context.scene.sequence_editor.sequences

# Loop over strips and find which overlap with the cursor

for strip in strips:
    if strip.frame_final_start < cur_frame and strip.frame_final_end > cur_frame:
        strip.select = True
    else:
        strip.select = False

Another (temporary, until the bug is fixed) solution is to paste this script in the Text editor and run it whenever you want to make selection based on the position of the cursor.


How to extract/convert data from blender cache files .bphys into a human readable form via python I am trying to extract position, velocity and rotation data from smoke simulation cache files .bphys.

i have been attempting to convert the .bphys file  into a more human readable form via python. With the eventual goal of using the location velocity and rotation data to create an .fga vector field that could be imported into unreal engine 4.
If someone could tell me how to convert the binary data into usable (human readable) float values using python that would be amazing.
I am having problems separating the data properly into floats.

(here is an overview of the contents of the files.  https://developer.blender.org/rBAC17a9b3e44ca0e48ef0244df19f2f252198a56919 )

(additional info)
struct.unpack is currenly what i have been trying to use. however there seems to be some non float data at the start of the file.
i have not been able to work out exactly where it ends, and i think it might be throwing off the unpack.
also unpacking with "f"

struct.unpack("f",file.read(4)

is resulting in strings of numbers with what i assume to be scientific notation at the end (**10) e.g 4.203895289274451e-45,
which do not look like the sort of values i was expecting to find.

Thanks

the first 9 bytes of the bphys file is the Header of the file. the first 8 are 'BPHYSICS' after which there is a unsigned int describing the type of data:

0 softbody
1 particles
2 cloth
3 smoke_domain
4 smoke_highres
5 dynamicpaint
6 rigidbody

the link you posted is in relation to Particles, so i will assume you are only looking at accessing the particle data.

after the header, each particle has the following data:

index , 4
location , 12
velocity , 12
rotation , 16
avelocity , 12
size , 4
times , 12
boids , 20

however, the pointcache reader will only write/read boid data if the particle system has boids enabled. so if you're not using boids, you just dont read that data.

assuming there is no boid data you will want to read the following data:

unsigned int, // BPHYS_DATA_INDEX
3 * float, // BPHYS_DATA_LOCATION
3 * float, // BPHYS_DATA_VELOCITY
4 * float, // BPHYS_DATA_ROTATION
3 * float, // BPHYS_DATA_AVELOCITY / BPHYS_DATA_XCONST
float, // BPHYS_DATA_SIZE
3 * float, // BPHYS_DATA_TIMES

all this information can be found in
pointcache.c file in blender's code.


Merge every two vertices in a loop So I have a long loop of vertices. And I want to make each 2 vertices to blend into 1 like shown in image.

Currently I have a situation like on left(but much longer). However, I need to get situation as visile on right. Selecting every 2 vertices and merging them is long and exhausting process. I was wondering if there is a way to do it faster, in loop.

With the Edge Select mode enabled select the whole edge with Alt+RMB, then go to Select-->Checker Deselect. Set it up to select every second edge segment, then press X-->Edge Collapse.


Blender Game Engine python loop issue I have a python script that moves a sphere around. This is basically the start of a snake game. The problem is that the ball stops moving if the keys aren't constantly held down. What I need is for the ball to keep moving in the last direction given by the keys. I think it has something to do with the fact that the script is restarted and the variables reset each tick...

This is the code I'm using:

import bge
U = False
D = False
L = False
R = False
def main():
    global U
    global D
    global L
    global R
    cont = bge.logic.getCurrentController()
    own = cont.owner
    keyboard = bge.logic.keyboard

    wKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.WKEY]
    sKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.SKEY]
    aKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.AKEY]
    dKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.DKEY]

    if wKey and (D == False):
        U = True
        D = False
        L = False
        R = False
    elif sKey and (U == False):
        U = False
        D = True
        L = False
        R = False
    elif aKey and (R == False):
        U = False
        D = False
        L = True
        R = False
    elif dKey and (L == False):
        U = False
        D = False
        L = False
        R = True
    if U:
        own.applyMovement([0,0.2,0],True)
    if D:
        own.applyMovement([0,-0.2,0],True)
    if L:
        own.applyMovement([-0.2,0,0],True)
    if R:
        own.applyMovement([0.2,0,0],True)
main()

This is a link to the file on my Google Drive:

https://drive.google.com/open?id=0B6_5f6jmSaHOUW1wTGVlRXFkVUE

I'd suggest if  you are going to use global variables, then run script as a module, otherwise would need set up Boolean properties on object and use them to keep tabs on U, D, L, R.

Slight change to code, the controller is automatically passed to the module, which needs to have the .py extension.

import bge
U = False
D = False
L = False
R = False
def main(cont):
    global U
    global D
    global L
    global R

    own = cont.owner

    keyboard = bge.logic.keyboard

    wKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.WKEY]
    sKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.SKEY]
    aKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.AKEY]
    dKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.DKEY]

    if wKey and (D == False):
        U = True
        D = False
        L = False
        R = False
    elif sKey and (U == False):
        U = False
        D = True
        L = False
        R = False
    elif aKey and (R == False):
        U = False
        D = False
        L = True
        R = False
    elif dKey and (L == False):
        U = False
        D = False
        L = False
        R = True
    # test print
    print(U, D, L, R)
    if U:
        own.applyMovement([0,0.2,0],True)
    if D:
        own.applyMovement([0,-0.2,0],True)
    if L:
        own.applyMovement([-0.2,0,0],True)
    if R:
        own.applyMovement([0.2,0,0],True)


Bone won't bend in quadruped leg So I am rigging a fox mesh, and the method I used of inverse kinematics isn't working like it has on numerous quadrupeds I have rigged. So the leg has four bones in it. Now I put the IK on the second bone to the bottom, and set the chain length to three. Problem is the top two bones won't bend when manipulated but stay in the bend then started in even when I move target. But I did the same thing with the front leg and it works fine I can't find any differences. I have seen many complaints about this happening after setting a pole target but I haven't yet and its still happening, any ideas?

Okay so I figured it out, moonboots you were right I did need to bend the top bones more in edit mode. At first I couldn't figure out how to position them so it worked but still fit the mesh. Then I found a drawing of a fox with an internal skeleton shown along with the body. This showed me I had the two top bones in the back leg positioned wrong, so I changed it to mimic the drawing and it worked. The bones finally bend when using IK. I guess this is just further evidence that nature knows exactly what it is doing with designing of living creatures. lol


Render with a wider dynamic range in cycles to produce photorealistic looking images To get images that seem more photorealistic, not only a much wider Dynamic Range is needed, but also having the color information desaturate towards white as it would happen in an overexposed photograph.

This all follows from an answer on this question

  The default sRGB output view transform captures a mere two and a bit stops of light above middle grey from a Cycles render. This is entirely unnatural when compared to our learned response of examining photographic-like reproductions, which maps anywhere from six or more stops of light above middle grey to the display / output referred transform

To illustrate the issue here's a sample scene:

Simple emission shaders: White, Red, Green and Blue.
From left to right each one is twice as bright in a linear progression (in photography double the light intensity it would be considered one stop brighter). The red numbers indicate the brightness for the emission shader.

As you can see once the values are mapped from linear scene to sRGB transfer curved values, there is no difference in anything that is brighter than 1.

Looking at the waveform the issue is very clear: values over 1 are just clipped. 1 is white and, of course, there is nothing whiter than than white

The vectorscope  reveals another issue as well: The Red, Green and Blue colors, also reach a point in saturation at 1 and keep going past what is possible to represent correctly.

Again from the same answer:

  Rendering in a scene referred model extends primaries off to infinity. This means that they do not desaturate nor reach the display referred white in any way that is familiar nor correct.

So how can both of this issues be resolved, so that we can capture more dynamic range from the scene and the color saturation seems more photorealistic? Ideally the brighter the object gets it will get disaturated as well...

Update as of June 23, 2019

Plenty has changed since the original posting. I figured it was worth updating this post to highlight two excellent videos provided by two of the celebrities in the community, Gleb Alexandrov and Andrew Price. Both of the videos are top shelf quality, and well worth viewing.

Mr. Price was largely responsible for kicking the monumental interest in camera rendering transforms forward, including exposing plenty of folks to ACES. The Secret Ingredient to Photorealism has now hit over 1.7 million views, attracting viewers from plenty of different domains.

Mr. Alexandrov's video came out slightly thereafter, and has some terrific examples with synthetic imagery, as well as a humorous dive into some of the more nuanced details.

Update as of October 5, 2016

There has been a huge amount of interest in the creative affordances colour management provides an imager. If you want to jump right in and know what you are doing, there is an updated filmic set of tools available in a new filmic Blender set. The new set offers:

Very easy view based selection of five basic contrasts. Added to support new imagers that are interested in trying the package out, but worry about grading. The new set should be turn-key for this audience.
Much improved contrast curves selection. In addition to a simplified naming convention, the basic transfer curves are much more refined, perfectly pegging your scene referred middle grey values of 0.18 to 0.50 in every single transform.
Much improved desaturation and crosstalk film emulation. This new transform is complex and offers imagers an extremely graceful roll-off to display referred white. In addition to this, there has been a crosstalk element added which carefully mixes the primaries as the values reach peak. This will result in images that are much closer to what one would expect from typical photographic mediums.

It would be excellent if the talented imagers out there would try this new set and render out some sample images for this posting.

Issues

Post your issues to the GitHub repository.

Original Update

If you are seeking the original OpenColorIO set, you can find it at the original link.

After a recent presentation I did on the subject, there is a Google Slides presentation on dynamic range and intensity. For those interested in this subject, or perhaps for a greater understanding, feel free to watch the presentation located in this link.

Sample Images

Here are some sample images generated from the OCIO configuration. You should notice immediately how all of the physical based light interactions are augmented such as subsurface scattering, indirect lighting etc. Also note how the configuration allows for proper photo-based highlights captured in the display referred transform. Sample files compliments of Eugenio Pignataro, Mike Pan, Henri Hebeisen, Tynaud, and Mareck, Dmitry Ryabov, Rachel Frick, Marius Kreiser, and Andrew Price. Click to enlarge.

Mareck:

Click to Enlarge

Dmitry Ryabov:

Click to Enlarge

Rachel Frick

Click to Enlarge

Marius Kreiser

Click to Enlarge

Andrew Price

Click to Enlarge

Eugenio Pignataro:

Click to Enlarge

Mike Pan:

Click to Enlarge

Henri Hebeisen

Click to Enlarge

Tynaud

Simple Example of the Filmic Desaturation / Crosstalk 3D LUT

Two simple images that demonstrate the critical differences of high intensity values and how purely saturated colours fail to behave photographically. Note how the average greyscale values desaturate and bloom to display referred white as expected, while the purely saturated colours break. Compare against the transformed version which blooms as one would expect as values increase:

Click to enlarge

The Question

  To get images that seem more photorealistic, not only a much wider
  Dynamic Range is needed, but also having the color information
  desaturate towards white as it would happen in an overexposed
  photograph.

The key word here is photorealistic. While many imagers focus on modeling, texturing, and other critical nuances, this is an often overlooked term with some profound implications on imaging.

What is Photorealistic?

While an apparently obvious question, breaking it down into components will help us provide a solution to the initial question. Photorealism has a direct link to the photographic world. This means that to solve the problem at hand, we need to break down what exactly a photograph is and how it has influenced our learned aesthetic response. Once having done so, we can compare how the photographic model relates to a CGI model, and provide bridging tissue to derive a solution.

What is Film?

The advent of film provided a unique aesthetic transformation of a physical scene into a convention. This convention brought with it particular nuances of photographic emulsion, and later digital sensors that sought to imitate the medium. These nuances can be loosely broken down into two categories when evaluating CGI and its relationship to the photographic and photorealistic.

Breaking Down Film, and the Photograph

  The vectorscope reveals another issue as well: The Red, Green and Blue
  colors, also reach a point in saturation at 1 and keep going past what
  is possible to represent correctly.

For our purposes, we will examine the later era of colour photographic reproduction. The first concept we need to address is why, when photographing something of intense light, does the image desaturate? First, the composition of the film itself:

Click to enlarge

Given that the spectral locus, or range of all visible light, is a strangely curved mapping of wavelengths to colour, we can begin to see some of the reasons that images blow out to a white. In the above example, we see that there are three primary layers that are sensitive to loose regions of the spectral wavelength, crystallizing and "recording" the wavelengths. Here are some simple spectral responses based on the layers:

Click to enlarge

What we learn immediately is that film is not a narrow band recording medium. That is, if we think of the primaries, or colours for each RGB such as sRGB, the primaries are extremely narrow band, representing a unique and singular colour of light for each channel.

What are the Implications of Non-Narrow Band Recording?

Both film and DSLRs use the filtering technique to record their data. With regard to colour, we know that the filtering mechanism, due to a variety of complex reasons, are sensitive to a non-narrow range of actual physical wavelengths in the visible spectrum. This means that even though the "green" layer is attempting to only record a specific colour of green, the emulsion / DSLR photosites will also register recorded information because of the wider wavelength gathering.

The net sum is that when a specific "blue" light lands on a photograph, it is also crosstalking with the other layers or photosites, creating an extremely unique mixture of values. Part of this is colour response, and forms another discussion. The critical part we need to grasp regarding the desaturation of film / DSLRs, is that there is no single, physically plausible colour of light that will solely trigger an isolated emulsion layer or photosite. As a result, the stock or sensor will bloom out to white given enough exposure time. This is very much unlike the default sRGB transfer curve applied to Blender's default view.

The Intensity of Light in Relation to a Photograph

Photography has unique colour characteristics above which result in an image "blowing out to white" as well as many more subtle crosstalk features that yield the unique looks of film and DSLRs. At least as important as this facet is the dynamic range of the medium itself.

Film had an extremely unique feature that even DSLRs struggle to match today: a logarithmic encoding scheme. That is, as the particles of silver were exposed to light and crystallised, the response became harder and harder to influence the negative; once a granule was exposed, it became physically harder to expose the grains behind or around it. This meant that film was able to respond to light in a logarithmic form, and in doing so, record a tremendous range of intensity of light.

Film and a Camera

When we dial in a camera to record a scene, we set an aperture, shutter speed, and typically select an ISO sensitivity. These three facets restrict the scene's intensity values that the logarithmic film records.

To understand this better, we need to consider two CGI terms that break our computerized models down into a more granular format: Scene Referred and Display Referred (aka Output Referred, Device Referred, etc.)

Scene Referred Capture of a Photograph to a Display

If we consider that the scene, or scene referred data in our photographic examples above, cover a vast range of intensities, we can see a transformation happen at the camera / emulsion level. This is a mapping of the scene referred linear light values to the logarithmic encoding structure of film. The following image shows an arbitrary twelve and a bit stop mapping of scene referred values to the display referred / device referred encoding of film or DSLRs, as viewed on an sRGB device:

Click to enlarge

What is Happening in Blender from Cycles?

In Blender, and particular using a raytracing engine such as Cycles, we are generating scene referred values in the internal model, and passing those values via a display referred transform to output. The default "sRGB" display referred viewing transform appears to be a blind and ignorant hard cut. While some might call this "clipping", it would be more accurate to consider this a transform from the scene referred domain to the display referred, and the value of 1.0, while happens to match the same value of 1.0 in the display referred domain. The values, despite being identical, represent different things.

The "Default" transform is a strict inversion of the sRGB transfer curve that was developed as part of the sRGB specification. Here is roughly what it looks like from a layperson's vantage:

Click to enlarge

This transform is particularly confusing for a number of reasons:

It grossly ignores much of the scene referred data present in Cycles.
It uncharacteristically models the range of intensity of light to the display referred output image.
Imagers unaware of the transformation of scene referred to display referred values conflate the concept as existing on a single continuum, forcing unfortunate mangling of their rendered scenes to fit in under this completely arbitrary and extremely important transformation.

Almost At the Solution

Before we "solve" the above to issues of desaturation and latitude, it is worth revisiting how a clear division between scene referred data and display referred data can greatly elevate an imager's ability to craft work.

How is Scene Referred Data Different?

  1 is white and, of course, there is nothing whiter than than white

Scene referred data has no notion of white nor black. Those concepts do not exist until the display referred transformation. "Whiter than white" is an anachronistic term that typically referred to safe video encodes.
Scene referred data, much like a true scene in reality, can represent a colossal and infinitely large range of data. Imagine a planet with one sun? Now imagine one with two suns? Three? The only limit on scene referred data is the bit depth of the actual architecture, and even then, it is constantly evolving.
Scene referred data is rendered from architecture such as Cycles that seeks to model a version of reality. If an imager is unaware of the transformation from scene referred to the display referred domain, they may end up artificially mangling their lighting, data, textures, etc. to fit in under an arbitrary view transform.
Scene referred data is stored linearly, or more specifically, a visual radiometrically linear fashion. That means the ratios of light emulate a physical model of light, and respond accordingly.
Very few formats store scene referred data effectively. EXR is the most robust format for such storage.

How is Display Referred Data Different?

Display referred data has a minimum and maximum creative point, typically zero and one respectively.
Display referred data is most typically stored nonlinearly, with the arbitrary middle grey point mapped to a particular middling value in the display referred encoding.
Only at the display referred transform do values end up mapped from a given high and low point to white and black respectively. Speaking in terms of white or black prior to this transform is utterly meaningless. Only terms like achromatic, or without colour, apply.
The display referred transformation is handled via OpenColourIO in Blender. This transformation is arbitrary and a creative tool for imagers.
Display referred encodings will almost always be discarding information when stored on disk, and as such imagers should be well aware of formats used to store their data. This extends to alpha storage concerns, as some formats such as PNG mangle alpha.

The Long Path to the Solution

In summary, we are faced with two unique problems posed in the original question by @cegaton.

Latitude or dynamic range of the encoded image.
Unique colour characteristics such as desaturation to emulate the photographic.

We know that OpenColorIO controls the transformation from the scene referred domain to the display referred domain, and as such, the solution will revolve around our manipulation of the configuration for OpenColourIO.

What Might a Solution Look Like?

Dealing with Latitude / Dynamic Range

With regard to how to capture the latitude range, we need to consider what a more optimal solution would be than the default sRGB display referred transform. We could suggest it might look something like the following:

Click to enlarge

The above image maps approximately six and a half stops above middle grey to our display referred notion of white. It also maps a scene referred value of 0.2 (again, in scene linear) to our middle grey value. This keeps roughly to the values that many display referred images would have their middle grey values mapped to when converted to display linear. The above ignores a more complex display referred black range mapping, and simply maps zero to zero.

This can be accomplished via a 1D display referred viewing transform in OpenColourIO. An imager can use a spreadsheet or other tools to generate such a LUT. More information on this can be provided if someone chooses to ask the question.

Dealing with Desaturation or Crosstalk

Dealing with the desaturation or crosstalk issue is much more subtly complicated. In the case of a desaturation, we expect that as say, the blue primary pushes up toward the display referred maximum, that the other channels move up as well. This is impossible to achieve using any amount of curves.

It should be noted that no matter how hard one tries with the default sRGB display referred viewing transform, that colours will always be mangled as they near the ceiling of the viewing transform. Why is this? This is because the 1D LUT simply hard cuts the scene referred data within the transform. This yields colours that, while it is possible to force them to clip to white, do so in a manner that is entirely unlike any sort of desaturation known in a photographic medium.

The technique to achieve this is typically via a 3D LUT. A 3D LUT differs from a 1D LUT only in the sense of the input and output influence. While a 1D LUT takes an input value and converts it to an output value, a 3D LUT is able to take a single input value and adjust, in addition to the input value, also the other channels. This provides us the magic tool to simulate not only desaturation but also the complexities of filmic crosstalk.

3D LUTs have a unique problem however, in that the input range must be very well defined as their size and resolution grows exponentially. To accomplish a suitable 3D LUT, it is prudent to convert scene referred linearized data to a display referred perceptual domain. This allows the 3D LUT to be applied in a perceptually uniform manner to the data, increasing the quality of the transform.

One Possible Solution

While the above hopefully highlights how much creative control an imager has, it hopefully also sheds light on how not to deal with the complexities of image based lighting or high dynamic range lighting. Instead of mangling and crunching scene values to fit the display referred transform, it is much more prudent for an imager to create a clear division between the scene referred data and the display referred encoding. Doing so will not only elevate the imager's work, but also her creative control when grading at a later step.

While the actual generation of 1D and 3D LUTs, as well as the OpenColourIO configuration details, is beyond the scope of the original question, the following is left here for any imager to experiment and light with. It is a fully compatible OpenColourIO configuration for use immediately.

What it does:

The "-10-+6.5" represents a viewing transform that grabs approximately 6.5 stops over middle grey and maps it to the display referred encode.
In the Looks you will find a number of different looks. While well documented in the README, the "Basic" adds onto the above transform a desaturation / convergence toward display referred white. This is the exact shaper transformation, further transformed into a 3D LUT that deals with the desaturation component explained above. The LUT was generated using the idea that the luminance of the primaries would be roughly a decent entry point for emulating the desaturation of the layers / photosites. As such, it uses the sRGB / 709 primaries weights to more accurately desaturate as the intensity values near the display referred maximum point, at approximately two and a half stops below the maximum scene referred value of 16.291, or roughly 3.0 scene referred linear.

Other useful Looks:

A False Color look that offers a visually shifted "heatmap" of exposure useful for lighting.
Several Sharp variants which interpret the data under a power curve that increases contrast. Useful as a rough approximation of a grade.
A Scaled set that maps middle grey from the view's .6 to sRGB's 0.466. This can be considered training wheels for those not used to grading footage.
A Greyscale Look on both the desaturated and standard views for evaluating contrast. It uses 709 primaries as weights.

Updated LUTs are located at this GitHub link. Please read the README to spot specific issues with some of Blender's yet-to-be-addressed shortcomings when operating on scene referred imagery. Sadly, many of the problems present in Blender are simply because very few imagers realize the extent to which the default view impacts their view of the scene referred data. In this regard, it makes the scene referred data appears as though it were display referred simply because imagers rarely are aware of the data in their scene.

The more imagers that give the LUT pack a spin, the more likely they are going to help Blender evolve as a tool. That is of course, in addition to almost magically transforming their imagery.

To use it, an imager merely needs to:

Backup / copy / move their [BLENDER DIR]/bin/[VERSION NUMBER]/datafiles/colormangement directory to a different directory.
Link or copy the files into a fresh colormangement directory in the datafiles directory.
Change between the rendered views using the Scene's Colormanagement Properties panel.

References and Further Reading / Viewing:

Alex Fry interview article discussing scene linear and wide dynamic range imaging in ACES.
ACES in VFx presentation video by Alex Fry, covering some fascinating issues regarding wide dynamic range rendering in The Lego Movie and other projects.
The OpenEXR file format standard and specification, covering wide dynamic range imaging and other details.
Jeremy Selan's excellent site on Cinematic Color, including the Visual Effects Society handbook on colour in motion pictures and animations.
An exploration into how film stocks and emulsion layers work.
An excellent PDF presentation from GDC 2016 on the subject of wide dynamic range mapping in games.


How can you make a hole in a wall with archimesh? I am wondering what the best way to model the entire interior of a home would be. Here is a floorplan of what I am trying to model in Blender.

Areas Highlighted in yellow have a carpet texture and areas bordered or colored in red have stone/marble. I tried using Archimesh, but the room tool proved to be finicky as it would not allow me to have a hole in the wall which could make the hallway and kitchen entrance How can I make a hole in the wall with archimesh?
Thanks

You can do this in the same way as Archimesh does with the "Auto Hole" button, with a Boolean modifier.
Add a cube to the scene. This will be the hole, resize it as needed. Then add a Boolean modifier to the wall object and use the cube as object value. Leave operation setting at Difference, it's the default value. Last but not least, you just need to hide the cube in viewport ("eye" icon in the outliner) and for render ("camera" icon).
The camera icon is not shown be default. In Blender 2.9x, an easy way to hide the cube is to move it a collection and close the collection. (Upcoming Blender 2.93 will show the render icon by default. In older versions you need to activate it in the filter settings of the outliner. It's a so called Restriction Toggle.)


Can a local axis be aligned with an edge? I want to align (make parallel) any of the 3 local axes with an edge. How can this be done? Can such an axes system be made available outside the object the edge belongs to?

Yes, you can have any number of custom transform orientations. You create a transform orientation by selecting either a vertex, edge or face and in the Tool Properties panel (N) at the bottom, expand the Transform Orientations tab. The plus sign will add a new orientation based on the currently selected element in the scene.

It's a good idea to name these orientations if you plan to reuse them, else that list can get confusing.

This Transform orientation can then be selected from the drop downs in that same panel, or in the 3dView header. Because they persist in the .blend they can be recalled at any later stage.

Also see this answer, which covers much of the same

Limitations

(Dec 2015) You can't make a Transform Orientation using a Curve Object's Point or Segment.


Smoke and fire not showing up in my eevee render In my render the fire with smoke physics are not rendering for some reason, I've been breaking my head about this. I use blender 2.8 and the Eevee renderer.
I'll have a download link to my file.
Somebody please help!

I had the same issue until I realized that I typed in 'Density' instead of 'density' in the attribute node.

This should work:


Rendering a scene makes the background footage extremely bright Not quite sure why this is happening. I even tried disabling lights.

Go to the Compositing screen layout, and then back to the Default screen layout. This should clear things up. I think maybe the nodes just need to load.


Cycles Materials Math node with more than two inputs Are there any mods that allow Math nodes to accept more than just two inputs? I regularly find myself wanting to, say, get the Maximum value from multiple inputs and end up having to chain multiple Math nodes together. While this does work fine, it looks really messy and is quite inconvenient and cumbersome. It would be really nice to have a Math node that could work like the Group Input/Output nodes where a blank socket is used to add any additional inputs/outputs as required.

Obviously better than a mod would be native Blender functionality for this. Where would I post such a feature request if there isn't one already?

EDIT : The main question here is whether such a feature exists already - if it doesn't then I'll look into raising it as a feature request - but I'd like to determine that this feature doesn't already exist in some form first.

I won't cover the complete topic about Custom Nodes, because there's too much that can be done.
This is just a small compilation of things to know for writing custom nodes that work in Cycles. Knowledge of Python and Blender's API is required, as I won't dig deep into them.

In Blender's API we have a NodeCustomGroup class that is similar to the NodeGroup class. Before going into the NodeCustomGroup, let us explain a bit how the nodetrees work:

A Nodetree has mainly 4 collections. The nodes collection, the links collection, the inputs collection and the outputs collection. The NodeGroup node encapsulates a nodetree in order to turn it into a visible node in the editor. It scans the nodetree interface, and creates sockets for using the nodetree. This process is automatic and there's nothing we can do with it.

The good news is that we have the NodeCustomGroup. From this class, we can build the interface of a nodetree and even build/rebuild the same nodetree dynamically, have custom properties, respond to events, and have access to the Blender's context.

For the NodeCustomGroup, we'll need to create our nodetree (which must be a ShaderNodeTree, if we're going to make a Cycles' node). Then we need to populate this tree with one NodeGroupInput and one NodeGroupOutput, as they are used to create the nodetree interface. After we build our nodetree as we do for nodegroups: add nodes, input sockets, output sockets, and links to connect everything.

After that you need to define how the Custom Node is supposed to work...For example, in this case, would include functions that check if an input Virtual Socket is linked, and if so, make the changes to the nodetree, create a new Float Socket, remove that original link and add a new link to the created socket, etc. Actions for checking if some socket is disconnect might also be written.

When the node is completed one must register it, which is the same process as for any class in Blender.

For adding it to the Add Menu and the Add Panel, you should to use the nodeitems_utils module (and for a better integration, one should also use the ShaderNewNodeCategory from nodeitems_builtins). This should be used with caution as I know some well known addons that use these modules in ways that disable the interface of other addons (i.e. Blend4Web).

For the last, I leave here the code from a node from my Github page. It's small enough to paste it here, and it covers dynamic nodetree and interface management. Some examples of this node working here.

# Node Authors: Secrop
# Node Description: Node for creating loops over some nodegroup
# version: (0,0,3)

import bpy

# for blender2.80 we should derive the class from bpy.types.ShaderNodeCustomGroup
class ShaderNodeLoop(bpy.types.NodeCustomGroup):

    bl_name='ShaderNodeLoop'
    bl_label='Loop Node'

    def nodegroups(self, context):
        nt=context.space_data.edit_tree
        list=[('None','None','None')]
        for nd in nt.nodes:
            if nd.type=='GROUP':
                ng=nd.node_tree
                if ng.inputs.get('iterator'):
                    list.append((ng.name, ng.name, ng.name))
        return list

    def __nodeinterface_setup__(self):
        self.node_tree.outputs.clear()
        self.node_tree.inputs.clear()
        if self.step_nodegroup=='None':
            return
        for input in bpy.data.node_groups[self.step_nodegroup].inputs:
            if not input.name=='iterator':
                self.node_tree.nodes['Group Input'].outputs.new(input.bl_socket_idname, input.name)
                self.node_tree.inputs.new(input.bl_socket_idname, input.name)
        for output in bpy.data.node_groups[self.step_nodegroup].outputs:
            self.node_tree.nodes['Group Output'].inputs.new(output.bl_socket_idname, output.name)
            self.node_tree.outputs.new(output.bl_socket_idname, output.name)

    def __nodetree_setup__(self):
        self.node_tree.links.clear()
        for node in self.node_tree.nodes:
            if not node.name in ['Group Input','Group Output']:
                self.node_tree.nodes.remove(node)
        if self.step_nodegroup=='None':
            return
        previousnode=self.node_tree.nodes['Group Input']
        for iter in range(self.iterations):
            curnode=self.node_tree.nodes.new('ShaderNodeGroup')
            curnode.node_tree=bpy.data.node_groups[self.step_nodegroup]
            curnode.inputs['iterator'].default_value=iter
            for input in curnode.inputs:
                poutput=previousnode.outputs.get(input.name)
                if poutput:
                    self.node_tree.links.new(poutput, input)
            if iter==self.iterations-1:
                for input in self.node_tree.nodes['Group Output'].inputs:
                    poutput=curnode.outputs.get(input.name)
                    if poutput:
                        self.node_tree.links.new(poutput, input)
            else:
                previousnode=curnode

    def update_nt(self, context):
        self.__nodeinterface_setup__()
        self.__nodetree_setup__()

    def update_it(self, context):
        self.__nodetree_setup__()

    # for blender 2.80, the following properties should be annotations
    step_nodegroup=bpy.props.EnumProperty(name="step_nodegroup", items=nodegroups, update=update_nt)

    iterations=bpy.props.IntProperty(name="iterations", min=1, max=63, default=8, update=update_it)

    def init(self, context):
        self.node_tree=bpy.data.node_groups.new('.' + self.bl_name, 'ShaderNodeTree')
        self.node_tree.nodes.new('NodeGroupInput')
        self.node_tree.nodes.new('NodeGroupOutput')

    def draw_buttons(self, context, layout):
        row=layout.row()
        row.alert=(self.step_nodegroup=='None')
        row.prop(self, 'step_nodegroup', text='')
        row=layout.row()
        row.prop(self, 'iterations', text='iterations')

    def copy(self, node):
        self.node_tree=node.node_tree.copy()

    def free(self):
        bpy.data.node_groups.remove(self.node_tree, do_unlink=True)

from nodeitems_utils import NodeItem, register_node_categories, unregister_node_categories
# in blender2.80 use ShaderNodeCategory
from nodeitems_builtins import ShaderNewNodeCategory

newcatlist = [ShaderNewNodeCategory("SH_NEW_CUSTOM", "Custom Nodes", items=[NodeItem("ShaderNodeLoop"),]),]

def register():
    bpy.utils.register_class(ShaderNodeLoop)
    register_node_categories("CUSTOM_NODES", newcatlist)

def unregister():
    unregister_node_categories("CUSTOM_NODES")
    bpy.utils.unregister_class(ShaderNodeLoop)

if __name__ == "__main__":
    register()

And here's a small video of another node I wrote with a dynamic interface:
https://www.youtube.com/watch?v=11Xd-p3HE48

EDIT

The above techniques can be used to produce a dynamic maths node with a variable number of inputs.

For example, paste the following code into a Text Editor window, name the text block 'mathsDynamic.py', tick the Register checkbox (so it's executed automatically when the blend file is loaded) and click 'Run Script'.

# Node Authors: Secrop, Rich Sedman
# Node Description: Dynamic Maths node with variable number of inputs
# version: (0,0,1)

import bpy

# for blender2.80 we should derive the class from bpy.types.ShaderNodeCustomGroup
class MathsDynamic(bpy.types.NodeCustomGroup):

    bl_name='MathsDynamic'
    bl_label='Dynamic Maths'

    # Return the list of valid operators
    def operators(self, context):
        nt=context.space_data.edit_tree
        list=[('ADD','Add','Addition'),('SUBTRACT', 'Subtract', 'Subtraction'), ('MULTIPLY', 'Multiply', 'Multiplication'), ('DIVIDE', 'Divide', 'Division'), ('MAXIMUM','Max','Maximum'),('MINIMUM','Min','Minimum') ]
        return list

    # Manage the node's sockets, adding additional ones when needed and removing those no longer required
    def __nodeinterface_setup__(self):

        # No operators --> no inpout or output sockets
        if self.inputSockets < 1:
            self.node_tree.inputs.clear()
            self.node_tree.outputs.clear()

            return

        # Look for input sockets that are no longer required and remove them
        for i in range(len(self.node_tree.inputs),0,-1):
            if i > self.inputSockets:
                self.node_tree.inputs.remove(self.node_tree.inputs[-1])

        # Add any additional input sockets that are now required
        for i in range(0, self.inputSockets):
            if i > len(self.node_tree.inputs):
                self.node_tree.inputs.new("NodeSocketFloat", "Value")

        # Add the output socket
        if len(self.node_tree.outputs) < 1:
            self.node_tree.outputs.new("NodeSocketFloat", "Value")

    # Manage the internal nodes to perform the chained operation - clear all the nodes and build from scratch each time.
    def __nodetree_setup__(self):

        # Remove all links and all nodes that aren't Group Input or Group Output
        self.node_tree.links.clear()
        for node in self.node_tree.nodes:
            if not node.name in ['Group Input','Group Output']:
                self.node_tree.nodes.remove(node)

        # Start from Group Input and add nodes as required, chaining each new one to the previous level and the next input
        groupinput = self.node_tree.nodes['Group Input']
        previousnode = groupinput
        if self.inputSockets <= 1:
            # Special case <= 1 input --> link input directly to output
            self.node_tree.links.new(previousnode.outputs[0],self.node_tree.nodes['Group Output'].inputs[0])
        else:
            # Create one node for each input socket > 1
            for i in range(1, self.inputSockets):
                newnode = self.node_tree.nodes.new('ShaderNodeMath')
                newnode.operation = self.selectOperator
                self.node_tree.links.new(previousnode.outputs[0],newnode.inputs[0])
                self.node_tree.links.new(groupinput.outputs[i],newnode.inputs[1])
                previousnode = newnode

            # Connect the last one to the output
            self.node_tree.links.new(previousnode.outputs[0],self.node_tree.nodes['Group Output'].inputs[0])

    # Chosen operator has changed - update the nodes and links
    def update_operator(self, context):
        self.__nodeinterface_setup__()
        self.__nodetree_setup__()

    # Number of inputs has changed - update the nodes and links
    def update_inpSockets(self, context):
        self.__nodeinterface_setup__()
        self.__nodetree_setup__()

    # The node properties - Operator (Add, Subtract, etc.) and number of input sockets
    # for blender 2.80, the following properties should be annotations
    selectOperator=bpy.props.EnumProperty(name="selectOperator", items=operators, update=update_operator)
    inputSockets=bpy.props.IntProperty(name="Inputs", min=0, max=63, default=0, update=update_inpSockets)

    # Setup the node - setup the node tree and add the group Input and Output nodes
    def init(self, context):
        self.node_tree=bpy.data.node_groups.new('.' + self.bl_name, 'ShaderNodeTree')
        self.node_tree.nodes.new('NodeGroupInput')
        self.node_tree.nodes.new('NodeGroupOutput')

    # Draw the node components
    def draw_buttons(self, context, layout):
        row=layout.row()
        row.alert=(self.selectOperator=='None')
        row.prop(self, 'selectOperator', text='')
        row=layout.row()
        row.prop(self, 'inputSockets', text='Inputs')

    # Copy
    def copy(self, node):
        self.node_tree=node.node_tree.copy()

    # Free (when node is deleted)
    def free(self):
        bpy.data.node_groups.remove(self.node_tree, do_unlink=True)

from nodeitems_utils import NodeItem, register_node_categories, unregister_node_categories
# in blender2.80 use ShaderNodeCategory
from nodeitems_builtins import ShaderNewNodeCategory

def register():
    bpy.utils.register_class(MathsDynamic)
    newcatlist = [ShaderNewNodeCategory("SH_NEW_CUSTOM", "Custom Nodes", items=[NodeItem("MathsDynamic"),]),]
    register_node_categories("CUSTOM_NODES", newcatlist)

def unregister():
    unregister_node_categories("CUSTOM_NODES")
    bpy.utils.unregister_class(MathsDynamic)

# Attempt to unregister our class (in case it's already been registered before) and register it.
try :
    unregister()
except:
    pass
register()

In the Node Editor you should now have an additional Custom Nodes menu in the Add menu and within that a new node, 'Dynamic Maths'.

The new node provides a drop-down to select the maths operation (Add, Subtract, etc.) and a control to specify the required number of inputs. The node is essentially a Node Group that cannot be manually edited and looks like a normal node. The nodes inside the group are rebuilt automatically each time the node parameters (the operation and the number of inputs) are changed.

For example, setting the operation to 'Add' and setting the number of inputs to 3 will produce the following internal node structure :

Note that the nodes within the group are automatically generated. Changing the node properties changes in inner workings of the group to provide the desired function with the specified number of inputs :

The node can be used anywhere a standard 'Maths' node is used and the performance should be similar to using multiple cascaded Maths nodes to create the same function (since it's essentially just a NodeGroup). It currently supports Add, Subtract, Multiply, Divide, Max and Min functions, with up to 63 inputs.

EDIT II

I'd like to add that there was some changes in the API for Blender 2.80 that affect this answer. Instead of NodeCustomGroup, we now have two new classes we can use:

-ShaderNodeCustomGroup, which is now compatible with Eevee, Cycles and the Viewport material shading.

-CompositorNodeCustomGroup, which allows having custom nodes for Compositor Node_Trees.


Why is the DOF check box in BGE gray? I know there may be a very simple answer, but I'm still kinda new at Blender's Game Engine and was wondering if I don't have something checked in the "addons" area that will enable the DOF check box on the side panel (Opens using the "N" key, to help with my description, lol). It's under the "shading" tab.

Like I said it may seem very simple, but I'm a NOOB, lol. So any help will be greatly accepted. Thanks :)

Actually I figured it out, lol. But just in case someone had the same problem I had... To get the checkbox to become un-grayed (Or make it usable, lol) You must be in "Camera View". Otherwise it will remain gray. I hope this helps someone not experienced enough in Blender. Happy Creating :)


Separate alpha from color in Shader Editor In the Shader Editor, I can create an RGB node and in there, I can set an alpha value as displayed in this screenshot:

However, no color separation node in blender supports extracting that value and no combine node accepts it as input either.

Is there any way to separate an alpha value from a color, or to combine it into a color using only nodes in the Shader Editor?

It's only a partial answer to the body of the question and it's a bit hacky. You can use a ColorRamp node, set the Factor to 0 and tweak the color and alpha values of the first stop. This would effectively emulate a RGB node with an alpha output.
But you you can't use it to combine RGB values and an Apha value since the color ramp node doesn't take inputs for its color stops.


How Would I Join The Selected Edges Together As you can see the lines are not the same, on the bottom it has bigger spaces and on the top its smaller, please help me out i tried everything i know and am stuck.

I am not aware of an automagic way to do this, but here is a workaround: In edit mode, select one edge segment from the lower piece and the corresponding edge segment from the upper piece. Use [F] to fill a face between them. Continue doing this around the model. Because of the difference in vertex count, you will occasionally need to fill a triangle instead of a quad.

Here is some information on filling faces in edit mode:
https://www.blender.org/manual/modeling/meshes/editing/basics/creating_faces_and_edges.html

Edit: Filling faces is still useful, but Bridge is way better.

In edit mode, you'll select the edge loops, then Mesh > Edges > Bridge Edge Loops. Here's some information on edge tools—scroll down to the Bridge section: https://www.blender.org/manual/modeling/meshes/editing/edges.html


Blender in ElementaryOS installed from most recent 2.79 build I installed most recent blender from ppa:thomas-schiex/blender to get the most recent blender version. Starting blender now results in crash. Running blender inside terminal from directory /usr/lib/blender leaves me with

Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

So far I found out that I need to install python sources. To find them I installed Synaptic Package manager and searched for them and couldnt find them. Therefor I also ran

apt-get source python

I still get that error when I start blender from Terminal.
Perhaps anyone knows how to resolve that?

Others seemed to have a similar issue as well but couldnt resolve it: Blender with system python failing

Here is my solution also posted over there:

All right... I had the same error appearing today and I have been able to solve it. It's been pretty easy. After removing blender and installing blender from ppa:thomas-schiex/blender There were some files still around.
To make sure everything works try:

sudo apt-get purge blender
cd /usr/lib
sudo rm -r blender
sudo add-apt-repository ppa:thomas-schiex/blender
sudo apt-get update
sudo apt-get install blender

Since everything is purged AND manually removed from versions installed manually it should be fine now. Have fun  :)


iterate over edge indices list and remove the non unique pairs I have generated some random points on the xy plane. I want to connect a spline to the closest pairs but not having more than 1 spline connected any one point. I have used the "Find Close Points" node as it gives a list of all the closest points in order when used in conjunction with "Sort Numbers" node.
I know that I should use the two elements of the first tuple at index zero and remove any tuples that had either the two elements in them and then removed tuples that have the either of the two elements at index 1 etc. Been trying all day with no joy hope someone can help. Would be great for loop node and script node example to compare! Thank you!
Using animation nodes 2.2
Blender 2.93 beta

Here is the node tree:
The tricky part for me was the "recursion" which AN does with this reassign parameter.

and here is the result in action:
https://youtu.be/9Fdx1kxaJgE


Blender Freestyle in depth control How can I control specific edges I want to have an outline? I know you can make a freestyle edge mark and exclude them but there doesn't seem to be a way to edit it more in depth like choosing one edge to have an outline and another without in the same mesh object. I was just curious if someone has made an add on for blender freestyle that gives you more control like that.

If I understand your question, this is native behavior. Freestyle edges can not only be excluded, they can also be included. And you can include ONLY freestyle edges if you so desire.
This setup does it. I removed all edge types but edge marks:


Texture isn't appearing in final render When I render, the image appears in shades of grey instead of in color.

Yes, I know similar topics exist, but I looked in the threads and could not find a solution. I have lighting, I have a texture. As far as I can tell it all ought to be working, but when I render it the image appears in shades of grey instead of in color and I'm at a loss to figure out why.

Here is the top ortho view:

Here is the blender render view:

Here is the Blender file itself: http://pasteall.org/blend/41455

If this has been resolved, and I simply missed the solution elsewhere, I would appreciate being pointed to the resolution since I couldn't find it.

Lets get our thought location to be the MushroomCap texture.  Image above. Scroll down on your Blender application to see the next panel.

Your texture Influence panel settings must have [Color] checked with value 1 as in the image.  This is marked with the yellow arrow.  Geometry [normal] should be unchecked.  Please verify.  The red squiggle X means ... take away the check box in your settings.  Image above. Or you can experiment and see if you like the [normal] influence.  You are an artist.  The [normal] setting does not affect color, it affects whether or not your mushroom has indentations and protrusions, dimples and pimples as a simplified explanation.

Your textures are not present in the file posted, therefore I placed some random texture to your mushroom for testing, with no artistic effort. This new texture can change the settings in the texture panel. When you posted your file it has a common mistake .... the textures from your hard drive are not present.  The textures can be packed into the file.  You can search for a info here at BSE Blender Stack Exhange on that topic.  You may not need the correction to the file if the problem is solved.

Feel free to ask any directly related question in comments.  You can vote this candidate answer up or down corresponding to whether it helps or hurts the situation.


How to play movie file on a curved plane? I need help with how to get a movie file to play on a curved plane. I know how to uv map an image on a curved plane "see blue curved plane in 3D set below". But can’t seem to figure out how to map a movie file to it. I thought about adding image as planes and adding a movie file that way, but then I don’t know how to curve that plane without subdividing it. Any help would be greatly appreciated. My guess is I’m probably thinking about it all wrong.

add a plane

press tab to enter edit mode

right mouse click -> subdivide plane -> 10

s -> x -> size your plane as much as you like

tab to go to object mode

add simple deform modifier

choose bend -> z axis and whatever angle you like

go to shader editor and build these nodes:

hit space and enjoy the animation

you can also wait a little while because my internet upload speed is slow as hell and then watch my tutorial about it:
https://youtu.be/v5gbEg3Qwz8


draw text always face the viewer in 3D view I'd like to write a script to draw some text in 3D view, and I need it always face the viewer, how can I achieve this?

update:
My own answer as below.

Thank you for all of you comments, and sorry for my rough question.

But I guess I have found the answer:

I've used wrong arguement for the bpy.types.SpaceView3D.draw_handler_add() function. 'POST_PIXEL' shold be used here as the 4th argument, but 'POST_VIEW' was used. I guess 'POST_PIXEL' is for 2D text, and 'POST_VIEW' is for 3D text.

Code and screenshoot as below:

import blf
import bgl
import bpy

RED = (1.0, 0.0, 0.0)
GREEN = (0.0, 1.0, 0.0)

position_1 = (50, 50, 0)
position_2 = (0, 0, 0)

def draw(position, color):
    blf.position(0, *position)
    blf.size(0, 20, 72)
    bgl.glColor3f(*color)
    blf.draw(0, "hello,world")

_handle = bpy.types.SpaceView3D.draw_handler_add(draw, (position_1, RED), 'WINDOW', 'POST_PIXEL')
_another_handle = bpy.types.SpaceView3D.draw_handler_add(draw, (position_2, GREEN), 'WINDOW', 'POST_VIEW')

update:

I've asked someone in our community, and I was given some tips about the 3rd argument, which maybe represent for region type and enumerate in 'WINDOW', 'HEADER', 'CHANNELS', 'TEMPORARY', 'UI', 'TOOLS', 'TOOL_PROPS', 'PREVIEW'.

Code and screenshoot as below for your reference:

import blf
import bgl
import bpy

RED = (1.0, 0.0, 0.0)
GREEN = (0.0, 1.0, 0.0)
BLUE = (0.0, 0.0, 1.0)

position_1 = (0, 0, 0)

def draw(position, color, text):
    blf.position(0, *position)
    blf.size(0, 20, 72)
    bgl.glColor3f(*color)
    blf.draw(0, text)

_handle_1 = bpy.types.SpaceView3D.draw_handler_add(draw, (position_1, RED, 'WINDOW'), 'WINDOW', 'POST_PIXEL')
_handle_2 = bpy.types.SpaceView3D.draw_handler_add(draw, (position_1, GREEN, 'HEADER'), 'HEADER', 'POST_PIXEL')
_handle_3 = bpy.types.SpaceView3D.draw_handler_add(draw, ((100, 0, 0), BLUE, 'CHANNELS'), 'CHANNELS', 'POST_PIXEL')
_handle_4 = bpy.types.SpaceView3D.draw_handler_add(draw, ((250, 0, 0), RED, 'TEMPORARY'), 'TEMPORARY', 'POST_PIXEL')
_handle_5 = bpy.types.SpaceView3D.draw_handler_add(draw, (position_1, GREEN, 'UI'), 'UI', 'POST_PIXEL')
_handle_6 = bpy.types.SpaceView3D.draw_handler_add(draw, (position_1, BLUE, 'TOOLS'), 'TOOLS', 'POST_PIXEL')
_handle_7 = bpy.types.SpaceView3D.draw_handler_add(draw, (position_1, RED, 'TOOL_PROPS'), 'TOOL_PROPS', 'POST_PIXEL')
_handle_8 = bpy.types.SpaceView3D.draw_handler_add(draw, ((400, 0, 0), GREEN, 'PREVIEW'), 'PREVIEW', 'POST_PIXEL')
_handle_1 = bpy.types.SpaceView3D.draw_handler_add(draw, (position_1, RED, 'WINDOW'), 'WINDOW', 'POST_VIEW')

But I‘m still confused about the draw_handler_add funciton. I've read the api documentation for this, but is shows "Undocumented".
Anyone can help me, or explain it for me?


Is there a way to exclude other particle systems from the effects of a Wind effect? I have a scene with a number of particle systems. I'd like to have a separate wind effect for my main scene and another for an extra: an emitter + wind-effect to blow leaves into my scene.
I can't find any way to exclude, so here I am.
At the very worst, I can just render the main scene and then render the wind effect and composite it, but I figured I'd check first.

If you want to make a wind only for a particle system and another wind for a second particle system, you need to put the particles and the Winds inside different Collections and then, go to each Particle System > Field Weights > Effector Collection
In the collection box add the collection of each particle system to make it work.


VSE - A strip with a PNG/transp won't show as long as there's another one above it As the screenshots show, each strip has a PNG image with transparency.
blueoutline.png is above yellowball.png, each is using Alpha Over as a method of blending.
What am I missing?
Is this the reason: "Blender won't handle an alpha channel in a codec. Alpha in a codec is largely a nonstandard practice" Source.

You want to select both strips and add a alpha over effect strip.


Jumpy/Glitchy Motion Tracking I am in the process of finishing my first own blender project (woo!) and have encountered some interesting behavior.

The camera seems to be jumping/skipping whilst tracking, causing my text rendering to do the same.

Here are a couple gifs to illustrate my points.

GIF #2 ( >2 MiB)

When I solved for camera motion I got an error 1.5. Is this a result of that? If so how can I get a smaller error? More trackers? The footage isn't the best to begin with but I want to salvage what I can.

I've consulted this question on picking good keyframes as well as this question for tracking round objects but i'm not certain that that is the problem, and for the round tracking the camera solver caused the text to move instead of staying spatially locked.

Otherwise it seems to get all the factors correct, namely scale and rotation, but has a minor couple hiccups. Any ideas?

Many thanks!

Thank you cegaton, the articles you posted in the comments helped me fix the process. I erased all the trackers that gave higher than a .5 solve error and additionally tracked parts of the scenes on different axes and on both sides of the 3D text I am tracking, manually adjusting the tracks/empties where necessary using the graphs also found in your comments to find troublesome empties.

As well, I chose previous frame from within the tracking windows, and tracked motion with Affine instead of the default Loc/LocRot. I did this until I achieved a solve error of 0.3.

Big shoutout to cegaton, thank you!


What Transformations are calculated exactly for the sRGB Display Device in Blender's Color Management? I'm wondering what transformations are calculated exactly in Blender's "Color Management" if I set "Display Device" to "sRGB" and "View Transform" to "Standard" (my Blender version is 2.92 Alpha). Is this only a "Gamma Correction" or is there more?

View transforms determine data convertion from scene referred linear information in blender to display referred formats.
Paraphrasing from the original https://sobotka.github.io/filmic-blender/

Standard.
It will only use a range of scene referred values from 1 to 1.0 (any larger values will be clipped) when converting to display referred values, and applies a transfer function ("gamma") of 2.2.
Should be avoided at all costs for CGI work. Useful in some edge cases for albedo textures, for example.
This view transform should be used when dealing with display referred images in video editing, or for grease pencil projects
Non-Colour Data.
This is a view useful for evaluating a data format. Do not expect to see perceptual values however, as it is literally data dumped directly to the screen. Use this transform on your buffer, via the UV Image Viewer Properties panel, if your buffer represents data and not colour information. This will keep it out of the OpenColorIO transformation pipeline chain and leave it as data.
Raw This is a colour managed linearized version of your data. For all intents an purposes, will look identical to Non-Colour Data, but applied to colour based data such as an image.
Filmic Log Encoding Base. This is the workhorse View for all of your rendering work. Setting it in the View will result in a log encoded appearance, which will look exceptionally low contrast. Use this if you want to adjust the image for grading using another tool such as Resolve, with no additional modifications. Save to a high bit depth display referred format such as 16 bit TIFF. This basic view is designed to be coupled with one of the contrast looks.

For a deeper explanation read:
Render with a wider dynamic range in cycles to produce photorealistic looking images
And if you really want to fall down the rabbit hole of understanding color for digital imaging read Troy Sobotka's
The Hitchheiker's Guide to Digital Color


copy object location to another scene? BGE I have a dummy object parented to a vertice of the health bar of my main character on the first scene the health bar works accurately and the dummy fallows the vertice parenting, I have an object on the other overlay scene render correctly, but I need to to fallow the location of the dummy on the first scene. How may I get this to work when I'm playing? thanks in advance...

I see two options:

You want interaction between two scenes? Pointless. Make one scene.
You want to "augment" the main scene with your overlay and need to place things on top of each other? Do it in screen space, don't do it XYZ or what ever. Simply measure where your desired location is visible on your monitor. Make a global storage to place your result in. Then in the other scene read from there, to place your "augmentation" on the spot.

EDIT:

First: It's quite hard to understand you. My apologies.
But: Have you ever played multiplayer games before? That has to work somehow, doesn't it? Im sure, you need not be afraid of Blender limiting anything across your scenes...

In fact however, talking about limitations, Blenders game engine is really a bad choice. I tested it for myself, you don't even have delta times for your animations. The game engine is simply not an objective for the developers.

With that, I want to draw your attention to render layers. Search them through google, maybe they are just what you wanted.

In relation to your original question, I think you have some issue understanding the situation.

Let me clarify:

Your Scenes are seperate. And they are meant to be!

"cloning" anything in a scene into another scene is pointless, since it conflicts with the purpose of scenes.

But, of course you can. In this case you need at least the camera vector and/or the desired objects vector to be cloned. Which reveals the problem: Different dimensions.
You can have a Camera over a map moving according to the players location in the main scene. You always must do a translation, even if sizes and locations stay the same.

I hope this helps.


Hard-surface modeling of phone I make the model of phone. I use hard-surface modelling and now I have problem to make speakers holes. As you can see on screenshots something is wrong with faces after boolean modifier. As for me the geometry main body of phone is right.
Tell me pleace what I must make with model for obtain right surface.

And one more question: is it right to modeling the phone or things like that using hard-surface modeling?

Not sure what you mean by "hard surface", but have some experience with boolean. So, you are trying to create pits by intersecting the cylinders with the phone bottom (IE: The cylinders are one mesh separate from the phone mesh and you are not using an array modifier)?

I notice that there are ALOT of modifiers on the phone, one of these may be causing the faliure.

Well, here's what I think you should try:

1, cancel the boolean modifier and join the two meshes (object mode, select cylinders, then phone, press Ctrl+J or find join in object menu).
2, enter edit mode and select the cylinders.
3, intersect (knife).
4, select all and merge by distance (at the default small distance).
5, If I remember right, select and delete the top half of the cylinder.
6, select and delete (only faces) the circles covering the holes.

Let me know if this works!


How do i go from my object displaying mesh to smooth I was wondering why my object displays vertices lines and the other doesnt im not sure how that happened.

You can change how you want to display your geometry per object here:


How do I align the viewport to a face normal? I would like to align the view straight on to a face, perpendicular to the normal. How do I align the 3D viewport to the face of a mesh?

In edit mode with a face selected press ShiftNumPad 7 That will align the view to the active face.
If you want to align the view to a different axis relative to the face, ShiftNumPad 1 and ShiftNumPad 3 can be used. Ctrl can be added to any of the key combinations to invert the view.
For example, CtrlShiftNumPad 7 will look at the "back" of a face.

For those of you without a numpad the same can be accessed through the menu.
From the 3D view header View > Align View > Align View to Active. Then pick the orientation you want (Top is used the most).

Do note that there can be faces that are not flat. In such cases the view will be aligned to the face, but any manipulation will warp the face.

This answer is valid for blender version 2.50 and up (including 2.8). For the 2.4 series the shortcut was ShiftV, but I doubt you wanted to know that.


How can I stop the 'bloom' effect shifting direction in eevee? I have a short space scene that I've included some camera shake on. Everything looks great, but the bloom effect I have on the sun shifts direction with the camera movement!
Have attached a short gif that demonstrates the problem, first at normal speed, then frame by frame.
Any ideas on how I might reduce or get rid of this?
Thank you in advance!

Thank you for the help, none of the solutions fixed what I needed unfortunately.
However I did manage to fix the problem, and for anyone who is facing a similar issue, here's how I did it.
I figured out that the way bloom was being calculated was in relation to the emitters angle to the camera. With my shake being set on the x axis, small rotations were being amplified by the bloom effect because the angle in relation to the camera was changing and as a result, so was the direction it was 'blooming' the light.
To fix it, I made one very simple change, instead of a shake in the rotation, I applied the effect to the translation in the z axis. The motion feels pretty much exactly the same, but instead of it changing the angle the camera points at, it moves the whole camera up and down a bit. It's worth pointing out there will still be some shift in the bloom effect as the translation still adjusts the angle a bit, but its a lot less noticeable now.
Mission accomplished!


How do you model panels on a car? I'm working on the rear fenders of a Ferrari 458 Italia. This is the first car that I am modeling without a tutorial. I have one problem:
I can't finish the left part of the rear fenders (look at the images below). On the blueprint, I can't find it clearly. I think it's too rounded on the left side.
Does anyone know how to model panels like these the right way?

This is the blueprint that I'm using.

Reference Images
Always use lots of photo references in conjunction with your blueprints when modeling an existing car. Photos can reveal much more about the car's surface than blue prints alone.

Shrinkwrap Technique
Basemesh
For trickier surfaces, it is good practice to create a "base-mesh" that is as smooth as possible before creating the final mesh. Then a final mesh can be modelled over it and shrink-wrapped to it to create a more perfect result.
A good way to create the base-mesh is to model a larger portion of the car ignoring all panel gaps and finer details. To ensure that the reflections are as smooth as possible, carefully plan the topology and keep the vertices relatively sparse. When it is finished, you will usually need to bump up the number of subdivisions to a high number, usually 3 or 4.
Pay special attention to how the reflections flow across the surface. It's important!

You would model more than just one panel for the base-mesh, typically the whole side, rear, or another large area. I only modelled a quarter panel to save time.
Final Mesh
Once the base-mesh is satisfactory, you can model final panel meshes over the top of it using the Shrinkwrap modifier to keep the pinching in check. You can now include all of the panel gaps and cutouts without constantly worrying about nasty surface quality!
To make the panel gaps nicer, you could use the Solidify modifier set to "Only Rim" to create a lip around the edge followed by a Bevel modifier set to bevel by angle.

Obviously, this isn't the quarter panel that you're modelling, but the same principles apply.

Keep Practicing!
There is no single answer. There are a million ways to model, so start modelling and watching tutorials! Develop your technique!
I can't magically place real experience and hours of modelling into someone's head!


Huge meshes (how to export, textures etc.) So i've got a huge mesh of an house at the moment, with around 900k faces. I could just export the mesh from blender to unreal engine 4, but its way too large, and most of the time it just crashes. What would be the best way to export this mesh? And if it has to be in parts, whats the best way to do that?

Also, is it a better idea to apply textures in blender or in unreal engine 4?

http://i.imgur.com/RRQAi2e.png

Thanks in advance!

You should decrease polycount. To achive this use decimate modifier or remesh modifier


How do i manipulate a cylinder i have inserted Hi People :) ok Thanks to Bruno's advise i have been able to move forward a lot with this project Thank you however i have hit another snag and i have tried various things in edit mode to try and do this but ot no avail so i am hoping someone can help me on this to :) as you can see in the picture i have attached there is a picture of what i am trying to copy ( starbug 1 ) and my blender model now as you can see in the first picture the engines round off at the back however my cylinders are round and squared off to go long ways so my question is how do i manipulate this shape to bend down as shown in the original starbug picture?

Many thanks

Simon

All hail Warp Tool

Keep the 3D cursor in the middle of the sphere and place a cylinder half inside the sphere. Scale both sides of the cylinder separately so they have the right diameter.

Then give the cylinder as many edge loops as you'd like with CTRLR. Keep in mind that it will get stretched quite a bit in a moment.

Now use the warp tool (Mesh>>Transform>>Warp or spacebar). The warp tool bends all selected verts around the 3D cursor. Use the redo panel to the left to set the angle to about 60 degrees, maybe 70.

The warp tool uses the 3D cursor as it's pivot point so make sure it's still in the sphere's center. It also uses the orientation of your window to define the axis. So it's important to normally use one of the main views, ideally without perspective. In this case I use Right Ortho.

I recommend doing that on top of the sphere, finish the entire assembly (exhaust nozzle) and then rotate it from the front to 37 degrees or whatever is closest to the original.

After that you can either use a mirror modifier or mirror around the cursor by scaling -1 using the right axis.

Keep your objects along the axes as long as possible to make your work easier. Then place them after they're done.

Tip: Work with single meshes. Easier to select or manipulate, you can make safety copies and hide them with H. You can join them later with CTRLJ


Is it possible to animate geometry nodes? I would like to insert the F curve from the sound into the Factor parameter in the Node editor (1.). But after adding the keyframe, I don't see this channel in the graph editor. (2.)

I don't know how to display this in the graph editor?
I tried to look elsewhere, but I didn't find anything. I am using Blender 2.92 RC version.

In Blender 2.92, parameters are not displayed in the graph editor.
They are displayed in Blender 2.93.


How can I change default file save locations? I would like to know if there is a simple way to have Blender (ver. 2.76b)save .blend files to a specified location by default. After install, my .blend files always saved to my \documents folder but as of sometime last week, I noticed them also ending up in appdata\local\microsoftwindows\temporaryinternetfiles\

I'd like to change this so that I have a dedicated Blender location, docs, pics, and so on. This answer How do you change the default directory for saving/opening files? says it can't, but I'm hoping something may have changed in the builds since that question was answered.

Head over to your User preferences here :

Extra Tips:
Or you could typically move the windows folder with "mklink" using windows
command prompt. Search google for makelink windows tutorial and you be really
powerful at managing your memory resources.


make an object exclude a light source in cycles I have a spot light behind a treeline image to project the shadows.. but I don't want the spot light to affect the house or anything else.. I saw many posts saying that selective lighting is not possible in cycles. Is there ant tricks or other ways to get this done ? I just need the shadow of treeline without the light effecting the entire scene :) thankyou

If no lights affect your house, how is it going to be lit?
You got 3 choices:

Go to properties>Object>Cycles settings and uncheck SHADOWS (your object cannot cast or recieve shadows) try find what works for you.

Second choice: Use EXCLUDE layers on the PASS LAyer system (that requires a little bit of knowledge on how to exclude things) -again, if you exclude the house, it will appear in your render totally black since no lights lit the object.

Road 3: Setup a LIGHT PATH shader node to exclude to recieve any lights or cast shadow on the object. Have a "per shader per object" override material ready before render. This also requires a bit of work on your side.

(Light emission with a shader / unlit object):

But hey, these are the possibilities.
Thanks if you vote me up as Answer.

BFCT_Schiller