Baking normals results in blank normal map Following this tutorial on making a Lego-type of character but I'm having an issue where I'm trying to bake detail into an image. Specifically, I sculpted additional detail onto this hair object and now trying to bake but the resulting normal map image is always just blank. I know it isn't a problem with my UVs as I set them up previously and can paint using them just fine.
I've had this same issue before so I thought it was a bug with Blender but after updating (version 2.9 to 2.91) I'm still having the same problem.
Here are the exact steps I am doing after having finished sculpting:

Create a new material and remove all previous materials from the object

Create a new image at a 4K resolution (to be downsampled later) for the bake

Added this image to the material as an Image Texture

Go to the render tab
4a. Switch to Cycles
4b. Set Bake Type to Normal

Ensure hair object is selected while in Object Mode

Bake the image, the resulting image does in fact change but is just a blank normal map with no detail captured.

What I've already tried:

Adding drastic detail to the sculpt just in case my details were not being picked up, made no difference.
Messed with various settings in the Bake options. As a quick note, if I change the Influence-Space from Tangent to Object I DO get something in the image (which is positioned properly based on my UVs) but its certainly not what I want (not sure what this setting is even for?).

Any ideas? I'll gladly hand out my blender file too but I'm not sure where to upload it to share it.

I went back through and did everything again except this time I did not apply the multi-resolution modifier as I did before and then baked it without the multi-res option in the bake (having it checked wasn't generating properly) and it worked!
However, perhaps I have a misunderstanding of what this tool does as I'm still confused as to why having applied the modifier prevented it from working? Shouldn't the bake just bake whatever information is present? Or does it only bake based on the difference before what an object is with and without its modifiers?


Exporting vertex UV coordinates For two days I've been puzzled when trying to properly export UVs for vertices. Unfortunately when I load model in game engine, mapping isn't correct.

I found few threads about this process and tried to export few test files, but It's not clear to me. Maybe someone can help me here. Let's have example cube mapped with texture, then triangulated. According to this thread, little bit modified result is as pasted below (vertex index, loop index, u, v):

3 0 0.0 0.0
2 1 1.0 0.0
0 2 1.0 1.0
7 3 0.0 0.0
6 4 1.0 0.0
2 5 1.0 1.0
5 6 0.0 0.0
4 7 1.0 0.0
6 8 1.0 1.0
1 9 0.0 0.0
0 10 1.0 0.0
4 11 1.0 1.0
2 12 0.0 0.0
6 13 1.0 0.0
4 14 1.0 1.0
7 15 0.0 0.0
3 16 1.0 0.0
1 17 1.0 1.0
1 18 0.0 0.0
3 19 1.0 0.0
0 20 1.0 1.0
3 21 0.0 0.0
7 22 1.0 0.0
2 23 1.0 1.0
7 24 0.0 0.0
5 25 1.0 0.0
6 26 1.0 1.0
5 27 0.0 0.0
1 28 1.0 0.0
4 29 1.0 1.0
0 30 0.0 0.0
2 31 1.0 0.0
4 32 1.0 1.0
5 33 0.0 0.0
7 34 1.0 0.0
1 35 1.0 1.0

So here is question I'm trying to find answer for at this point:
 - Vertex with given index is repeated exactly 4 times. For example, vertex with index 3 have is represented by two sets of different UVs. Why? If all considered entries are describing vertex number 3, shouldn't they be identical?

This is the most important for format I want to export mesh to. This is how format look like:

TRANSLATE 0 0 0
ROTATE 0 0 0

SUBMODEL Cube
V -1.0 -1.0 -1.0 0.0 0.0
V -1.0 1.0 -1.0 1.0 0.0
V -1.0 -1.0 1.0 1.0 1.0
V -1.0 1.0 1.0 0.0 0.0
V 1.0 -1.0 -1.0 1.0 0.0
V 1.0 1.0 -1.0 1.0 1.0
V 1.0 -1.0 1.0 0.0 0.0
V 1.0 1.0 1.0 1.0 0.0
TRI 3 2 0
TRI 7 6 2
TRI 5 4 6
TRI 1 0 4
TRI 2 6 4
TRI 7 3 1
TRI 1 3 0
TRI 3 7 2
TRI 7 5 6
TRI 5 1 4
TRI 0 2 4
TRI 5 7 1
TEXTURE tex.dds
ENDSUBMODEL

Vertices are described by X Y Z U V. I already tried to loop all faces and store UVs in dictionary, where key of dictionary is index of vertex. But this not seem to work correctly.

Thank you in advance!

I just solved this problem. My thinking was wrong. I realized, that it is impossible to draw meshes using indices when one vertex is shared among few faces, where each face has different UV mapping on that vertex. The solution was to change format to face list.


Python: How do I export a single object as a .dae file? I need to be able to export multiple .dae files from a single .blend but I'm not sure about the process of doing this. Is it possible? When I export the .dae manually, it exports all the objects in the .blend not simply the one I selected.

To do it manually :

In Object mode with the object(s) selected

File > Export > Collada (.dae)

On the lower left hand side of the Collada export window you will find the export options, check the Selection Only option before exporting

Hope this helps a little.


Texture look lighter in material view than in render view So i am trying to texture my mesh with cycles render and im wondering why does my mesh look better on render view than in material view with the textures? In material view it is so mutch lighter. Is there a way to fix it? or is there anything to fix it and its just like it is?

Also tips and tricks for texturing is appreciated

Here is an image:

The material view does not use the lighting in the scene, instead it is lit by the three Solid OpenGL lights that can be set up in the User Preferences: File / User Preferences / System Preferences / Solid OpenGL lights. You can adjust those lights and save the settings, but do not forget, those settings are global, they apply for all blends.

The render view is of cource better than the material view: The former is doing a real render, while the latter approximates it with fast real-time OpenGL rendering.

About tips and tricks for rendering: Those are too broad for Blender Stack Exchange, but you can easily google for Belnder texturing tutorial, and watch some. Blender Guru and Blender Cookie are good sources for tutorials. You can also search for tutorials on BlenderNation.


why my mesh deform when I delete shape key? I just tried to delete shape keys and my mesh goes from this

to this

Why is it doing this, and how can I avoid this?

I just solved it by deleting all object modifiers and physics and it works.


How to make two alembic Mesh Sequence Caches working together I would like to play two .abc sequences in one scene. However, they seem to be hating each other, so after importing second sequence, the first one stops playing. I've noticed that the object path is the same for both of them, so I think that might be the problem. Is there a way to change it somehow (rename mesh_shape to something that works)? Thanks.

Blender Sushi Guy here, I encountered the exact same situation today. And I think I have a solution that is using Sverchok nodes, but easily translateable into Drivers or Python code solution. I think Dr. Sybren can help :)

So, I have multiple alembic cace file, each for 1000 frames. I broken down the Alembic sequence into multiple caches because 10000 frames == keeps crashing Blender.

Anyhow, just like what you are trying to do, you want to "mix" the Alembic cache together, using Modifier stacks.

Ideally, there should be a mechanism in Blender allowing to do this. Maybe Blender devs are still working on it(?).

For now, I am using this "simple trick" that is basically triggering the "show_viewport" ON and OFF as needed.

I have 2 caches here, cache A (frame 1-1000) and cache B (frame 1001-2000). You can have more.

Both has "Override Frame" turned on. So we will be controlling the frame using "Time Frame". That part is taken care of.

But as you mentioned, once you stack multiple cache, the second will completely override the previous.

However if you control the "show_viewport" and trigger ON and OFF at the right time (in this case I am using nodes logic to check frame number, if frame number is bigger than > 1000, then 2nd cache SHOULD take over and continue the cache. Otherwise, it should run the 1st cache first.

Let say we have 3,4,5 cache, we can use similar logic.

I test a quick OpenGL render and seems like my cache A and B mixed together into the same mesh.

I wonder what Blender Devs working on Alembic can say about this.

But that is one solution.

Perhaps "Use Modifier During Render" (the camera icon) also needs to be triggered.

The easiest is to use Drivers, for this. In my case, I am relying on nodes.


How to list the frame numbers which contain keyframes in Python? I animate with lots of holds in between each keyframe so there are lots of frames with no movement throughout my animation. I don't want to render a bunch of duplicate frames (I'd rather stretch them out in post), so I've devised a way of rendering only the frames which have keyframes using a batch script.

"C:\Program Files\Blender Foundation\Blender\blender.exe" -b "C:\Users\Me\Documents\Blendfile.blend"
-f 1 -f 23 -f 24 -f 25 -f 26 -f 31 -f 32 -f 33 -f 34 -f 37 -f 38 -f 39 -f 45 -f 46 -f 47 -f 51 -f 52 -f 53 -f 59 -f 61 -f 71 -f 72 -f 73 -f 75 -f 76 -f 77 -f 83 -f 84 -f 85 -f 93 -f 94 -f 95 -f 98 -f 99 -f 100 -f 103 -f 104 -f 105 -f 110 -f 111 -f 112 -f 114 -f 115 -f 116 -f 122 -f 123 -f 124 -f 127 -f 128 -f 129 -f 130 -f 131 -f 132 -f 140 -f 141 -f 142 -f 143 -f 144 -f 145 -f 149 -f 150 -f 151 -f 152 -f 153 -f 154 -f 156 -f 157 -f 158 -f 161 -f 162 -f 163 -f 169 -f 170 -f 171 -f 175 -f 176 -f 177 -f 178 -f 179 -f 180 -f 181 -f 182 -f 183 -f 192 -f 193 -f 194 -f 196 -f 198 -f 200 -f 202 -f 204 -f 206 -f 208 -f 210 -f 211 -f 212 -f 213 -f 217 -f 218 -f 219 -f 226 -f 227 -f 229 -f 234 -f 235 -f 236 -f 237 -f 238 -f 239 -f 240 -f 244 -f 245 -f 246 -f 249 -f 250 -f 251 -f 253 -f 254 -f 255 -f 264 -f 265 -f 266 -f 267 -f 268 -f 275 -f 276 -f 277 -f 279 -f 280 -f 281 -f 282 -f 285 -f 286 -f 287 -f 296 -f 297 -f 298 -f 308 -f 309 -f 310 -f 316 -f 317 -f 318 -f 319 -f 323 -f 324 -f 325 -f 332 -f 333 -f 334 -f 343 -f 344 -f 345 -f 352 -f 353 -f 354 -f 356 -f 357 -f 358 -f 361 -f 362 -f 363 -f 367 -f 368 -f 369 -f 370 -f 371 -f 372

