Displaying text inside an addon Panel This question is not about displaying text-like objects or mesh in the 3D viewport but rather about displaying plain text in a panel created by an Addon.

I have a panel with two rows. On the first row is a button (Action 1) linked to an operator which generates some long text (say a ~1000 character error message). I want to display this generated text in the second row (with wrapping instead of truncation or ellipsis). I  also want to allow the user to select some or all of that text.

My current attempt

I'm unable to come up with anything better than using the label attribute to display the long text (code below). But it doesnt satisfy my requirements: (1) Doesnt allow text selection (2) doesnt display full text (just displays first and last few characters with ellipsis in between)

Ideally I'd like to have a display similar to the box for "Vertex Groups" below

Of course, I'd want the ability to change the label "Vertex Groups" and to be able to populate the box with (wraparound) text.

code

from bpy.props import StringProperty
import bpy

class MESH_OT_action1(bpy.types.Operator):
    bl_idname = 'mesh.action1'
    bl_label = 'Action 1'
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        try:
            context.scene.long_string = 'x' * 1000
            return {'FINISHED'}
        except Exception as e:
            self.report({'ERROR'}, e.args)
            return {'CANCELLED'}

class PANEL_PT_MyPanel(bpy.types.Panel):
    bl_idname = 'PANEL_PT_MyPanel'
    bl_label = 'mypanel'
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = 'Panel test'

    def draw(self, context):
        row_action_1_btn = self.layout.row()
        row_action_1_btn.operator('mesh.action1', icon='WORLD_DATA', text='Action 1')

        # Text area
        row_text = self.layout.row()
        text = context.scene.long_string
        row_text.label(text=text, icon='WORLD_DATA')

bl_info = {
    "name": "Textbox",
    "author": "author@gmail.com",
    "version": (0, 0, 1),
    "blender": (2, 80, 0),
    "location": "View3D",
    "description": "Demo Addon",
    "category": "Development",
}

def register():
    bpy.utils.register_class(MESH_OT_action1)
    bpy.utils.register_class(PANEL_PT_MyPanel)
    bpy.types.Scene.long_string = StringProperty(name='long_string', default='')

def unregister():
    bpy.utils.unregister_class(MESH_OT_action1)
    bpy.utils.unregister_class(PANEL_PT_MyPanel)
    del bpy.types.Scene.long_string

if __name__ == "__main__":
    register()

Log Window

Example using an UIList based on the answer of Create an interface which is similar to the material list box as suggested in the comments. Removed all superfluous operators to get a kind of log window.

# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####

bl_info = {
    "name": "log-uilist-dev",
    "description": "",
    "author": "p2or, brockmann",
    "version": (0, 1),
    "blender": (2, 80, 0),
    "location": "Text Editor",
    "warning": "", # used for warning icon and text in addons panel
    "wiki_url": "",
    "tracker_url": "",
    "category": "Development"
}

import bpy

from bpy.props import (IntProperty,
                       BoolProperty,
                       StringProperty,
                       EnumProperty,
                       CollectionProperty)

from bpy.types import (Operator,
                       Panel,
                       PropertyGroup,
                       UIList)

# -------------------------------------------------------------------
#   Operators
# -------------------------------------------------------------------

class CUSTOM_OT_actions(Operator):
    """Move items up and down, add and remove"""
    bl_idname = "custom.list_action"
    bl_label = "List Actions"
    bl_description = "Move items up and down, add and remove"
    bl_options = {'REGISTER'}

    action: EnumProperty(
        items=(
            ('UP', "Up", ""),
            ('DOWN', "Down", ""),
            ('REMOVE', "Remove", ""),
            ('ADD', "Add", "")))

    list_item: StringProperty()

    def invoke(self, context, event):
        scn = context.scene
        idx = scn.custom_index

        try:
            item = scn.custom[idx]
        except IndexError:
            pass
        else:
            if self.action == 'DOWN' and idx < len(scn.custom) - 1:
                item_next = scn.custom[idx+1].name
                scn.custom.move(idx, idx+1)
                scn.custom_index += 1
                info = 'Item "%s" moved to position %d' % (item.name, scn.custom_index + 1)
                self.report({'INFO'}, info)

            elif self.action == 'UP' and idx >= 1:
                item_prev = scn.custom[idx-1].name
                scn.custom.move(idx, idx-1)
                scn.custom_index -= 1
                info = 'Item "%s" moved to position %d' % (item.name, scn.custom_index + 1)
                self.report({'INFO'}, info)

            elif self.action == 'REMOVE':
                info = 'Item "%s" removed from list' % (scn.custom[idx].name)
                scn.custom_index -= 1
                scn.custom.remove(idx)
                self.report({'INFO'}, info)

        if self.action == 'ADD':
            if self.list_item:
                item = scn.custom.add()
                item.name = self.list_item
                item.coll_id = len(scn.custom)
                scn.custom_index = len(scn.custom)-1
                info = '"%s" added to list' % (item.name)
                self.report({'INFO'}, info)

        return {"FINISHED"}

class CUSTOM_OT_clearList(Operator):
    """Clear all items of the list"""
    bl_idname = "custom.clear_list"
    bl_label = "Clear List"
    bl_description = "Clear all items of the list"
    bl_options = {'INTERNAL'}

    @classmethod
    def poll(cls, context):
        return bool(context.scene.custom)

    def invoke(self, context, event):
        return context.window_manager.invoke_confirm(self, event)

    def execute(self, context):
        if bool(context.scene.custom):
            context.scene.custom.clear()
            self.report({'INFO'}, "All items removed")
        else:
            self.report({'INFO'}, "Nothing to remove")
        return{'FINISHED'}

# -------------------------------------------------------------------
#   Drawing
# -------------------------------------------------------------------

class CUSTOM_UL_items(UIList):
    def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index):
        split = layout.split(factor=0.2)
        split.label(text="%d" % (index))
        #split.prop(item, "name", text="", emboss=False, translate=False, icon=custom_icon)
        split.label(text=item.name) # avoids renaming the item by accident

    def invoke(self, context, event):
        pass

class CUSTOM_PT_objectList(Panel):
    """Adds a custom panel to the TEXT_EDITOR"""
    bl_idname = 'TEXT_PT_my_panel'
    bl_space_type = "TEXT_EDITOR"
    bl_region_type = "UI"
    bl_label = "Log UIlist"

    def draw(self, context):
        layout = self.layout
        scn = bpy.context.scene

        rows = 7
        row = layout.row()
        row.template_list("CUSTOM_UL_items", "", scn, "custom", scn, "custom_index", rows=rows)

        row = layout.row()
        add = row.operator(CUSTOM_OT_actions.bl_idname, icon="ADD", text="Add Log Line")
        add.list_item = "Error %d" % (len(scn.custom))
        add.action = 'ADD'

        row = layout.row().operator("custom.clear_list", icon="X")

# -------------------------------------------------------------------
#   Collection
# -------------------------------------------------------------------

class CUSTOM_objectCollection(PropertyGroup):
    #name: StringProperty() -> Instantiated by default
    coll_type: StringProperty()
    coll_id: IntProperty()

# -------------------------------------------------------------------
#   Register & Unregister
# -------------------------------------------------------------------

classes = (
    CUSTOM_OT_actions,
    CUSTOM_OT_clearList,
    CUSTOM_UL_items,
    CUSTOM_objectCollection,
    CUSTOM_PT_objectList
)

def register():
    from bpy.utils import register_class
    for cls in classes:
        register_class(cls)

    # Custom scene properties
    bpy.types.Scene.custom = CollectionProperty(type=CUSTOM_objectCollection)
    bpy.types.Scene.custom_index = IntProperty()

def unregister():
    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)

    del bpy.types.Scene.custom
    del bpy.types.Scene.custom_index

if __name__ == "__main__":
    register()

Note: the naming of the classes and variables might be off a little.


