Interesting Append Behavior. Possible Bug? So, I create an object and save it. I then create a new blend and append it. No problem so far.

I resize the appended object to fit the scene. I then duplicate it only for the duplicate to appear at the original size. I cannot get the duplicate to mimic the altered size.

I have tried saving the scene - reopening it and then duplicating but somehow the appended object refuses to forget its original dimensions.

The possible bug I refer to (in the title) is: If, at some point during my modelling I used Ctrl+Z to undo changes. My (appended) duplicated and resized duplicates all change back to their original dimensions and clump together.

Is there a way to force an appended object to accept altered dimensions as its default?

Thanks guys - have discovered the problem. There seemed to be an 'animation' attached to the object. Once I deleted this everything works fine. Not sure how the 'animation' came about?


Cycles Render displays wrong UV wrapping in material mode As stated, the textures do not follow the settings in the material. They seem to repeat no matter what while in material mode of the 3d-view, but render fine. Nothing in the material seems to change this. Any solution? It's not a deal breaker but it'd be more convenient if I could resolve it. This occurs on all my models, this is not a special case. Using 2.79.

In the below screenshot I am using Extend instead of repeat but this is only reflected in render.

EDIT: Apparently this is an 7-8 year old bug that's only fixed in 2.8?

You can do it with math so it's shown in the 3D view as well if you must:

It seems it gets a bit confusing on exact 0 and 1 on the coordinates as you can see at the edges, but if we extend the last 0.5% or so of the image it seems to work fine:

An alternative solution here, strangely they added the clamping options in 2.76 but those never worked in cycles material mode, and rather the workarounds people used before those options existed work perfectly.


Rendering stack of 2D images as a 3D object? I have a stack of 2D images that I would like to render as a 3D object.  Essentially, each image is a slice of a 3D object such that, if stacked along the z-axis, would make a 3D object.

EDIT

I want to maintain the color of the image while making black transparent, like in the model below.  I have a stack of images that (when stacked) look like that model.

EDIT 2

I would like an actual 3D model.  I couldn't get the voxel texturing to work.  Blender didn't seem to like the fact that there was color.  Below is an example of one of the slices:

Things I've tried/ruled out:

Voxel texturing of an object (I'd like it to be a 3D model, I also couldn't figure out how to color this)
Surface modeling (this doesn't preserve internal structure (duh) but also doesn't preserve color)
Import images as planes (this was suggested to me and I couldn't get it to work, although it seemed like this was not the result I'm looking for either)

The help is appreciated.  I'm open to doing any and all scripting; I'm comfortable with Python and image processing but not so much with Blender.

You can definitely render a 3D voxel dataset using the built-in tools of Blender. As seen in the example below:

The basic workflow using the Blender Internal engine:

Create a Cube that's the same dimension as your voxel data ( image resolution x Voxal size , the important thing is to preserve the dimension ratios )
Create a volume material and texture for the cube.
Load in the density data as image sequence or 8bit raw data ( tested .img and .rawb formats ).
Adjust all resolution parameters ( set it to the resolution of the image you should have this information , incorrect resolution will result in distorted/cropped or even no visible result )
setup the texture to affect Density and Emissions.
Tweak color map and material properties until the data is shown nicely.

The material and texture setup :

the render result :

Using the color ramp, you can even remap the density to different colors.

some simple solution:

make a 3d object that consists of many layers,and texture each layer with the image at that z coordinate.

I would therefore suggest to read how .obj format works and generate an obj with that properties using your python skills.

(obj is non-binary and therefore easy to generate)

if there are enough layers, one would not see the difference, but it may be tough to render.

(actually, some minecraft like game uses this technique to allow items with any shape given by a 2d texture having a thikness)


How to proper model Toilet as in example I'm quite new to Blender, but already got some experience modelling.
I'm trying to model a Toilet as the one shown in the photo attached, but i'm having issues to achieve the same shapes below the main vase, I've circled the area on the image to let you better understand what i'm talking about.
Are you able to describe the step by step model instructions that will help me to achieve the final results?
Thank you so much for any help you'll provide.
Cristiano

Here’s my best crack at it. I used Curves to create edge loops which I then bridged, subdivided, creased as needed, and mirrored.

https://www.youtube.com/watch?v=xjdiLHzDEVY&feature=youtu.be

I would highly recommend watching a car modeling tutorial (or better yet, invest in a true hard-surface modeling course) to understand approaching difficult shapes like these which you’ll encounter many times in the future.

Good luck,

John


My background plane disappear when I use game engine This is my blender project before game engine

This is the blender engine result as you can se the plane disappear

this only happens when I use the game engine I can render without proble ms

How I can fix that?

The problem was that the plane was upside down :)


Map Nasa Heightmap to Sphere I'm pretty new to Blender and I'm trying to map a Nasa Heigtmap onto a sphere. I've tried to use the Displace Modifier but the heightmap is streched:
I think this is because Africa is at the UV spheres pole, but I have no idea how to change that.

Help would be very appreciated!

Try this. 1. Apply scale and rotation of the object. Activate the object than press Ctrl + A button, than choose scale and rotation. 2. Unwrap the object perfectly to a rectangular shape. Delete top and bottom vertices. than make one vertical markseam, than unwrap the sphere. please learn how to unwrap UV sphere, in somewhere tutorial. 3. add more polygon, increase subdivision surface to highest level. if needed add double subdivision surface modifier, more polygon more detai.


stretching problems with curve modifier I am building a tank tred using a combination of the array modifier and curve modifier.  The problem that I'm having is that the tred is experiencing uneven stretching when it bends around the corner wheels.  Is there a way I can fix this  (maybe something is wrong with my bezier curve?)

Attached are the curve points and also the settings on the tank track

Consider a path constraint.  You may want a script for placement of objects.

Consider a rigid body constraint.

Neither of these are trivial to do from starting point zero.

Curve Modifier by comparison is less work.


Layered recording. How does it work? What is Layered Recording and how does it work? I didn't notice any changes between the checkbox turned on and off.
From the manual:

Layered recording
Adds a new NLA Track and strip for every loop / pass made over the animation to allow non-destructive tweaking.

https://youtu.be/UMGRXU2k40Y
I got it to work for producing new NLA track/strip by playing through the animation, setting the auto keying, and then moving the cube. It tends to create them when keyframing around the end and start frame.


Model geometry messed up after applying limited dissolve See this was a neat structure having too many vertices and after applying limited dissolve its vertices got a little less but its geometry messed up inside the messh. it looks the same from the outside but the there are no formation of vertice connection. i once saw a rearrange or meshing function by someone i cant remember that correct this. Kindly help me with this

Tried "remove doubles"?
Go to the edit mode, select the whole mesh press W and select remove doubles.
If these vertices are making N-gon, try (Face split) an option in vertex dissolve.


Subdivision modifier renders with Viewport Subdivisions in Edit Mode Modelling a mask in Blender. Used subdivision modifier with 1 subdivision on the Viewport and 2 on the render. Like this:

I made sure the render and realtime buttons were active as can be seen above.

In object mode, behaviour is what I expected, 1 subdivision applied in the Viewport, 2 in the render, like so:

Object mode Viewport

Object mode Render

If I enter Edit Mode, the viewport still behaves as expected, but the render always shows the number of subdivisions set for viewport, like so:

Edit Mode Viewport

Edit Mode Render

I am new to Blender, do we have to exit Edit Mode and then render?

I am also new to Blender and noticed this recently. I believe it's due to the fact that you cannot apply modifiers (e.g. Subdivision Surface) while in Edit Mode. When you render, it still takes into account whether you're in Object or Edit Mode. So yes I believe you must be in Object mode for the modifier to be applied during the render.


Opening files from version 2.8 in 2.79 This is probably a silly question but I need some help. I opened a file that I've been working on for about a month in the new 2.8 version of Blender. However when I tried to reopen the file in version 2.79, the scene is completely empty. Here is where the problem lies for me, I accidentally saved over the original file save while in version 2.8 . Please help. Thanks!