Currently I'm manually populating this script with the frame numbers. However, I know that Blender keeps the data of all the keyframes (such as at the top of the Dope Sheet).

So my dilemma is, how can I write a Python script that collects this data for me? Does anyone know how to tap into this Super Sheet Summary or some Blender internal function to grab the frame numbers of the frames which have keyframes on them?

All help would be greatly appreciated! Thanks!

Graph editor Operator
(for version 2.79.4 and above)

Set up the selections on your graph editor to match those of the dope sheet.

Since version 2.79.4 the graph editor has the very handy context.selected_editable_fcurves property. The operator below uses each of these selected fcurves.  Render frames are added to a list sequentially from frame start to end if there is any change (over a tolerance) in the evaluated fcurve between frames current, f, and previous  f-1.

The render command line is written to a text block

To use, run the script (to register) Use the space bar and search for  "Report Changed Frames" in the graph editor space.  Remember it uses the selected fcurves, press A before running to select all visible in current graph editor selection.

import bpy

def main(context):
    scene = context.scene
    selected = context.selected_editable_fcurves[:]
    # all selected fcurves
    f = scene.frame_start
    render_frames = [f]
    f += 1
    while f <= scene.frame_end:
        def changed(fc, tol=0.0001):
            return abs(fc.evaluate(f) - fc.evaluate(f - 1)) > tol

        if any(changed(fc) for fc in selected):
            render_frames.append(f)
        f += 1

    report = bpy.data.texts.new("Changed Frames")

    report.write('"%s" -b "%s" ' % (bpy.app.binary_path, bpy.data.filepath))
    for f in render_frames:
        report.write(" -f %d" % f)

class GRAPH_OT_report_frames(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "graph.report_frames"
    bl_label = "Report changed frames"

    @classmethod
    def poll(cls, context):
        return context.area.type == 'GRAPH_EDITOR'

    def execute(self, context):
        main(context)
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

As stated this doesn't list all frames with a keyframe, rather it lists all frames that have some animated change on that frame, (for any of  all selected fcurves).

If you are just after keyframe frames, add all kfp.co.x (keyframe point frame) points to a list, for all selected fcurves.  Converting to a set s = set() will remove doubles.

all_frames = set(kfp.co.x
        for fc in context.selected_editable_fcurves
        for kfp in fc.keyframe_points)

Oldschool (all versions)

You can also iterate through all actions and check the state of Keyframe.select_control_point property to get the corresponding frame of all keys in the selection.

import bpy
from math import ceil

class ACTION_OT_report_selection(bpy.types.Operator):
    """Report Selected Keyframes"""
    bl_idname = "action.report_selected_keyframes"
    bl_label = "Report Selected Keyframes"

    def selected_keys(self):
        """Returns the frames of all selected keys"""
        ctrl_points = set()
        for action in bpy.data.actions:
            for channel in action.fcurves:
                for key in channel.keyframe_points:
                    if key.select_control_point:
                        ctrl_points.add(ceil(key.co.x))
        return sorted(ctrl_points)

    def cli_block(self, frame_list, block_name):
        """Creates a new textblock with all necessary command line arguments"""
        report = bpy.data.texts.new(block_name)
        report.write('"%s" -b "%s" ' % (bpy.app.binary_path, bpy.data.filepath))
        for f in frame_list:
            report.write(" -f %d" % f)

    @classmethod
    def poll(cls, context):
        area_types = ('DOPESHEET_EDITOR', 'GRAPH_EDITOR', 'TIMELINE')
        return context.area.type in area_types

    def execute(self, context):
        render_frames = self.selected_keys()

        if not render_frames:
            self.report({'ERROR'}, "Nothing selected")
            return {'CANCELLED'}
        else:
            textblock_name = "Render Arguments"
            self.cli_block(render_frames, textblock_name)
            self.report({'INFO'}, "'%s' text block created" % textblock_name)

        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()


How do you change the default directory for saving/opening files? When saving my projects the default directory sometimes opens to C:\ but I have my blender projects saved in my D:\Blender Projects directory. Is there a way to make this directory the default so that I don't have to manually type it in every time I want to save something?

This would apply when opening files as well. My reference files are saved in a similar location D:\Blender Projects\References but to access them I have to type the D drive in manually because it default opens the C:\ drive every time.

You can't as Blender doesn't give us a way to do this. As gandalf3 says above in the comments it should use the last directory you accessed a file from in your current session. If you find yourself going to the same place several times, you can add a bookmark under Bookmarks or see your last visited folders under Recent in the sidebar. There should also be system bookmarks for your drives so no need to type if you can help it.


How to get cursor position in 2.8 So I'm trying to convert the following script in 2.8
I have replaced scene with depsgraph.
But I'm getting an erroneous on last line:
Scene object has no attribute 'cursor.location'

import bpy
from mathutils import Vector

#A class that takes into account a context and one of its attributes value
#If the value changes a callback is fired
class EventWatcher:

    #Set of watchers
    eventWatchers = set()

    @staticmethod
    def AddWatcher( watcher ):
        EventWatcher.eventWatchers.add( watcher )

    @staticmethod
    def RemoveWatcher( watcher ):
        EventWatcher.eventWatchers.remove( watcher )

    @staticmethod
    def RemoveAllWatchers():
        EventWatcher.eventWatchers.clear()

    #From 'context', 'path' needs to exist
    #'comparer' is to compare the previous value of context.path to its new value
    #'callback' is the cb called if the value if changed
    #'copyValue' indicates if the value needs to be copied (that can be needed as if not old and new value may point onto the same object)
    def __init__( self, context, path, comparer, callback, copyValue ):
        self.context = context
        self.path = path
        self.comparer = comparer
        self.callback = callback
        self.copyValue = copyValue
        self.currentValue = self.GetValue()

    def GetValue( self ):
        value = getattr( self.context, self.path )
        if self.copyValue:
            value = value.copy()
        return value

    def Fire( self ):
        newValue = self.GetValue()
        if self.comparer( self.currentValue, newValue ) == False:
            self.callback( self, newValue )
            self.currentValue = newValue

#Global loop on the watchers. This callback responds to scene_update_post global handler
def cb_scene_update(context):
    for ew in EventWatcher.eventWatchers:
        ew.Fire()

#To stop the calls at the scene_update_post event level
class StopCallback(bpy.types.Operator):
    bl_idname = "scene.stop_callback"
    bl_label = "Stop Callback"

    @classmethod
    def poll(cls, context):
        return cb_scene_update in bpy.app.handlers.depsgraph_update_post

    def execute(self, context):
        bpy.app.handlers.scene_depsgraph_post.remove(cb_scene_update)
        return {'FINISHED'}

#To start the calls at the scene_update_post event level
class StartCallback(bpy.types.Operator):
    bl_idname = "scene.start_callback"
    bl_label = "Start Callback"

    @classmethod
    def poll(cls, context):
        return cb_scene_update not in bpy.app.handlers.depsgraph_update_post

    def execute(self, context):
        bpy.app.handlers.depsgraph_update_post.append(cb_scene_update)
        return {'FINISHED'}

#The panel is located in the scene properties
class SceneEventsPanel(bpy.types.Panel):
    bl_label = "Scene events"
    bl_idname = "OBJECT_PT_scene_events"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "scene"

    def draw(self, context):
        layout = self.layout
        row = layout.row()
        row.operator("scene.start_callback")
        row = layout.row()
        row.operator("scene.stop_callback")

def register():
    bpy.utils.register_class(SceneEventsPanel)
    bpy.utils.register_class(StartCallback)
    bpy.utils.register_class(StopCallback)

def unregister():
    bpy.utils.unregister_class(SceneEventsPanel)
    bpy.utils.unregister_class(StartCallback)
    bpy.utils.unregister_class(StopCallback)

if __name__ == '__main__':
    register()

print( '--------' )

#Example:

#The comparaison (for cursor location, it is a vector comparison)
def CompareLocation( l1, l2 ):
    return l1 == l2

#The callback to execute when the cursor's location changes
def CompareLocationCallback( watcher, newValue ):
    print( 'New value', newValue )

#Install the watcher which will run the callback
EventWatcher.AddWatcher( EventWatcher( bpy.data.scenes[0], "cursor.location", CompareLocation, CompareLocationCallback, True ) )

Actually it is not the last line that is causing the error but the GetValue method.
In order to access the location attribute of the cursor attribute of the scene, you must execute scene.cursor.location. Meaning you must first get access to the cursor, then to its location. What you can do is replace your GetValuemethod with :
def GetValue( self ):
    split_path = self.path.split(".")
    attr_path = split_path[0]
    if not hasattr(self.context, attr_path):
        print(f"Error : {self.context} does not have any attribute named {attr_path}")
        return None
    value = getattr(self.context, split_path[0])  # Access 1st member of the property path
    for depth in range(len(split_path[1::])):  # Iteratively access the other members
        attr_path = split_path[depth + 1]
        if not hasattr(value, attr_path):
            print(f"Error : {value} does not have any attribute named {attr_path}")
            break
        value = getattr(value, attr_path)
    if self.copyValue and hasattr(value, "copy"):
        value = value.copy()
    return value

Meaning, if you want to access the X coordinate of the cursor location, you can change the last line to :
EventWatcher.AddWatcher(EventWatcher(bpy.data.scenes[0], "cursor.location.x", CompareLocation, CompareLocationCallback, True))

Result :

By the way, I suggest looking at the guidelines for python naming and such in Blender.


How to make it so that your object doesn't move when you resize it I'm trying to resize this cube, but whenever I do that, it moves out of place, anyone know how to fix this?

Looks like the origin of your cube is still at the world origin, but your cube object itself is above the surface.
You can reset the object origin: Select the cube, go to Object menu, select Set Origin, then select Origin to Geometry.
Should solve your problem.
HTH


Mirror vertex selection Let's say I have selected some vertexes:

How do I mirror this selection (in x axis) so I can select the other side (same vertices assuming my mesh is symmetric)
I just want to select the other side not do any operations.

Choose Mirror from the Select menu and check the Extend option.


What is the actual definition of "Render" So, I'm looking to be able to explain what I do on blender, and I know this sounds stupid, but in the definition, I can't find the right definition to incorporate into how I explain blender and making Youtube Intros/Outros.

It will depend a bit on whether you're trying to explain this to a layman, trying to draft a professional description (like for LinkedIn or other professional profile), or just trying to generally understand the technical definition. If you can add this info to your question, it'd be helpful.
That being said...
The Merriam-Webster definition is actually useful in beginning the description, particularly definitions 4 & 5:

4a (1) :  to cause to be or become b (1) :  to reproduce or represent by artistic or verbal means :  depict (2) :  to give a performance of (3) :  to produce a copy or version of (4) :  to execute the motions of
5:  to direct the execution of

Wikipedia's definition is a little bit more accessible:

Rendering is the process of generating an image from a 2D or 3D model (or models in what collectively could be called a scene file) by means of computer programs.

But the most useful description would probably be the one that I (very officially) just came up with:

Rendering is the process of turning the digital description of a scene, at a particular moment in time, into an image. Rendering is a lot like taking a photograph of a scene that only exists in the computer. Scenes are described in simplified, human-accessible ways, and the computer then uses that description to calculate all of the implied (non-explicit) things to determine the color of each pixel in the entire image.

A very useful analogy in describing this process is telling someone else what to draw. I could write a letter to someone, describing what I wanted them to draw (without using any pictures), and the process of them reading what I wrote and turning it into a picture is almost EXACTLY the same as rendering in Blender (in fact, in the art world, the physical process of putting marks on paper is actually called 'rendering'). In fact, it's so similar that I could even add a tiny drawing of what the bumps on one of the bricks looks like, and that's a LOT like using an image texture in Blender.
The ONLY difference between this and rendering with Blender is that humans can make assumptions, but Blender can't. The letter could say "a double-hung aluminum window with 6 equal panes," and a person would have a very clear idea of what that looks like, but Blender would need a LOT more information.
I hope that helps!


Export of STL file enlarged very slightly for the diameter I have 4 objects produced in Blender in 4 separate files. 3 of them export with no problems the other one is enlarged slightly along the X and Y axes when exported to STL, the z axis measurement is not enlarged. The diameter of the object increases from 10.098mm to 10.744mm. I have the scene units scale set to 0.001 and the length to millimetres in the stl export menu. All of the files have the same settings, the Blender version is 2.91. The export scale is set to 1 and the scale units box is not ticked for all exports. A link to the problem file is below.
https://drive.google.com/file/d/1gh6vi6HwMrHBCEetUvR8QeKF2VjKMgln/view?usp=sharing
EDIT:
The export to STL was not the problem, it was a mismatch between the location of the x and y vertices and the dimensions of the object. I don't know what caused the problem but the answer presented describes a workaround to correct the problem.

In the modeling tab and object mode, pressing n gives me the dimensions of the object and this is at odds with the location of the widest points on the x and y axes, which can be found by switching to edit mode and selecting the appropriate vertex.
There seems to be a mismatch between the 2.
Location  x = 10.098  times 2 gives me roughly 20.2 which is what I want.
Dimension x = 21.5 which is definitely not right and it seems to be this dimension which is output to the stl file.
What I did to fix this: switch to object mode, select the object, press S to scale and then scaled by 0.939873418 for the X and Y axis and 1.0 for the Z axis and this corrected the dimension error. Inspecting the location of the widest point on the x axis shows that it has not moved.
Export of the STL shows the object now has the correct dimensions :-)
I've no idea what caused the problem in the first place.