How to best create an animation of an opening paper fan? I an trying to create a 10 second animation of an opening paper fan which would look similar to that depicted in the image (C4D, apologies, couldn't find any blender images related to this exact animation.)

Would I use one mesh, cut it with the knife and rig it up with an armature or...?

Any help would be great

Here's one to try out. The base is a Plane with one vertical cut [CTRLR] and the lower vertices merged [ALTM]. It is shaped to approximate one fold of the fan. Hooks are added to the outer vertices by selecting them in Edit mode and pressing CTRLH. Once back in Object mode the hooks can be (shift) selected and moved down on the Z-Axis or scaled towards each other to create the fold.

You can later animate the Location by pressing CTRLI. The single fold can be duplicated with an array modifier using a new empty as the centre.

The centre empty rotation can also be animated with CTRLI to match the timing of the Hook movement. Of course it is cheating and if you look too closely they might not match perfectly..


FPS drop when positioning the character My problem is as follows
(is a model ported from SFM to Blender)
Animation attempt unsuccessful
Solid Mode
When I create a frame with the rig or in positioning mode, The FPS ends up dropping to 3 or less than that. I've tried simplify, decimate and none of these worked.
I used several optimization tips that my friends recommended to me.
Frame Dropping.
Simplify.
Decimate.
As said before, it didn’t work

Your character has 145k vertices, which is quite high for a rigged prop.
One possible optimization, as many parts are "rigid" and don't need deformations, is to parent them directly to bones, without weights (select the mesh part, shift select the armature, go to pose mode, select the relevant bone and press Ctrl P - bone).
But I think you should make a copy of the character, replace its parts with an ultra simplified and decimated version, and use this proxy to animate, then use the original one for rendering.
To have an idea, in my computer your file runs at about 6 FPS, and if I don't want speed problems I stay under 30k vertices when animating.


Shadow glitches in Cycles When I render my scene in Cycles, I get these really weird glitches (Pictured in image). They happen more and more frequently the less directally my light source is illuminating them. Sorry if this is relatively simple, I am new to blender.

I might add that the render is an animation which both needs both very high (60000m) and fairly low (6m) clipping distance, and these glitches look a bit like what happens in the viewport when I set the clip distance really low. Not sure if this is at all relevant just thought that I might as well add it.

Have you tried recalculating normals? I often get weird artifacts/shadows when the normals get flipped around.

Tab into edit mode with your mesh selected
Select all the faces of the mesh with A
For blender 2.8 SHIFT + N brings up the recalculate normals tool. You want to "Recalculate Outside".

Or you can access this via:
Edit Mode > A > Mesh menu > Normals > Recalculate Outside

https://all3dp.com/2/blender-recalculate-normals-simply-explained/#:~:text=There%20are%20two%20main%20ways,so%20they%20all%20face%20outwards.
Explanation of normals from All3DP:

Ever wondered why your Blender model is sometimes plagued by random
black voids?
The normal of a face describes the direction it’s pointing or facing.
Usually, in a closed model, all normals should be facing outwards.
However, sometimes when manually manipulating edges and faces in
Blender, the normals get flipped. It’s not the end of the world, but
it does make your model look weird. And once you export the model,
flipped normals can leave behind bad artifacts.
That’s why it’s best to fix these flipped normals. And the good news
is, they’re super easy to recalculate.


Difference between make local object and make proxy When operating on an object linked from another .blend file, what is the difference between the Make Proxy command (Ctrl+Alt+P) and the first option of Make Local Object command (L > Selected objects)

Both of them allow moving the object but not editing it.

Make Proxy adds a new object and sets it as the parent of the linked data. This allows you to transform the empty while still retaining the link to the original blendfile.

Make Local Object copies the object data from the original blendfile to the new file, severing the link.

It is probably better to use Make Proxy because:

It keeps the link to the original file. If you change the original file, the linked object will be changed as well.
It keeps your filesize small. Instead of having to copy the mesh data (all the verts, etc.), the only data that's stored is a sign saying "look over there."
Otherwise, you're basically just Appending (ShiftF1).

A slight correction to your edit: you can edit the object. You cannot, however, edit the mesh. Here's why:

When you first Link an object, you are linking the Object datablock (cube icon). Linking the object also causes it to bring along the Mesh datablock (triangle icon), because it relies on the Mesh datablock. If you have any materials, textures, etc., those will be *Link*ed as well.

When you Make Proxy, the Object datablock is cloned, but the Mesh datablock is not. This is why you cannot edit the mesh: the Mesh datablock is still linked.

You can edit anything that is a property of the object datablock, such as the position, rotation, scale, material slots (but not any linked materials themselves), modifiers, constraints, particles, etc. You cannot modify anything that is part of the mesh datablock. Examples of things you cannot edit include:

vertex groups (and, thus, Weight Paint Mode is disabled)
UV maps
shape keys
skin radii

These basic concepts also apply with other linked data types as well.


Can't append in Blender I have a problem and I don't know why. The append option for my file is gray and doesn't work, but, this problem is only for my file. The append button works for all my other files.

This the file blend file.

You need to make sure you are not in edit mode. I had this problem, but then I switched to object mode and it was fine.


What does the Cycles Fresnel Node do? What does the Fresnel node (in cycles) do? I know that it kind of does rim selection(similar to rim lighting), but I'm not exactly sure what it's doing. I've seen it used in many tutorials, but I can't find any clear explanations.

What's the explanation, and which situations make sense to use it?

The Fresnel node outputs which percentage of light would be reflected off a glossy layer, with the rest being refracted through the layer. The most common use is to mix between two BSDFs using it as a blending factor in a mix shader node.

For a simple glass material you would mix between a glossy refraction and glossy reflection. At grazing angles more light will be reflected than refracted as happens in reality.

For a two layered material with a diffuse base and a glossy coating, you can use the same setup, mixing between a diffuse and glossy BSDF. By using the fresnel as blending factor you're specifying that any light which is refracted through the glossy coating layer would hit the diffuse base and be reflected off that.

For the Cycles node it is assumed that this glossy layer is a simple dielectric material with an index of refraction. Different and more advanced Fresnel equations exist but are not currently implemented. More advanced layering models exist but fresnel mixing is a commonly used approximation.


Staying flexible in the level of detail? I'm building a simple scene with lots of cylinders (tubes) that I might want to 3d-print later on. Now I'm wondering how to retain some flexibility when it comes to the resolution, i.e. the number of vertices used to construct one cylinder.
If I use to many, the performance suffers and if I use to few, it might not be possible to easily recover the roundness later on after I used boolean modifiers, I guess.

What's the usual process with Blender and what do you recommend?

While you're indecisive regarding the required resolution of your mesh you could use a sub division surface modifier

On cylinders you would need to add support loops to avoid distorsion of the mesh. You could can be add the support loops by selecting both edge-rings and bevel (Shift-B). Alternatively to the support loops you could try an Edge split modifier


When i texture paint in 2.8 how do i add shadows to see what im painting When  i texture paint I like to paint on the actual object instead of the uv map but it seems that when I set up an object ready to paint its all one colour, no distinguishable features so i don't know what im painting.
Thanks , J.H.B.W.

When in Texture Paint mode and Rendered View go to Overlays on the top right.

At the bottom of the drop-down window for Overlays there will be a section Texture Paint and below it will say Opacity. If this is set to zero you will have full shadows on your model.

I find this makes it easier to paint directly onto the model and see where your paint is going.


Game Asset Vertex Count/ Importing in Unity I am new to creating game assets; I read that the poly count needs to be somewhere around 64,000. I've created a skyscraper without any modifiers and as basically as I can in order to achieve the shape I want, and the vertex count is 168,000. I am unsure of what steps I need to take in order to reduce the vertex count/ make it usable in Unity. Perhaps I've taken the incorrect approach/ don't understand. I would be grateful for any information.

Thanks!!

There are a lot of ways to optimize your model. For example, you can model the single floor, and instance it in the unity. You can use baked normal maps instead of geometry. It's all about the level of details you need in your game. If it's far from the camera you can use a simple textured box. If you walk around but you have no helicopter, you can have detailed first two floors, and less detailed ones above. So it's all up to you. The question is more to do with unity than with blender, so maybe it's better to get some guidelines from the unity gamedevs about you very problem - the best way to build a city in unity.


Importing objects from 3Ds Max to Blender with instancing What format or method is necessary to transfer a scene from Max to Blender without breaking instancing? I am trying to get some terrain, buildings, and trees from a large city scape working. They were made in Max, and have proper instancing. Right now I have them as .objs. The instancing breaks, causing any renders to require a huge amount of resources. Is there something I can do on either the Max end or Blender end to make this work? I can have it re-exported with different settings or formats.

FBX supports instancing. I'm not familiar with now Max handles FBX, but I transfer between blender and maya with FBX all the time to keep my instances. As far as I can tell, Autodesk has done a pretty decent job of making FBX work between their own packages, so my guess is it will work for Max as well. Make sure you export from Max with the proper plugin version or blender won't be able to read it properly. Blender supports the 2014 version (7.4) for binary and 2010 (6.1) for ascii. I use binary constantly and have never had issues with it. All my stuff is simple geometry, though. It obviously won't transfer rigs properly.

Hope that answers your question. I don't have Max installed, so I can't test it myself.


How to randomize position of multiple objects? I would very much like to recreate a workflow I commonly use in Cinema 4D, which is this:

Duplicate multiple instances of an object using the Mograph modifier (similar to the Array modifier)

Randomize the offset/scale/rotation/etc of all the duplicated objects using a Randomize effector

From my search through various Blender forums there doesn't seem to be an elegant way to do this.  In C4D this is such basic functionality that I just refuse to believe that there isn't a way to do it in Blender.
Would love a good workflow to achieve this.

You want to randomize an object that has a array modifier?
For that first apply the array modifier then in the Search bar which appears by clicking Space Bar (if not , in the preferences , you need to change the way space bar works , its possible your spacebar plays the animation) , search for separate by loose parts and select it.Then search for randomize transforms(make sure all the objects i the cluster are selected) and then open the box in the bottom left and change the location ,rotation and scale


Cannot move 3D cursor or click to select objects When I left click, the 3D cursor no longer moves anywhere; it instead stays stuck wherever it is in the scene. When I right click on anything, Blender zooms into whatever object is currently selected. I'm unable to select anything with the mouse; I can only select objects with keyboard shortcuts like 'A'. This happens with all new projects as well. I've tried exiting / reopening blender.

Is there some setting that would cause this? How do I undo this?

I'm currently using Blender 2.79

Whilst in the settings menu, Blender froze. After unsuccessfully trying to click on on some stuff, the preferences window disappeared. It turns out this somehow changed some input preferences.

Go to File -> User Preferences -> Input. Blender will very clearly indicate which options have been changed by displaying a "Restore" button next to the parent category:

Restore any unwanted mouse configs, and you're done. If the mouse settings are wrong for new projects as well, click on 'Save User Settings' after restoring.


Unexplainable line in Blender Sculpt I may have enabled an option by mistake. When I try to sculpt, a line appears that slows my sculpt, how do I disable it ?

Disable Smooth Stroke in the Stroke section.

In Blender 2.8x this has been renamed to Stabilize Stroke.


When I open my camera everything disappears I opened up the camera via FN 0 (because I am using a laptop), and the entire set disappears from sight but when ever I exit it, it is all still there.

I am new to the software so please excuse my mistake

That's actually very easy to explain.
The "0" you are pressing is the shortcut for Layer 10! That means you are NOT switching to camera view, but actually changing the layer from 1 (which contains all your geometry) to 10 (which contains nothing). That's why you see ... nothing.

To solve it. Check layer 1.

Make sure you press either what is the equivalent of NUMPAD 0 on your laptop or check "Emulate Numpad" in User Preferences.

Now your Number Row will act as your Numpad.

A final option without any hotkeys:

I hope this solves it for you.


How to create mesh surface using csv datapoints? I have a csv data which contains x, y, z columns.
I want to visualize this data as a surface mesh. From the csv file, I can load the data via csv mesh Importer add-on in Blender 2.5 and Statistical data in Blender 2.8. But in both cases, the data is loading as a scatter plot. So because of this, I am unable to load as an object so as to convert vertices to surface.
I could load the file in VTK paraview too but with same points rather than creating a mesh.
So, my question is "How to create mesh surface from csv data points in Blender" ?
I have attached the obtained results in Blender and Paraview.
Please let me know if there are any approaches present.
Thanks and Regards,
Sunag R A.

You could try MeshLab is free. Here is a video: https://www.youtube.com/watch?v=38mt3kpsxd4


Why doesn't my simple mesh wall "difference boolean cut" the door away? I am new in Blender. I have basically done mesh walls, and I want to cut away doors.

So I select each wall, take boolean "difference" and select the red rectable (that should represent a door)..

But something weird happens. I can see the wall has been slightly changed at the door, but no cut out.

What I am missing?

Download link to .blend file

https://www.dropbox.com/s/apv7gx2394jtu0d/blender.blend?dl=0

I have also done a video

https://youtu.be/hIt52h4-bRs

I can upload the Blender project if needed.

BMesh solver (the one used by default by the boolean modifier) don't like when two faces are coplanar, like the lower faces of your wall and door.

You can move down your door a bit (or just move down it's lower face).

You can also change the solver used by the modifier. In Solver, instead of BMesh, select Carve.


Render simple lines in cycles Here is the obj that I'm trying to render (they represent charged particles)
https://www.dropbox.com/s/e3w87d38pqizjzr/event000000000-tracks.obj?dl=0

Edit: just to be clear, these aren't arbitrary curved lines - they represent the output of a physics simulation so I need to render EXACTLY these lines.

Using the internal renderer I can chose the 'wire' material and this looks great. However the detector itself looks very messy with 'internal' and so I would prefer to use cycles, and here I'm completely stuck. This is NOT the wireframe view of a solid object - it's really just a bunch of lines and I just cannot work out how to get them to appear. Any hints?

For reference, I want to produce something similar to :

https://cds.cern.ch/record/1406073/files/eeee-run167675-evt876658967-3d.jpg?subformat=icon-640

For an object to be visible in cycle it needs faces. Vertices and Edges will not render. There are many ways to do what you want.

One option is to use curve objects.

If you assign some bevel depth to a curve it will become like a thin string. Using an emission shader will make it glow on its own.


How to remove unlinked/disconnected parts of a bigger mesh? I have many meshes like the one shown below which have some faces/vertices that are not connected to the main mesh. I use these meshes for physics simulation. As result of these weird parts of the meshes the physics simulation results becomes very different than what it is supposed to be. I wonder, what would be an effective solution to remove such parts?

I have tried "Delete Loose" in Edit Mode but it doesn't do the job. I was also thinking of writing a script to calculate the average of the faces and then remove the vertices that are further from that "average face" but I don't think this would work well based on my prior experience on doing a similar thing before.

One thing I could recommend is to select the large object with the hotkey [L]. If there are several islands (isolated parts of the mesh) that you want in the physics simulation, you can select those too. once you have all of the mesh you want selected, then press control I (invert selection) and delete. That should get rid of any unconnected geometry


Is it possible to make the animation preview smoother without reducing the frame rate? I'm currently going through Blender Guru's animation tutorial and I'm not able to get my preview window to be as smooth as I see in Blender Guru's videos.

The animation preview that I see is either very slow or not functioning at all.

When I reduce my default frame rate from 30fps, it seems that the animation preview improves slightly, but the animation preview is still slower than what I see in the tutorial video.

Viewport speed is usually limited by the CPU performance, since a lot of processing has to be done before the GPU can display the image.

Dependency Graph:
Having large number of objects, or objects with complex constraints, can slow down the viewport because every object has to be evaluated every frame. So if you do have a huge scene, try to use layers to reduce the amount of visible geometry in the window.

Modifiers:
Many animated modifiers have to to be evaluated every frame. One way to optimize these is to make sure the modifier stack is arranged in the most efficient way possible. This means armature animation comes before subdiv surface, for example.

Also, make use of OpenSubDiv when possible, it's a lot faster than the Blender subdiv code, especially when its compute mode is set to GPU in User Preferences.

Simulations: Ocean Modifier, cloth sim, softbody, rigidbody and particles are all very demanding. It's best to bake these to their respective cache before attempting to playback the animation with Ctrl+A.

Simplify: Blender comes with tools to simplify the scene temporarily. One of them is the Simplify Panel in Scenes. Use it to reduce the complexity of your scene globally.

Also, make use of the Maximum Draw Type setting in the object panel to simplify the display of background objects.

Display: Finally, we can reduce the complexity of the scene further by turning on Only Render in the 3D viewport, this disables drawing of invisible objects and wireframes, which can speed up the viewport significantly in certain cases.

Some people reports increased performance when using matcaps, so you can try that as well, but your mileage may vary.

Playblast/OpenGL Preview:
Ultimately, for a large production, it's not unusual for the file to be so heavy that playback at 24fps is not possible. If that's the case, you can use the OpenGL render feature in to render a quick preview movie to get a perfectly smooth playback.


Problems With Incredibly Noisy Renders In Cycles I'm attempting to create a space station hallway in blender Cycles as concept art for a game.  After modeling the entire station, I decided to do some simple test renders to see how the lighting would work through the window opening out to open space.  After tweaking the material to make a better window, I started rendering it out with a sun and very few inner materials (I don't apply materials until I really get the lighting down).  After doing this, I came up with this render on 500 samples:

Essentially the entire thing is incredibly noisy.  While I know that this question has been asked before I couldn't find anything that would help it.
How can I make this less noisy? I've tried a lot, and it just stays bad.  Any help is appreciated.

Here's the blender file:

Testing without materials attached may not be giving me the same results as you, but I have modified a couple of settings to generate this render:

I have increased your sun lighting somewhat and I added a spacey HDRI image as background, mostly so I could see what was going on inside the station. I then added a slight amount of clamping to direct and indirect. That render is at .10 and .05 respectively, I think. Smaller clamp amounts may have worked.... depends upon what you are going for.

HDRI from Blender Guru Pro Skies, not my work.

If this is moving in the direction you intend, I think some combination of clamping direct/indirect and working with the light paths -- https://www.blender.org/manual/render/cycles/optimizations/reducing_noise.html -- may get you where you want to go....

EDIT=====================

Sorry. I deleted your original file, so I downloaded again and made changes only to sun power settings and clamping to produce this:

I did not pack the space HDRI into the new blend file, as I believe it is copyright by Andrew Price in his Pro Skies.... so the second render was made without an HDRI in place.  Here's the modified file:

And just FYI: https://www.blendernation.com/2017/01/21/creating-looping-corridor/


I want to add my own armature to armature menu It would be super useful if I could populate this menu with my own custom rigs.

Although you can't add your armature design into that menu in particular, there are other ways you could go about doing it.

What I usually do is to save my armature rig in an entirely different file. In the event that I want to use it in another project, I just have to Append the armature over to the project.

Hope this helps :D


Is it possible to work on the same blender file at the same time on 2 computers? I want to make car with a friend who is much more experienced than I am and it would help a lot if I could work and he could correct me and help within the same blender file. Thank you in advance.

There would ultimately be the issue of version control.  If you and your friend were working on the same material, object, at the same time, how would the program decide whose edit to accept?

There are helps to version control out there like GitHub where a user "checks out" a part of a software project to edit.  While that user is editing, no other user may write to the file, but they can still read from the original file.

With Blender, as far as I understand it, everything (except texture and dependencies) is contained in one solitary .blend file.  That means whoever has it checked out is preventing the other from editing.

Three things I can think of that might help you with this:

1.) You may use something like LogMeIn or another similar software that would allow you and your friend to have access to the same Desktop via a network/Internet connection.  You would be virtually sharing the same computer and program, but your friend could be in another city/state.