You can copy the polygons from 2.8 to 2.79. You will lose your node setup but at least you will get back your scene. This happened to me just now - I couldn't find any answers anywhere, so i figured it out myself. I thought of this because you can do the same in Maya too, so I thought: "must work with blender too".

While every layer is selected press Alt+H...let me know if it helped!


Locking translation axis for multiple objects Selecting multiple objects and pushing lock button in properties panel "transformation" locks the axis only for one object in the selection of objects.

Select all your objects, lock the channel, then right click on one of the lock icons and "copy to selected" to copy the locked status to the other objects.

You can apply the same "lock" to multiple objects by copying contraints from one object to others, but you have to "lock" your reference object with constraints (look the constraints tab in the selected object panels- right side of the default view) as in the image below.

Since the last selected object is the "active" object, you can get what you wish in this way: apply desired locks to one of the objects. Then select all the others, and as last also the locked one.

Then use the "copy constraint to selected objects" (use the space bar to find the command, or look under the menu "object > constraints").


Can't see camera's 'passepartout' / overlay around the camera's view I have 'passepartout' selected in the Camera tab.

I have "Lock Camera to View" deselected in View (in the "N" tools section).

Yet I don't get a passepartout in Camera Perspective.

What am I doing wrong?

Thanks to Leander, I discovered it was offscreen.  I used to scroll wheel to scroll out (way, way out), and there it was.


How can I improve the realism of my pencil texture lines in freestyle? I'm using a charcoal image texture to make my cycles freestyle lines look as though they were drawn by hand with a pencil. My inspiration (and the source of the charcoal image texture) was the teapot file linked on this page https://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.71/Freestyle

This is the charcoal image texture:

The concept works okay when you use multiple rounds to go over the same area a few times, but when I try to draw a single line it looks a bit crappy, with the repetitive nature of the texture very apparent.

Multiple rounds:

Single round (which is what I'm after, ideally):

I'm wondering if there's a secret to getting more realistic single stroke pencil texture lines in freestyle? Do I need a better texture? A more random way of having it repeat? Or something else? Hopefully things have moved on in the three years since that texture was created and used in the teapot model.

I've attached simple test file here:

If for some reason the charcoal texture doesn't appear in the file, you can grab it from my post.

Thanks!

p.s. I'm aware of this question How can I use pencil style strokes in frestyle? but those answers simply point me towards the files I've already referenced.

Update May 29th 2017: Spurred on by Mr Zak's answer below I made another version with multiple rounds of lines and a little randomness. While I realize I can get close to what I want with this method (as the layering of the textures creates more randomness), I'm still interested to know if there's a way to improve the realism of the texture on a single stroke. But in the meantime here's what I achieved with multiple rounds and the settings I used. Perhaps it will prove useful to someone else.

Finished image:

Close up of one line:

Settings:

Update 2 May 29th 2017: Since someone asked, the project I'm working on is a series of line-based maps that I'm hoping to render as though they were drawn either in pencil or in pen. I'm still fiddling around trying to work out the final look and feel of them, but knowing if I can achieve the pencil or pen look is a part of that.

Here's an example of where I am so far:

As you can see the lines representing the terrain already have a good deal of randomness and wiggle in them, so that's why I was concentrating mostly on the texture of the stroke. It might be that the lines end up being too small to even register a texture, but as this is an ongoing discovery I wanted to understand the full extent of my options.

According to the wiki article Textured Strokes the Use Tips option is available when Along Strokes mapping is used:

  Along Strokes Means that the texture will be drawn along the stroke length, making it possible to mimick pencil or brush marks.

However by default it won't really make any much difference:

The option depends on spacing between strokes mapped to the geometry:

  Along Stroke mapping depends by the LineStyle spacing parameter that can be found in the linestyle settings. It sets how much the texture will be stretched along the stroke length. Higher spacing means less tiling.

It can be found in the same place where strokes are set up to use texture, Render Layers tab > Freestyle Linestyle rollout > Texture panel:

With that texture rendered strokes become more smeared:

Spacing was set to 5

The effect however is still a bit off as its thickness is not varying and the stamp still is present.

From here on settings from the teapot file were used as reference as well

To correct that don't use thickness of 20; in fact less than 10 will be enough. For convincing and effective results better to let it draw with thin line and repeat it 2 or more times; that will simulate effect of graphite or a pencil strokes more nicely.
This is the result wil Stroke effect decreaed to 6:

Now some repeating pencil strokes would add a bit of "realism" to the image. With Repeat set to 3 it will be already more or less good. But to add even more to that in the Geometry panel add Spatial Noise modifier.

What the modifier does is it varies strokes created by the Repeat option. Amplitude option will increase or decrease how far away the repeated lines are from original; Scale adjusts the scale of repeated detail (if it was at 15 you'd get step-like corners around the line).

Smeared chalk like effect can be created with Along Stroke modifier added to the Thickness panel. According to the manual it applies gradient along each stroke while substituting original values of the line. To make lines more fat and smeared Use Tips option can also be unchecked (in this case):

The partially transparent effect from the teapot scene is created with adding Along Stroke modifier in the Alpha panel, but for some reason in Cycles it isn't visible (teapot scene is in Internal). Even setting Thickness to 0 doesn't really change anything, which is quite unexpected. It looks like in Cycles the freestyle won't calculate and hence use alpha of the charcoal texture. If making that in Internal effect shows up immediately:

It's hard to say if this means for you that Freestyle went ahead since that time but anyway the resulting effect of the freestyle strokes can be changed quite drastically by editing options and adding modifiers.

If going with only one round of the stroke (and hence only one stroke drawn on the objects) you will need to alter it as much as possible in order to get varying style. You can use several line styles as already mentioned by @TK or you can go with more modifiers for one line style.
I will use modifiers for Thickness panel mostly but possibilities are nearly endless as many of them have also additional modes of stroke overlaying which changes end result quite noticeable.

Note:

there aren't any modifiers on the line style for this one; none of the results used from the several rounds above.
in all the results here Face Smoothness in the Render Layers tab > Freestyle rollout is used for using smooth shading of the mesh.
It also means that shading of the meshes should be set to smooth as well.
in all the results here Alpha Fac in the Line Style Output node in the line style setup is set to 0.5. This allows Cycles to overlay alpha of the texture and use it along with the base color. For some reason it also fixes usage of the modifiers in the Alpha panel. None of these is needed in Blender Internal.

Using stroke thickness (Freestyle Line Style > Thickness) at 3 and Spacing at 1 the result is thin drawing:

To increase the variation add Along Stroke modifier to the thickness of the stroke. It will apply new values for thickness based on the progression type and blending mode choosed; from the manual:

  The Along Stroke modifier alters the base thickness with a new one from either a linear progression or a custom curve, mapped along each stroke’s length. In other words, it applies the selected progression along each stroke.

To mimic caligraphic changing of the line thickness which depends on the stroke angle add Caligraphy modifier. Its  Orientation property will simullate orientaition of the virtual pen drawing on the paper - the more it's aligned with the vertical axis the more horizontal strokes will be fat and vertical - thin. Default values of 60 are quite good as well.

Also it's possible to add some noise to the stroke in general; Noise modifier will be the last in the Thickness panel.

To simulate transparency of the strokes modifiers in the Alpha panel are added. In this example Along Stroke modifier is used.

Note also that most of the modifiers can be set to another blending modes thus altering their final result which allows even more different things to try.

Under "Texture Mask" tab, in UV Paint Mode, there is an option button called "Random", which rotates the brush randomly in strokes. You can set the max random rotation offset by changing the "360" degrees to whatever angel you want for strokes.


Export Fluid Simulation I am currently abroad only with a Laptop.
I want to render a few simulations, my brother was so generous to offer his PC, he is several hundred miles away sadly.

What is the best way to export the simulation data so that he can render it for me? Its only 330MB, so that shouldnt be a problem.

Thanks!

The fluid sim stores its cache data in a separate file sequence, with the path specified on the domain object. You'll want to send your brother both your .blend file, and this cache sequence. He may need to adjust the path to the cache in the .blend file depending on where he places them.

I think simply sending the .blend file to your brother and having him open it in blender and pressing the render button would work, although there may be a better way.


no transparency in cycles render I'm sure someone already asked this, and yes, i googled it, but in cycles render, i do not know how to fix the transparency problem here. however, transparency works fine in blender render, so it is not my laptop not being able to support it.

i need to get rid of the black
i have a separate alpha png, but dont know how to apply it

If your PNG has a transparent background, plug the Image Texture with your image in the bottom entry of a Diffuse, plug this Diffuse in a Mix Shader, and plug the Mix Shader in the Material Output. Now plug a Transparent BSDF (100% white) in the top entry of the Mix Shader, and plug the Alpha output of the Image Texture in the Factor of the Mix Shader. It should work

Need to turn on "Transparent" on the render settings panel.


Lag when viewing meshes in texture shading mode I've been working on a ps1-style model, very low poly, and was UV mapping some textures onto the mesh, but when I tried adding another texture, the viewport started lagging a ton.

I could still move the mesh around, but it was extremely slow and choppy, like 1-2 fps. I changed the viewport shading to solid, though, and it worked fine again. I had been working with the texture shading on the whole time, so I'm just curious why it started lagging.

I'm using a Lenovo laptop running Windows, 8gb ram, intel core i5-7200u CPU, and am using Blender 2.72

I'd really appreciate any form of help with this problem since this is probably the furthest I've gotten on a project.

The textures I'm using are 5184*3456 in resolution, maybe that's the problem?

Ps1 texture for world maps reached a maximum of 1024x1024 pixels and a lot of "sharpening filter applied, from photoshop".
If you're using such an old computer, the maximum texture will be 1280x1280 pixels for Ps1 styles. Your texture is causing the lag, yes. Upgrade to Blender 2.79. Most of texture mip issues have been solved there as well, if you don't want to go to 2.8.


Best practices for masking image layers for compositing? I'm looking for a efficient way to do image masking within Blender (using the masking tool) à la After Effects.  Basically, I want to cut out my images from within Blender instead of doing it destructively in an image editor.

Typically, in AE, I would precomp an image then do the masking in that precomp.  I'd like to mimic this workflow in Blender; however, it always seems overly complicated.

I have considered creating a separate scene with the same dimensions as the image and masking there, then bringing it into a master scene to assemble in 3D space, but I'm not sure I can map this to a plane.

Sorry that I may not be explaining this very well. If anyone is familiar with AE, then you'll be familiar with what I'm trying to achieve.

go to node editor and enable use nodes
add mask node and mix node
in uv editor change from paint to mask (if you want a mask image, upload that image to uv editor, the mask will be placed over your image)

LMB+Ctrl  to add point on the curve, close curve by enabling toggle cyclic
use this mask as input for mask node and plug mask node to factor of the mix node

for rotoscoping you could use this add on, see this for more info.

For this you can practice with different types of keys in add>matte.
for masking mostly difference key,color key and distance keys are used.
Try something like this:
add an image to blender compositor

add any one of the key and pick the colour you want to remove.Experiment with different types of keys and do fancy things like combining two images


Ambient occlusion where two meshes overlap? I have a house (cube) that's on an uneven ground. On this example the ground is maybe a little to wavy to be realistic, but I find it looks rather good mesh-wise, with the house intersecting the ground, so it's not on a completely flat surface. See LEFT image.

However, there are no shadows on the house from the ground or vice versa, so it looks kind of fake.

Sun Strength 1.00 straight angle towards the house, which is slightly rotated.
World AO is on 1.00
No more lights

I made a mockup of what I expected (RIGHT) regarding shadows. How can I make it more realistic?

EDIT: Apparently it's something with the ground material, when I change it to simple diffuse, I get the desired result. I need to find out what can cause this though.

For this model rather than using the World ambient occlusion why not instead bake an ambient occlusion map on the model itself? There are hundreds of resources available for how to go about accomplishing this however I would recommend using this website as a source.

http://www.katsbits.com/tutorials/blender/basic-ambient-occlusion.php

You can bake the ambient occlusion on both the box as well as the ground mesh giving you more control in how it looks.


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.

Part of the issue is confusing rendered result with displayed result. Blender is drawing the image in the uv/image editor using the exact image values. When drawing to screen an RGB value of 0.0 is black and RGB of 1.0 is white, anything over 1.0 is cropped to be 1.0 so looks the same.

To test this render your test scene and click on the white sections, the footer will show the true colour values under the cursor and the white parts will range from 0.1 to 819.2 as you expect, it's just each piece over 1.0 all look the same on the screen.

When saving these images you will want to use OpenEXR and enable Float(full) to keep the full colour information. Float (half) will work but you will see small value drops due to reducing the precision. Even a 16bit PNG gets cropped to a 0.0 to 1.0 range.

The first step to getting the visual result you are after could be to first map the wide colour range down to a 0.0 to 1.0 range. A simple version would be done with -

so the input values ranging between 0.0 and 820.0 gets scaled down to the 0.0 to 1.0 displayed range. This linear map range gives the following waveform -

This shows that the scopes work with the same 0.0 to 1.0 range that is shown on screen not the true range of the image data.

To get the over saturation you could use the value from HSV to drive the brightness.


Relationship between global vertex coordinates and mesh object's matrix attributes How do a mesh object's matrix attributes relate to the global position of its vertices:

matrix_basis

matrix_local

matrix_parent_inverse

matrix_world

And what is each of these used for (practical examples, if possible, would be helpful)?

Practical examples

Object.matrix_basis - If you want to modify the loc/scale/rotation directly, as a matrix - without having to worry about what kind of rotation is used - (Euler, Axis-Angle, Quaternion).
Object.matrix_local - Exporters where you want to write out parent relative transformation.
Object.matrix_parent_inverse - Any tools that handle the transformation relationship between parents and children. (Not used often)
Object.matrix_world - Any time you want to know the final transformation of an object after animation, drivers, constraints and parenting are applied. You would want to use this for example - if you are writing to a format like OBJ which doesn't store object transformations.

Blender is quite tricky about bases changes because it uses unusual frames (the frames Si in the notation below) attached to the objects. Traditionally, mathematicians or physicists use only intrinsec frames (the frames Ri in the notaion below). I took quite some time to understand the behaviour and took some notes for myself. Sorry this is in French, but I hope it can help.

A comment asked for a summary:  I give precise mathematical definitions of the matrices with the introduction of the adequate frames to give these definitions. I also analyse a precise definition of Matrix.decompose() in mathematical terms. Finally, we cand define only two matrices on the four matrices because there are two relations. If one matrix is changed, how do the three other change ? I report my experiments and my understanding on this point .

Again, I apolgize for the language, but I was too lazy to translate my personal notes, and I thought it was better than nothing, since I have not found this information on the Internet.

The part you'll be interested starts with : "Donnons nous n Objets ... "

Bon courage !

Chaque objet est muni de 4 matrices: matrix_basis,
matrix_local,matrix_parent_inverse, et matrix_world.
Ces matrices servent a placer l'objet par rapport au parent et par
rapport au monde exterieur. Bien sur, il va y avoir des relations
entre toutes ces matrices puisque si on sait positionner un objet par
rapport a son parent, et si on sait positionner le parent dans le
monde exterieur, on sait placer l'objet par rapport au monde.

Les matrices dont on parle sont des matrices 4x4 associees a des
changements entre de reperes. Techniquement, ces matrices
4x4 sont construites de la facon suivante. Un deplacement est une
transformation affine, qui se prolonge en une
transformation projective et la matrice du deplacement est la matrice
4x4 de la transformation projective.

Comme la transformation est
affine et que ce n'est pas une transformation projective generale,
la matrice 4x4 ne contient que 12 coefficients significatifs ( le
groupe des transfo affine est de dim 12) :  La sous-matrice 1x4  du bas
est toujours [0,0,0,0,1]. Le groupe des transfo affines est produit
semi-direct des transfo vectorielle et des translations, ce qui
signifie concretement que le deplacement se decompose de facon unique
sous la forme d'une transformation conservant l'origine suivi d'une
translation. La transformation vectorielle se lit dans la matrice 4x4
utilisee par Blender: c'est la sous-matrice 3x3 en haut a gauche.
Le vecteur de translation est la sous-matrice 3x1 en haut a droite.
On peut donc acceder facilement a ces informations.

La commande  Matrix.decompose()) permet non seulement d'obtenir le
vecteur de translation, mais aussi des informations sur la partie
vectorielle de la transformation affine. Donnons nous une
transformation affine de matrice P de taille 4x4, de partie
vectorielle M de taille 3x3 et de
translation de vecteur t de taille 3x1 .
La decomposition polaire du groupe GLn permet de representer
M sous la forme M=OS, avec O=matrice orthogonale et S=matrice symetrique
definie positive. Soit v le vecteur des valeurs propres de S
(defini a permutation des termes pres).
Alors P.decompose()=(t,O,v)

Donnons nous n Objets O1,...On de sorte que O1 est le pere de O2, qui
est le pere de O3... Chaque objet Oi est initialement place' dans un
repere Ri. Ici un repere affine est la donnee de 4 points non
coplanaires de l'espace. Puis on peut bouger l'objet dans son repere
local par un deplacement di et representer ce deplacement par une
matrice Mi. Ce deplacement definit un nouveau repere Si=di(R_i).
Je note M(R1,R2) la 4x4 matrice de la transformation f telle que
f(R1)=R2. Ou si on prefere, un point de coordonnees co1 and co2
dans R1 et  R2, alors f(co2,1)=(co1,1). Avec ses conventions
O1.matrix_world=O1.matrix_local=01.matrix_basis=M1
O1.parent_inverse=1
et pour i>1
Oi.matrix_basis=Mi=M(Ri,Si)
Oi.matrix_local=M(S(i-1),Si)
Oi.matrix_parent_inverse=M(S(i-1),Ri)
Oi.matrix_world=O(i-1).matrix_world*Oi.matrix_local

En termes intuitifs, matrix_basis est la matrice decrivant le
placement de l'objet i dans son repere local, matrix_local decrit le
changement entre le repere Si attache' a l'objet i et le repere
attache' a l'objet i-1, matrix_parent_inverse sert a decrire comment
on a attache' l'objet i a son parent i-1 et matrix_world agrege
les matrices precedentes pour avoir des coordonnees globales.

On voit que sur les 4 matrices de Oi, seules deux sont necessaires,
les 2 autres se determinent par calcul puisqu'on a deux relations,
la relation de la derniere ligne et
matrix_basis*matrix_parent_inverse=matrix_local

Quand on change une matrice, les donnees ne sont plus coherentes
entre les differents changement de repere au sens ou elles
ne satisfont plus les relations precedentes.  Blender doit
recalculer pour
reproduire des matrices coherents et il le fait a l'occasion de
l'appel de fonction scene.update. Le probleme est qu'il y a plusieurs facons de
respecter cette coherence.
Apres essai-erreur, j'ai remarque' que Blender faisait les calculs de
la facon suivante:
- si on change matrix_basis ou matrix_world, cela revient a bouger
l'objet dans son systeme de coordonnees locales : Blender prend en
compte la matrice qu'on a modifie', laisse inchangee la matrice
matrix_parent_inverse, puis recalcule les deux autres matrices en
fonction de ces deux la.
- si on change matrix_parent_inverse : cela revient a bouger la facon
dont l'objet i est attache' a l'objet i-1. Blender prend en compte la
nouvelle matrice parent_inverse, conserve inchangee la matrice
matrix_basis, puis calcule les matrices restantes a calculer.
- on ne peut pas changer seulement matrix_local, ca donne des
reslutats incoherents au sens ou apres update de la scene, les
matrices ne satisfont pas les relations qu'elles devraient. Il semble
qu'il y ait un bug ici.


How to import Downloaded Materials/Files? This is an absolute beginner question, I'm hoping it's not to broad, I will attempt to narrow it down.

I have just downloaded a handful of .zip files for several material packages (all for cycle render) and a "Modified Toon Shader" .zip file as well. I am super excited about using these but just realized I have no clue how to import them into Blender or how to really use them.

Do I just go User Preferences > Add-ons > Install From File? Or is there a Material and Shader specific path I need to follow?

And then once I do get them imported, will imported materials show up in a drop down menu of sorts? Or do I go to Node View and then I will be able to drop the specific nodes in and plug them into my objects?

I'm sorry I know this question is a bit open, I'm hoping it's narrowed down enough to be answerable. I have not unzipped the files yet because I wasn't sure if I was supposed to or not.

Here are a couple examples of the files I downloaded:

http://www.blendswap.com/blends/view/82742

http://www.blendswap.com/blends/view/70644

Blender has no specific file formats for objects, materials, shaders and so on. To reuse the material from one .blend file in another, you can either create a link to the material in your material blend or you can append said material.

Linking materials is a great way to create material libraries. If you make changes to the material blend, those changes will be visible in all files that have links to the material file, as soon as you open or reload them.

Appending materials creates copies of the source material in your current blend file.

The process for both methods is the same.

Open the file you want to link/append the material to.
Go to "Files - Link/Append"
Navigate to the .blend that contains the material and click on it
Open the Material Folder and double-click on the material you want to link/append.

After that, your material should be visible in the Material selector.

File>Append>Navigate to Blend file and open>Open Materials folder inside Blend file>Click on any material and click append to project at top (Or double click).

I can confirm this solution does not work. You can append materials till youre blue in the face, the materials you append do not automatically insert themselves into the materials panel nor do they seem to be hidden anywhere else for that matter.

Could anyone please provide a more reliable solution?


How to control camera view I am right clicking, but I can't seem to rotate or move the camera at all. Any ideas? Blender only seems to be able to move objects and lights. Really confused since I'm new. Please help me if you can.

View -> Camera (or Numpad 0)
Shift + F (enter flight mode)
WASD to control camera and leftmouse to set the view

You can right click the camera, then key G to grab it, or use the translate controls to position it.


Why does a white background look grey once added to the VSE as a scene strip? In Grease Pencil this is how the image looks with a nice white background.

When the same is imported to video sequencer I get a solid grey background. I tried putting a white solid behind to see if there was any transparency issue but the grey remains.
I need a proper white background, how to achieve the same.

A friend sorted it out for me. Color Management was the issue. In Video Editing>Render Properties>Color Management>View Transform> Change it from default Filmic to Standard.
Pls don't ask in detail what Filmic is etc, I don't understand.

This could be a few things;

if you go to the world tab and click the colour property make sure the value is set to 1 ( by default my blender starts-up with 0.8). For pure white mine is H0 S0 V1 A1.

do you have any lights in the scene?

do you have any special effects?

Thanks
Matt


I can't save my animation as a .mov and thats the only thing that plays on my mac I can't save my animation as a .mov and thats the only thing that plays on my mac.

Is there a way that i can add file formats such as .mov

The MP4 (.mp4) container format is derived from the the Quicktime MOV, and also widely supported on Apple products. A MP4 file containing H.264 video and, optionally AAC audio, will play on all Intel and Apple Silicon Macs, and many older PowerPC Macs as well. Simply configure your output settings as shown:

It is important to understand that MP4, MOV, Matroska, AVI and others are CONTAINER formats, not video formats. A video file as we commonly deal with it today is a wrapper around 1 or more video streams(in formats such as H.264, VC-1, DNxHD, and ProRes, and so on), and may include audio and subtitle data as well. Whether you can play a file or not requires your software to both be able to understand the container format, and the video compression format of the video stream within. So referring to things such as a ".mov video" or a "h264 video" is not enough information to troubleshoot playback and encoding issues.
Additionally, it's important to distinguish video compression formats (like h.264) from software libraries that create them (such as x264, a popular open source h.264 encoder)

Export your animaton to ffmpeg or pmeg or h.264. Then go to this website in link here.
Online-Convert.com
Therein, convert files' format to .mov.


VSE: How to render a video with audio? I want to play a music strip with a video in the video editor but the video has no music when I play it.  I've rendered it but it still doesn't have sound.  How can I render and play the video with the sound track.

In blenders preferences under system you have a few options for the software used for sound, this may help playing sound from blender's VSE.

For the output video you need to check that you have selected an audio codec in the encoding options.

In video Editor, in the left side. Edit Strip / Sound.
volume. now volume is 1. go up to 100...


How to use blender to create a grid cylinder? I’m new to Blender, but pretty experienced with other 3D software.
I need to create a mesh cylinder.

One of   procedural ways to create the cylinder and have its topology consisting of even quads is array a plane to create big plane and bend it afterwards.

Add a plane, rotate it so it's oriented up (along Z axis). Put its origin point in the corner (snap 3D cursor to selection when that vertex is selected and in Object mode use Origin To 3D Cursor).
Start adding modifiers, first will be Array. Set it to array along Z axis (if using default Relative Offset set value of 1 to the Z axis in the modifier options). Set number of iterations so that the height of final result is as height of desired cylinder.
Add another Array modifier and set this one to array along horizontal axes (in case of screenshot X). Set number of iterations to number of edges of cylinder.
Add Simple Deform modifier. Set it to Bend mode, then enter value for Angle to 360 degrees.

The modifier stack in this case is

Otherwise you can add a cylinder, enter Edit mode and use Ctrl+R to add loopcuts along its edges. This will be destructive change to geometry.

Another way. I'm new to Blender so I assume it is a none procedural way..

Create a circle.
Enter Edit mode and Extract + Escape.
Scale the newly extracted vertices to 0.
Select complete mesh and remove doubles.
Deselect mesh and circle select then center of the circle to select all spokes.
Subdivide, in the subdivide menu select the number of Cuts.
Extact mesh in Z direction a short distance.
Tab out to Object mode and use the Array modifier in Z-direction. Select desired Count.
Apply modifier and voila you have a mesh in analogue with you picture.


How do I rotate an environment texture? I've loaded an HDR image into my scene as an environment texture. However, I need to rotate the image, and so far, haven't found a way. I assume this is possible, but I need to know HOW.

In the World section of the Material nodes add a Texture Coordinate node and a mapping node to control the placement of the Environment texture. By changing the rotation on the mapping node you can place the HDR where you need it.

As of Blender 2.8x, the World section is part of the new Shader Editor:

You need to load the HDR image from the "environment texture node".
The environment picture in your scene will not work alone.


Weird subsurf edge and circle optimization this is my first own 3D model after following DigitalTutors "Introduction to Modeling in Blender".

I'm trying to create a Mauser 98K.

Problem one: Optimizing round hole

I have tried my best to create a round hole, by using I (insert face), Ctrl+R (Loop Cut) and the Knife tool. I know I have a few nGons but I'm unsure how to optimize it, do you have any tips or tricks?

Problem two: Subsurf weird edge

When I use subsurf I get this weird edge, if I move the green highlighted vertices up next to the vertices on the left, there is no weird edge. The green highlighted vertices and the vertices to the left are aligned on the X axis.

How can I remove this weird subsurf edge?

If you select what should be the circumference of the circle in “Edit Mode” and press SHIFT + ALT + S and drag your mouse you can achieve your circle shape. Note: The more evenly spaced your vertices are the better the result.

You can clean up the subsurf edge the by adding loop cuts in “Edit Mode” press CTRL + R Left Click and position with your mouse Left Click again to set in place.

Please, try to keep one question per post if possible, anyway:

To fix the "circle" shape you could do like this: add another object, a circle primitive, which has the same number of vertices as your "hole" in the model.

Then place it where your "ideal" hole in the model should be, centered, aligned and all.

Then select you model, in edit mode and try to "snap" vertices to those of the circle you just added before.

I didn't get the "weirdness" problem of that edge, sorry.


Script Randomly crashes Blender I need to automate the process of joining similar objects from an imported .IFC file from Revit, this can take quite long time to sort out manually because this files can contain from 600 to 800 objects. The names have "." and ":" that I can use for separate the strings and join the same name objects.

I´m not a programmer, and I don't have experience with Python, but after some studying I manage to write this little script.

But I'm kinda lost here because it works fine with small list of objects but it crashes when dealing with longer lists.

In this one it runs ok, at the end all cubes are one object, spheres are other object, etc.

But when I run it against more longer lists of objects, it crashes Blender:

I'm assuming it has something to do when it tries to read objects that are no longer in the list.

Do you know if this assumption is correct? If so could you suggest a way to avoid the crash? Is there a better way to do what I'm trying to do based on the names of the objects?

This is script:

import bpy
bpy.ops.object.select_all(action='DESELECT')
bpy.context.view_layer.objects.active = None

for obs in bpy.context.scene.objects:
    if obs.name in bpy.context.view_layer.objects:
        if obs.type == 'MESH':
            bpy.ops.object.select_all(action='DESELECT')
            nocolon = obs.name.rsplit(maxsplit=1, sep=':')
            print ('nocolon pass done for ' + nocolon[0])
            tname = nocolon[0].rsplit(maxsplit=1, sep='.')
            print ('nodot pass done for ' + tname[0])
            bpy.ops.object.select_pattern(pattern= tname[0]+'*', case_sensitive=False, extend=True)
            print ('selection pass done for ' + tname[0])
            obs.select_set(True)
            print ('selection set done for ' + tname[0])
            bpy.context.view_layer.objects.active = obs
            print ('set active object done for ' + tname[0])
            bpy.ops.object.join()
            print ('join pass done for ' + tname[0])
            print ('iteration done for ' + tname[0])
            bpy.context.view_layer.objects.active = None

        else:
            print(obs.name + ' is not a MESH.')

    else:
        print('There is no ' + obs.name + ' in view_layer')
        bpy.data.objects.remove(obs)
        print('removed from data')

print('script done')

I'm using Blender 2.81.16a

Using Operator override

Here are a couple of examples.  This one finds all the mesh objects in the scene, sorts them alphabetically by name, then groups them by if they start with the first.

meshobs ['Cone', 'Cone.001', 'Cone.002', 'Cube', 'Cube.001', 'Cube.002', 'Cylinder', 'Cylinder.001', 'Cylinder.002']
Join ['Cone', 'Cone.001', 'Cone.002']
Join ['Cube', 'Cube.001', 'Cube.002']
Join ['Cylinder', 'Cylinder.001', 'Cylinder.002']

This is only a proof of concept and relies on "Cube" being in scene to match "Cube.nnn", add string partitioning etc as required.

The names of the matching objects are sent to the join method, which calls the operator with a context override dictionary, for active object and selected objects.

Note this Uses only the join operator which will greatly reduce the amount of operator calls from question code

Python performance with Blender operators

import bpy

context = bpy.context
scene = context.scene

def join(names):
    obs = list(filter(None, (scene.objects.get(n) for n in names)))
    print(obs)

    obs[0].select_set(True)
    bpy.ops.object.join(
            {"active_object" : obs[0],
             "object" : obs[0],
             "selected_objects" : obs,
             "selected_editable_objects" : obs
             })

meshobs = [o.name for o in scene.objects if o.type == 'MESH']
meshobs.sort()

while meshobs:
    n0 = meshobs[0]
    x = [n for n in meshobs if n.startswith(n0)]
    print("Joining", x)
    join(x)
    meshobs = meshobs[len(x):]

Alternatively using bmesh and  no operators

Can use bmesh to read in first mesh, then convert each other mesh into object space of first, and write back to first, then remove others.

This will keep only the materials of the first, etc etc, and may have to be altered accordingly.

import bpy
import bmesh

context = bpy.context
scene = context.scene

def bmesh_join(names):
    obs = list(filter(None, (scene.objects.get(n) for n in names)))
    print(obs)
    bm = bmesh.new()
    ob = obs.pop(0)
    mwi = ob.matrix_world.inverted()
    me = ob.data
    bm.from_mesh(me)
    for o in obs:
        o.data.transform(mwi @ o.matrix_world)
        bm.from_mesh(o.data)
        bpy.data.objects.remove(o)
    bm.to_mesh(me)
    bm.free()
    me.update()

meshobs = [o.name for o in scene.objects if o.type == 'MESH']
meshobs.sort()

while meshobs:
    n0 = meshobs[0] # fix for lpart on . : etc
    x = [n for n in meshobs if n.startswith(n0)]
    print("Join", x)
    bmesh_join(x)
    meshobs = meshobs[len(x):]

Thanks everyone for you time.
I manage to write a usable script with your insights and suggestions.

Robert: I was able to save the lists of names to variables. But I did not find a way to use those lists for joining the objects. I guess I need more study.

I ended up using the collections system as temporal holders for the objects.
That way blender wont crash with big scenes. I still need to find a way to move objects to the collections that already exists. But I need to get the "collection_index" number from the target collection and I could not find a way to get it.  In the meantime the script will create a lot of empty collections and at the end of the loop will remove them.

batFINGER: I'll try to polish / remake the script using the methods that you mention. I'm sure they are more elegant and less messier that the code that I'm using. They will help me to improve a lot in using Python.

This is the script, hopefully it can be of some utility for someone else:

#### This script can help you when importing models from architectural programs like Revit.
#### It joins objects with similar names.
#### WARNING: This should be used on a clean scene after importing the model from revit (I recommend using .ifc because FBX generates a more tessellated meshes) (addon for blender 2.8x in https://blenderbim.org/)
#### WARNING: It will remove collections from your scene and leave all objects on the master collection.
#### WARNING: It will remove all materials from the scene.
#### WARNING: After importing .ifc or your model, make sure that all Collections are Visible in the outliner. Otherwise it can be ignored and generate some issues when joining objects.

import time
then = time.time() #Time before operations start
import bpy

# Deselect everything
bpy.ops.object.select_all(action='DESELECT')
bpy.context.view_layer.objects.active = None

#Move all objects to master Collection and remove empty collections.
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.move_to_collection(collection_index=0)
bpy.ops.object.select_all(action='DESELECT')

for cv in bpy.data.collections:
    cv.hide_viewport=False

for c in bpy.context.scene.collection.children:
    bpy.context.scene.collection.children.unlink(c)
    bpy.data.collections.remove(c)

#Clear parents and removing empties from scene

for np in bpy.context.scene.objects:
    print('Clearing parents for ' + np.name)
    np.select_set(True)
    bpy.context.view_layer.objects.active = np
    bpy.ops.object.parent_clear(type='CLEAR_KEEP_TRANSFORM')
    bpy.ops.object.select_all(action='DESELECT')
    print('Parent cleared for ' + np.name)

for empt in bpy.context.scene.objects:
    if empt.type == 'EMPTY' and len(empt.children) == 0:
        bpy.data.objects.remove(empt)
        print('Removing Empty')
    else:
        continue

#Selecting the objects with the same name and moving them to temporal collections.

for obs in bpy.data.objects:
        if obs.name in bpy.context.view_layer.objects:
            if obs.type == 'MESH':
                bpy.ops.object.select_all(action='DESELECT')
#                nocolon = obs.name.rsplit(maxsplit=1, sep=':')
                nocolon = obs.name.rsplit(sep=':')
                print ('nocolon pass done for ' + nocolon[0])
#                tname = nocolon[0].rsplit(maxsplit=1, sep='.')
                tname = nocolon[0].rsplit(sep='.')
                print ('nodot pass done for ' + tname[0])
                bpy.ops.object.select_pattern(pattern= tname[0]+'*', case_sensitive=False, extend=True)
                print ('selection pass done for ' + tname[0])
                obs.select_set(True)
                print ('selection set done for ' + tname[0])
                bpy.context.view_layer.objects.active = obs
                print ('set active object done for ' + tname[0])
                bpy.ops.object.move_to_collection(collection_index=0, is_new=True, new_collection_name=tname[0])
                print ('Moving Objects to a new collection called ' + tname[0])
                print ('iteration done for ' + tname[0])
                bpy.context.view_layer.objects.active = None
            else:
                print(obs.name + ' is not a MESH.')
        else:
            print('There is no ' + obs.name + ' in view layer')

# Clearing the empty collections
for col in bpy.data.collections:
        if len(col.objects) > 0:
            print("The Collection " + col.name + "has the objects")
        else:
            bpy.data.collections.remove(col)

#Joining objects inside each collection
bpy.ops.object.select_all(action='DESELECT')

for col in bpy.data.collections:
        print('Im about to join the objects in ' + col.name)
        bpy.context.view_layer.objects.active = col.objects[0]
        bpy.ops.object.select_grouped(type='COLLECTION')
        bpy.ops.object.join()
        bpy.ops.object.select_all(action='DESELECT')
        bpy.context.view_layer.objects.active = None
        print('Done joining the objects in ' + col.name)

#Move all objects to the master collection and clearing all collections created.
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.move_to_collection(collection_index=0)
bpy.ops.object.select_all(action='DESELECT')

for c in bpy.context.scene.collection.children:
    bpy.context.scene.collection.children.unlink(c)

# Removing dummy objects from IFC file.
for OE in bpy.context.scene.objects:
    if OE.name.startswith("IfcOpeningElement"):
        print('Removing Ifc Dummy object: ' + OE.name)
        bpy.data.objects.remove(OE)
    else:
        continue

#Clears all materials from the scene:
print('Clearing all materials from scene')
for material in bpy.data.materials:
    material.user_clear()
    bpy.data.materials.remove(material)
    print('Done clearing materials')

for obs in bpy.context.scene.objects:
    if obs.type == 'MESH':
        obs.select_set(True)
        bpy.context.view_layer.objects.active = obs
        bpy.ops.object.editmode_toggle()
        bpy.ops.mesh.tris_convert_to_quads()
#        bpy.ops.mesh.remove_doubles()
#        bpy.ops.mesh.normals_make_consistent()
        bpy.ops.object.editmode_toggle()
        bpy.ops.object.select_all(action='DESELECT')
        bpy.context.view_layer.objects.active = None
    else:
        continue

print('script done')
now = time.time() #Time after all aperations done
print("It took: ", now-then, " seconds")


Can Blender render pngs with the background transparent? I would like to render an animation as a series of .png images with transparent backgrounds for use in a video. Is this possible?

Yes this is possible.

To save rendered images with transparent background (PNG format for instance), the settings are as follows for "Cycles" and  "Blender Render" rendering engines.

Cycles

Properties Editor > Render Context > Output Panel

Choose RGBA so that the alpha from the renderer is saved in the png

Properties Editor > Render Context > Film Panel

Check Film>Transparent so that the World background is transparent.

Blender Render

Properties Editor > Render Context > Output Panel

Choose RGBA so that the alpha from the renderer is saved in the png

Properties Editor > Render Context > Shading Panel

Choose Transparent Alpha type.

EEVEE (Blender 2.8)

Properties Editor > Render Context > Film Panel

Choose Transparent Alpha type.

when using luxcore render in Blender, in Camera panel, turn on checkbox 'Transparent Film' (settings is different for each camera)

in output panel, choose PNG format and RGBA (alpha)


Cycles replacement node for the BI "Lamp Data" node I need to convert a node system made in blender internal render to cycles but I can't find a node that would replace the "Lamp Data" node.

Blender internal node setup.

It is not currently possible to get the incoming light vectors for materials in Cycles with nodes. This would be a lot more complex than in BI, because of all the light bouncing around in the scene - I suspect(just a guess) this is the reason this data is not exposed via nodes. In Cycles it should only be possible to achieve these kinds of results with OSL that is not supported by GPU rendering so I don't know much about it. I suppose it would require a separate question as well if you were interested to pursue this further.

Recently texture coordinates for objects where added, so it's now possible to do a dot product like in your setup with an empty. Instead of the lamp data node, you use a texture coordinate and set the empty, then you normalize the vector with a vector math node and then do the dot product with the normals of your object. For the color you still have to rely on the light's color. You also have to parent a light to the empty


Changing colors via button clicks Well I want to change colors of the blender models by button clicks in the web app I am making. Kind of like the html color picker. Any idea how to do it?

This can be done using a combo of Blend4Web's Switch Select and Set Shader Node Param logic nodes.

Feel free to ask for an example blend file on the B4W forums.

Watch this tutorial, I hope it serves you.


My mesh deforms while moving a armature in object mode I'm trying to do bug walking animation that follows a path but mesh deforms too much especially legs . Btw there is no problem if I move all bones in the pose mode


Blender 2.8 edge length I'm new to blender and I want to use it as 3D printing software. I'm using 2.8 so I'll get used to new interface, but I don't know how to change edge length to a specific value. I know how to change whole object dimensions like cube, I'm using metric system and I can see edge length when selected, but how do I change it?

I found this addon and updated to 2.8. I think this is what you're wanting.

Addon located here

I am not at my computer right now, so cannot confirm, but Blender internal addons should have been properly ported to 2.80, so I believe the "Mesh: Edit Tools 2" trick should still work:     How to set a specific edge length numerically? have you tried that?


Export cycles material to unity I have been experiencing an issue that once I have a material created and looking the way I want it, I cannot seem to export it correctly with the textures mixed.

I don't know the correct words to use, but in blender I have the material created using the nodes editor, and I have placed two textures inside of there (one for the rock texture and one for moss, my object is a rock). When I export this model and import to Unity (the game engine I am using), I find a materials folder but the material inside of it does not have the textures assigned, it's just a plain white material?

How can I export my material from blender in a way that it will allow me to import it WITH TEXTURES into Unity?

You will have to Bake the material before you can use it in unity. Specifically the color data from the material.
Well what pass holds the color data? That depends on how your material is set up. You might have to bake a Diffuse pass, a Glossy pass, or an Emission pass (those are the three most common passes, but there are 11 total passes).

If you are using a Diffused BSDF, Principled BSDF (non metallic),  and Toon BSDF shader then bake a Diffuse pass set to Color.
However the Anisotropic BSDF, Glass BSDF, Glossy BSDF, Hair BSDF, and Velvet BSDF shaders will all output a pure black Diffuse pass. For these you need to bake a Glossy pass set to Color.

If you have an emissive materiel, you will need to use (no surprise here) an Emit pass.

The interesting one is the Principled shader. When set to metallic, it too will be a pure black diffuse pass.

These here are the minimum steps to bake the color of a cycles material to a texture (I'm using a diffuse pass here). You may depending on your UV layout need to create another UV map. Possible to bake texture to new UV map?

With the object in question selected, open the UV/Image Editor and create a new image which will be used to bake to.
In the material nodes add a Image Texture node, select the image you just created and keep it the active node (light yellow outline).
In the Properties Window under the Render tab scroll down to the Bake heading. Change the Bake Type to Diffuse, and choose only the Color pass. Now press the large Bake button.

Well there is definitely a bug report worth making about this but I have a semi okay hacky let-down workaround for your consideration.

Take your model and duplicate it. In edit mode use ALT-S to scale all selected faces maybe -0.05 or whatever is relatively appropriate, maybe less is more.

Replace the material with an Emitter of white like an Area light power/strength of 1.0 sounds right.

Then in your typical cycles texture bake procedure with Combined selected you have to have subsurface turned on or it renders black (which is the bug ~ clearly).

Alas with the subsurface turned on (and only 'diffuse' checked-on as well other then 'selected to active' potentially) you should get even illumination on the baked surface. Since it's a diffused shader no subsurface scatter will be included anyway (I originally have used the beloved unifying Principle Shader... of course).

Remember to turn off all other lights, Ambient lighting, and environment lighting of course (also hide all other object). You can still get shadows if you try, (like I did at first), a large inverted sphere as an area light, or something similar with the environment it's not as good.

I'm thinking a duplicate with no scaling wouldn't work right, but maybe -0.0001 scale factor entered into the tools panel when ALT-s scaling might be right to give no shadow in complex convoluted surfaces that would otherwise pickup more or therefore less light (depending on how you look at it) and have different exposure to the closely light surface. It could also be considered as a desired (AO) 'feature' to set that scaling distance to a desired effect as well.

In my case I wanted to see if I could get a bump map by pumping the RGB through a diffused BSDF node. Can't say I need that with the Normal but I guess this is similar for the texture unless you want to bake some nice appropriate lighting into that.

Anyway I'm still doing some tests on this, with so many possibilities/tweaks. Indirect Off, not using Selected to Active, and therefore hiding the master high res source I baked the normals down to, etc. It seems maybe those other possibilities are not better and this is the best way. I suppose for distance you need to break free from the surface and therefore not be intersecting (zero didn't work as expected) so using a Boolean modifier would help determine more precisely a minimum amount to scale along the normals. You maybe need to reapply smoothing to the duplicate after changing the material.

{My Version is 2.79 in May 2018}

[My thought of how Blender Devs should proceed from my previous comment to the other answer above is, that you want a node that would simply export the texture with the UV mapping interpolation. This may be complicated when trying to move from a high res to low retopologized surface as this baking technique is intended for, so what's being interpolated is maybe different but you can redo the textures from the low poly version instead.]


Combine two normal maps and control the strength of each I use this node setup to combine my two normal maps.

I adapted this method from here.

How to Combine two Normal Maps?

It works perfectly to just combine the maps.
But now i need individual contol over the strength each of them.

Is there a way to do this ?

A more precise result can be found using these formulas...
Here's an adaptation of it including a Factor value for mixing:

some more details can be found in this thread in BA

And the nodegroup can be found here.

I' not sure this solves your problem, but do you see that in the Normal Map node on the right of the image there's the strength bar? I would try to use two of them, one for each normal map and then do the whole setup to combine them.

See the image below for reference. Keep in mind that this setup I made is not the correct one, I just made it really quickly as an example of what I was thinking about, you probably need to "combine" it with your solution, just apply a Normal Map node for each normal map you want to control the strength of.


Move object by a given distance on rotation of another (bolt & screw) I am looking to make a constraint to animate a cnc model. So i want to have a given object travel along an axis as a result of the rotation of another screw and bolt.

To be specific a 360 degree rotation should move the child object 2mm limiting the rotations to 125 or 45 000 degrees for a total travel distance of 250mm.

Constraint should be able to work in both directions like a normal bolt and screw animation.

Thanks

Sounds like you need to set up a custom driver based on the rotation of the screw. This video is on corrective shape keys but is a good introduction to the use of drivers in animation
https://www.youtube.com/watch?v=6mrceZ6fe-o

Humane Rigging by Nathan Vegdahl may be your best bet for a truly deep understanding of rigs and constraints. It's also available on Youtube if you're strapped for cash, but you won't have the benefit of the tutorial rigs he provides.


Filmic Blender in Unity If I make something in Blender with Filmic Blender. Save as asset, import it to Unity Game Engine... Wonder if the asset looks the same in Unity (with Filmic settings).

In other words, is Filmic only for Blender rendering?

Thanks,
Ondra

Filmic is only for rendering. It how the colours are saved to the rendered image. You should look into HDR rendering in Unity to get something similar.

Filmic is a library of color look-up-tables. It doesn't affect anything but output image data, and the display in the 3D view. Filmic affects the way Blender displays colors in images that are rendered, composited, or created with the video sequence editor. AFAIK it isn't possible to apply view transform to baked images, though, so if you'd like to apply Filmic view transform to your textures, load them into the compositor and save them to files.

It might also be possible to customize the lookup tables that your game engine uses, but that's a topic for their forum.


How do I add a porous texture to a mesh? I want to create a porous bone texture for my mesh. I've tried importing image of bone pores and it looks distorted and bad.

I am a newby, is there something I'm doing wrong?

I tried the noise texture and a few others and they aren't cutting it!

I need to create a mesh with an appearance of tiny hollow cavities.

Using image textures:
There are a few things that could be causing your texture to look distorted:

Ensure that your mesh is properly UV unwrapped

Check that you have UV coordinates selected; in cycles this is accessed with the Texture coordinate node, in Blender Internal it is set in Texture settings > Mapping.

Using Procedural textures:
As said on the wiki:

Procedural textures are textures that are defined mathematically. They are generally relatively simple to use, because they don't need to be mapped in a special way - which doesn't mean that procedural textures can't become very complex.
These types of textures are 'real' 3D. By that we mean that they fit together perfectly at the edges and continue to look like what they are meant to look like even when they are cut; as if a block of wood had really been cut in two. Procedural textures are not filtered or anti-aliased. This is hardly ever a problem: the user can easily keep the specified frequencies within acceptable limits.

Blender Internal:
Here is a quick example of a bump mapped cloud noise texture:

To create this:

Add a new material

Add a new Clouds texture

In Texture settings > Influence > Diffuse disable Color, and in Influence > Geometry enable Normal to use bump mapping. (you may want to scale down the influence a bit, and change the Method to Best quality)

In Texture settings > Clouds > Basis change the Size value as desired.

Cycles:
To bump map, simply plug the texture into the Displace socket of the Material output node.

Note that this can also be done per shader with the Bump node and the Vector input socket of shader nodes.

As to make volumetric porousity on volume level for your bony object ,I found a  useful blog with beautiful open source downloadable plugin AtomBlend,  developed in Sydney by Vavara Efremova under the supervision of Anna Ceguerra, Simon Ringer and  Peter Felfer. It works for Nano particles material research . so can handle enormous number of vertices for visualisation , render and analysis .You can load your object vertics data and make Atomic view and switch halo material (circles as atoms) to Vertex duplication (spheres as atoms) by switching On Vertex Duplication in the object tab.

http://www.peterfelfer.org/?p=214


OpenCL vs CUDA Rendering Nowdays I have the old Radeon HD 6870, and it's not compatible with OpenCL, so the rendering is made by the CPU, that is a quite slow comparing with GPU rendering.

I'm thinking on a upgrade to R9 380 or a GTX 960 for rendering (and gaming, of course).

Some people say tha OpenCL is not stable in most CG softwares, especially Autodesk's.
Shoud I get R9 380 (cheaper, more powerful) or GTX 960?

Go with the Nvidia.  Performance aside, CUDA works better with Cycles.  Until recently, OpenCL was not even supported in Cycles so it is not as bug-free and stable as CUDA.  Another thing to consider is that usually new features are supported on just CPU first, then CUDA, then OpenCL.  So be prepared to wait a little while to use new features on your GPU if you go for the ATI card.

To be fair, OpenCL is by no means unusable, it just isn't as polished as CUDA.  I do have a friend with an R9-390 and it mostly works fine in Cycles.

In fact, here is a list of supported AMD devices as of May 2015.

With regards to your last statement about other software:

Most commercial 3D software (Autodesk included) won't really work with a gaming-class GPU at all, and definitely not an ATI card.  If you want to use that kind of software you really need a workstation-class GPU (i.e. Nvidia's Quadro cards, frankly ATI's workstation cards are a joke).

However, keep in mind here that Blender is not optimized for workstation cards.  That doesn't mean that they don't work at all in Blender, it's just that Cycles just won't be able to take advantage of the extra features you are paying for in a Quadro.

Workstation cards are also not ideal for gaming.  I do have a Quadro M4000 and it works fine for the few games I play (AoE III, Civ V, a couple old emulators, etc.), but if you are any kind of a serious gamer you definitely don't want a workstation card.

General hardware recommendations are outside the scope of this site, but if you're asking "which card will be better for Blender," that I can help you with.

There is not an ATI card, Radeon or otherwise, that Blender can use with the Cycles engine (except with significant, advanced modification). A computer that has an ATI card can still run Blender, and still render with Cycles on the CPU (like you've experienced).

NVidia has implemented an API called CUDA that gives applications access to NVidia GPUs. Blender has implemented CUDA to render scenes on the GPU using Cycles.

ATI cards do not support CUDA. ATI is supporting an API called OpenCL. Blender has NOT implemented OpenCL at all.

Consequently, the NVidia card is the only one of the two that will GPU render in Blender. Until Blender implements OpenCL or ATI cards are somehow able to support CUDA, no ATI card will be able to do GPU rendering with Blender.

Now, if you're talking about manipulating things in the viewport, that's a whole 'nuther can of worms. Blender uses OpenGL to display things in the 3D viewport. Both Nvidia and ATI cards support OpenGL (OpenGL is used for LOTS of games). So, strictly speaking of the shaded and texture views of the 3D viewport, either card might be better than the other. It's hard to tell.

If you're wanting to render Cycles on the GPU, the NVidia card is your only option.


How to stack/multiply objects or meshes in blender I just wanted to know is there any way to multiply objects, for instance in making rice on plate. you know how they are, random in all direction and piled up at the center, i tried the particle effect and almost all settings, didnt help.

I think you need to create a mesh, which looks like the 'pile' object. And then on the surface of the mesh, you apply the particles, as a single or grouped rice meshes. Using some randomness in the parameters.


How to enable other passes on background layer? Here's what my compositor shows when I have shadow pass enabled. How do I enable it for the background layer as well?

In the View Layer Properties tab you can see all the render passes availables.

Found the solution, I needed to change the render layer in the top right. Once it was changed to background I was able to enable the shadow pass for that layer as well


Python script renders a collection even when excluded from view layer I have the following code to render child collections within a collection:
sideplates = bpy.data.collections["RACK 1 - 1 RACK FRAME"].children

for s in sideplates:
    s.hide_render=False
    s.hide_viewport=False
    n = s.name

    # render 800 x 600

        scene.render.resolution_x = render1xresolution
        scene.render.resolution_y = render1yresolution
        bpy.data.scenes["CONFIGURATOR 800 x 600"].render.filepath = '/BlenderPythonTest'
        bpy.ops.render.render(write_still = 1)

    s.hide_render=True
    s.hide_viewport=True

The collection structure looks like this:

I have tried to untick the box, excluding the child collections from the parent collection. Running the script will still render the "Nuage" collection et al, when what I would like from the picture above is just to render "Sable", "Souquillou" and "Cab".
Is this possible and if so, how?

I did this recently, you have to access your collection through specific view layer.
You should try :
my_view_layer = bpy.context.view_layer #up to you

#append to sideplates only checked collection
sideplates = []
for collection in my_view_layer.layer_collection.children["RACK 1 - 1 RACK FRAME"].children :
    if collection.exclude == False :
        sideplates.append(collection)

##render individually checked collections
for s in sideplates:

    #exclude every other collection
    for sp in sideplates:
        if sp != s :
            sp.exclude = True

    ## RENDER STUFF ##

    #restore exclude attribute
    for sp in sideplates:
            sp.exclude = False

As per Tomreggaes suggestion in this post, final code looked like this:
my_view_layer = bpy.context.view_layer

sideplates = my_view_layer.layer_collection.children["ONE RACK UNIT - INC BASES AND TOPS"].children["RACK 1 (COLUMN 1)"].children["UNIT 1 - 1"].children["UNIT 1 - 1 RACK UNIT"].children["RACK 1 - 1 RACK FRAME"].children

for s in sideplates:

    if s.exclude == False :

        s.collection.hide_render = False
        s.collection.hide_viewport = False

    ## render 800 x 600
        if rendersideplates == True:
            n = s.name
            ##raise Exception()
            scene.render.resolution_x = render1xresolution
            scene.render.resolution_y = render1yresolution
            bpy.data.scenes["CONFIGURATOR 800 x 600"].render.filepath = '/BlenderPythonTest/Configurator/Single Rack/Rack Frame/%(2)s/800x600/%(1)s 800x600 %(2)s.%(3)s'  % {"1" : n, "2" : camname, "3" : picformat}
            bpy.ops.render.render(write_still = 1)

        s.collection.hide_render = True
        s.collection.hide_viewport = True


Boolean Modifer Not Working Properly When I Try To Use The Boolean Modifier To Carve The White Object Into The Other One Via Difference, It Just Makes The Grey One Disappear.

Also This Does Not Occur When I Use The B-Mesh Solver, only The Carve Solver

Figured Out I Need To Combine It With A Larger Object, Apply The Boolean, Separate The Objects, Then It Works.