For game assets is it ok to intentionally stretch UVs, or does this interfere with pixels per units? I have a question about texture stretching and environment design, and was hoping a Blender/asset creator guru/environment artist could give me some answers. I was reading about something games use called "pixels per units", which is apparently supposed to optimize a game. I'm not sure how.

In the following screenshot, I've been stretching a sci fi object's UVs to better fit the texture details. Is this bad? It certainly breaks the pixels per units rule, or is this a common practice? I've noticed this sort of thing in AAA titles, where they stretch or squish UVs to use a single texture in a variety of ways. But is this discouraged or not optimal?
Just a curious thought. I can't seem to find an answer online about intentionally stretching/squishing UVs to fit a texture.

I don't think there's anything wrong with stretching UV's from a technical perspective, it might even be desirable.

The main thing is that from an aesthetic standpoint it looks good. I would say that as long as it looks good, and is not giving you a blurred or pixellated effect (unless that's what you want), then you should be fine.


Saving Blender File to a Shared Folder Results in "Cannot change old file" Error I'm trying to save a .blend file to a shared folder that has five computers connected to it, but when I save the file, I get a "Cannot change old file (file saved with @)" error. How can I fix this issue?

I had the same problem with saving files while using a computer with a local hard drive (Windows10).
"Cannot change old file (file saved with @)" error occured when I packed external data into my blend files and then tried to save it.
Unpacking external data solved my problem.


Could not open file for writing? I have been using blender for a few years and this is the first time I have come across this problem. I am running 2.79 on Ubuntu. I was trying render a short test video for a new project and I came across this error on the top of my blender feed.

"Could not open file for writing"

And occasionally I get the error "Python: RENDER_MT_presets"

There is a triangle caution sign on the left of it. I am trying to write to the same folder of my last 6 videos. I found several videos just saying that I need to change the output source, but that didn't work. I also found this post on the forum.
Deleted .dvd file, and "Could not open file for writing."
I tried changing the permission for the folder, but again it had no effect. I am now confused by this and am hoping that someone could help.

In properties window, go to "Output" tab.
Find "Output" heading within that tab.
Check the "File Extensions" box (which is below the Output save path entry).


Bad reflections on some faces in blender, good on substance painter I've baked the high poly into low poly in substance, everything is right, and I can see perfectly the shading when it comes to the material I use in substance painter. But when I export those maps and textures to blender and use it in a material, I get this weird artifacts, like a bunch of faces are doing their own reflection... I don't exactly know what is happening.
In blender:

In Substance painter:

(The substance one shows a little bit more than the blender one, just to be clear)
EDIT:
Here is the blend file, with the textures and all set. Also, as asked in the comments, I already tried to recalculate normal withtout luck, and the normal map I baked was with OpenGL, just to be sure. In the .blend file you can see there is a weird shading even in solid.
Also, Metallic, Roughness and Normal are all set as non-color space in the material.
.blend with error

The problems were caused by some non-planar quads as lemon said in the comments. For some reason, the direction in which tris are generated on those specific quads is important. Maybe in the bake, they were autogenerated in the opposite direction. I think that's the case, because when I join vertices to make edges in the opposite direction of the shading, all is fixed.
The topology could be better and include some edge loops on the sides, so the non-planar quads don't even exists at all, but well, for the moment, it works!
Some pictures to improve understanding of this kinda problem. This is the model in solid and render pre-fix:

And this is post-fix:

After that, I just re-baked the lowpoly, and worked like a charm. Thanks, everyone!


How to rotate with two reference points? I would like to emulate a similar feature in softwares like Autodesk CAD, Sketchup, Rhino.

I'm using blender v2.81a and I want to rotate an object by referencing two points. Like in the picture, I would like to rotate the box on the left by cliking one of its vertices (p1) and then clicking a vertex of another object(p2) to perfectly align the edges of the two objects.

Put the 3D cursor where you want the pivot of your rotation to be. This is easiest to do if you already have a vertex there, which in your case you do. go into edit mode, select the desired vertex, SHIFT + S, then 'Cursor to Selected' or 'Cursor to Active'.
Set your pivot point to 3D cursor. This can be done with . or in the UI.
Set your snap settings to the following. The important parts are Snap to Vertex, Snap with Active, and Affect Rotate in your case. Make sure snap is turned on.

Go into edit mode of the plane you want to rotate. Select everything by hitting A. Deselect and then reselect your 'active' vertex, which is the part you want to align.
Hit R to rotate. The plane should rotate so that a line from the 3D cursor (pivot point) through the active vertex now points to the vertex closest to your mouse cursor.


get rid of artifacts (fluid) how to get rid of black spots (artifacts). I'm using gradient animation on water simulation 2.80 (old fluid sim.) But, when i play animation on viewport, there is no issue of black spots.
Video https://vk.com/blender_3d?z=video-947906_456245040%2F97f5a90e1d430fd5c8%2Fpl_post_-947906_987830

2nd link for video https://drive.google.com/file/d/1OChLqpIZiNyb-Mn2C6QW5Y06L3JnPBym/view?usp=sharing

The black spots seem to be the fluid intersecting the surface of the background. Try moving the fluid up. Also there is no reason to use the old fluid simulation system. Mantaflow is superior. I would recommend using current version and the new fluid simulation system. It will give you better results.


Adding tracks/markers with a custom name? In the Movie-clip-editor:
Is it possible to make a button for adding a marker with a pre-defined name?
The code below I build a custom menu with button-names defined in a text-file. When clicked on a button you need to add a marker. The goal is to give that marker the name defined in the text-file. But for now just giving it a custom name (not Track.xxx) is OK.
I can not find a way to change the name when markers are created. So I tought of a workaround wich just renames a track/marker called "Track" to the custom name. But that code is executed before "add_marker_at_click()" is finished.

from __future__ import print_function
import bpy
import os
class addmarkers(bpy.types.Operator):
    """ This operator adds markers
        add marker and give it a good name
    """
    bl_idname = "wm.addmarkers"
    bl_label = "addmarkers"

    def execute(self, context):
        # lmc to add a marker and change the name of the track

        bl_space_type='CLIP_EDITOR'

        sc=context.space_data
        clip=sc.clip
        bpy.ops.clip.add_marker_at_click('INVOKE_DEFAULT') #click to add a marker

        #bpy.data.movieclips["test.avi"].tracking.tracks["Track"].name="TESTNAME"
        #previous line is executed before add_marker_at_click is finished, so it doesn't work
        return {'FINISHED'}

    def invoke(self, context, event):
        return self.execute(context)

class MARKERPANEL(bpy.types.Panel):
    bl_label = "Add markers"
    bl_space_type = "CLIP_EDITOR"
    bl_region_type = "TOOLS"
    bl_category = "MARKERPANEL"

    def draw(self, context):
        f = open('settings.txt', 'rt')

        for line in f:

            layout = self.layout
            row = layout.row()

            sc = context.space_data
            clip = context.space_data.clip
            row.operator("wm.addmarkers", text=line)

bpy.utils.register_class(addmarkers)
bpy.utils.unregister_class(addmarkers)
bpy.utils.register_class(MARKERPANEL)
bpy.utils.unregister_class(MARKERPANEL)
bpy.utils.register_module(__name__)

for information: picture of the custom menu

add_marker_at_click() is modal operator so it seems that it returns 'RUNNING_MODAL' and keeps running (waiting for user interactions) while your operator will finish without waiting for it , so I have used add_marker() instead and changed the your operator to be a Modal operator ,also added how to pas the button name to the operator , but the problem is that i could not get the coordinates of the mouse in respect to the movie clip, so i have used the region where the movie is :

import bpy
from bpy.props import *

class AddMarker(bpy.types.Operator):
    bl_idname = "wm.addmarker"
    bl_label = "add markers with names"

    def __init__(self):
        print("Start")

    def __del__(self):
        print("End")

    x = bpy.props.IntProperty()
    y = bpy.props.IntProperty()
    name = bpy.props.StringProperty()

    def execute(self, context):
        #using 'region' in this calculation  is wrong
        self.x -=bpy.context.region.x
        self.y -=bpy.context.region.y
        x = self.x/bpy.context.region.width
        y = self.y/bpy.context.region.height
        #add marker at that position
        bpy.ops.clip.add_marker(location=(x, y))
        #rename this marker
        bpy.data.movieclips[0].tracking.tracks.active.name=self.name
        #bpy.context.scene.active_clip.tracking.tracks.active.name=self.name
        return {'FINISHED'}

    def modal(self, context, event):

        if event.type == 'LEFTMOUSE':
            self.x = event.mouse_x
            self.y = event.mouse_y
            self.execute(context)
            return {'FINISHED'}

        elif event.type in ('RIGHTMOUSE', 'ESC'):
            return {'CANCELLED'}

        return {'RUNNING_MODAL'}

    def invoke(self, context, event):
        print(context.window_manager.modal_handler_add(self))
        return {'RUNNING_MODAL'}

class MARKERPANEL(bpy.types.Panel):
    bl_label = "Add markers"
    bl_space_type = "CLIP_EDITOR"
    bl_region_type = "TOOLS"
    bl_category = "MARKERPANEL"

    def draw(self, context):
        f = ['left','right','floor','corner']

        for line in f:

            layout = self.layout
            row = layout.row()

            sc = context.space_data
            clip = context.space_data.clip
            row.operator("wm.addmarker", text=line).name = line

bpy.utils.register_class(AddMarker)
bpy.utils.unregister_class(AddMarker)
bpy.utils.register_class(MARKERPANEL)
bpy.utils.unregister_class(MARKERPANEL)
bpy.utils.register_module(__name__)


Adding Graphics to a Tyre Blender noob here!
I followed this tutorial to model a tyre (in my case a bike tyre without the rim):
https://youtu.be/a90cYLEbpi4
I'm really pleased with how it's looking and now I want to add some graphics to the sidewall of the tyre. The tyre has a sub-div and solidify modifier (not applied). Here is where I'm pulling my hair out after watching a load of tutorials! I've tried adding the image as a plane, sub dividing and shrink wrapping but this looks like the graphic is pinched and still appears to be floating above the surface (despite playing with the offset setting of the shrink wrap modifier).
I've tried creating UV maps of the whole tyre or part of the tyre, but the graphic does not appear in the UV editor window in the shading tab to edit a UV Map over / does not project onto the surface – or if I add the graphic using nodes it just repeats all over the tyre rather than just the sidewall of the UV map I created. Also, it alters the colour of the tyre from the desired dark grey to black.
Here's a screenshot of where I'm at with a UV map of the whole tyre side wall and a flat graphic of where I'm trying to get to. Hopefully you guys can help! Thanks!

I finally found this which helped solve my problem, along with correctly unwrapping my objects mesh:
Add a transparent image on top of a material


Duplicating a mesh with shape keys and rig distorts mesh I have a minecraft arm mesh set up on the right, with the shape keys working at a value of 1. On the right, I duplicated the mesh first, then the rig over from Edit Mode of the rig, then connected them. I still had the old shape key on the mesh because I don't want to go through all the work of making the mesh perfect again. The second mesh on left, with a shape key ArmB.R at a value of 1, distorts the mesh. They are both equal at 90 degrees. With my knowledge, they both should look like the mesh on the right when both shape key values are at one. Where did I go wrong?

For a closer inspection, I have uploaded the .blend file.

this is one way i found to solve your problem.

FIRST: put the 3d cursor where the copy of the mesh should go. (seting cursor to center then scaling -1 on X then resetting scale also works)

SECOND: duplicate the original mesh and move it to the 3d cursor.

THIRD: replace all the .L s with  .R s (or to the corresponding bone names)

this should let you mirror your shape keyed mesh fairly easily and should also combine (ctrl+j) without deleting or dirupting up your shape keys


Map_Kd not passed correclty in mtl file The picture pretty much sums up the problem :

Two of my materials have this problem and I can't work around why that is so. Every other material has the path of the texture of the texture file as it should. Here we only see a dot instead. Does anyone know why this happens?

Blender allows us to pack image and other data files into the blend file.

An image texture that is packed into a blend file and not saved to disk, will export to .obj with map_Kd . in the .mtl file.

The solution is to view the image in blenders UV/Image editor and save it out to a file. Image->Save As Image or press F3.

You can also use File->External Data->Unpack All Into Files to unpack multiple files in one go.


Weird behaviour: A simple material renders fine on one mesh but not the other I have a weird issue with Cycles in Blender 2.92:
This comes from a larger project but I was able to reduce it down to this small example.
The triangle is copied from the project I had issues with and the plane is new, both use the same material, however they render differently:
Rendering result in Eevee

Rendering result in Cycles

As you can see at least in Eevee it produces a usable result but in Cycles the triangle is just black, the plane demonstrates that the material is not broken as it works fine there in both rendering engines, so the issue must be with the triangle mesh for some reason but everything I've checked (normals and such) seemed fine.
Here is the example file I made which displays this behaviour:

Any idea what I'm doing wrong?

There are Custom Split Normals on your triangle, set to (0,0,-1), by something. (An applied Edit Normal modifier?)
If there are shading anomalies, it's often worth checking what the renderer thinks the normals are, by displaying vertex-per-face normals in the Edit Mode 'Show Overlays' menu:

If you go to the triangle's Data tab > Geometry Data panel, you can clear those.


Understanding Rotation in Blender (scales on sphere) I've been following a tutorial https://www.youtube.com/watch?v=Vxc4P0YI2rI which uses Animation Nodes to put scales on a sphere:

So in the beginning one scale is duplicated by the Object instancer and it creates as many scales as there are a vertices on the sphere. In a loop the local  track axis of every scale is rotated according to the vector normales on the sphere (with a Direction to Rotation Node) in order to make them point outwards of the sphere. Below the node setup:

Now I want to rotate the scales on the local z-axis. That's why I added those 3 maths nodes in the Loop frame. I thought if I increase the value for the z-value the scales would rotate accordingly until they are positioned flat on the sphere. But instead they rotate on the local y-axis !
If I increase instead the y-value some of the scales rotate as desired, but others rotate to the opposite direction ! :(

I think I missunderstood the concept of rotating objects in AN / Blender. It would be nice if someone could explain me why I get different results from what I have expected.
In the video there is a fix shown but the author doesn't explain why he is doing that. The fix is nice (and simple) but without explanation it's worthless since I might encounter similar problems in my own projects when using these techniques.

My blend file can be downloaded here:
https://www.file-upload.net/download-13131607/scalesonsphere.blend.html

Edit:

Hey,
still I've got a problem / something I don't understand. When the initial rotation of the scale I want to put on my Icosphere looks like this:

I get weird results:

However if I rotate my scale like this :

and apply my node tree after (with the Z-axis set as the direction vector in the Direction to Rotation node) everything rotates as expected:

Why do I get different behaviours here?

If you wanted to rotate an object around its z local axis in blender, what do you do? Do you change the rotation z euler value? Or do you use the rotate operator in the local transform orientation? Changing the rotation euler's values rotates the object in its global space, not in its local.

So, how do we rotate in local space in Animation Nodes? The answer is matrix multiplication which is the underlying mathematics behind blender's rotation operators. Compose a translation matrix that include the object's locations, then multiply that by the Rotation Matrix Output of the Direction To Rotation Node, then multiply the result by a rotation matrix, the last matrix act as the local transformation, so by editing its values, you are locally transforming.

Another method would be to use Hamilton product on Quaternions, they are a little harder to understand though. Simply multiply your quaternions by another that include your local rotation information.

Yet another method would be to edit the guide axis to account for your rotation. See the documentation.


Change UV Positions for Linked Objects? How would I go about editing the UV layout of a linked object without changing the UV positions of the other linked objects? I'm trying to share the mesh geometry between dozens of objects while using different UVs on a shared TextureAtlas. Is this even possible? I've spent days trying to figure this out, but I haven't found an answer yet. Thanks in advance.

Use Different UV Maps

It is possible. The list of UV maps is attached to Mesh data, each objects sharing that same data can't have a different set of UV maps. But each object's material can be attached to itself instead of its data, and its texture can use any available UV map.

First, create all UV maps to be used in the same object data (max. 8).

Then create different materials for each objects, set the material's link property to Object.

Then create a new image texture for each materials, referring to the same texture file but using different UV map. Its limitation is the amount of UV maps can be created for a single object data, 8 at maximum.

Use Different Textures

Otherwise, why not create different texture files using the same UV map? I mean, I imagine you wouldn't vary seam placement, just shifting the whole UV coordinates around. Wouldn't that be too much work and inflexible (e.g. modifying every single map when the mesh object is edited)?

Using one UV map as a template is easier, IMHO. And you're free to create as many texture variations as you need.


Duplicated objects disappear I have duplicating the objects in the scene but when I hit play the duplications disappear, what am I doing wrong?

When you duplicate objects that have a keyframe animation attached that include keyframes on the location, these duplicated objects will snap to that very same location. You will have to move to each frame that has a keyframe, position the duplicated object and insert/update the keyframe to the correct location.


UV mapping, some models on one layout? I have problem with UV layout :
I try this 3 UV models place on 1 layout uv :

This models have the same material, but when i select 3 beams my house i have only one.
I expects this result :

How i can do this ?

Only one object at a time can be UV-unwrapped (except when using an add-on like Texture Atlas). When this is done, the mesh datablock for that object gets a UV Map assigned to it.

If you want to UV map that whole structure together, you can first select and join the multiple mesh objects (CtrlJ).

When you do this the mesh pieces will all become one object, and take the name of the object that was selected last. This last-select object is called the Active Object, and notice how its selection color is a little bit different from the other selected objects.

You might consider leaving the door as its own separate object, since it may move, or you can have it all as one mesh and still animate the door by rigging it. But you haven't mentioned animation so I'm getting ahead of myself. Anyway, the idea is to organize your mesh data into larger, easier to manage objects.


Animate to combined paths I just started to blender animations and I am trying to animate a sphere to move along combined paths: a straight line followed by a semicircle and then another straight line (as shown below).
In my trial, I added a path and struggled to shape it along the desired format, but couldn't fit it.
Any help, please? Thank you.

If your question is about the path itself, you can create a bezier circle. In Edit mode select all and press V > Set Handle Type to switch from Automatic to Aligned:

Then select the left part of the circle and press X > Delete Segments:

Then select the 2 ends, press E to extrude then type the axis:


Why there is gap in array With the mesh created and array added. There is a gap between the mesh.

May i know why its getting gap between.

Yes you may mate. It's because this part of your mesh is not straight. In other words, the line between middle of the rectangle and the last vertice of each corner on other levels of the building is a straight line. In the part, where you have the gap, it's not.


How do I make hair collide with a mesh? I just downloaded the release candidate for blender 2.74 because it said on the release notes that it has  "Support for hair collision with meshes" and I would like to make it so that my hair particles stay inside of a hood that I modeled for my character. If anyone could give me insight on how exactly I can accomplish this effect it would be greatly appreciated.

You can't just turn on collision on the object and expect it to work.

Here is how u do it: first of all create your hair particle system.

Next turn on Hair Dynamics and turn on collision on the object.
Now go to the mesh with collision on and turn up the "soft body and cloth" outer and inner paramaters to say around 5 for both.

Now you can go back to the hair and turn up the steps to about 40 in the Dynamics tab. Now you should have good collision without the other nonsense. Also be careful when changing the other paramaters, it can slow everthing down tremendously.


How can I create a countdown timer in Cycles? I'd like to create a countdown timer, something like this, using cycles:

I have found a pretty straightforward video about the problem (https://www.youtube.com/watch?v=5fClNkcP0KA), and it works just fine, but couldn't solve the problem of viewing the output of the script in the cycles renderer. I'd like to create a video of it, so probably I should somehow provide a framerate for the script as well, but don't have any idea how to start.
Thanks!

Please have a try with this script By Respected fellow: batFINGER:

import bpy
import math
from bpy.props import BoolProperty
def countdown_timer(scene):
    # look for all font objects with _timer property
    timers = [ob.data for ob in scene.objects if ob.type == 'FONT' and ob.data.is_timer]
    for font in timers:
        secs = font["timer"]
        countdown_frames = secs * scene.render.fps / scene.render.fps_base
        frame = countdown_frames - scene.frame_current + 1
        if frame < 0:
            continue
        t = float(frame * scene.render.fps_base ) / float(scene.render.fps)
        minutes = t // 60
        t %= 60
        seconds = math.floor(t)
        t = t - seconds
        hundreds = math.floor(100 * (t))
        font.body = "%02d:%02d:%02d" % (minutes,seconds,hundreds)
    return None
def is_timer(self, context):
    if self.is_timer:
        if "timer" not in self.keys():
            self["timer"] = 10 # 10 seconds default
    return None
class TimerPanel(bpy.types.Panel):
    """Timer Panel"""
    bl_label = "Countdown Timer"
    bl_idname = "FONT_PT_timer"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "data"

    @classmethod
    def poll(cls, context):
        return (context.object and context.object.type in {'FONT'} and context.curve)
    def draw_header(self, context):
        font = context.object.data

        self.layout.prop(font, "is_timer", text="")
    def draw(self, context):
        font = context.object.data
        layout = self.layout
        if font.is_timer:
            row = layout.row()
            row.prop(font,'["timer"]', text="Seconds")
def register():
    bpy.types.TextCurve.is_timer = BoolProperty(default=False, update=is_timer, description="Make countdown timer")

    bpy.app.handlers.frame_change_pre.append(countdown_timer)
    bpy.utils.register_class(TimerPanel)

def unregister():
    bpy.utils.unregister_class(TimerPanel)
    bpy.app.handlers.frame_change_pre.pop()

if __name__ == "__main__":
    register()

Copy it to the Text Editor

Dont forget to hit run script

Create a new text  and you will get a new option box under fonts.

Adjust the value as per your needs

Play it! It can be used in Cycles or gaming engine !

You will have a full control of materials fonts size and rotations etc

Best of luck


Cycles Gradient Texture node: Why "Linear" is not linear on a "default" plane? I want to render a plane with a linear gradient texture that can be rotated as needed.

I've set up a basic working node network as shown:

I can rotate the gradient using the Mapping Node - > Texture -> Rotation.Z coordinate, however the rendered gradient is always logarithmic rather than linear:

This is the true linear gradient that I am looking for:

I've played around with the scale and location vectors but they have no impact on the linearity of the gradient.

Here's my scene (1 plane, 1 sun lamp, orthographic camera):

A similar question was asked a while ago over here but no real answer was given.

Any suggestions would be appreciated.

[Update]

It seems this may be due to the Color Management applied by Cycles.  I'm using Cycles because as I believe you can't rotate gradients (blends) in BI.  If this is not right, please let me know.

I'm really just trying to determine if it is possible in Blender to render 2D shadow mask planes using true linear gradients. I alrteady have 3D geometry that the masks need to fit perfectly against, so I extruded edges from these objects to create new 2D planes.
[End Update]

I think that the gradient is linear in its values because at equal increments of the thereshold correspond the same amount of image masking:

As stated by the Blender reference manual's page about Color Management,  Default option does no extra conversion..

  ..besides the conversion for the display device

So a converision still occurs.

By switching to Raw you'll get a result almost identical to the one expected. Again from the same manual page:

  Raw gives the image without any color space conversion

On the right you can see a linear gradient image for comparison.

Object coordinates are calculated from object's origin.

.

If you want a gradient that starts from the bottom of the plane, you should move the origin of the object's texture coordinates (so the Object's  origin) at the bottom of the plane too (the default plane's origin is instead located in its center).


How to add a Line between two moving Objects with Python? I'd like to add a line between two moving objects with python.
For example if I have two cylinders...

I want that light blue line between the two 3D object (it could be a cylinder also). It has tree parts:

and 2. there is one shorter line which comes from the side of the cylinders (not from the top or the bottom), and the other ends which are marked with red arrows, 'point' to the other object.

From the top view:

The third part is connecting these points.
And if I move these objects, or rotate them, I'd like to have the line with the same features:

I would like to add the line with a Python script.
I've tried many things, but couldn't solve the problem yet.

This script will generate a simple single edge mesh, whose verts are hook connected to two pre-existing objects (the cylinders C1 and C2 in this example), which will also work simple animations of these two objects:

import bpy, bmesh
C = bpy.context

# Reference two cylinder objects
c1 = bpy.data.objects['C1']
c2 = bpy.data.objects['C2']

# Create new connector mesh and mesh object and link to scene
m = bpy.data.meshes.new('connector')

bm = bmesh.new()
v1 = bm.verts.new( c1.location )
v2 = bm.verts.new( c2.location )
e  = bm.edges.new([v1,v2])

bm.to_mesh(m)

o = bpy.data.objects.new( 'connector', m )
C.scene.collection.objects.link( o )

# Hook connector vertices to respective cylinders
for i, cyl in enumerate([ c1, c2 ]):
    bpy.ops.object.select_all( action = 'DESELECT' )
    cyl.select_set(True)
    o.select_set(True)
    C.view_layer.objects.active = o # Set connector as active

    # Select vertex
    bpy.ops.object.mode_set(mode='OBJECT')
    o.data.vertices[i].select = True
    bpy.ops.object.mode_set(mode='EDIT')

    bpy.ops.object.hook_add_selob() # Hook to cylinder

    bpy.ops.object.mode_set(mode='OBJECT')
    o.data.vertices[i].select = False

o.modifiers.new('Skin', 'SKIN')
bpy.ops.object.select_all( action = 'DESELECT' )


Subclassing property group class problem This code throws AttributeError: 'B' object has no attribute 'x', what might be the cause?

class A (bpy.types.PropertyGroup):
    x : bpy.props.StringProperty(name = "X")

class B (A):
    ind : bpy.props.IntProperty(name = "Prop")

bpy.utils.register_class(A)
bpy.utils.register_class(B)

bpy.types.Scene.testvalue = bpy.props.PointerProperty(type=B)
print(bpy.context.scene.testvalue.x)

bpy.utils.unregister_class(A)
bpy.utils.unregister_class(B)

Only use bpy.types.PropertyGroup for the registered class type.

The property group and bpy.props properties are wired up as properties through the "rna voodoo magic" internally with blender when registered.

Similarly as often seen with operators and panels, only give the registered class the type you are registering. For want of a more technical description.  Refered to as "Mix in classes" in panel link

eg below the B propertygroup class inherits A.  All annotations of B and A become properties of the pointer property instance..

import bpy

class A ():
    x : bpy.props.StringProperty(name = "X", default="Foo")

class B (A, bpy.types.PropertyGroup):
    ind : bpy.props.IntProperty(name = "Prop")

#bpy.utils.register_class(A)
bpy.utils.register_class(B)

bpy.types.Scene.testvalue = bpy.props.PointerProperty(type=B)
print(bpy.context.scene.testvalue.x)

#bpy.utils.unregister_class(A)
bpy.utils.unregister_class(B)

Prints "Foo" to the system console.


Background is not moving with respect to camera position I have a simple animation where the camera is moving to the planet's location.

The issue that I'm having is that the background is not moving with respect to the camera's location. What is the proper way to achieve this?

 The camera is moving to toward the spinning planet, but the background is not moving in respect to the camera's change of position.

 The node setup of the world's environment to create stars.

 The movement of the camera in this scene.

The world background is assumed to be infinitely far away. (see this link).

In order to have some change for the stars you would need to generate them like in this image:

.

In this case the stars are generated using an icosphere used as emitter. See: Animating a masked sphere with "star" particles


Combining a solid object Fresnel glow on top of a glass object? Trying to do an effect where i have a simply glass effect but I want it to have the same Fresnel glow of an object that isn't transparent/translucent. The glow i get from a simple principled BSDF mix is ideal, but when i make it a glass object it redoes how the fresnel effect looks. How would I get these effect to combine in that manner? Going for a shader that gives realist looking objects a cartoony glow which ill texturize and animate later. I'm still fairly new at understanding nodes and Blender in general.

You can do this by assigning faces materials in edit mode.

Here's how:

1) Enter edit mode in Blender.

2) Select the top face you want to be able to apply the "purple" shader to.

3) Make sure your material colors are already created. You will need at least two separate materials. (One for the top face, and one for the rest of the cube).