2.) Blender has a nice Append function built in that's accessible from the File menu.  If you could have a central location for storing the .blend file, each of you could "append" objects from that file to your own individual Blender sessions on your respective computers (provided you were working on different objects... i.e. version control), edit them, and then later append them back into the original .blend file.  Of course you would need to collaborate to determine who's working on what and when you would append to the original file.

3.) You could have separate .blend files in a central location, maybe for different objects.  You can then use the Link option to incorporate them into the same master file but edit them individually: https://docs.blender.org/manual/de/dev/data_system/linked_libraries.html
 Again, you'd need to implement VC.

There may be an add-on of some sort that I don't know about that would allow you to do this more easily


How to combine transparent environments with alpha masks? So there's this Toei anime from 2003 called Air Master and it had a very unique outro in which the main cast would sprint through their hometown. I'm fairly confident that it's environment CG, given that all the visible details and idiosyncrasies of the background (i.e. the road details) follow perspective without any noticeable human error.

Here's a preview. You can watch the full outro in a higher resolution here: https://youtu.be/svEG-_vJyvU

I'm trying to find out if there's some sort of material or render layer configuration I can use to replicate this effect as closely as possible.

If I grant that this is CG, the sequence appears to use alpha textures in conjunction with some sort of backface culling technique. The most puzzling aspect is the gradient visible behind all the objects, indicating that the alpha channels of the materials are able to visibly negate everything behind whichever object it's applied on relative to the camera, sort of like an alpha mask. That or the animation uses non-alpha textures and the placeholder color is simply replaced with an alpha channel, though I'd much prefer the former.

Here's the material set-up as well as the scene in the solid viewport.

I've also included the render:

As you can see from the render, I was able to get a wireframe version of my scene with the edges solid white and the background transparent.

My goal is to both eliminate the back-facing polygons and object visibility through the material while maintaining the alpha channel.

I found out that you can get this effect with freestyle rendering. It's exactly what I was looking for.


How do I Auto-Keyrame ONLY changed values? Even with the "Only Insert Needed" Checked, keyframes are inserted on values that do not change.

By hitting "g" and "z" to move along Z axis, I only change that value, but keys are placed on the other curves as well

How do I make it so only changed values are keyed?

Strictly spoken this is not possible. However, you can at least avoid channels being auto-keyed that do not have a keyframe on them yet.

So first, as suggested by josh, insert a single keyframe on a channel you'd like to animate, say Location Z. Then you need to switch the Active Keying Set to Available, and next to the Auto Keyframing dropdown enable the little button to the right with the keys:

Then only the available channel will be keyed, not all three of them. If however you also have a single keyframe on the rotation, that channel will also receive a keyframe, regardless of the value having changed or not.

The Graph Editor also offers a function that will remove any non-value-change keyframes using a threshold, Clean Keyframes. This way you can quickly get rid of duplicates and duplicates of same keyframes on channels, or even channels that did in fact never change their value using the Clean Channels operator:


There is a way to add custom split normal use Python API? I can't find a way to achieve custom split normal effect.
I want to use python (mesh normal/hard edge or soft edge) data collected from Maya then write to Blender mesh.

How to do it using the following Python API and how?

bpy.data.meshes[objName].normals_split_custom_set_from_vertices

bmesh module

Custom Split Normals
Elaborating on this answer and here
Test script. Run in object mode.  Switch to edit mode to see results.
import bpy

context = bpy.context
ob = context.object
me = ob.data
# visualize in edit mode
me.show_normal_vertex = me.show_normal_loop = True
me.use_auto_smooth = True
# normal custom verts on each axis
me.normals_split_custom_set([(0, 0, 0) for l in me.loops])

end up with custom split normals in each of the corner directions. Blue are the vert normals
# all custom split normals pointing up.
normals = [(0, 0, 1) for v in me.vertices]
# make csn's all face up.
me.normals_split_custom_set_from_vertices(normals)

all custom split normals facing up (0, 0, 1)
I am not aware if custom split normals can be accessed from bmesh.


Making proxies of all objects in a Linked collection in blender 2.8 So, I see that we now use collections to group multiple objects and then link the whole collection in another file. But when I go to the linked collection, I have to go and make a proxy of each object one by one. Is there a way to make proxies of all objects in a collection automatically, as manually seems to take forever if your collection is pretty big.

You can parent all of the objects in the collection to an empty (and include the parent in the collection). Then, in the other file, link the collection and make a proxy to the parent. This should allow you to move, rotate, scale the entire linked collection.


Snap vertices to grid on some objects in my model is broken. How can I fix them I am working in blender 2.91.2 and I have a model that I want to snap its vertices to the grid want to make it ready for pixel art textures.
The character is made up of blocky objects and some of them have vertices that properly snap to the grid, but most of them snap to seemingly random positions if at all.
Take for example, the head and the neck here, the head's vertices snapped into position correctly, but in this screenshot, the only place the selected face on the neck will snap to that is remotely close to being flush with the head is here. It is like it is on some completely different grid. But when I drag it around with ctrl held, it doesn't even snap for most of the space that I drag it through.
Any ideas what is wrong?

Your transform in the screenshot is not set to “Increment + Snap to grid,” but rather “Snap to edge.” Change this and see if it works right.


Specify the length of an edge I want to create an equilateral triangle.

I added a plan and then merged the two points on one edge .. that seemed to work fine.

The length of the bottom of the triangle is 2m and I'd like to set the length of the other edges to 2m.

Is there an easy way to set the length of an edge?

I understand that I can do some math and figure out the x,y for the top and move that point to create the correct length, but I'd like to just set the length of an edge if possible.

Further to comments, to create an equilateral triangle, side length L -

ShiftA call up a Circle
In the fields of the Adjust Last Operation panel, type into Sides: 3,  and Radius: L*sqrt(3)/3


ColorRamp outputing unsollicited color variations despite using constant mode I'm using ColorRamp to limit the colors of my render to only a couple of colors. In the outputted image, there are still slight variations of the colors set in the ramp and I can't get them to stop appearing.
As an example, I have this basic scene and composition nodes:

The colors in the ramp are #FF0000, #00FF00 and #0000FF. I would expect to get an output containing only those colors, but if I pick colors in it, I find:

#FF0000, #00FF00 and #0000FF which is right
Variations of red #FF0101 and #FE0000
Variations of green #01FF01 and #00FE00
Variations of blue #0101FF and #0000FE

How can I remove those additional colors from the render? I want the final color palette to contain only the exact colors I picked. Of course in my actual files, there are other colors too but this little example alone reproduces the problem.
Also, my Color Management settings are set like this:

Any idea?
My example file if you want to try (you will need a color picker):

I got it. I noticed that this happened even with only a #FF0000 background without any object on it, checked every possible option, and found a culprit: Output properties > Post-processing > Dither. I switched it to 0, and no more color variation. The only problem left is that colors are not always the exact ones, but they are always the same variation at least. #00FF00 becomes #01FF01, but it's always that, which is far better.


Can't use Radeon GPU to render in cycles (R9 270) In the settings I can't choose another device to render other than the CPU.

According to the blender wiki the GPUs "with a GCN Architecture superior or equal to 2.0 are supported".

And as I understand my GPU (R9 270) should be supported, according to this table from wikipedia(and has GCN 2.0 and up):

Or am I wrong and my GPU isn't actually supported? :(

GPU:    R9 270 (latest drivers)

OpenCL version: 22.19

Blender version: 2.79

R9 270 is actually GCN 1.0 architecture and is not supported after Blender 2.78c.

If you look at the wikipedia chart for the Radeon 200 series products, you'll see that the 270 is actually a GCN 1.0 hardware. Which was dropped from Cycles in Blender 2.78c.


How to distribute an object to a hexagonal grid? I want to create a hexagonal Array (in other name: honeycomb) of this object:

It is very important: I don't want to "join" the distributed objects, I want to leave them as dynamic as possible (so I prefer modifier-like solutions), but I also want blender to treat them as one mesh-object, just like the Array-modifier would do, when I click on the merge checkbox. So when I add a Subdivision-modifier to my object it will look like this:

NOTE:

The sample object I provided here is a simplified object of the one I'm going to use for this purpose: so the Wireframe-modifier and the Skin-modifier is not an option in my case. Also distributing with a hexagonal grid particle system or duplicate object to vertices of a parent object are not options, since the "final" object won't be "merged" as a single one.

Thanks in advance!

There is an even easier/faster solution than the one @CharlesL provided (Although some steps are identical) :

Create only 4/6 of the "cell" by using an Array-modifier and an Empty-object rotated by 60°:

Then add another Array and distribute objects on the x direction by the Relative Offset:

And last but not least, add another Array and distribute the result of the previous modifier on the y direction by the Relative Offset 1:

Of course the merge option checked in all three of the Array-modifiers.
And the result is a lighter and better version of the hexagonal array creation, plus, the result has more beautiful "edges".


Turning a complex 3d object into a 2d contour I am trying to automate generation of a 2D plan from a 3D ship.

For that I need to get a contoured object in some projection. To accomplish that I make the object flat, but there are a lot of vertices inside the contour.
This is the result I get:

How can you delete the inner vertices and get only the contour ones? I have tried deleting and dissolving but it is not enough for complex objects, the vertices that make this hole in the exapmle object (highlighted red) still remain.

One possible way to achieve this is by acquiring a "skeleton" of your mesh. This is a destructive process, if you require the original mesh intact make these steps in a copy of the original.

In Edit Mode erase all faces but leaving edges by pressing X > Only Faces option.

Optionally Scale you object to zero in the desired axis or custom direction (if you don't want any of the orthogonal axis).

Add a new plane or flat mesh to your scene aligned with the desired projection direction, in such way that it stays behind the mesh you want to outline.

Select the outlining mesh, then Shif-select the plane object so it becomes the active object, while still leaving the outlining mesh selected.

Align the view to the desired projection direction, also ake sure you have a orthographic projection view (as opposed to perspective) this is important as it will determine the accuracy of the obtained outline scale and size. Enter Edit Mode in the plane object, then use Knife Project operator from the space bar menu to "imprint" the mesh onto the plane.

Select the major faces surrounding your newly obtained outline, press Ctrl + i to invert the selection and erase everything else.

You now have an outline of your mesh. Do some cleanup, like Remove Doubles and convert to a curve if that is what you desire.

Optionally try the SVG Output script for direct to vector exporting.


Gradient control on instanced objects from collection So I have 10 different objects in the collection. I instanced them on the curve with different rotations and locations.
Now I'm trying to control the color over them with vertex color node. But what I'm not able to do is to control the color over the new distribution of objects. AN treats the new object list which is larger as consisting of those initial 10, thus when I move the falloff each new element gets colored according to its coloring in the original collection so no smooth gradient, but rather random one. Any thoughts how I can make AN treat the newly distributed instances as a separate group of objects to apply color animations to.
Thank you in advance.
Attached are the screens of node network and objects in the viewport:

To make a deep copy of the meshes for each instance, get the meshes from the objects and write them to the instances using the Mesh Object Output node as follows:


Object disappears when trying to set origin to geometry Im trying to get the cursor to the selected object. The Cursor wont move to the selected object.
I tried resetting with all transformations, and tried origin to geometry, but my object disappears
and I get some dimensions and some type of code in the location boxes.

It crashes for me as well.
However:
If you go into edit mode and select all vertices via Box Select (don't use A), then press Ctrl + I to invert the selection, you'll see that there is at least one vertex at an undefined position (nan = not a number). If you delete that, everything is back to normal.


Fixing subdivision+crease troubles How to fix that? I've tried to use crease, but it didn't work. Using bevel doesn't help too, but i've checked the normals orientation and it is absolutely ok!

As far as I can deduce, Blender is just about following Pixar's creasing rules, so there's one more to add to moonboots' magnificent collection:

keep your original topology, but crease the diagonals as well.


How are vertex indices determined? How does the program decide what indices to assign to vertices? If you create a primitive, are the indices generated randomly, or by some base primitive setting? If you extrude new vertices, will they be the next number in sequence?

What happens when you join two objects together that have the same indices used? Which points get reassigned, and by what logic? Can anything be done to control which get re-assigned?

Are there any ways to recalculate, re-assign, or copy vertex indices?

How does the program decide what indices to assign to vertices?

new vertexes are appended to the end of the vertex list
duplicating vertexes adds them also to the end and their order is maintained
.. list too long..

It would be very time consuming to analyze every mesh operation/modifier and how it handles vertex indices and make a list for you (it will be like the above though in most cases if not in all). Instead you can reverse engineer this yourself:

Type bpy.app.debug = True into the Python Console

This will enable super top secret mode with next option available in Properties panel:

Now you can see the indices and how they change for what you are interested in:

  Can anything be done to control which get re-assigned?

Nope, blender handles it internally.

  Are there any ways to recalculate, re-assign, or copy vertex indices?

Sure, with python you can do anything to meshes, you can reorder the vertices. Just by building a new mesh with different vertex order from old one and then switching them.


SVG Curve Incorrectly Rendered It should be noted that this question poses a similar issue to some other questions on SE, but (the ones that I saw) were caused by massively large scaling factors, which (as far as I can tell) isn't the source of this issue.

I'm trying to import this svg into blender so that I can extrude it afterwards. All I can manage to get is this result:

I'm very new to blender, so I don't know what the issue could be. All I did to get this was create a new scene, import the svg, and zoom/move the view to make it visible.

As well, I have uploaded (and publicly shared, of course) the .blend file for those who are interested.

You have overlapping curves.

Your choices vary depending on what the element is supposed to look like:

Edit your SVG file with a vector graphics editing program and make the different elements into separate paths.
On the imported SVG separate the elements:
Select one of the control points on the curve and press CtrlL to select the linked segment:

Then press P to separate it into a new object.


Armature: Bones deforming mesh objects in GLTF viewer Hello fellow BlendMasters!

I am trying to make a simple sliding door animation for my GLTF viewer and keep running into this problem:

When i parent my objects (doors) with the separate bones (ctrl + p > Bone) in blender it all looks good, but if i export this scene to GLTF format and look at it in GLTF viewer - doors are misplaced. Misplacing happens even when there are no animations nor actions made.

My blender file looks like that:

This is what i get in gltf viewer:

My final intention is to separatelly start animations of the both doors.

imgur album:
https://imgur.com/a/slVP6o2

What am i doing wrong? Maybe it is not the right way to do this? In my final file there will be more doors like that, which i want to control individually.

My Blender sample file:

As i found out from glTF Blender Exporter github issue thread, this is exporters problem.
Workaround to this is:

  ...to create joints and weights for this mesh and give full weight to
  the bone it is assigned to.

That worked for me, so i hope it will help someone like me in the future.


Tapering Textures with Nodes I am still trying to get the hang of nodes and am wanting to do something a bit more complicated than I know how to do.

I have 2 wave textures, one with a thick line, and one with a thin line. I am trying to transition from one to the other - hoping that the thick line would be closer to the edge, and the thinner would be further in.

Is there a way to transition from one to the other? I thought using a mix shader with a gradient as the factor would do the trick, but it is only transitioning the opacity. not the thickness...

does anybody have any other recommendations on how i could do this?

I'm not quite sure if this is what you're looking for, but one way would be to take your waves (top), and a Gradient texture (middle), mix the two, and put the mix through a threshold (bottom).

This is object space, so 0 is at the center, and the gradient is made symmetrical by mapping it with the absolute value of the of the texture space.(only X matters, here).

The mapping nodes just line things up as shown in the illustration.

Further to your comment, the above example is, in principle, halftoning. To get it to work as it does in your reference, rather than using a gradient, in EEVEE, you can use the actual light-response of a surface by using the Shader to RGB node.

In an effort to get somewhere near your reference, I've tried a couple of extra things:

The texture space

So the image would work more as if it was printed or drawn, I thought the hatching texture shouldn't change size with distance. The 'Window' texture space does this, but is scaled in proportion to the rectangle that contains it.. so this cluster flattens the space of a perspective camera instead. The top planes are textured in Camera space, the bottom ones in the space corrected as shown. That becomes the little group: 'Screen Space'.

The hatching..

.. has taken your wave texture, given it a bit of a wobble, and tried to break it up a bit with some Voronoi noise. Judging by the aliasing in your reference, the jigs, jags, and missing strokes, I think the hatching there was probably hand-drawn, and that's maybe the best way. I had fun knocking out the odd stroke and messing with the texture space to imitate it procedurally, but the tree was getting too big... it's really a different question. This cluster became the 'Broken Hatch' group.

So now, by mixing two copies the hatching, rotated at different angles, with the output of 'Shader to RGB', and putting through thresholds as shown above, you can half-tone Suzanne. The Mix factors and the Color Ramps give you not-too-twitchy control over the look.

If you're after AO, bear in mind that it can be wound up to more than 1 in EEVEE.

I don't know, this is not as tasty as your reference, it looks too procedural. But I'm sure you could take it from here.


Script to replace all materials linked to the a given texture New to Python / blender API here. Here is the process I'm attempting to script after having manually selected a material from the active object:

identify texture
find all other materials in scene using that same texture
replace with selected material.

update : found the solution, problem was about the API changes in Blender 2.8.

(original issue) I'm stuck at step 1: I can't find a way to tell the API: "please get me a pointer to the active material's texture".

Is this possible?

Thanks in advance,

Ok, the following script does a bit more. See comments - disable "renameUVMaps" if you don't plan to join the meshes. Useful to rename the UV of identical textures so that mapping data is kept active.

import bpy

# Options
renameUVMaps = 1

# 1. Get the "active texture name"
activeObject = bpy.context.object
activeUVMap = activeObject.data.uv_layers[0]
activeMaterial = activeObject.active_material
activeTexture = activeMaterial.node_tree.nodes["Image Texture"]
targetImageFilename = activeTexture.image.name

print('Material %(materialName)s will now replace materials using texture %(textureName)s' % { 'textureName' : targetImageFilename, 'materialName' : activeMaterial.name})

# 2. Loop through scene objects and replace materials with the selected one (when the texture file name matches)
for obj in bpy.context.scene.objects :

    # 2.1 Re-assign material
    for slot in obj.material_slots :

        thatMaterial = slot.material
        thatTexture = thatMaterial.node_tree.nodes["Image Texture"]
        thatImageFilename = thatTexture.image.name

        if targetImageFilename == thatImageFilename :

            if activeMaterial != thatMaterial :
                print('Obj %(objName)s -> replacing %(materialName)s in slot' % { 'objName' : obj.name, 'materialName' : thatMaterial.name })
                slot.material = activeMaterial

            # 2.2 Rename UV Maps for joining
            if renameUVMaps == 1 :
                if hasattr(obj.data, 'uv_layers'):
                    layers = obj.data.uv_layers
                    layerCount = len(layers)

                    if layerCount > 1 :
                        print('!!! Obj %(objName)s -> has more than 1 UV layer' % { 'objName' : obj.name })

                    if layerCount == 1 :
                        uvLayer = layers[0]
                        if uvLayer.name != activeUVMap.name :
                            print('Obj %(objName)s -> renaming UV layer to %(targetUVMapName)s (was %(previousName)s)' % { 'objName' : obj.name, 'targetUVMapName' : activeUVMap.name, 'previousName' : uvLayer.name })
                            uvLayer.name = activeUVMap.name

print('Done.')


Weird problems when I extrude or try to shape vertices So I start with a normal cube > I Extrude and it doesn't work right ( Grey faces and missing faces ) I try to move a face/vertices with G and right click but it selects some sort of ghost vertices. Help I can't solve this and it's making me want to give up Blender. I tried looking for solutions but it seems like it's a bug.

It doesn't look like a bug to me. There are 3 types of selection modes in blender; Vertex, Edge and Face. You have to select them according to your requirements. If you select any of them and press 'E' to extrude, it extrudes along the normals by default. If you want, you can constrain your extrusion to a specific axis by pressing 'E' to extrude and then X, Y or Z for x, y and z axis respectively.

The second problem you mentioned is shading problem according to me. After you've finished your extrusion and modelling, select the whole mesh in edit mode by pressing 'A' key and then recalculate the normals.


How can I get rotation in the X and Y Axis in object mode? When I try to rotate an object in object mode,
It rotates only in the Z axis.
This axis seems to be a constrained axis.

How can I get rotation in the X and Y Axis in object mode?

Thank you.

Shift+Z after entering rotation mode will bound the rotation to only the x and y axis.
In general, Shift+axis letter will bind the translation to all axes apart from the chosen axis.


How can i make the cloth fold How can i make the cloth fold and the wrinkles on it. I tried this.

But i want to achieve this

I do not want to animate this cloth. Just to similar how can i achieve the fold and wrinkles and the way look natural. Any suggestion or help. Thanks

In order to create such a 'folded' structure using the physics cloth simulation, there are two things you need : sufficient detail to your cloth mesh and sufficient 'spare' cloth to allow it to arrange itself into folds.

Without sufficient detail in your cloth you will old get coarse folds - there just isn't the geometry to create anything else. However, bear in mind that the more detail you add to your cloth mesh, the longer it will take to simulate. In my case I used the following heavily subdivided mesh as a base :

In order to create the 'spare' cloth you need to create it 'spread out' and then manipulate it to draw it together. This will naturally create 'folds' as there will no longer be sufficient space for the cloth - similar to when a real curtain is bunched togther. In order to achieve this you can 'pin' the sections of the cloth you want to manipulate and then use Shape Keys to manipulate them, leaving the rest of the cloth to behave as per the simulation.

Start by selecting all the 'top-edge' vertices. Create a new Vertex Group and 'Assign' the selected vertices to that group. Name the group 'Pin'.

In the cloth simulation, set 'Pin' as the group to use for Pinning.

Similarly, select the vertices at the bottom of the cloth that you want to manipulate, create another group named 'Hook' and 'Assign' the vertices to that group. Also assign them to the 'Pin' group (very important!!). The 'Hook' group can be used to conveniently locate your vertices, while the 'Pin' group tells Blender which vertices are being controlled independently of the simulation.

Next, add some shape keys - the first one is the 'Basis' key (the one all the others are based on). Add another shape key (Key 1) - this will affect the top edge. While Key 1 is selected, select the top row of vertices and scale them down to a point (S0Return). Now, adjusting the strength of Key 1 will draw the top vertices together.

It's also helpful to sepearately select the 'Hook' vertices (while still having Key 1 enabled) and also scale those to a point. In this way, as we use Key 1 to draw the curtain together the hook points will stay below the same point in the curtain.

Add another shape key (Key 2). Whilst it's selected, move the 'Hook' vertices to their desired location for raising the bottom edges (bring them forward slightly and 'up').

Now you can simply run the simulation while manipulating the Shape Key strengths. This should have an effect similar to the following :

Once you're happy with the motion, you can enable 'Self Collision' of the cloth simulation to ensure the folds behave consistently and don't intersect. However, note that this will considerably increase the time required to run the simulation.


Can a group of nodes be saved? If I have a material that needs to have a dozen nodes or so attached to it and I hit + in the materials panel the material duplicates but not the nodes.

Is there a way to migrate nodes and their connections from one material to another?

Use shift-right-click to multi-select nodes, or B to border-select a group of nodes and their connections.  Ctrl-C and Ctrl-V (or platform equivalent) will copy and paste nodes across materials.

NOTE: After pasting some nodes, try moving the nodes around with the mouse.  Blender has a bad habit of pasting node copies exactly on top of existing nodes, and it becomes almost impossible to see that anything has changed.  Slide the new nodes away to reveal old nodes underneath.

Also, consider using Node Groups to avoid having a bunch of duplicated nodes. This way, you can fix problems in a complex node structure and have the fixes apply to multiple materials at once.

A node group can have inputs for customizing in different ways, to make nodes more re-usable in different materials.  You can create a node group just by multi-selecting the nodes and picking Make group or Ctrl-G. Then, get in and out of the node group editor with the Tab key. Finally, you can add references to your node group from other materials, with Add -> Group -> {GroupName}.


Grease Pencil primitive/shape tools do not function First and foremost, I am on 64bit Windows 10, V1909, Build 18363.1440
My current blender installation is 64bit 2.92.0, fresh from blender.org
When I click on the primitives while in Grease Pencil's Draw view, they do not activate. When hovered over, it says they're throwing an Internal Error,
In the Info view, that error appears to be:
Python: get_rna_type("gpencil.primitive") not found
location: <unkown location>:-1

In the system console, it appears to be:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Program Files\Blender Foundation\Blender 2.92\2.92\scripts\startup\bl_ui\space_toolsystem_common.py", line 1090, in description_from_id
    return tip_(_bpy.ops.get_rna_type(operator).description)
KeyError: 'get_rna_type("gpencil.primitive") not found'
Python: get_rna_type("gpencil.primitive") not found
location: <unknown location>:-1

Each of the 6 primitives (line, polyline, arc, curve, box, circle) throw this error when hovered over.
No error is thrown when selecting or using the tools.
All errors are from a new file in 2.92.0
This has been happening since I installed 2.80, so I imagine this is a problem with my PC or installation, but I don't know what could be causing it. It did not occur prior to installing 2.80 - but that was very long ago at this point.
I've tried:

using a clean installation of 2.78, 2.79, 2.80, 2.82, 2.83, 2.90, 2.91, 2.92
repairing existing installations of 2.82, 2.90 and 2.92 via the installer
manually replacing ops.gpencil.primitive files with the files available on github

It hasn't bothered me before, so I've never looked into it, but now that I am doing my own concept sketches, I sorely miss the circle tool.
If anyone has an idea on what I could do to repair this issue, I would greatly appreciate the help.

After some messing about, I deleted my user preferences to find that it solved the issue.
Unsatisfied with this catch-all fix, I endeavored to find out why, and went through each setting, enabling and disabling it to see its effect.
It turns out that my keymap, being the same keymap I've been using for, perhaps years, still being retained through to 2.92, somewhat customized, caused the issue.
I do not know why, or how, but not using it seems to fix the issue entirely.
Perhaps there are some formatting issues, as clearly my old keymap file does not load the same Preferences menu that the new default ones do.
It also seems that it doesn't know what about itself has been changed, as it marks parts of the keymap as being able to be restored, when I did not change those parts. Perhaps the keymap is corrupted.
I have no idea how the keymap having problems would affect the ability of the tools to function, but apparently it does.


Faces will not Merge/join I seem to be having a problem joining these 2 faces together on the letter A. This is not created using the text feature in blender, but an imported SVG file. I have limited dissolved the mesh to get to where I am now but I can't figure out how to merge these 2 together. Image attached. Any help is greatly appreciated!

Try to work with quads, it will help for the operations like inset, bevel or add edge loops, at the end if you need to smooth with a Subdivision Surface, just add some edge loops to sharp the edges:


EEVEE rendering materials don't work I'm new to Blender and I was getting hooked on this program. I was working on a project using the viewport shading set to Rendered with the EEVEE render engine because I don't have a very powerful graphics solution. However, last days, the materials on this project didn't appear in viewport shading, or even in the final render. All the previews of the materials have become completely transparent.
I thought it was just the damaged project, but unfortunately this problem occurred on all old and new projects. I leave some images and a file as examples. Opening the file on my friend's computer, the materials work (EEVEE), but I can't work on his machine. One more thing, using Cycles the materials work, but using EEVEE they don't work. Unfortunately I can't work using Cycles, it takes too much time and sometimes blender crashes.
I tried looking online for solutions to problem like mine or who had a similar experience and I have already tried to apply their various solutions, but none of these solve my problem:

Texture not visible in material preview
Viewport render image does not work correctly
Can't see material on my object
viewport-render-not-working

The last topic I didn't understand what should happen if I press Ctrl + Alt + B? Under the View menu, I didn't find View Borders, but using the blender command search I found Clear Render Border, I tried to activate the command but it didn't work.
I also tried reinstalling Blender, but it doesn't seem to work and it even remembered my personal configurations!
I also tried installing add-ons to try to find an alternative to the EEVEE engine (Radeon pro render [rpr], EEVEE-Preset) but no one of them are for me or repair the EEVEE engine.
If you find this information useful to solve my problem as computer I have a

Ryzen 5 2600 processor,
Radeon Rx 580 4 GB graphics card
16 GB of RAM.

Just a clarification, I use Blender 2.90.1, can someone tells me a way to restore the correct functioning of EEVEE materials?
Unfortunately I no longer know where to turn and I'm crazy to see all my projects be transparent.

file di esempio test_box.blend

After doing some research, it's seems to be some kind of problem with the newer AMD drivers (I have the same graphic card as you do). You can try to downgrade your RX drivers or wait for the developers to fix this bug.


I Want to Access Walk Mode in Texture Paint Mode With Shift + F Currently if i press shift + f in texture paint mode it gives me the brush strength scaler. It works fine in object and edit mode. What options do i have?

Using the Spacebar menu > Walk Naviation (you have to use type search, see more here) will do the trick. There is currently no shortcut for this in texture mode.

If you want to add or override a shortcut for it, we can do this in the user preferences, File>User Preferences or Ctrl-Alt-U.

(Note: Opening up a new instance of blender is a good idea if you don't want to mess up you startup file)

Go into the input tab. Tab into 3D view and then into image paint. Next look for the shortcut you want to override, if it is not there, use add new.

Fill out the above form with the infromtaion, be sure to enter view3d.navigate into the little text box.


Restore Object Creation Dialog When adding a new object in object-mode a dialog with settings pops up. I know it is possible to bring that dialog back, but can't remember how?

As already pointed by batFINGER, the correct answer is F9.
Also, remember that you can only do this until you haven't made any other changes to the mesh itself.
Also, the undo system which was very buggy between 2.8-2.81/2 .. is now fixed and rewritten from scratch. So you won't have problems in doing undo, just saying since a lot of people hated to do undo because of that.


Making a precision pipe with 30 deg bends I have tried to follow other answers to similar questions posted with no success. I'm using Blender 2.83.  I am trying to create an adapter for my miter saw for dust collection, which I will be 3D printing. So I need specific dimension for my model which also cannot use shading or smoothing as they do not translate to the 3D slicer .stl file I will be exporting.
I need a pipe with the following (all measurements are in mm):

Radius of pipe is 29.2142mm
Both ends must have a straight section for 20mm
It must have two 30 deg angles so the adapter will offset around the motor on the saw as shown in the picture
The pipe should have 100 vertices when created to make the circle as round/smooth as possible (I was not sure how to set this using the Bezier Circle and Curve method for creating the pipe).  This is where shading and smoothing would not work.

Would appreciate step by step help anyone will provide.

To create a precision model suitable for 3D printing here is how I finally solved the puzzle that enabled me to enter the exact dimensions and angles needed for the part. If you know all the key strokes, you only need to read the first sentence in each item. The remainder are just step by step keystrokes for those not familiar with navigating around Blender

Add mesh cylinder – and set the following

A)   Vertices = 100 B)   Radius = 29.2142
C)   Depth = 60 mm
D)  Fill Type    = Nothing
E)   After other setting
are made scale it.
Ctrl + A > Scale