4) Go to the materials tab, and select "Assign". This will assign the material to the single face.

5) To prevent the material from being applied to the entire object, press CTRL+I to select inverse.

6) Assign the previous material to those faces the same way you assigned the other material.

Last) View it in render, it should look awesome.

Here's a picture of multiple assigned materials on one object:

The answer in total, to this question is simple. If you know how to assign materials to individual faces of an object, then you have solved the problem.


How to unwrap a 1:1 Ratio UV Map? I am trying to unwrap my model (simple cube) but I don't want the
traditional "Smart UV Project" unwrap.

I'd rather much want it to unwrap like so. (Done manually)

(Reason why is because I use a single texture for my model, for simplicity
and I want it to be a 1:1 ratio in the scale of things, I also Mark all the seams for each "flat surface", so a wall with a hole in it, would be one surface, if there's a slope, that slope becomes it's own "surface")

Thanks in advance

try this:

mark those edges as "seams":

then  a simple UV unwrap gives:


Slowing down particles I've tried messing around with the settings, particularly under Velocity, but I can't seem to work out how you slow down the flow of particles. I want them to rise more slower/steadier and to fade just above the tree-tops.

EDIT: Figured out how to make them stop at a certain point, so it's just a case of slowing them down. They rise too fast.

Adjust the timestamp to .010 then lower the mass to .001 under particles physics. And Adjust the Brownian to whatever you desire... Then lower the gravity to 0... See if that helps...