Add 30 loop cuts (one for each degree) for bending the pipe as follows

A)    Tab into edit mode
B)    Ctrl + R, Left Click, Right Click
C)    Enter 30 in Number of Cuts

Add Solidify modifier to cylinder wall

A)    Switch to top view press Numpad 7
B)    Click the modify tab “wrench icon”
C)    Click Add Modifier and select Solidify
D)    Change Thickness to 1.63mm
E)    Check Even Thickness and High Quality Normals (note - picture does not show these two checked, but it is needed to make both inside and outside walls even)
F)    To add to inside wall leave offset at -1. To add to outside wall change to 1
G)  Click Apply

Add an empty to use as an axis point for bending the pipe

A)    Shift + A – add empty, use type with arrows easier to see orientation of empty.
B)    Scale it up a bit so it is easier to see
C)    Move it on the Y axis about 40 mm
D)    Both the cylinder origin and the empty should be on the Y baseline

Add Simple Deform modifier to cylinder

A)    Select cylinder
B)    Click Add Modifier and select Simple Deform
C)    Select Bend
D)    In Axis, Origin select the empty you added in step 4
E)    Change angle to 30 degrees
F)    Click Apply (Important for the next step)

Change origin of pipe to the bottom

A)    Tab into edit mode
B)    Change to Edge Select mode
C)    Select either inner or outer bottom edge. Hold cursor over edge and press Shift + Alt to select the complete circle
D)    Move cursor to selected by pressing Shift + S and choose Cursor to Selected
E)    Tab into object mode
F)    Click Object and select Set Origin / Origin to 3D Cursor
G)    Move cursor to World Origin, Shift + S to World Origin
H)    Then move pipe to 3D Cursor, Shift + S Selection to Cursor

Set pipe flat on base line

A)    Change view to Right Orthographic view by clicking numpad 3 pad
B)    Turn on Snapping, make sure Increment is selected and the magnet icon is highlighted. Or with cursor in viewport open the property settings menu and type N
C)    Rotate the pipe on the X axis -15 deg.  Either typing -15 in Rotation X or in the viewport, type R then rotate pipe with mouse until it snaps to the y axis

Extrude top faces of pipe 20mm