How do I use nodes to combine two images when both have transparent areas? Is there a way to use nodes to combine two images if both the images have transparency (i.e. alpha channels)?

You can use an Alpha over node to automatically handle the alpha mixing:

However, if all you want to do is mix the alpha channels, a normal mix node will do (think of the alpha channel as a gray scale image):


Blender - show edges angles “direction” I'm working on a papercraft project on Pepakura.
Valley folds show in light blue and Montain Folds in dark blue in this software.

I was wondering if there is a way to show the angle of the folding edges directly on Blender ?

Thanks :)

Closest thing I know in Blender is using Mesh Analysis from the Properties Side Bar.

Enter Edit Mode on a mesh object, turn on Mesh Analysis, set it to Sharp and adjust the angles as desired.

Have in mind that it can't highlight single edges as illustrated, only face angles. Not sure if it can both show concave and convex edges at the same time.


Green faces in sculpt mode I used a boolean modifier with union to add a hand to body, and after doing that and trying to merge them together in sculpt mode, I got holes in my mesh..
I tried to fix this by selecting all by trait - non manifold and then clicking alt + f. that closed the holes.. but also my faces are now green..
I attached a picture. can someone explain to me how to fix this? and if possible how to smoothen the joined areas.

File : http://www.mediafire.com/file/tl2a1p2mnqavpnd/hand.blend/file
Thank you!