A)    Tab to Edit mode
B)    Change view to solid mode
C)    Select Face mode
D)    With cursor over a top face select all with Shift-Click
E)    With top faces selected type E to extrude and 20 for 20mm

Duplicate pipe and rotate

A)    Tab to object mode
B)    Change to wireframe and X-ray mode
C)    Switch to Right Orthographic view, click Numpad 3
D)    Duplicate pipe with Shit+D and Enter
E)    The new pipe needs to be rotated 180 deg on X axis, BUT it is already sitting at a -15 deg angle. You can either enter -195 in the items property settings or with snap to grid still activated hold down Ctrl while rotating pipe with mouse until it snaps in place so both pipe sections match up exactly.

Prepare both pipes to be joined into one object by removing bottom faces from both pipes before joining

Switch to solid mode

Press H to hide bottom pipe temporarily

Select top pipe and Tab into edit mode

Select bottom faces as described earlier

Press X and select Delete Faces

Tab back into Object mode

Press Alt+H to reveal bottom pipe

Make sure only the top pipe is selected press H to hide

Then repeat these steps for the bottom pipe for the edge that will be joined to the top pipe

Next join both pipes with a simple Join Ctrl+J

A)    Switch to wireframe and X-ray mode
B)    Select both pipes
C)    Click Ctrl+J to join the two pipes.

Verify the final pipe can be 3D printed. This can most easily be done if the 3D-Print add-on has been installed in preferences. The main thing is the final object cannot have non-manifolded edges.  But since The posted questions really does not speak to this issue, I will not cover it in detail other than to say since the final object has to be printed, the dimensions have to be accurate or else the part would be useless


Strange shading after running python script I've written a pretty complicated script which chops up, joins and transforms parts of 1 giant 'world' mesh for better handling in a game engine.

It all works as I'd expect, except for one thing...

Some operations cause strange dark shading to appear on parts of the mesh:

But when I go into edit mode... they disappear! Very odd.
There are other examples of weird shading after running my script, which also disappear upon entering edit mode.
If I export the mesh before entering edit mode, the problematic shading is exported as is.

Unfortunately, this method of toggling in and out of editmode just doesn't work for my purpose. The script mentioned above runs a secondary instance of blender in background mode, and for some reason this solution doesn't work when blender is running in background mode.

I've tried calling Mesh.update, Mesh.calc_normals, Mesh.validate, Scene.update, or regenerating the mesh with a bmesh. Nothing makes the slightest bit of difference.