Here's how I fixed it on my end.

Switch to edit mode and then press 2 for edge selection mode.
Select > All by Trait > Non Manifold
Deselect the open face at the very top of the arm
Press X > Delete Vertices
Select > All by Trait > Non Manifold (Again)
Press F to fill all the remaining holes.
Add a Remesh modifier to the object.
Set Voxel Size to .003 and Adaptivity to 0. Enable smooth shading.
Hit apply on the modifier and continue sculpting without errors. You might need to smooth out some areas after the remesh.

Here are images of these steps:


How do I bend a plane and keep the objects on it following its bend? I want to to place some objects on a plane (for right now I'll keep it simple and say they're cubes). Then I want to bend that plane but keep the cubes connected to the plane, following the curve of the bend. Also I want to keep the cubes separate and not a part of the plane so I can edit them separately. A good example I can think of that represents what I want to do is the game Animal Crossing.

Here's a screenshot of the game.

Is there any way I could go about doing this?

In edit mode subdivide the plane so to have a grid with enough vertices that will define the position of your cube, then select the 3 vertices nearest the position you want the cube to stay.

Then in object mode select the cube, Shift
 select the plane, press Ctrl+P
 and choose "vertex triangle", so the cube will always follow the average location of the three vertices of the plane.


How to copy Linesets between scenes? I want to copy Linesets from one file to another. I appended the required scene from the source file to the target file. Then following THIS ANSWER from blenderartists.org, I tried copy-pasting the shared code in the text editor. But an error is reported that I can't comprehend. The "Attribute error" in the system console reads : "Rendersettings" object has no attribute "layers". Also the answer seems to have been posted in 2016. Does it still work in the latest blender versions - 2.9x? Please help!

View Layers
One of the changes in 2.8 from prior is the use of view layers. This is where Freestyle settings now reside
Change up to script (compare with original to see changes)

Use the context view layer as the source, ie make the the source
scene context when running script.  (If more convenient swap this
around and have a hardcoded source and copy into context)

Test script, current default is to Copy settings of view layer with context into view layer named "View Layer" in scene named "Scene.001"
import bpy
from bpy import context

excludes = ('__doc__', '__module__', '__slots__', 'bl_rna', 'rna_type')

# get the freestyle of context view layer
linesetsFrom = context.view_layer.freestyle_settings.linesets

# copy to scene
to_scene  = bpy.data.scenes.get("Scene.001")
# into freestyle settings of its "View Layer"
linesetsTo = to_scene.view_layers['View Layer'].freestyle_settings.linesets

for name in linesetsFrom.keys():
    src = linesetsFrom[name]
    dest = linesetsTo.get(name)
    if dest is None:
        dest = linesetsTo.new(name)
    for attr in dir(dest):
        if attr not in excludes:
            print(attr)
            setattr(dest, attr, getattr(src, attr))


How to get accurate colors with Filmic Blender I'm loving Filmic blender for the wonderful dynamic range. But I am not able to get accurate colors - it always looks little washed out. I understand that it's due to the wider dynamic range of the image while using Filmic.

Is there a way to get accurate colors while taking advantage of the Filmic Blender's wide dynamic range?

Edit: After reading the comments I realized that I framed the question wrong - what I meant is the Input colors (imagemap or RGB color slot in the shader) is more saturated than the render output.

Is there a way to get the same (or almost the same) color as the the input slot color/image map?

Cegaton has wisely hinted at the root of the discussion, which is that the framing and definition as to what is an accurate colour is a cause for much confusion and much misunderstanding. This is an answer that is long due in coming, and hopefully it will help elucidate some of the core concepts behind colour that might help in ascertaining a fleshed out solution.
This answer will not cover the complex notions behind albedos and other rendering nuances that are a part of this massive question.
What is a colour in a three light encoding model?
It is crucial to identify some sort of ground truth when discussing colour. Without getting into the nitty gritty colour science stuffs, we need two bits of knowledge to ground ourselves:

RGB is a relative encoding model.
All colour is anchored in the CIE 1931 experiment and model known as XYZ.

The former means that without utilizing the latter, the values in an RGB triplet are meaningless. The latter is our means of discussing colour accurately and scientifically. You can think of the CIE XYZ model as nothing more complex than another three light system, but with a concrete, scientific and absolute reference point. Where three random RGB values with no metadata are meaningless, three XYZ values are always well defined and absolute.
Harnessing the power of the XYZ model allows us to take the relative values from some well defined RGB triplet and convert those into meaningful values across all colour spaces.
How does a colour become unique in an RGB system?
A colour is defined by defining an intensity value for each of the three colours of the three basis lights. That is, each of the red, green, and blue basis primary lights have clearly defined and unique colours relative to CIE XYZ. A few rules of thumb apply to these basis primary "flashlights":

They never change their absolute defined colours relative to the CIE XYZ model, only intensity.
The range of colours that can be mixed is defined by ratios of these three basis primaries.
Bit depth does not change the colours of those basis flashlights.
Physical hardware determines the colours of those basis flashlights when dealing with the physical domain.

Key takeaways:

Ratios of the three basis primary lights are what defines a colour.
Basis primary lights aren't subtly different for different colour spaces, but rather radically different in both hue and saturation to borrow common application terms.

What is a colour in Blender?
In Blender, the internal reference space is configured via the OpenColorIO configuration. By default, it is based on REC.709 lights. REC.709 is a specification that clearly defines three primary light colours. This is the same colour of basis primaries that are referenced in the sRGB specification, and also very likely the colours of lights in the pixels that one looks at when looking at commodity display hardware. Modern televisions, Apple devices since 2015, digital cinema projectors, and a number of other more contemporary devices do not use the same coloured primaries.
When you render with Cycles, using Filmic or the "default" transforms, the internal reference primaries are always REC.709, as implemented via the OpenColorIO configuration.
Why do some colours look different when rendered under Cycles versus the "default" transformation if the reference primaries are identical?
Here is where we get into the complexities as to how a view transformation will alter the visual output on identical data. Consider the following display referred images. These were all "rendered" from identical scene referred starting points. That is, the underlying scene referred data was identical in all cases, and only the view transform was changed.

Note that in the above images, the two view transforms used were Filmic and "Default", which is the sRGB OETF.
Obviously there are clear differences in the dynamic ranges addressed within the encoded GIFs. But look closely at the actual colours in the imagery. What you'll see is that two colours, despite being generated from the original values, are entirely different.
If we look at the mountain GIF, we can clearly see:

The sky blue in the Filmic version is much more cyan in the sRGB OETF version.
The trees are blowing out to a pure yellow under the display referred sRGB OETF transform.
The colourful stained glass is losing the intended ratios across a range of colours under the sRGB OETF transform.

Why do colours look so different when comparing Filmic to the sRGB OETF variant?
If we remember above, we learn that what defines a colour is the ratio between the channels. For example, a pure REC.709 red primary would be expressed as 0.01, 0.0, 0.0 or 123123.34, 0.0, 0.0 or 0.8938, 0.0, 0.0. In all three examples above, the resultant output, although differing in intensity, would always have precisely the same colour. In colour science terms, we could say that the colours above would have identical chromaticities. Again, as per above, this means that the colour the values referenced are absolutely identical in terms of chromaticity according to the CIE 1931 XYZ model.
So what is happening in these sample images? Why are the colours so different?
The sRGB OETF is a hard cut view transform that was never designed for rendering. Ray tracing engines generate scene referred, zero to infinity values. This is the same value range according to HDRIs and other scene referred image encodes.
When we consider that the blue in the mountain range GIF is a ratio of the three primary light channels, we begin to see the problem; the sRGB OETF isn't showing you anything even remotely close to the intended colour. That is, if we consider the ratios between the scene referred source data, and the ratios expressed in the display referred output, the resultant colour (again, chromaticity) bears little to no semblance to the intention expressed in the original ratios.
Here's a simple image to demonstrate why:

The above image ignores the complexities of the transformation from the scene referred to display referred model, and instead provides the values as 0.0 to 1.0 on an aligned scale.
While some folks erroneously think the above differences are purely a saturation issue, the effects are actually much deeper. While the ratios are purely a fictional example for a single pixel, one can get a clear idea why the output ratios under the sRGB OETF are inappropriate and entirely inaccurate for a scene referred image. The original intention of the ratio expressed by the REC.709 primary lights is entirely incorrectly expressed.
The colours are completely wrong in the sRGB OETF version.
Once we realize that a colour in a three light system is a byproduct of the ratios of the three lights, we can understand what a correct colour is. In the above examples, a default hard cut will distort the ratios of the intended colours, leaving incorrect colours displayed. The cyan in the sky of the mountains? Incorrect colour ratios. The yellows in the leaves of the background trees in the tree image? Incorrect colour ratios. The magenta and reds in the stained glass? Incorrect colour ratios.
What most folks have been looking at all along via the default transform isn't "more saturated", isn't "more accurate", but plain and simply incorrect colour ratios that have long since lost the intention of the original ratios.
Moving forward
Filmic tries to get a closer representation of the original intention of the scene referred ratios. It does so in a manner that is much more close to what the intention of the original values are. That said, there is further room to improve on the result using more complex colour models and colour science. Hopefully the next iteration will demonstrate this, as well as other fancy and interesting things such as wider gamut rendering etc.
It is hoped that this answer isn't too sufficiently complex for a casual reader, and that the information provided herein makes enough sense to help folks use better language when discussing colour, as well as explain some of the qualia differences between their render versions.
It takes a village.


How to Replace a separate mesh I have made a tree with the sapling Addon. I want my leaves to be replace with the icosphere. I want to make the grapes bunch. Is there any way to replace the leaves to icosphere.

I tried with object Data but i have to select manually single leaves and object data. I want to replace all the leaves to icosphere. Any suggestion or help. Thanks

This answer is about selecting the leaves.

Select and hide  H  the icosphere and the wood (tree without the leaves).

Now select all the leaves  A  and give them a material.

In Relations Tab click in Object Data >> Link Data.

Now you can select all the leaves by its material.

See the image below.


Material renders as black, but looks fine in textured view? I'm working on CG geeks forest road tut. The final render is black and It's a mat problem not a lighting thing like I just thought. In textured view it looks fine. I've attached screenshots. what have I messed up?

According to your screenshot, you don't have an output node in your material:

Add one by going to the node editor.

To get the nod editor, either press F3 while hovering over an area which you want to make a node editor, or by selecting the area type from the dropdown in the header:

Then press ⇧ ShiftA> Output > Material output to add an output node:

Connect the output of your shader to the  surface input of the output node:


diffuse color material in python error I am trying to add materials via python (which I am new to) but I can not even get copy and pasted code from here to work. colorsys is imported and I'm using Blender 2.91.
    mat = bpy.data.materials.new(name='Material ({0:0>2d}, {1:0>2d})'.format(k, j))
    mat.diffuse_color = colorsys.hsv_to_rgb(normdist, 0.875, 1.0)
    current.data.materials.append(mat)

ValueError: bpy_struct: item.attr = val: sequences of dimension 0 should contain 4 items, not 3.
I have tried:
mat.diffuse_color = colorsys.hsv_to_rgb(normdist, .5, 0.875, 1.0)

TypeError: hsv_to_rgb() takes 3 positional arguments but 4 were given

mat.diffuse_color = colorsys.hsv_to_rgb(.5, 0.875, 1.0)

ValueError: bpy_struct: item.attr = val: sequences of dimension 0 should contain 4 items, not 3

mat.diffuse_color = colorsys.hsv_to_rgb(.5, 0.875, 0.9, 1.0)

crashes Blender

mat.diffuse_color =  random(), random(), random()

NameError: name 'random' is not defined
nothing is working!

TypeError: hsv_to_rgb() takes 3 positional arguments but 4 were given
This error means the function expects 3 values, but you're giving it 4, so it throws an error.
ValueError: bpy_struct: item.attr = val: sequences of dimension 0 should contain 4 items, not 3.
This error tells you that the property expects a sequence of 4 items assigned to it, not 3. This is because diffuse_color holds 4 values: R, G, B and A for Alpha. However, the colorsys.hsv_to_rgb() returns only 3 values, as the function name suggests and as the console displays:
>>> colorsys.hsv_to_rgb(.5, 0.875, 1.0)
(0.125, 1.0, 1.0)

In order to have a sequence compatible with the Blender's property, you have to add the alpha value to that sequence:
mat.diffuse_color = colorsys.hsv_to_rgb(.5, 0.875, 1.0) + (1.0,)

notice the awkward comma in the parentheses - without it Python would confuse it with a float wrapped around in parentheses like in mathematical equations. You only need such awkward comma in single-element tuples.


How to Apply UV maps to each face So I spent about an hour going through and UV editing each face for a building(walls, stairs, ect).

but when I render it, it shows no textures.

I have already changed it from generated to UV

You must apply a new texture with the file with check box. Image Texture. Open the image file.
Enable the texture
Change the mapping to UV.
Select the UV name explicitly to ensure it exists.
You will be able to see the preview with the texture.
Get some texture to appear then correct it.  Do not turn off the texture.

However if you really get stuck.

If you have changed many settings on the texture the situation may be difficult. So keep the UV(the hard work).  Delete the texture in the texture panel. And start a texture fresh with newly minted settings as above.  When you are close to perfect the preview will reflect some change.  Focus on your fresh settings, not some from 2 hours ago. Start fresh.  This is really 5 minutes or less of work.  When the situation improves include a new screen shot of texture settings.


Question on modelling a sword I'm modelling my first sword for practice, and have a question regarding where the grip meets the guard:

In this model the grip geometry intersects with the guard and "goes inside" the guard:

What is the bets thing to do here? Do I just leave it the way it is or should I delete all the internal faces/vertices of the grip and join the guard and grip vertices together to make a mesh without any internal geometry? In terms of UV unwrapping the completely merged mesh would be better but it's a longer modelling process. Appreciate any advice.

That would depend on what you intended its use for.

If for the sake of mock up design then either option is fine. I'd recommend trying whichever you're less comfortable with if only to test your ability with blender.

If you intend to break or damage the sword at some later point, then keeping it seperate is more practical.

IF seperate - You should adjust the contours of the grip so that they match the contours of the gaurd (utilizing Edge/Vertex Selection)

(You should add the tang too(B) if that is the case)


How to make that hair, coat & similar things animate automatically? How to make that hair, coat & similar things animate automatically?

Example:

Here is a basic setup for using a cloth simulation.  It's really basic and uses all default settings.

For the 'clothes' or 'mesh-hair' you would add a Cloth Modifier which you can add through the Physics tab.  I've indicated the button in the attached image below.