Any ideas how to fix this besides the editmode toggle trick (which unfortunately doesn't work in my particular setup)

Here's a copy so you can see for yourself.

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

The "lines" are where you have duplicate vertices where you have re-joined your mesh. You can see a slight variation if you enable vertex normal display.

The solution is to remove doubles in python or manually with W->Remove Doubles.

bmesh.ops.remove_doubles(bm, verts=bm.verts, dist=0.02)


How to create a list containing lists of bm.verts based on their deform layer (vertex group)? I have been struggling with trying to find a way to do this. It's related to my previous efforts here:
How to get list of bm.verts that belong to a deform layer?
When I do this

for vert in bm.verts:
        dvert = vert[layer_deform]

I get a dictionary of deform layer numbers (keys) and weights (values) per bm.vert. What I'd like to achieve is a list containing lists of verts, based on their deform layer (vertex group) number. So it should look something like this:

vertex_lists = [[<BMVert(0x000002A7818090B0), index=12>, <BMVert(0x000002A7818090E8), index=13>], [<BMVert(0x000002A7818090B0), index=15>, <BMVert(0x000002A7818090E8), index=20>], [<BMVert(0x000002A7818090B0), index=44>, <BMVert(0x000002A7818090E8), index=24>]]

I'd like to achieve this in order to automate further bmesh.ops. I am guessing I need to find a way to iterate over bm.verts and append them to a list based on their layer deform key (vertex group number). How do I group the verts into separate lists based on their respective layer_deform numbers?

Code below creates a dictionary of vertex, weight pairs for each vg.  The defaultdict is great for this, as can set the default item to an empty list and append directly on key (in this case vg name)

import bpy
import bmesh
from collections import defaultdict
ob = bpy.context.edit_object
me = ob.data
names = tuple(vg.name for vg in ob.vertex_groups)
bm = bmesh.from_edit_mesh(me)
layer_deform = bm.verts.layers.deform.active
if layer_deform:
    vgs = defaultdict(list)
    for v in bm.verts:
        for vg_index, weight in v[layer_deform].items():
            name = names[vg_index]
            vgs[name].append((v, weight))

    for k, v in vgs.items():
        print(k, v)

sample output

Group [(<BMVert(0x7f99f0325010), index=0>, 1.0), (<BMVert(0x7f99f0325048), index=1>, 1.0), (<BMVert(0x7f99f0325080), index=2>, 1.0), (<BMVert(0x7f99f03250b8), index=3>, 1.0), (<BMVert(0x7f99f03250f0), index=4>, 1.0), (<BMVert(0x7f99f0325128), index=5>, 1.0), (<BMVert(0x7f99f0325160), index=6>, 1.0)]
Group.001 [(<BMVert(0x7f99f03250f0), index=4>, 1.0), (<BMVert(0x7f99f0325160), index=6>, 1.0)]
Group.002 [(<BMVert(0x7f99f0325128), index=5>, 1.0), (<BMVert(0x7f99f0325198), index=7>, 0.4263862371444702)]

can access with

for v, w in vgs[vg.name]:
    print("vertex", v.index, "has weight", w)

for a list of lists as requested in question, define array for length of vgs

vgs = [[]] * len(ob.vertex_groups) # create a list for each vg

then populate with

for vg_index in v[layer_deform].keys():
    vgs[vg_index].append(v)

Related: Accessing weights of a bmesh


Why is a. Volume shader not working along with a glass BSDF shader? I recently saw this video on youtube by Midge Sinnaeve. I think there was a lot to learn from there so just after finishing it I opened Blender and I tried to recreate what he was doing on min 54:30.
Thing is, my glass shader doesnt look like the one in the video at all. Before I add the volume shader everything is ok, I can see the reflexions on the surface, but, when I create a volume Suzane under the glass I can't see anything new. If I take the glass off I can see the volume monkey so I don't think the problem has anything to do with this one.
I attach photos so you can see what I mean.
This is what it should look like.

This is what mine is looking like.
I've already done it a couple times so the node configuration should be alright
Solution: Make sure you set the max bounces for volumes (inside Render Tab > Light Paths) to more than 0.

There are two suzannes in the scene;
One has a  simple glass shader with a solidify modifier and is the "outer suzanne" as I'll call it.
The second is inside the first and has a volumetric material (the tree I used is below). Midge added a displace modifier to this one to shrink it .
Suzanne 1 (Outer) should look as so with the solidify:

Modifier stack will be as follows:

Suzanne 2 (Inner) should be as shown below, just slightly smaller than the outer suzanne to avoid any intersections that will cause shading issues will the glass material:

modifiers for inner suzanne are as follows:

This is the volumetric material I used:

Click to enlarge
The result is about as below, but any volumetric material could be used:


Mantaflow. The liquid just doesn't respect the collision object Mantaflow. The liquid just doesn't want to properly respect the collision object. I've watched countless tutorials and still can't get it right.

Google drive link

I agree this seems to be some bug and have seen several posts.   One suggested solution was to use a Surface Thickness equal to the volume of the collision object.   However, Thickness is defined in the docs as an ADDITIONAL dimension beyond the mesh.  When I play with Thickness, it works but has to be a minimum of 0.5 and has a deleterious effect on the liquid boundaries as you'll see here:

I dread to suggestion a solution where a duplicate, hidden collision object that is some 0.5 (what is the translation to units?!!) larger than the visible collision object.
Perhaps another (degenerate) solution is to set "Is Planer" if the collision object is simple or if you break up the collision object into sub-objects. This appears to work.

So until others can be helpful in assisting with a solution (or admission of a bug), then perhaps there is something useful here.


Boolean modifier in game engine How can I use the boolean modifier in GE?  When I hit play, both meshes are shown.

There is any way to do that? Or can I automatically apply the modifier before start GE?

In 2.71 the boolean modifier works in the game engine.
The limitations are that the modifier is static, the way the booleaned object looks at the start of the game is how it is going to stay. You can for example rotate the base object (the object with the boolean modifer) and it will rotate properly, with all booleaned intersection moving properly. However if one of the target objects (objects used as the object to target in the modifier) is moved, it will not change the mesh at all.

If both objects are showing, it may be that both objects are in the game. Move the target objects to a different layer that is not in the game.


Why is my texture actilng like a color? I'm pretty new to blender, and i wanted to try to render something pretty simple, so i made a house. But the problem is, that when i try to apply my seamless texture to roof, it is showing/acting like color. I really don't know why, because the texture is ok.
I have tried to figure it out using nodes, but i didn't came up with a solution...

You have to connect your UV Data to the Vector Input of your Texture Node:

Use Shifft+A > Input > UV Map to specify your UV Map or use Generated of the Texture Coordinate Node if you don't want to unwrap your Object.


follow path, CTRL P, not work I am trying to do a "follow path" but when I go to the: CtrlP. That option doesn't show up.
I look the center of the objects and them are equal.

Also, I tried to link the object in the "follow path" but I can't select the curve.

My version is: v2.78

You chose circle from the mesh category. on the left side (or using Shift-A in the scene window) go to create and then to curve and now the select circle.(The function of this circle is different from the one you choose from mesh category)


How do I make a shape key for blink into wink? I just spent a lot of time making my character blink forgetting that I should have done only one eye and then mirror it.

Do I have to start over or is there a trick to make only one eye blink?

Follow the steps below.

In the part where I go into edit mode, the vertices were already selected, but you may have to go into Wireframe view to select the overlapping vertices before doing Blend from Shape

Also notice in the command list under Shape Keys there is a Mirror Shape Key. You could redo the same steps for wink.L and mirror it instead of Blend from Shape to create wink.R


Update Sverchok Tree on Frame Change I'm using the Current Frame output from the Frame Info node to create random parameters on each frame. Everything works as expected but if I change the frame to create new values I have to manually update the nodetree.
Is there a way of auto-updating the tree on frame changes (like for example in Animation nodes)?
Animate layout and Process layout are both checked in the Treepanel.

there is maybe reason you offed in prefs:


Add object of certain size I am trying to add a cubed object of certain dimensions instead of the default cube. I have looked over the documentation and can't see a way to do this.

To clarify. I'm looking for a 3D program that acts like CAD in that if I want to add an object in SI units I can. Eg 10mm x 25mm x 12.5mm. Or I want to change an object created by someone else. Scale does me no good if I don't have reference to the current size and units, and I'm not sure why anyone would want or need to do all that work when the rest of the world understands units.

Use the operator size after you add a mesh in Blender 2.79

Blender 2.79b

Use the operator size after you add a mesh in Blender 2.79 in the Add Cube panel

Blender 2.81


Can't get power button symbol right. Need help cutting letter 'O' and filling gaps I'm having trouble making a 3d power button symbol. I want it to look similar to this one. Here is the .blend file I'm working with, if this helps anyone understand what I'm trying to do.
Using the cuboid that's over the letter 'o', I can cut out the portion of the letter 'o' that the cuboid occupies, however, the remaining ends of the letter 'o' are left open.
I can't find a way to fill the ends, and preferably round the ends. If anyone can show me how to do this, that would be a great help!

Here is how you can create a power button:

Add a circle.
Enter edit mode.
Selected it(A) and extrude + scale it inwards.
Delete(X->Faces) some of the at the top of the circle as such:

Add a plane into the scene.
scale the plane so that it takes the shape of the line:

Select All(A), and extrude it upwards until your power button is as thick as you want it.
To add rounded edges: select the line, as well as the faces on the inside of the cut. also select the rings(Shift-Alt) that make up the edges of the '0'.
With all those vertices selected hit Ctrl-B. Use the scroll wheel to control the amount of cuts(I'd recommend 4).
Select all and hit W->Shade Smooth.
Rotate it on the Y axis to 90 degrees (RY90) .

Done!


Diffierence between Texture Atlas and Megatexture I would like to know if I create more than 2 texture atlantes, can this be  considered as a Megatextures or are they just 3,4,5 texture atlantes.  I think Megatextures are for modular buildings with terrains or tiled textures, right?

Overview

Texture Atlantes and Megatextures might share some similarities but they involve different technologies.

TL;DR: Megatextures and Texture Atlantes are not the same.

Texture Atlas

A texture atlas describes the method of packing several (many) textures of several objects into one big texture. Every object occupies its own texture space on the UV map of this texture atlas.

Megatextures

Megatextures (by the original definition of John Carmack, id Software) are not only huge textures, they also involve a different technology in the game graphics engine and normally are used exclusively for terrain.

Technology

Most game graphics engines use tiling texture chunks to cover the terrain, which might look good from a close range, but (depending on the texture quality) often breaks the illusion when viewed from a distance.

Conventional texturing is quite easy to implement. Besides the already existing texturing techniques it additionally involves blending techniques between different terrain tiles.

A Megatexture due to its size (32000x320000 Pixels in Rage) is able to cover the whole terrain, thus will theoretically not repeat any pattern.

Megatexturing is quite demanding on the hardware and during production process as well.

There is no way that a Megatexture of the size that was used in id Software's Rage will fit in any existing graphics card RAM, so the engine must be capable of not only steaming terrain geometry but also streaming those parts of the Megatexture which are visible on screen. This requires not only optimized hard- and software but also a fast medium to stream from, otherwise you would have visible streaming errors during fast camera rotations.

On the production side you also need hard- and software that is capable of dealing with huge image sizes.

id Software's next step in the evolution of their id Tech engine is called Virtual Texturing, where the Megatexture not only cover the terrain but every single model in the game itself. The texture sizes can reach 128000×128000 pixel and more.


exporting eyes with gltf to unity I was trying to make eyes watching this tutorial
https://www.youtube.com/watch?v=gfEyhPXsOCM
but but when I exported the eyes to Unity as glTF
the eyes didn't have any textures to it it was just plain white
how do you export all the nodes to Unity at once?

glTF 2.0 has a specific PBR material model, for transfer to realtime rendering engines.  It cannot support arbitrary arrangements of Blender nodes, as for example a mobile phone wouldn't be able to handle realtime rendering of complex Blender nodes.  Instead, the glTF material definition has a strict number of fields, corresponding to a particular interpretation of physically-based materials.

The Blender Manual documents how to export materials to glTF.


Select vertex pattern (not checkered) I want to select a number of evenly spaced vertices from a mesh. I have tried Checker-Deselect (not been able to find settings that would do), and also made a vertex group first (with the highlighted vertices), and then subsurface modified to increase vertices in between. Problem is, the new vertices are also in the vertex group, so I can't select them.

Here is an image for reference of what I would like to achieve:

If a known mesh can use the index

If the mesh is created from a grid via the operator or a bmesh we know the order of the vertex indices, and how many rows and columns.

In the example in question it appears to be a 22 x 22 vertex grid.

For a default grid, as viewed from top, the bottom left hand corner is index 0, up to 21 along bottom row, 22 to 43 the next row up and so on.

Hence we can use these indices to select using div and mod.

Test script for 22 x 22 vert grid, selecting every fifth row, every third column, starting from row 2 column 4

import bpy
import bmesh

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

bm = bmesh.from_edit_mesh(me)

#example in question has 22 x 22 vert grid
rows = 22
cols = 22

# choose every 5 rows, 3 columns
r = 5
c = 3
# offset (eg make (2, 4) == (0, 0)
ro = 2
co = 4

for v in bm.verts:
    i = v.index
    row, col = i // cols + ro, i % rows + co
    v.select = not row % r and not col % c

bmesh.update_edit_mesh(me)

Note the order can be changed using sort.

For example to sort along x

bm.verts.sort(key=lamda v: v.co.x)

for a default aligned xy grid will order up the columns.


Animation issue in "Sniper Gun Reload" i am animating the one of the sniper gun "AWP SNIPER GUN" but the issue is that the reload has to be done with the right hand ,the right hand is attached to the gun means where the right hands goes ,the gun follows it,so how i can free this right arm ,i tried to remove the constraint"Child OF" but sniper position change any tips how this can be done

There's no single workaround for this sort of problem.  A lot depends on the parentage arrangement and complexity or otherwise of the reload animation.
If the hand is parented to the weapon (Child = hand) then there'd be little reason not to just animate the hand and clip, particularly if it's only a straight case of shoving it up into the housing.  You'd need to use at least a master parent to ensure the animations are local with respect to the character, weapon and other components.

If the reload animation is complex however you can still do this without removing the original parentage.
and that's what you're looking at in the video clip below...

A second and concurrent 'Virtual parent' is used here which forces the hand to follow the clip up into the holder.  Whilst unnecessary for a straight out 'shove', it was done this way for a demo.
Note - this would only be valid when the gun isn't bouncing around during the reload.  If it is, the primary parentage would certainly have to go and there are at least 4 ways you can do that.
Firstly to explain why the parent structure is important...
In both video clips the lower arm bones (wrists) are targeting empties that are acting as their respective handles with which to move them.  The handles are in fact Inverse Kinematics (rigging) targets for the hands.
Those two empties are in turn parented to the weapon, so it's the latter that drags the hands and arms about, not the other way round.
The weapon and character have their own master handles (parents) and these two again are parented to a common overall Master handle, the cube empty.
This keeps the whole thing together and importantly, all components will be locally related to each other.
-=============-
Method 1 - Concurrent Virtual parent -
For a simple shove as we have above, you wouldn't bother.  You'd simply animate the right hand to stay with the clip but if the clip's actions were more complex, some form of secondary parenting would make things easier.
The right hand's handle (empty) is parented outright to the gun.  When the reload is required the clip is animated on it's own and shoved up into the holder.  The clip becomes a virtual parent for the hand by simply copying it's keyframes axis for axis into the hand's handle. (it's empty)
The hand won't be relocated properly but those keyframes can be dragged
an --> axis at a time<-- up and down in the Graph editor to align the hand to the base of the clip.  (Select all in the editor and press G Y)
Once done the editor's handles can then be used to compensate for any drift (if any) between keyframes.
With the clip in place the hand can be returned to where it was before the load.
After that it's business as usual.
-=================-
Method 2 -  A 'Child of' Constraint -
This can indeed remove it's influence but there's a catch -
Some extra trickery is required to circumvent the hand's jump back to where it came from when the constraint's influence slider is wound back to zero.  Worse, the whole thing can come undone when further physics or a constraint is used on the weapon later.
Experience has taught me to stick to the straight out parentage function (CTL-P) unless specifically needing the advantages of the Child-of constraint.
-=============-
Method 3 -
This one is a little cumbersome but clean and dead stable. It would normally be considered when involved in a very large project.

Split the action between two or more Blend files.

The frames up to the reload would be handled in the first file, the reload itself in the 2nd which will have the right hand unparented, then with the reload complete, a third to continue on with the right hand parented as before.
Each file only renders out the frames necessary and all should be LOSSLESS video using the SAME CODEC.
All three videos can be joined up in the VSE.  The switch-overs are undetectable in vers 2.77

A little more detail -
At the frame where the load is to commence, Save the Blend file as it stands and also "save as" a new filename.
In the 2nd file, remove ALL of the hand's animations and constraints so you end up with a 'frozen' hand as it was in the first file at the exit frame.  This is less troublesome when using a straight out parentage. (CTL-P & ALT-P)
From there, animate the hand and clip as required for the load.  The hand can be directly parented to the clip if desired.
With the clip in place, and at the last frame plus a few, save that and a copy to a 3rd filename.
In the 3rd file restore the original hand parentage and continue on.
Obviously the frame where each file is to hand over to the next should be noted down.  You don't want any twitch or jump.
-==============-
Method 4, Baking -
Baking the hand's action will certainly remove the parentage including a 'Child-of' constraint, and without fuss. Be sure to tick all the bake panel's boxes and enter the correct frame range. (Open the "Object" menu in the window's header and select "Animation --> Bake")
All previous keyframes that are in that range will be replaced along with any constraints placed on the object.  Physics will have to be switched off manually, and it's two redundant strips left behind in the Dopesheet deleted.  If things go awry when played, save the file, exit Blender and reload to reset the physics cache.