For objects that will affect the cloth shape, you can add a Collision Modifier which is also located in the Physics tab.  Just make sure that you have the proper object selected when you add each of the Modifiers(that isn't clear from the images ;)

Now make sure the Timeline is set to the first frame and start the animation.  You can use the Play button in the Timeline or press Alt+a to run the simulation.

Here is what this looks like when you run it.

Stop the animation when it looks the way you would like it to. If you want to 'freeze' the Cloth sim, you can press the Apply button for the Cloth Modifier under the Modifiers tab.


How to get split matel plate effect? Can anyone pls tell me how can I archive that kind of effect(shown in the picture) in Blender?

I have done this by modeling the whole object as one, and then as a final step I set up planes where I wanted cuts.
The add-on BoolTool lets you do a Slice operation which will quickly cut along a plane.

This was the result in rendered view:

It takes some planning with all-quad geometry.  Since you're dividing along a plane, you're essentially adding one loop cut somewhere which should lead to quads on either side.  There is a BIG problem if you have any poles.  It looks terrible.  For this object it wasn't a problem, it's modeled for subdivision and the pole is hidden.  With some planning I think the body of a rocket would be possible.


Extending Shrinkwrap modifier I was wondering for some time now if it is possible to use the Shrinkwrap modifier (in combination with other modifiers, i.e. Normal Edit) for projecting a mesh onto a surface in shadow-like manner (like shadow from a Spot Light).

Currently one can project a mesh onto a plane using Project or Nearest vertex/Surface point modes.

The first mode works well only for parallel projection along the main world axes. Using it with the mesh normals (face/vertex?) is a disaster.

The other two modes are distance based projections - so no shadow-like.

In the image below I am showing the effect that I want to achieve
- projection based on reference point (the spot light) that will wrap the mesh onto the wall, over the shadow (produced by the spot light).

Any solutions, including python and add-ons, are welcome.

Thanks!

All you have to do is ray cast in the direction of the lamp starting from the vertices locations and use the points of intersection as the new vertices locations.

The foregoing example showed an orthogonal projection, another kind of projection would choose the ray direction based on the vertices locations as follows.


Setting constraint influence in Python behaves differently inside vs outside 'If' statement? The code snippet below contains a block code; running once in the global scope, and once inside the else branch of a condition:

>>> bpy.context.selected_pose_bones[0].constraints[0].influence = 0.0
>>> mat1 = bpy.context.selected_pose_bones[0].matrix.copy()
>>> bpy.context.selected_pose_bones[0].constraints[0].influence = 1.0
>>> mat2 = bpy.context.selected_pose_bones[0].matrix.copy()
>>> result = "Good" if (mat1 != mat2) else "Bad"
>>> print("Result: %s" % (result))

Result: Good

>>>
>>> if (armature == None or armature.type != 'ARMATURE'):
...     print("Selected object must be an armature")
... elif (bpy.context.selected_pose_bones == None or len(bpy.context.selected_pose_bones) != 1):
...     print("Select at least 1 pose bone")
... else:
...     bpy.context.selected_pose_bones[0].constraints[0].influence = 0.0
...     mat1 = bpy.context.selected_pose_bones[0].matrix.copy()
...     bpy.context.selected_pose_bones[0].constraints[0].influence = 1.0
...     mat2 = bpy.context.selected_pose_bones[0].matrix.copy()
...     result = "Good" if (mat1 != mat2) else "Bad"
...     print("Result: %s" % (result))
...

Result: Bad

From some reason though, it doesn’t evaluate correctly when inside a condition.
What is going on? what am I missing?

This answer warns that for performance reasons,
Blender does not update certain attributes (like obj.matrix_world) until necessary.
I think your experiment suggests that bpy.context.selected_pose_bones[0] falls into this category.

The same linked answer shows that you can force an update using

bpy.context.scene.update()

Let's try it here:

armature = bpy.data.objects['Armature']
if (armature == None or armature.type != 'ARMATURE'):
    print("Selected object must be an armature")
elif (bpy.context.selected_pose_bones == None or len(bpy.context.selected_pose_bones) != 1):
    print("Select at least 1 pose bone")
else:
    bpy.context.selected_pose_bones[0].constraints[0].influence = 0.0
    bpy.context.scene.update()
    mat1 = bpy.context.selected_pose_bones[0].matrix.copy()
    bpy.context.selected_pose_bones[0].constraints[0].influence = 1.0
    bpy.context.scene.update()
    mat2 = bpy.context.selected_pose_bones[0].matrix.copy()
    print(mat1)
    print(mat2)
    result = "Good" if (mat1 != mat2) else "Bad"
    print("Result: %s" % (result))

yields

<Matrix 4x4 (1.0000, 0.0000,  0.0000, 0.0000)
            (0.0000, 0.0000, -1.0000, 0.0000)
            (0.0000, 1.0000,  0.0000, 0.0000)
            (0.0000, 0.0000,  0.0000, 1.0000)>
<Matrix 4x4 (1.0000, 0.0000,  0.0000, -0.0494)
            (0.0000, 0.0000, -1.0000, -0.0543)
            (0.0000, 1.0000,  0.0000,  0.1240)
            (0.0000, 0.0000,  0.0000,  1.0000)>
Result: Good

When you enter the commands individually on the command line,
Blender seems to call bpy.context.scene.update() in the background for you.
When all the commands are placed in the body of an if-statement, then the commands are not executed until the entire if-statement is written and sent to the Python interpreter.
The interpreter then executes all of the statements in the body of the if-statement very quickly, one after another. Now, Blender does not have time to call bpy.context.scene.update() in the background between each statement.

This explains why you saw a difference in behavior.


Preview is accurate, but export / render is overexposed / too bright when there's a layer on top I'm editing a small video and have already added several Text strips into an above layer. The problem is that now for some reason, the moment my render hits a place where there's text on the video, the brightness goes way up. Here is a small little video to explain the problem.

I know that the variables are unreadable on the video, so I added detailed screenshots to this post.

Thanks for your help!

A couple things occur to me:

Your Materials. I noticed your materials in the second screenshot. Why use an Emit value instead of cranking up the Intensity and checking Shading > Shadeless? This could bleed over and cause the brightening.
Text in the VSE. Is your text animated? Does it move or change? If it doesn't, you should really consider using Text strips instead of Scene strips. To add a Text strip, key Shift + A, then mouse over to Effect Strip > Text. In the VSE's Properties panel (key N to toggle open/close) make sure Edit Strip > Alpha Over is selected in the Blend: drop down menu. This will make sure that only the text is displaying. Lastly, go to VSE Properties panel > Effect Strip > Text: and enter your text.


Does the NVIDIA Quadro FX 5600 1.5 GB. meet Blender 2.8 minimum system requirements? I have a NVIDIA GeForce 8800 GT 512 MB witch runs problem less Blender 2.7, but as much as I tried to run Blender 2.8, it does not work.
I have considered to buy an NVIDIA Quadro FX 5600 1.5 GB. but I need to be sure that it runs Blender 2.8.
Has anyone tried it out?
I hope to get an answer soon

I'm not sure about that specific card but it should work even if it is legacy (cycles GPU compute may not work Eevee will still work). I have a  Quadro 2000 and blender works fine on mine (for most work loads). After looking at comparisons between the 2 the Quadro FX 5600 is better than mine therefore it should work with blender.
Graphics support


What is this Shape Key Icon referencing? What is this Shape Key Icon referencing in the Outliner?  Is it the name for the Shape Key data set?

The icon shows that there are shapekeys on that object. The name is normally set to Key with a number suffix if that is already in use, but can be renamed.

In the outliner you can double click the name to change it.

From python you can use bpy.data.shape_keys["Hide.001"].name = "NewName"


How can I make unique rocks in Blender without having to model them by hand? How can I make unique rocks in Blender without having to model them by hand? I've tried making them by hand, but often they don't look as realistic as I'd like.

Plus, sometimes I'd like to have LOTS of them but don't want to spend the time modeling them all. Is there an easy solution?

Add Rocks

The Add Rocks addon allows you to quickly add randomly generated mesh rocks, thus making it much quicker to add detail & realism to your outdoor settings. Here you can read about this addon.

Here are some examples of the presets and some variations:

To enable this addon:

Download it from here.
Now open User Preferences:
Info header  →  File  →  User Preferences

Click on Addons at the top of the Preferences window, and then click on the Install from File button at the bottom of the window:

Next:

Find the addon file and select it. (NOTE: The file can be a .zip file -- you don't have to unzip it first.)
Click the Install from File button
Then enable the addon by clicking on it's checkbox on the far right
If you want this addon to be enabled by default in the future, click on the Save User Settings button:

To add a rock to your scene:
SHIFTA -> Mesh -> Rock Generator

Adjust all the settings:

One very neat feature is that you can make as many rocks as you want all at once, each one unique, by setting the Number of Rocks at the top -- here I'm making 500 all at once:

Notice at the very bottom, there are some presets:

NOTE: You MUST set all the settings the way you want them to be before you do ANYTHING else, otherwise they cannot be changed through the same settings panel. After you click away from the rocks, you can only modify their parameters via the modifiers that are on them:
Object Properties panel -> Modifiers tab

Apply All Modifiers BEFORE Rendering

One thing to be careful of is that each rock created has many modifiers on it and these DRAMATICALLY slow down rendering speed! So, to get around this, you really need to Apply all modifiers BEFORE attempting to render your scene. To do this you can do either of the following:

Manually Apply Modifiers:  This is an easy method, but it can take a lot of time if you have more than 1 rock:
Select rock -> Object Properties panel -> Modifiers tab -> click the Apply button on the modifier

Convert All Rocks to Mesh: This is the best and quickest method if you don't want to sit around clicking "Apply" for a long time:
Select ALL the rocks at once -> ALTC -> Convert to Mesh

This will very easily Apply ALL the modifiers without you having to do anything else and you can now render quickly and easily:


Missing the UV island select mode? I am trying to texture a flag pole model I made recently and after UV unwrapping it I tried to arrange the islands so they would be understandable.
However I couldn't find the island select mode, it just isn't there and I can't figure out why.

Can anyone tell me why this is and how I can fix it?

It is there in 2.70a for me.
In your question there is very little to go on;
However my guess would be that you have "Keep UV and Edit Mode mesh selection in Sync" active, this changes the selection modes that are available.
Sync selection off:

Sync selection on:


Text won't appear in interface? There is one problem, it seems that text won't appear on my program. The three images show the errors and also my laptop specs (I believe I just have very small amount of laptop power that makes Blender glitch).

Everything else works fine (zooming, panning, rotating, etc.) and the buttons are still there and do what they're supposed to do, but the text just won't appear.

Might anybody know how to fix this?

The drive update didn't help either. I know a way around it though, does anybody know a page which shows screenshots of more or less the buttons on blender

Here are some more links with almost identical issue:
Blender Artist thread 1
Blender Artist thread 2
Blender Bug Tracker
Looks like you are running blender on a potato and there is no fix. This integrated graphics card will just not do. It shares the system RAM as a video-memory and when your system uses a lot (2GB is almost nothing) there is not enough left.
Check the minimal system specs:
Minimal Blender Specs


How do you access the ruler? No matter what I select or where I look I can't find the ruler anywhere. I'm using Blender 2.74, what am I doing wrong?

Open the toolbar in the 3D Viewport using T. Navigate to the Grease Pencil section and click the 'Ruler/Protractor' button. You can now click and drag in the 3D Viewport to create a ruler and or protractor measurement.


Render layer causing image "shearing" in video sequence editor I'm having an issue where black "v" shapes or jagged lines show up in my render.  They almost look as though the image is being ripped apart and the black background underneath is showing through.

Through process of elimination I've narrowed down the source of the problem to be the Render Layer titled "text shadows".  This layer consists of duplicate text objects that I've added a blur node to in the compositor to create a shadow effect.  I've tried to troubleshoot the problem by removing nodes in the compositor, hiding or deleting my mask object in each scene, and adjusting the position of the text shadow objects in y space.  The only way I've found to remove the black shapes is to turn the "text shadows" render layer off altogether in the Render Layer panel.  After doing so the render turns out fine, but I can't achieve the look I'm going for without the shadows behind the text.  Any insight into what is causing this issue and how to prevent it would be extremely helpful.  Also, I'll include the .blend.  I'm using Blender Internal.

As cegaton mentionend, the file you uploaded won't produce such problems on my side neither:

http://sendvid.com/tbu3umgk

Though I had to disable your dust layers to get another result than lots of white:

However, I suppose, it's a driver problem on your side. I already had a graphics cards driver problem with Blender. The developers helped me out to find out whether the problem is one with the driver.

You should use the opengl32.dll from http://download.blender.org/ftp/sergey/softwaregl/ and place it next to blender.exe as described by sergey to find out if the problem is your driver. Beware, that Blender might be very slow while using this wrapper dll as everything is done on CPU only without using your graphics card.