How to change the default views of quad view?

Quad view can be unlocked and customized.
For blender 2.8
Select quad view.
(CTRLAltQ or select View > Area > Toggle Quad View
Open the properties panel on the right and unselect  "lock".

To customize the view move the mouse over to the quad you want to alter and make it whatever view you want.
In this case press CtrlNumpad 1 for back view. (and Numpad 5< to toggle ortho or perspective).

Note: Any changes on quad view are lost once you go back to single view: The next time you switch to quad view it will revert to the default configuration.

For older versions (2.7x) of blender
While on Quad view (CTRLAltQ) press N to show the Properties panel on the right side. In the Display tab uncheck the Lock box.

When you are satisfied you can lock the view again to prevent accidental changes.
To reverse the view on quad view. Hover over the view you want to change and press Numpad 9  to reverse the view. No need to press unlock


Assigning a keyboard shortcut to Accumulate button in Texture Paint Mode

In the first box type wm.context_toggle.

This will open up another box in the bottom, Context Attributes. Type:

"tool_settings.image_paint.brush.use_accumulate" to set the property you want to toggle.


I can't find the surface dropdown in the material tab

Just to illustrate Gorgious's comment.

Material options depend on the selected Render engine.
To get Displacement settings, you need to switch to Cycles.


If you're using the default addon that comes with Blender, this is why you have errors. It's outdated, you want to get and use befzz's updated importer, though it does have issues with bone names and animation on some models.


How to illuminate aircraft near lights on aircraft

The plane material is very light, very reflective and brightly lit.
You'll need to increase the light's strength to illuminate your plane.


How to [dynamically] pin soft body objects to another mesh?

In order to 'pin' certain vertices of a soft body in place, you can use the Soft Body Goal settings with a Vertex Group.

First select the vertices that you want to pin in Edit mode (Tab). Then add a new Vertex Group and click 'Assign' to assign them to the group. Rename the vertex group to something appropriate such as "Pin".

In the Soft Body Goal settings, set the Strength and Stiffness to high values (the closer to 1.0, the more the vertices will be attached in place to the vertices in the starting mesh that you have 'pinned'.

Only those vertices in the vertex group will be 'pinned' - the rest will continue to behave as Soft Body.

You can then either leave the original mesh in place (so it keeps those pinned vertices static) or Hook the vetices to another mesh so that they are pinned to that other mesh.


How to show more digits in blender when working at a small scale

In the Units section, select not only metric, but change the scale to .001 to work in milimiters instead of meters.

You should be able to work numerically in a very small scale then.

Doing operations using keyboard shortcuts works now at the scale you've set, meaning that if you want to move something 2mm in the X axis, for example, you'd press GX2

To make navigating and manipulation easier, remember to set the scale of the 3D viewport as well.


Knife Tool Limited Cut - Not Cutting All of Mesh/Edges

Since you said "trying to cut my mesh in half ", is using the knife tool mandatory? Maybe you already discarded them, but there are other (probably better) tools, like the bisect tool, or the boolean modifier.

Bisect tool: this allows you to create edges through the whole mesh by setting a "bisect" line, like this:

Start switching the 3D view in edit mode, and adjust view to allow you to "bisect" drawing on the 3D view, like:

After clicking on "bisect", draw a single line (eg) from top to bottom: after confirming the end point, the cut is already done!

Now your mesh has an edge that goes through all its geometry: you can use this dividing line as reference to delete all geometry (eg) to the right of it:

you'll get

Another way, as said, it using boolean difference, and since is a modifier, is also non-destructive (until you apply):

Create a big cube that contains all the part of the mesh that should be "cut" away from the mesh

Then select your mesh, and apply a "difference" boolean, with the big cube as target

Done! Your mesh is cut, but you can still change cube (and this cut) position. Note that the cut zone ill be "closed" by a side - you can get rid of this after, if needed.


How to display a text value in the 3dview that shows the value of the width in the bevel modifier while I'm changing it?

Finally did it, well it took some time but I got to forgot adding the answer.

blf.draw(font_id, str(context.active_object.modifiers["Bevel"].width))


Is it possible to edit the size of a Sun lamp in Blender 2.8


Fire & smoke not showing in render, but only in viewport

You turned off the domain's render visibility in the outliner.

Turn it back on.


Prevent overlaping loop cuts from merging

Most likely one of these two options is on:

Proportional editing, on left and the first edge loop is influenced when you move the second one

Auto merge vertices, on right and the vertices were actually merged when you moved the second one onto the first


Complex hierarchy - show selected object in outliner

It is already selected in the Outliner when you select an object in the viewport. You can press Numpad . to show active while you hover your mouse over the Outliner.


There is a pretty good explanation from Mikeycal Meyers.

It's about the "Refresh Sequencer" function and the MPEG Preseek option (set to its maximum of 50) in each video Strip Property. If this won't help you, try to use Proxies which take some time to be built, but they should not only improve your cutting workflow but eliminate your issue as well.


I suppose you did a Boolean cut. That gets the job done fast, but you'll have a hard time cleaning up the mesh after the fact. You would be better off by first cutting a hole in the cylinder with the Knife Tool, taking care that the topology is correct (quads only). Then select, inset and push the polygons that form the perimeter of the hole inside the cylinder. After that, select the edges surrounding the newly formed hole and bevel them. After you apply the Subdivision Surface Modifier you should have a decent looking mesh.


Blender is the wrong type of software for this. Of course software exists for solid modeling, typically CAD software or simulation software.

With Blender and similar software you define the outside shape of objects (mesh modeling). When it comes to cutting them apart and make them look as if they are filled you would use boolean operators (either directly or as modifier) that simulate filled objects. They calculate new outside faces to make it look as if the inside of the object is filled. Or you would create the geometry and the faces by hand.

So what you want is not possible with Blender. It depends highly on your specific goal if you need to switch the software or if it is better to adapt your process to Blender.


Blender executes the command line options in the over they are given, so Blender sees the command to render (-a) and then sets the command to set the output path (-o). This means the output path gets set after the render has happened.

You just need to swap the order of the commands so you have:

blender -b knob.blend -s 1 -e 2 -o //__targets/knob_#.png -a


Msgbus - How to subscribe to bpy.context.scene?

Subscribe to some event that signals scene change.
As with How to get an event when an object is selected?  find the code to change what you wish to notify.
In this case
Changing the scene
>>> C.window
<bpy_struct, Window at 0x7f842eee2f88>

>>> C.window.scene
bpy.data.scenes['Scene']

>>> C.window.scene = D.scenes['Scene.001']
>>>

so in this case will try subscribing to the "scene" property of the Window class.
_I am not aware of anywhere that changing foo.scenes.active sets the context scene.  For example there is no bpy.data.scenes.active.
Search for other msgbus examples for other subscription to try.  AFAIK it is still the case that you cannot get notification of the instance object, so it is garnered from context.
import bpy
from mathutils import Vector, Matrix

handle = object()

# Triggers when widow's scene is changed
subscribe_to = bpy.types.Window, "scene" #

def notify_test(context):
    print(context.scene.name)

bpy.msgbus.subscribe_rna(
    key=subscribe_to,
    owner=handle,
    args=(bpy.context,),
    notify=notify_test,
)

bpy.msgbus.publish_rna(key=subscribe_to)


I have input a reference image and it wont rotate. What do i do?

Press ">", than choose "median point". Make sure "only location" is not selected.


Merging vertices and other tools ignoring SubSurf in 2.80

The normals were flipped. Recalculating the normals using SHIFT+N fixes it.

Before

After


How to execute a method from the console

But it did not really execute.

Based on my understanding of Blender, an operator cannot be directly executed.
It should be called from Blender internal.

Try

bpy.ops.object.hello_world()

Where hello_world is the name you registered to Blender system using bl_idname.

More details if you are interested:

When a request of operator invoking is arrived, Blender internal(the source code looks like a factory) will create an Operator instance dynamically, and call your execute function there. You should not call it yourself IMO.

  but I wish to call a variable from an addon and use it in a different addon

In your case I think you may want to have some utility functions shared with other addons.
I suggest to write these utility functions as normal Python function and pass the context to it from your addons.


That is not possible. The Poly Mode of Grease Pencil drawing is for drawing polygons only. Hence no subdivision (or smoothing) will happen on those grease pencil strokes.


How to Properly Unwrap an Intermediate Mesh?

hello select some edges and mark seams like this, then uv wrap and select the conformal option, and it should appear like this...

your model with a uv grid should look like this:

Additionally you can turn on the stretching option there to check stretching issues...


"Legacy WGL is unable to select between OpenGL versions" error

I reported this as a bug (I actually asked the same question Warning! Legacy WGL is unable to select between different OpenGL versions) and this is what the blender developer site said:

"Your GPU is too old. You may be able to still use it if you update your drivers."

The bug report is available here.


Documentation for accessable object properties

The export and import scripts are indeed an excellent form of documentation.
There is a massive amount of documentation. This includes a quickstart and API overview. More importantly it has a good search box (warning: avoid including parenthesis when searching functions).
Interactively you can use the python console to investigate which properties are available on a given reference. It has a ctrl+space auto-complete (auto reveal).

in the console for instance

>>> obj = bpy.context.object   # the current active object
>>> obj = bpy.data.objects['Cube']   # object specified by name
>>> obj.

if you type obj. and hit ctrl+space you'll see all the attributes of the object at that level. This list is long, and you can scroll the sidebar

As you state me = obj.data, the me named variable is just a convention, it could be called whatever, but it's handy to stick to the convention.

obj.data.<ctrl+space> looks like

If you want to see information about the mesh you might do

# get coordinates of 1st vertex (index=0)
>>> obj.data.vertices[0].co

# indices that make up the first polygon in the mesh
>>> obj.data.polygons[0].vertices[:]

Note that the ctrl+space feature will show all attributes starting with the letter v if you do obj.data.v<ctrl+space> like this:

This becomes useful once you get a mental picture of the API, it can speed up navigation big time.


How do I setup an emission map for blender internal?

You should probably read mataii's answer first.  He brings up a good point and since watching a 10 minute video isn't something I wanted to do I did miss the point of the question a bit.

Several of the influence parameters for Blender Render(Internal) materials are only able to access the textures 4th component: the Alpha channel.

It would be nice if we could choose from (x,y,z,a) so that we could pack 4 masks into one texture and use that texture for Emission, Specular Intensity, Hardness, etc... but for now, if the influence uses a mask, that mask has to be in the alpha channel of a four component texture.

If you want your Emission mask to have color then also check off 'Color' :)
For the Emission mask, you had "RGB to Intensity" activated right below Blend->mix under the Influence section.  That causes the green to become blue so be sure to uncheck that.

The following image shows what happens when Emit is checked and there is no light in the scene.  The object becomes bright blue and there is no hint of the green blob.  That's because the Alpha channel for that image is pure white and this makes Emit 1.0 for every point on the model.

In the following image I have the Color Influence activated and set to 1.0 and the Emit influence set to 1.0 as well.

You can test the effect that an alpha mask has on Emission by going into Texture Paint mode and make sure that the Emission texture is selected. Now select Erase Alpha from the Blend menu.(If you use a pen tablet you should be able to skip that last step since the pen's eraser is supposed to automatically use Erase Alpha.  It does for me so if it doesn't for you that's a bug report.)

I believe a quick animation is now in order and there is one sun lamp in the scene to show contrast.

For Cycles the Emission texture is plugged into an Emission shader and the same texture is also being used to control the mix factor for a Mix Shader that has a Diffuse shader plugged into the other input socket.

The Emit texture is routed through a 'Converter->RGB to BW' node since color should be avoided for masks.  The Mix Shader uses black and white(0.0, 1.0) to determine the mix factor so we want to make sure that what goes in is also single a channel value.  (This helps keep things predictable though not strictly necessary.)

For Cycles, the texture's Alpha channel doesn't matter here since your mask can be in any one of the channels and easily accessed using either of the "Separate XYZ/RGB" nodes.  In this case all three color channels are the mask, that's why I converted to black and white.  An better option would be to separate out the green channel and use that since it's the mask in this case and adjusting it would also adjust the others if they are still combined.


What does this dotted box mean in the viewport?

You might have pressed Shift+T, or enabled Texture Space in the Object tab of the Properties panel.

The size and location of the Texture Space are found here, in the Object Data tab:


Create new actions without being influenced by NLA

In the NLA editor you have nla tracks under your rig and there are speakers icons that allow you to mute your tracks.
I'm making the same thing right now with my character.


How do I change the direction of my fire?

You can use wind. Add it by pressing SHift + A > Force Field > Wind

Just place it at whichever direction you want fire to flow then simply increase strength of wind and you are done.


Bmesh script

Simply running through and selecting the longest edge of each tri, the result can have any of 1, 2 or all edges of tri selected.

Added code try and avoid this somewhat.

Test script showing how to:

Load current edit mesh into bmesh
Find all triangles in bmesh
Find the longest edge and select it.
Update the edit mesh.

script:

import bpy
import bmesh

context = bpy.context
ob = context.edit_object
me = ob.data
bm = bmesh.from_edit_mesh(me)

# triangles
tris = [f for f in bm.faces if len(f.edges) == 3]
# deselect all edges
for e in bm.edges:
    e.select = False

for f in tris:
    # if an edge already selected continue
    if any(t.select for t in f.edges):
        continue
    # sort by length and selected (if not using continue)
    edges = sorted(f.edges, key=lambda t : [t.calc_length(), t.select])
    # pop the last and select
    edges.pop().select = True

bmesh.update_edit_mesh(me)

Alternativey

Each edge has a link_faces collection. If there are two link faces (not boundary) and the edge is longest of all edges in both faces, then turn into quad.

Find all edges that have two triangle link faces
For each these edges, (sorted maybe): if it is longest edge of 2 faces and no other edges selected disolve edge to make this face a quad.
otherwise go to next edge.


Can I use Source Filmmaker models in Blender?

It took me a while to figure this out but I finally figured out how to do it.

First you need to download WineBottler (https://winebottler.kronenberg.org/) This program allows you to run Windows applications on Mac.

Once WineBottler has been installed, download Noesis (http://www.richwhitehouse.com/index.php?content=inc_res.php&rescat=File%20List)
-I'm not sure if the version mattwers, but I download v4202.
Once you install Noesis open the noesis.exe file in the Noesis folder. A Wine window will open up, press go. Now the software will open up and all you need to do is locate the file for the model you downloaded and click file>export. Then you can convert the model to a format importable to Blender (like .dae or .fbx)

Also, if you are going to use models from the Steam workshop you can only download them via: http://steamworkshopdownloader.com/


Can render smoke & fire in view port with [Alt A] but no fire and only smoke on render [F12]

The texture for the domain object doesn't have any coordinate mapping set. Set it to Generated. Moreover, the colour ramp is a bit off. It has to be fully transparent to the left, or the domain will be completely filled with the left colour. The left is what appears further away from the flow object and the right is what appears closer to it. Personally I prefer to have it completely transparent at the right end as well, but that is my opinion and not a requirement. At the very least, you need to flip the direction of the ramp.

Furthermore, the Flow type on the flow object needs to be set, depending on what you want.

In the image it's set to Smoke. Available options are Fire, Fire + Smoke, Smoke and Outflow.

The first three should be self-explanatory. I have never fiddled with the outflow, but if it does the same as in the fluid sim, it should simply absorb the smoke and the flames.

If it is set to include fire, there's also a Smoke flames section for the domain object. If you want only fire and no smoke at all, you should set Flow type to Fire and set Smoke under Smoke flames to 0.


Is it possible to make a cut from ortho view through the whole object that is measured 1cm from this edge?

While the answer from @Robin-Betts is working in many cases, there are those situations where the cut would go through different loops and thus a loop cut with later adjustment would not work.

Here a solution that should work no matter what:

Select a vertex that lies along an edge from where you want the precise distance.
Duplicate the vertex with Shift+D and press Z to make sure it stays on that axis. Move the vertex above the object.
Press G followed by Y in this case to restrict the movement again and then enter the distance you desire the cut to be made at.(I used a specific distance to showcase the mentioned situation with a possible cut over multiple loops.)
Extrude with E from the vertex once to the left and once to the top and create a face (you can restrict the extrusion with Y and Z, but it's not absolutely needed here, as only the first duplicated vertex is needed to be precisely where it is). A triangle face is fine, as it's just a workaround to get an anchor for the knife tool. For some reason a single vertex as well as an edge won't let you snap to it with the knife tool.
Now you can activate the knife tool with K and it will find the vertex we first duplicated to use as startpoint.
Activate the angle constraint with C and cut through
with Z and pull the cut under the object to have the cut encompass the entire object.
Accept with LMB and confirm the cut with Enter

You can now delete the knife anchor face.

Here a more visual explanation:


Topology not smooth and trying to work with a 6 pole

I think you can solve the problem adding some kind of inset around the pole.
Like this:

If you want to adjust the sharpness around the pole, select the 12 surrounding vertices and use G G to edge slide more or less closer to the pole.


When you join object A to object B the modifiers of object A are NOT applied, and just get deleted, but the modifiers of object B stay the same and therefore are influencing object A once joined.

For this reason modifiers should usually be applied before joining objects.

On the other hand smooth and flat shading shouldn't change since this kind of data is attached to faces rather than the whole object.


How does one create an animated skeleton which can be applied to any model?

If two models share the armature (one armature is a clone of the other, with exactly the same loc, rot, scale and name of every single bone), the task is absolutely easy: create a dope sheet window, turn it into an "Action editor", select the second armature and select the action you made for the first model: in this way the two armatures will perform the same animation. If the two armatures are not clones, you will need a procedure called "retargeting", wich is not so easy, you will have to make some researches about it.


Since I don't have access to your textures, I can't show you how to hook them all up, but I can at least show you the alpha.
Since it seems that your alpha masks come as textures themselves, as opposed to having an alpha component to the basecolor, you need to connect the alpha as a separate map, and use the color output (however the color space should be set to non color - I accidentally left it as sRGB in my image, and it works, but this is bad form because that is not always the case).
While you are correct that mixing A diffuse BSDF with a Transparent BSDF, using the alpha as a mix factor, will achieve transparency in some cases, the fact that your alpha is a separate map won't allow this to work.
Instead, try connecting as shown below. Since you are already using the Principled BSDF, it makes sense that you make use of it's alpha channel.
Also note the blend modes I've highlighted on the right. These are necessary to make transparency work (default is opaque). I think alpha-hashed or alpha-blend would work best for you, but try and see for yourself.

Good luck.


Blender 2.8 no background image in wireframe mode

with the camera selected, in the "add image / depth back / front" menu select front


Select your object, set the frame range you want to visualize, and press calculate or update path in the motion path tab of the properties window. It works with bones also.


Can you use another material as input to material nodes in cycles?

That's a typical use case for Node Groups.

Select all relevant nodes and group them with Ctrl+G. This way the created group is accessible within all material node trees, located in the Add menu: Shift+A > Groups > Your Group Name.


Had the same issue recently on Windows. I usually use Linux, but opened a file I'd been working on in Windows, and the scroll wheel zoom was WAY OFF!

Basically, with the panel in focus, hit the "Home" key. Found this answer HERE.


That would be the new updates in Blender 2.82 involving mantaflow etc.

I'd suggest that you go look for Mantaflow tutorials such as this one by CG Geek:

However, here's a quick summary of the four options that you have in 2.82:

None - Nothing.

Domain - The area that the fluid simulation stays within. None of the smoke/liquid will ever leave this area.

Flow - This is the actual smoke/liquid/fire emitter. You can change the type and additional settings within the settings of the Flow type.

Effector - These are your obstacles to the liquid simulation.


How can I decimate a mesh to remove unnecessary triangles?

If decimate is too destructive, then while in edit mode, select all, then press X>limited dissolve to remove excess edges in your model. You can adjust the angle threshold in the operator panel as needed. Don't forget to also remove doubles with W>remove doubles.

You can also try tris to quads. Press Spaebar and type in tris to quads, and select the operation from the menu, or or press Alt + J


You can change Orbit Sensitivity in the Preferences(F4 -> p):

You could also add two entries to your keymap to make a key that you could press and while it's pressed the sensitivity is set to some value, but when you release it, it resets it to some other:

Note that one is set to "Press", another to "Release".
The operator: wm.context_set_value sets the value for preferences.inputs.view_rotate_sensitivity_turntable here. You would have to play with the values to find the ones comfortable for you(mine are quite low, because I am using a pen tablet right now).

It doesn't work while you are orbiting, you have to press and hold the key before you start. It might be possible to make it work while you orbit, but that would require a more complex approach.


The best way achieve a "bump" from all angles is using micro-displacement.

Replace your Bump node with a Math node and set it to Multiply. Then connect the Math node with the Displacement input of your Shader Output node. Play with your Multiply value to get the result that fits your scene.

This will not work until you add extra geometry to the plane. The most efficient way to do that is using a Subsurf modifier. Set it to Simple so it doesn't smooth the plane and Adaptive so you get optimized memory and render times. If there's no option that says "Adaptive" you have to change from "Supprted" to "Experimental" feature set in the Renders tab under "Render". Then down in the Material tab in the Properties under "Settings" set your Displacement to either "Both" or "True". "Both" gives you the option to still add a bump map on top of your displacement.

Then you can enter rendered view and enjoy your displacement! Note that the displacement doesn't update in rendered view. Switch from and back to rendered view to refresh the displacement.


Select all visible faces (possible script needed?)

Select one of the front faces and hit Shift+G and from the menu select Normal.
Hit F6 to bring Select Similar operator menu and adjust the Threshold until all the front faces are selected.
Use Ctrl++ to extend the selection


How to make UVs islands perfectly overlap?

Your 3D object looks like each arm is shaped irregular, meaning that the edge lengths won't be the same, meaning that the UVMap cannot be the same, if you want a map without stretching. However, if you just want each point to be identical, you can indeed achieve this by unwrapping in a strict order.

First, select one of the corner faces (remember which one!) on one of the four islands, and press L when the mouse cursor is over the matching island. Choose Seams as the limiting factor. Then, reset the UVMap. This will take each quad and set the UV coordinates to (0,0), (0,1), (1,0) and (1,1), no matter what the shape in 3D is.

Next, use Follow Active Quads as the unwrapping method. The active quad is still the one which was selected first, and its current UV position serves as the starting point for the follow active quad unwrap.

Next, select the corresponding face and island from the three other shells. I'm marking them in the GIF here before I unwrap the rest. This is important so the orientation of the resulting UV Map is identical to the others. The four resulting UV islands will have completely identical vertex positions, but, as stated initially, stretching for sure.

If stretching is not desired, all you can do is match up the boundaries of your map by snapping vertices. Snapping to vertices also works for scaling, as you can see in this little GIF here:


Unable to reduce Blender file size for render farms?

You can set the Outliner to Blender File mode and go through all the data saved in the file to see if you have something not needed there or maybe duplicates:

You should not apply modifiers since procedural stuff will take less space. Same might be true for baking animation. I would recommend to test it. Generally you might want to do calculations during render instead of pre-calculating and saving the results to the file using space.
Other than that there is no rule that it should be possible to render any kind of project on SheepIt. It might just not be possible and you will need to search for another render farm with less restrictions or other rendering solution.


I found an answer here: Wrap curve around sphere. 1- Bend .svg into cylinder. 2- Add shrinkwrap modifier. 3- Use Boolean to cut it.


The subdivision modifier needs to be placed after the particle emitter in the modifier stack. Place it before, using the up arrow, and it should be fine:

Edit: Actually the object faces still influence the emitter even with a subsurface modifier.
But setting the object shading to smooth should do the trick:


How to make an (open) object behave like rubber when penetrated by another

You could use cloth physics for the deformation part.

Pin the corners or edges of the rubber object so it keeps its shape by adding it to a Vertex Group. Let the physics do the rest.

Not sure how one could do the holes. Weight Proximity could help fake it, I don't think there is any elegant solution with Blender.
You can also assign each hole size to a shape key and manually control its diameter as necessary by keyframing the influence.


Image Sequence to Movie - How to Get Desired Frame Rate?

I can't say for sure but the first thing I'd do is just render it out as an mp4 from Blender.
Here's a complete breakdown of the steps:
When you first open Blender hit the Video Editing preset.

Go to Add -> Image/Sequence.

Go to the folder containing your images and sort them by name so that they are in order going down the folder.  Hit A to select all and add them to the timeline.

You should see the timeline something like this, now, and be able to play back your sequence with the controls at the bottom.
Note:  Playback will stutter because Blender does not prefetch the frames by default.  If you play it through a couple of times everything will be loaded in RAM, provided you do not run low, and it will play normally.

Now head over to the top right panel and make sure your resolution, frame start and end, and frame rate are what they should be.

Finally, scroll down to the Output section.  Pick a directory and change the file format to ffmpeg (or your choice).
And set the container and codec you want to use.


Change Color1 on your mix node to the color of your character.

Select Multiply or Overlay instead of Mix in your Mix node.

Disconnect your Alpha from the Image Texture node.

You may need to reverse your Color1 and Color2 in your mix node depending on which option you choose.


I have all of my models-- how do I bring them into blender?

Welcome!

As I get you correctly, you won't need to care about modeling and you will get a complete model with texture, normal/ambient occlusion map and so forth.

To check what task will still be up to you, you might check for common workflows:

What is the workflow to create animation in Blender?
Unfortunately, it is quite a bit more than "just animating".

Since I am also a beginner in Blender, I can't speak from much personal experience. Here I have put together some (free) tutorials that have helped me to make my first steps. (There are thousand of other really good tutorials out there on Youtube, just search for them! Also Blender.org, Udemy and other pages have good, but often paid tutorials)

(!) You might still get your hands on some tutorials on basic modeling to deal with most likely upcoming problems!
For example:

Blender - https://www.blender.org/support/tutorials/
Blenderguru - https://www.youtube.com/watch?v=VT5oZndzj68&list=PLjEaoINr3zgHs8uzT3yqe4iHGfkCmMJ0P

Rigging:
Most possibly your task starts with rigging your models for animation. It essentially adds controls to your objects for animation, and defines what and how something moves or deforms.
For a perfect start into rigging go trough this series:

Terumag - https://www.youtube.com/watch?v=3J-XN38EnhQ&list=PLE211C8C41F1AFBAB

Animation:
Here you get a brief introduction into the concept of manually animating simple models.

Thilakanathan Studios - https://www.youtube.com/watch?v=7ZkdR1L91Ik

(?) Dynamics & Simulation:
A start in rigid body simulations/animations as if you might want to make simple physic animations.

Jeremy Jones - https://www.youtube.com/watch?v=sNhN3X3MvD4

And always work with reference material for your animation!

Tip: If you need study material for movement of living beings, just search for "Muybridge" on Google Pictures!

(?) Lighting, Rendering & Compositing
I don't know if you want to render your animations in blender or bake & export them to other software, say a game engine. As I never used blender to render my animations, I do not have any repository of tutorials on that. But you might just check the Youtube Channels I mentioned as well as the following and might find some good tutorials for your needs:

CG Geek - https://www.youtube.com/user/Blenderfan93/
Gleb Alexandrov - https://www.youtube.com/user/GlebAlexandrov/
AgenZasBrothers - https://www.youtube.com/user/AgenZasBrothers

3D Animation with Blender a complex topic and I hope, with this videos, you can get hold on a path for your journey.


Is the active object and zeroth selected object always the same?

Not always

After calling an add primitive operator it is almost always the case that the new object is both active and selected. In which case it rings true.

>>> bpy.ops.mesh.primitive_cube_add()
{'FINISHED'}

>>> C.object is C.selected_objects[0]
True

but the selection can be manipulated such that the active object is None, and there are still selected objects.

>>> for o in C.scene.objects:
...     o.select_set(True)
...
>>> C.view_layer.objects.active = None
>>> C.object is C.selected_objects[0]
False

Then not true.

Selecting then setting active object

>>> for o in C.scene.objects:
...     o.select_set(True)
...
>>> C.view_layer.objects.active = None
>>> C.selected_objects[0]
bpy.data.objects['Cube']

>>> C.view_layer.objects.active = C.scene.objects['Cube.001']
>>> C.selected_objects[0]
bpy.data.objects['Cube']

Again not true.

Or no selected objects, with or without an active object

>>> C.view_layer.objects.active = C.scene.objects['Cube'] # or None
>>> for o in C.scene.objects:
...     o.select_set(False)
...

>>> C.object is C.selected_objects[0]
Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
IndexError: list index out of range

In conclusion, suggest if you want to be sure it's the active object use context.active_object or context.object.  Check if not selected and set selection if need be  Don't rely on using context.selected_objects[0]


Align eges to remove holes when using mirror modifier

There are few things you can do.

Enable clipping in mirror modifier options, select all and move everything towards middle point until top and bottom edges will align.
Rotate the object on the Y axis to align all edges.
Select top and bottom edges and press S then X and 0 to align them on X axis.
With clipping enabled, move all closer to the middle until closer edge will stack to it's counterpart on the other side, select further edge and with proportional editing enabled, pull it closer to the middle point.


Blender is a bit limited as an image editor, you may find using an external image editor easier. One option is to use the compositor were masking nodes can be used to select a colour to use as a mask for other nodes.

As your asking with the tag of python, you can access the raw image data through bpy.data.images['img_name'].pixels[x]. This is a list of floats that makeup the pixel data, there are 4 per image pixel (red,green,blue,alpha). You can get the width and height through bpy.data.images['img_name'].size.

for p in bpy.data.images['img_name'].pixels:
    if p < 0.45 and p > 0.48:
        p = 0.2


Cycles shader that renders its objects transparent when they are 'inside' of a sphere?

I found that using the Transparent Depth output of the Light path node was the key for me.

I used a Math node to control its value which gave control over how much transparency was applied to the portion of the cylinder within the sphere.


Associating extra information to a ray in Cycles

Simple Answere

This is not possible without changing the code of Cycles. ;)

More Detailed

While rendering, there is no data stored about the individual rays, only until the current sampling function returns. There are multiple images – passes – stored and are kept and accessible, but storing data for every ray would need hundreds of gigabytes for large renders. Reading such amount of data would most probably be slower than rendering.

By touching the source of Cycles you could average out additional information about rays into new passes, like the number of bounces or total ray length. This is what other renderers do probably.

Emulating Multilighting

LuxRender allows to create light-groups. The lighting of those groups can be changed later, their color or intensity to be precise.

This behaviour can be achieved in Blender by separating your light-groups onto layers and creating a separate render layer for each group.

In the compositor you could mix these without rendering. Rendering each layer again in the compositor would be easy with the designated button.

Example Scene

Compositor Setup

The pass of the lamps are multiplied with (2, 2, 2) and (0.5, 0.5, 0.5) colors. The same result is achieved when the strength of lamps are changed to 200 and 50 from 100:

Emulating Bounce Count Pass

You would have to create multiple renders with the limit of total bounces increased on each render. Subtracting those from each other one would get the amount of contribution a given bounce provides.

You could multiply 0, 1, 2, etc with the related contributions and sum those. Dividing the result with the sum of the contributions – the last render – would result in the contribution weighted bounce count average.

You could use the bigger than node to get where each bounce contributed at least a little and multiply them with the related 0, 1, 2, etc and get the maximum of those. This would result the maximum bounce count for each pixel.

Bouce Count Setup


What you're asking for is likely not what you actually want... although it might be.

You can force a shader to render both sides of a polygon, but then the inside of the tent will not be in shadow. This is because polygons are fundamentally one sided. They only have one normal, which only points one direction. This is a little odd to think about, but it might be worth diving into the math... just a little.

Diagram about normals, from Unity

In short, the way a shader determines how bright a surface is, is to calculate the difference between the normal (a line pointing directly away from a surface) and the vector to the light source (a shader typically calculates one light source at a time, and then combines the results). In order to do that, it has to have a normal, and each polygon only has one. The only way around this, is to use the same calculations for the "back" of the polygon, which will make the inside of your tent as brightly lit as the outside. (Unless all your normals are pointing inward, in which case the outside of your tent would be as dark as the inside).

In order to have proper lighting, you have to have another normal... which means you have to have another polygon :-/ Suboptimal, but necessary.

This is not just a Unity thing or a Blender thing, this is fundamentally how all shaders work, both ray-traced and otherwise.

This is why it's so common for games to do things like make the tent closed so that you can't see inside. Then they don't have to have extra polys inside. But if you want your players to be able to see the inside, you have to have another surface (solidify is the right answer).


Whenever you have a "poly limit" it is referring to triangles. You need look at Blender's Tris count.

A "face" is just two or more triangles (quad has two triangles, an N-gon has more) so the face count is not the real number.
If you make a model with only triangles, the face count and the Tris count will be the same.

Notice the face and triangle count in the images below.
This first cube is a default cube with 6 quads. The other cube has been triangulated. Notice the face and tri count match.

This is an object consisting of a single N-gon, and nothing more.


Position multiple vertex to an exact location without changing shape of object

Based on the comments i build the setup myself, created the "P" face as it was called in place, took it down flat according to comments again and then started working it back in place.

Here a visual step by step:

It's based on the following:

Begin by creating a support triangle.
For that use K knife tool and hold Ctrl to snap on the middle of the base triangle edge that lies opposite of the tip where the "P" face has to go.
Select the top 2 vertices from each of the "green" standing triangles and press F to generate an edge between them.
Select the edge and press Ctrl+R to cut the edge in half, confirm with Enter
Now create a triangle from the new created vertex and the 2 vertices along the cut you made through the triangle. This will help aligning the "P" face.
Now go to the "P" face and in edit mode, then press Shift+S to snap the cursor to the selected vertex on the thin "P" face tip.
Go in object mode and set the origin to the cursor using the context-menu.
Switch to the other object and select the vertex where the thin tip of the "P" face has to go, snap the cursor there.
Back to the "P" face object use Shift+S "snap selected to cursor"
The "P" face object is now at least with the tip at the right location.
Adjust the settings for the snapping like so:

Now it's important that all vertices of the "P" face object are selected, BUT the last selected(active) vertex has to be the one at the tip opposite the thin tip where the origin is.

Press R, followed by Z, locking the rotation to Z axis and then hold Ctrl to snap based on the active vertex onto the vertex the support triangle, where it divides the base triangle edge.
Now back to the base object, in edit mode select one of the 2 edges of the divided edge on the base triangle opposite to the thin tip of the "P" face.
With the edge selected create a custom orientation like this:

It will create and select a custom orientation we need to rotate the "P" face.
Back to the "P" face object, select again all vertices of and make sure the last/active vertex is the one like we used last. Opposite the thin side.
Now press R, followed by Y (is the axis of the custom orientation we need), then hold Ctrl and snap based on the active vertex onto the top vertex of the support triangle.
All that is now needed is cleaning up the support triangle.
If you have multiple "P" faces that need to be placed, you can create a duplicate it and after removing the custom orientation snap each copy to the 2 other corners of the base object, after which you only need to rotate them with R, followed by Z with 120 degree either plus or minus.

With one extra "P" face it should then look like this:

I have looked at the file, and i had to notice that the "P" faces were slightly too long...

Little extra, as i was already mostly done with the answer:
To round it up i think it might help showing you how i build the version i used:

Add a circle mesh with 3 vertices, radius 1
Select an edge and create a custom orientation from it.
Snap the cursor to the edge
Select the vertex opposite the edge, copy it with Shift+D, cancel with RMB to leave it where it was.
Press R, then Y followed by -90 to position the vertex where it needs to be to form a new triangle you can now build by selecting the new vertex and the two on each side of the edge in between which the cursor is.
Do the same on the other side and you have the 2 "green" triangles standing.
Now select the 2 vertices each top of the "green" vertices and press F to create an edge between them.
Cut the edge with Ctrl+R, confirmed with LMB.
Select that new vertex and the vertex in the corner where the "P" face thin side will be and press F, creating an edge we can use to find the opposite tip of the "P" face.
Looking from top, select the vertex between the tips of the 2 "green" triangles and press G twice to start sliding the vertex along the long edge downwards.
While in this slide mode, press C to disable the clamping.
Now move along the long edge and over the cross-section towards the center of the base triangle. We can sadly not snap in this mode yet, but you will find that the closer to 0 on x and y you come the more you come closer to 2 on Z.
That said, with the values used the exact position would be 0,0,2.
Now with the vertex in place, you can create a face on each side and then dissolve the edge in the middle.

Based on what values you used i believe it should have come to fit, but since the version in the file was overlapping, either moving the vertices caused that or some measurements could have been slightly off.

Happy Blending.


Emission node not rendering at all in Cycles nor Eevee

Note: the solution I found, for whatever reason, only works in Eevee. So, if anyone has a better answer that also works in Cycles, please share it :D
Thanks to all the people who commented on my question, I figured out that the emission was converted to color and thus wouldn't emit any light. The only way to get the pupil to emit light again was to turn it back into a shader. Here's how I did it:
Take the "B" (in my case) from the separate RGB > Emission (strength) > Shader to RGB > Emission (in the Principled BSDF) (put color to color, not alpha to color)

Like I said, this only works in Eevee. The result should look something like this:


The bone in edit mode has no rotation. And that probably why you cannot obtain a local axis coordinates.

But you can set the axis to "normal" and (for instance) use 'individual origins' as pivot point to rotate it around X or Z.

To rotate it around Y, use the roll value on the panel on the right.

You can do it with 'local' (or normal) axis in pose mode. It will work for X, Y and Z (no roll here).
Once done, apply the pose as 'rest pose':


Extract particle age info as render layer

You can do this by adding a new render layer with an Override Material specified.

First create a dummy object and give it a new material and call it something like particle_age.  Just plug the Particle Age output into an Emission shader and plug that into the output.  Also make sure to give it a Fake User.

Then just add another render layer and give it the new material as an Override Material.  You can also override the samples with a small amount, since emission shaders are easy to compute.


Screw Modifier with different materials on faces

As far as I know this is currently not possible with the Screw Modifier sadly. The modifier is not material slot aware, it has no Material Offset options like Solidify nor can Material Slots be stored on edges.

One possible workaround is duplicating the object, removing the Screw Modifier and assigning a new material to the new instance. Make sure the material slots are linked to Object (rather than Object Data) in the dropdown to the right.

You can still keep shape in sync between the two because they are duplicates, and you can now adjust section from the two caps too.

Optionally add a Mirror Modifier, or rotate another instanced duplicated to fill the opposite side.


That can be something like this:

The idea is to use Fermat's spiral calculation twice: at the angle and at the angle plus 2xPi.
That gives two points from which we can calculate the distance and in consequence the radius of the curve vertex.

As we calculate twice, the formula in inside a group (subprogram).
The radius is empirically scaled and clamped.
Additionally, the curve U resolution is set to 1 to avoid unnecessary geometry and artifacts.
In order to have the reversed part:

Take the previous result, reverse it and combine the flipped reserved and the initial result.


How to create a hologram projection with light rays?

Here's the result I got:

And here are my nodes:

Note: the Translate and Scale group nodes are homemade equivalents of the corresponding parts of the mapping node.  They are explained here.  I am using them here because they allow me to plug inputs into the transform values instead of being static like the mapping node is.

The basic idea is to use a noise texture to drive the emission strength of a volumetric emission material on a cone (actually a frustum).  The noise texture is scaled up on the z-axis to create the vertical stripes.  The real trick is to get the stripes to angle out from a point instead of just going straight up, and that is what all those other nodes are doing.  (Sorry for the massive node spaghetti, I had to move them around to get it to all fit on my screen and be readable.)

Here's the basic flow:

Start with generated mapping coordinates and scale the z-axis up (smaller scale value) to make the vertical stripes.  The Translate node is just to move the origin of the coordinates to the XY center of the object (i.e. center of the base of the object).
The Z component of the generated coordinates is extracted to use as a vertical linear gradient to scale the rays in towards the bottom, which has the effect of slanting them out from the base.  The RGB Curves node remaps the gradient from 0.0-1.0 to 0.5-1.0, I am using 0.5 because the base of my frustum is one half (0.5) the diameter of the top of the frustum.  The Math > Divide node is used to invert the scale factor since we want to scale the texture in instead of the texture coordinates.
The resulting mashed-up texture coordinates are used for a noise texture.  The color ramp node is used to adjust the contrast of the rays (i.e. make it look more ray-like).
To get the rays to fade out vertically instead of coming to an abrupt stop at the top of the mesh I used the generated coordinates z-component gradient again. The RGB Curves node is to reverse the gradient and make adjust the falloff curve.  By multiplying it with the rays from the Color Ramp I created the desired falloff.
The final Multiply node is to adjust the overall brightness/strength of the rays.

Here is a .blend:

The above .blend contains a couple of enhancements.  I set up a very simple armature to make adjusting the size and shape of the beam easier.  I set up some drivers in the material so that the scale values are adjusted to match the armature-deformed frustum.  It also contains the rest of the above scene.


Why is my image sequence appearing darker in the VSE than in the render output window?

You'll need to set View Transform to Standard(and not Filmic).

If you use the Video Editing template at start-up or through File - New - Video Editing it'll be set to Standard from the beginning.


Mesh object gets destroyed after move in edit mode

Disable the Auto-Merge option. From the manual:

When the Auto Merge option is enabled, as soon as a vertex moves closer to another one than the Threshold setting, they are automatically merged.


Merging two simple pipes? Boolean looks awful, carefully connecting the meshes does too

I don't have enough reputation to add extra links to my initial answer in response to John's request in comments above, so adding a second answer to do so. Here, I rebuild the same piece, with minor improvements to my first approach:

In response to the request for my workflow in building the last example... I started with two unjoined, Bezier curves (which I converted to Meshes, though you can't see that here):

I joined them:

I deleted the "center" where the T-intersection needs to be built:

I deleted the "extra" bit of center/right-hand-side tubing with L-select:

In top view, I added a few extrusions to limit the amount of intersection I would need to build; also, I rotated after each extrusion, still in top view, to maintain the soft angle of the curve. These were extruded with Shift+Z to keep the tubes of identical height:

I then added all of the "easy" connecting faces by selecting 2-4 verts as needed and tapping the 'F' key a bunch of times. I did this first on the outside, and then in the middle of the top part of the T-intersection:

I then loop-selected the verts in the two spaces that were still not covered by faces, and noticed I needed an extra vertex to get nice quads (although perhaps larger/with more extreme angles than I would ideally like; that could be cured with a bit of moving around loop cuts, or maybe using a third Bezier curve for the right-hand-side tubing, with 2 extra cuts running its length...). To get that, I added a loop cut to the middle-of-T-intersection faces, and filled in the remaining gaps with 4 more taps of the 'F' key:

This is a little bit angular-looking in the T-intersection, so I then:

turned on Shade Smooth, to see how angular it will actually look at desired render settings
grabbed everything except the ends of the tubes and used smooth vertices (which I have hotkey'd to Q, not that that's necessary) twice.

In the original image, I also played around with smoothing different subsets of vertices to get the look to about where I wanted it -- more art than science, there.


How to define a Loopcut into a specific area?

If you have the model with mirror modifier, select all the faces that you want the loopcut to go through, then hit I shortcut to inset the faces and B shortcut after that to disable boundary of the inset.

If you have the mirror modifier already applied, use the same method while selecting the faces from both sides from the center.


You need to modify the weights of the side torso.  Select the mesh, hit Ctrl+Tab and get into Weight painting mode.  For more information about weight-painting, please see:https://www.blender.org/manual/painting_sculpting/painting/weight_paint/introduction.html#weight-paint-in-a-nutshell


Found the solution! I hadn't deleted the default light source! After deleting it the "fireflies" are gone.


How do I get more accurate particle collisions with 'size deflect'?

I hope you have already found a solution for this, but since I struggled with this very issue about 2 days ago (Blender 2.81) and lost many hours trying to understand what was going wrong, then I'm going to share what I did to bypass this issue in case someone is also having a hard time with it.
It seems to happen even if using the Molecular Script, the problem seems to be the scale of the particles in the render tab (see image below), even if you're not using another object for it, like "render as: Halo".

So changing that scale to "0.05", which seems to be the default value, solved the problem for me, but if you're using another object for the particles, that means it will be 20 times smaller, so you could simply scale that object 20x bigger to give the particles the same size it would have with scale at 1.0 (and if you check the "Object Scale" box, you don't need to apply scale beforehand, which could be quite helpful).

I'm not sure if that is a normal behavior and if should be reported as a bug.


You can print the current settings to a console with a simple script:

import bpy

def round_vec3(vec): return tuple(map(lambda c: round(c, 3), vec))

solid_lights = bpy.context.user_preferences.system.solid_lights

for i, light in enumerate(solid_lights):
    print()
    print("Light %i:" % i)
    print("  Use:", light.use)
    print("  Direction:", round_vec3(light.direction))
    print("  Diffuse Color:", round_vec3(light.diffuse_color))
    print("  Specular Color:", round_vec3(light.specular_color))

Based on the settings for solid lights in startup.blend, here's a script to reset your current settings to the defaults:

import bpy

lights = [
    {
        'use': True,
        'direction': (-0.892, 0.3, 0.9),
        'diffuse_color': (0.8, 0.8, 0.8),
        'specular_color': (0.5, 0.5, 0.5)
    },
    {
        'use': True,
        'direction': (0.588, 0.46, 0.248),
        'diffuse_color': (0.498, 0.5, 0.6),
        'specular_color': (0.2, 0.2, 0.2)
    },
    {
        'use': True,
        'direction': (0.216, -0.392, -0.216),
        'diffuse_color': (0.798, 0.838, 1.0),
        'specular_color': (0.066, 0.0, 0.0)
    }
]

solid_lights = bpy.context.user_preferences.system.solid_lights

for s, l in zip(solid_lights, lights):
    for k, v in l.items():
        setattr(s, k, v)

If you don't want to deal with Python, just install this addon version of the script and click the Reset Solid Lights button in the User Preferences header (where the Save settings button is) while you are on the System tab:

bl_info = {
    "name": "Reset Solid Lights",
    "author": "CoDEmanX",
    "version": (1, 0),
    "blender": (2, 65, 0),
    "location": "User Preferences > System",
    "description": "Reset OpenGL Solid Lights to factory defaults",
    "warning": "",
    "wiki_url": "",
    "category": "User Interface"}

import bpy
from bpy.types import Operator

# OpenGL solid lights settings like in factory startup.blend
lights = [
    {
        'use': True,
        'direction': (-0.892, 0.3, 0.9),
        'diffuse_color': (0.8, 0.8, 0.8),
        'specular_color': (0.5, 0.5, 0.5)
    },
    {
        'use': True,
        'direction': (0.588, 0.46, 0.248),
        'diffuse_color': (0.498, 0.5, 0.6),
        'specular_color': (0.2, 0.2, 0.2)
    },
    {
        'use': True,
        'direction': (0.216, -0.392, -0.216),
        'diffuse_color': (0.798, 0.838, 1.0),
        'specular_color': (0.066, 0.0, 0.0)
    }
]

class WM_OT_solid_lights_reset(Operator):
    __doc__ = bl_info["description"]
    bl_label = bl_info["name"]
    bl_idname = "wm.solid_lights_reset"
    bl_options = {'REGISTER'}

    def execute(self, context):

        solid_lights = bpy.context.user_preferences.system.solid_lights

        for s, l in zip(solid_lights, lights):
            for k, v in l.items():
                setattr(s, k, v)

        return {'FINISHED'}

# Add button to user pref header (conditionally)
def userpref_button(self, context):
    if context.user_preferences.active_section == 'SYSTEM':
        self.layout.operator(WM_OT_solid_lights_reset.bl_idname)

def register():
    bpy.utils.register_class(WM_OT_solid_lights_reset)
    bpy.types.USERPREF_HT_header.append(userpref_button)

def unregister():
    bpy.utils.unregister_class(WM_OT_solid_lights_reset)
    bpy.types.USERPREF_HT_header.remove(userpref_button)

if __name__ == "__main__":
    register()


You can set the Frame of your selected Marker to the current Frame via Python:

import bpy

s = bpy.data.scenes['Scene']

for m in s.timeline_markers:
    if m.select == True:
        m.frame = s.frame_current


Location does indeed just add to the vector-- using a mapping node that maps location is no different than using a vector math/add node.  Scaling just multiplies the vector's components.  Rotation of 2D coordinates moves your x,y to length * cos (thetaInitial+thetaMapping), length * sin (thetaInitial+thetaMapping).  The only thing that's remotely complicated is the order of those operations-- but then, you can always specify order by doing sequential mappings.
But really, what it's doing is creating a transformation matrix and then multiplying your vectors' positions by that matrix: https://en.wikipedia.org/wiki/Transformation_matrix .  The matrix multiplication explains the math behind 3D rotations and the order of operations.
If you're recreating the effect for a shader in, say, Unity, you can just add values to your UV (for example), there's nothing wrong with that.  But there's a lot of value in having at least some understanding of transformation matrices, for writing shaders and for understanding 3D graphics in general.


i got it, i just made an outline of the top portion and spun around.


The other thing you could do is select your mesh (landscape), and press R -> X -> 180 -> Enter. I would recommend doing this in edit mode, so that the rotation will be pre-applied.


Why will only this appear but nothing else?

Fluid Cache End is set only to 50 and for second Domain 500 even animation ends in 1000
Source - Particle System is set, but you didnt specify which one (second field bellow)

Additional issue can come from ...

you set cache directory same for both domains
(it means second will overwrite first one bake)
each flow affects all domains, if you expect one flow affects one domain and another flow affects second domain you have to set them into collections and set specific collection to each domain

Also I see you use Blender 2.82.7, would be more effective to use actual official release 2.83.1 to avoid possible bugs.


How to paste images onto particular faces of a UV map?

Consider Texture Paint mode editing for the 3D Mesh.

In response to your statement/question [apply an image to just specific faces of a UV map?]

Blender texture paint mode can paint directly on the image to be used for texture mapping.
When a source image has transparent areas you can directly paint on target image leaving the previous background.

A sphere was uv unwrapped.  Then a material was created with a texture and image source.  First a pig image was used as the source in paint brush mapping stencil mode.  Next a yellow arrow was a source image in stencil mode.

Save your painted image many times during the process.  The image must be written to disk or you will lose your work. Silently.

In this example we painted directly on the 3d Mesh surface, in superior fashion.  You may also paint on the image editor surface in inferior fashion.

There is a learning curve for the many features of texture paint mode, and Blender is always full of surprises.  I would suggest a video tutorial by searching

[Blender Texture Paint]

mode at some well known video site.

Lastly seams can be added before UV Mapping. UV faces pulled off the image.  Texture Image Mapping Extension [Clip] to stop application of texture to a face. This is supplemental information.


The solution is to use Particle Instance Modifier to instantiate the grass object, instead of Dupli Object option found in the particle system settings.
https://docs.blender.org/manual/en/latest/modeling/modifiers/simulate/particle_instance.html

Benefits of using the modifier to instantiate an object:

much better viewport performance (especially in 2.79)
no need of pre-rotating the models to use random Z rotation (useful for vegetation)
fast conversion to a single mesh by AltC -> Mesh

How to:

Select your (single) grass model and hit AltG to move it to 0,0,0
Add Particle Instance Modifier to this grass model
In the modifier's options, pick the ground object and it's particle system
The grass should now be instantiated similarly like using Dupli Object (if not, check if your particles are alive, or just tick all of these checkboxes under Show Particles When)
To convert the instantiated grass to single mesh, make sure you have the grass selected and press AltC -> Mesh

There are also some disadvantages though, like using vertex groups for particle size (length) doesn't seem to work (maybe there are some more, but nothing important for me - you will have to find out).


Here's a low level way to calculate the bounding box center of an object:

import bpy

o = bpy.context.object
vcos = [ o.matrix_world * v.co for v in o.data.vertices ]
findCenter = lambda l: ( max(l) + min(l) ) / 2

x,y,z  = [ [ v[i] for v in vcos ] for i in range(3) ]
center = [ findCenter(axis) for axis in [x,y,z] ]

print( center )

EDITED:

@batFINGER proposed a much shorter and more efficient way to calculate the bounding box center (thanks!). Multiplication by the object's world matrix gives a global coordinate:

import bpy
from mathutils import Vector
o = bpy.context.object
local_bbox_center = 0.125 * sum((Vector(b) for b in o.bound_box), Vector())
global_bbox_center = o.matrix_world * local_bbox_center

It will find the center of the active object.
The bounding box center (or "range" center) is calculated as the center between the minimum and maximum value in each axis.

It does not give you the same result that origin to geometry or origin to center of mass gives, but it is the center.


How can one change the size of a sun lamp in Blender 2.79?

Sun light size has now been replaced by an angular size, which makes more sense for this type of light source.

You can control it from Angle property in the Object Data panel in the Properties Window.


Go into the Graph Editor, find the first keyframe, select it and press V > Vector. Then press RMB on the right handle, and move it so it is a straight line to the next point on the graph, and then press LMB:

This will make the object begin at and maintain the same speed, until it is time to slow down, when the standard ease method will be used.


instances of the same object : any obvious way to "mark" them as such in the outliner?

Since there is still no obvious way to Mark Instances & having to manually identify them is a bit messy. Maybe it would be good for future updates to consider adding this somehow.
My suggestion. Look at the way Modo 3d from the Foundry does this. It's simple and effective.
The Instance in the Item List (Outliner), is coloured pale pink and has it's name shown in italics. However, if you don't have the outliner visible, you still need a way to discern the Instances.
In the 3d Viewport of Modo, the Instances are shown as wireframes of the same pink shade when unselected. When they are selected, they conforms to normal object shading, the same as the source object.


I was just looking into this over the weekend. I believe a recent tutorial on Vit Prochazka's youtube channel has the answer you seek. I'd love to try and explain it here, bit it is quite convoluted and it requires the Animation Nodes add-on.

Seems an elegant solution though, I hope it helps:

https://www.youtube.com/watch?v=G1ysjPeLKSQ&t


To get useful answers try to ask more focused questions.
It's not really clear where exactly you're stuck.

Feel free to post as many specific questions as you need, that's what this site is for :).

To adress small technical issues:

Repair non-manifold vertices (Select > All By Trait > Non Manifold)
Align the centerline more precisely (to mirror properly)
Correct Face orientation, as some are pointing the wrong way
To get rid of the rough polygonal look, you can use 2 levels of Subdivision Modifier.

To align the centerline enable Absolute Grid Snap.
You can use Scale tool to align more vertices at once.

Other tips

Use more circular edge loops on your model for easier unwrapping
Add more seams when possible, to limit the stretching
Learn more about making Normal Maps (you can learn a lot on this site)
Try the new Blender Remesher (since Blender 2.82)

For art critique, you can try BlenderArtists.com.

Repaired mesh with some simple materials and a new UV map.


How can I connect the armature to my mesh without blender crashing?

Try to remove subsurf modifier on you mesh before you apply the armature.

Else the armature will use the subsurfed model (much more vertices).


Have can I have a different texture on parented objects?

Probably you have them sharing the same material. In this case, you have to duplicate it or create a new one and assign to change independently.


Image doesn't render properly / in full color

It looks like you have a second collection that is hidden but not disabled (box is still checked in the outliner). I'm guessing this collection contains a second donut. Even though it is hidden, it will still show up in the render. To make it not show in the render, you need to disable the collection by un-checking the box:


The usual culprits for this sort of thing are as follows:

Too small (scale) : most 3d slicing software has their units set up so that blender should export .stl's at .1 scale.  Otherwise, the object may be waaaay to big. or waaay too small. Try playing with the export scale and the object scale and see if you have any luck.

Too thin : the parallel problem to the scale issue is that if it is too thin, the object will not slice properly.  There is a minimum thickness the printer is capable of, and the slicer will exclude things that are too thin.
Inverted normals : if the normals are not set the right way, the slicer will not be able to detect the solidity of the object.
Non-Manifold :  Your object must be closed, or the slicer will not be able to detect the solidity of the object.

Due to your description, it sounds like one of the last three.


Go to User preferences -> Editing-> (check mark on) undo

Do not forget to save user setting below


A rigid body constraint always needs two rigid bodies. Add a passive rigid body above the cone: Cube.

Select the empty and make it a rigid body hinge constraint, with the new Cube and Cone as the objects.

Other tweaks:

The hinge constraint rotates around its Z axis. You will have to reorient it.
Move the origin of the cone to its geometric center.
Set the Cones shape to Cone.


What you want to change is the theme.
Here is how its done. Open your user preferences Ctrl+Alt+U.1 Then one the top you will see a couple of tabs one of the labelled Themes Then one the left from the drop down you can select a different theme. If you want a darker theme try Elysium.

And this is what it looks like.

If you want more themes you can get them here:
https://www.blendswap.com/blends/category/22

1: CMD+, on Mac. Edit menu -> Preferences in newer versions.


How do i change the size of the box for my collision bounds?

Try changing the drop down menu labeled Box under the collision bounds panel to Convex Hull, or Triangle Mesh if the first doesn't work. Also, if it is still falling through the floor, try upping the substeps from 1 to 5 under Properties Editor>World>Physics>Physics Steps:>Substeps. If none of this helps, or if it does and you want to learn more, Blender Cookie has some good game engine tips at https://www.youtube.com/watch?v=QY7iJmqsJf8

Hope this helps and happy Blending!


Convert "Existing" Mesh to Bmesh (AttributeError: module 'bmesh' has no attribute 'from__mesh')

A changed the way you selected active object and the way bmesh.from_mesh was called.

from os import system
   system("cls")

import bpy
import bmesh

#Assign object as a part of the active scene
scene = bpy.context.scene
ob = bpy.context.object
vert = ob.data.vertices

#Set default mode == Edit
if bpy.ops.object.mode_set.poll():
    bpy.ops.object.mode_set(mode='EDIT')

print("Active object = ",ob.name)

#Store selected vertices in a list
print("vert_selected")
#ob = bpy.context.object #Also direct context assignment raised no attribute error
me = ob.data
bm = bmesh.new()         # Create a new bmesh container instance
bm.from_mesh(me)         # Pass your mesh into this container

vert_selected = [v.co for v in bm.verts if v.select]
for vs_s in vert_selected:
    print(vs_s)

bpy.ops.mesh.select_all(action='DESELECT')
bm.select_flush(True)

bpy.ops.object.mode_set(mode='OBJECT') # if bmesh.from_edit_mesh() --> mode == EDIT - ValueError: to_mesh(): Mesh 'Cube' is in editmode

bm.to_mesh(me) #If mode ==Object  -> ReferenceError: BMesh data of type BMesh has been removed
bm.free()
ob.update_from_editmode()
```


How do i make these parts of my model smoother and less discolored?

You should avoid triangle faces, especially where you need smooth curved surfaces. Use quads instead.

I fixed your model's normals to make it renderable but it won't be perfect...

You can solve some shading issues changing the blue edges back to normal. The blue edges are marked as sharp, this means they won't be smoothed. Some of them have been marked by mistake so you'll have to check.
This is how to "unmark" them :

In edit mode
1- change your selection mode to edge
2- select your edges and use Ctrl+E to open Edge menu
3- click on clear sharp


Found the answer today apparently, the mirror is based on the roll of the bones so I needed to set one side to the negative roll value of the other then readjust all my constraints accordingly.


add a round reinforcement around the edge

Sounds like you're looking for Bevel. You can Bevel your Mesh in Edit Mode by pressing CTRL + B, or you can just use the Bevel Modifier:


This isn't possible outside of the game engine, but within the BGE, you can interact with objects quite easily. You can set up your objects in Blender Render, but the physics are a little different in the BGE so it's better to just work in the latter.

Start by setting up your objects and their physics properties. Then open the logic editor and set up either keyboard or mouse sensors for the moveable object (make sure it's selected) and attach the sensors to motion actuators. Set up the actuator's appropriate fields to tell it which way to move the object and how fast. That's about all there is to it. You can now start it as a game by putting the cursor in the 3D viewer and pressing P, then use your keys to move your object around.


Why are these tiles appearing in my final rendered image?

Figured out the cause thanks to @Rich Sedman, so I guess this is a temporary "solution", as it doesn't really solve the problem, just finds a way around it.

The tiles appear in the render due to CPU and GPU handling the output differently for some reason. Deactivating the CPU in the CUDA settings not only solved the issue but also gave me 30 seconds faster render times per frame.

Not sure if that's an issue of the current 2.8 release candidate or just something that comes with combining two pieces of hardware for the same process. (Maybe my Geforce GTX 1080 ti doesn't work well with my AMD Ryzen 7 2700X?)


What causes this different bone influence?

Your first bone, called Bone, is the parent of all the bones, so, when you move it, it will move the part of the mesh it is supposed to influence, but it will also move all its children bones and therefore all the parts of the mesh that these other bones influence.
When you move the small bone, called Bone.001, it only moves itself + the part of the mesh it influences.
If you want each bone to influence its own part of the mesh and be independent you need to unparent with altP > Unparent.
If you need a root bone, create a new bone wherever you want next to the others. Select this bone and go in the Properties panel > Bone, deactivate the Deform option. Now, to parent all the other bones to this one: select them all, select the root at the end, press CtrlP > Keep Offset.


I've been using a wacom tablet for a long time. What works for me is mapping the tip to click, the lower button for right click, top button to double click. Then I enable Emulate 3 Button mouse.

To zoom in I use CtrlAlt while pressing/draggin the pen
Alt Drag to rotate
ShiftAlt Drag to move siedeways and up/down
Selecting I do by hovering over the vertices/edges/faces and clicking on the lower button

I like this configuration because Continuous grab lets me select and grab in a single operation.


Does scaling a mesh/curve object to 0 remove its render impact?

Yes, if the object is 0, it does remove the object from render time.

Good Luck


How do I balance render load between Gpu and CPU

I think I found the answer. Under Cycles, Sampling, Integrator choose "Branched Path Tracing" instead of the default "Path Tracing". I don't know how I missed this the first time.

For the scenes I have tested, GPU utilization is on average 60% and going as high as 100% at some point in some scenes.


Try increasing the quality steps. Sometimes if you have the steps set too low they clip through each other. If that doesn't work take a look at your cloth thickness, it may be too thin.


How do you sample an image at a computed coordinate in the context of a Blender Internal node-based texture?

The calculations belong in the material not the texture.

The nodes for a texture define the colour for every available point as if it was an image.

The texture node in a material requests the colour from the texture at a specific point. The vector input to the texture node defines the point requested from the texture.


Texture paint not working on sculpt Blender 2.8

There might be a new way to paint in 2.8 but for the moment your object doesn't have any material, so create a basic node chain like Image Texture (with your "main Okulossos Paint" image loaded) > Base Color input of a Principled BSDF > Material Output.

Now you still won't be able to paint, it's because you've opened a completely black texture for your brush, so close it and you'll have access to the normal color palet:


View reference image in Wireframe and solid view

Two ways (or more?) to do it.
Use empty images
Add an empty image, it will be rendered as image even in wireframe mode.

Use image as plane
But in preview or rendered mode, limit the viewport display of your model to wireframe:


Get lattice points' positions at specific frame when animated by another object (through hook modifiers)

Depending on how many hooks there are a (probably too tedious solution) would be to create a vertex group containing only that vertex for each hook. Then you can get those from script.
Selecting the vertices for a hook modifier has always been an enigma to me, which I don't like.

If any of the hook modifiers has a strength < 1, the method of using it's hook object's location will fail.

A fairly brute force solution can be found here: How do I get the deformed coordinate of a vertex with Python?
remember the vertices of a lattice are called points.

A Similarly brute force solution would be to copy your lattice, apply the modifiers, read the applied vert info and then delete the object again.

All those solutions are fairly ugly, but it's all I can come up with atm.

For meshes, bmesh offers a solution of copying the modifier's info to a temp mesh: https://blenderartists.org/t/get-vertices-coordinate-after-deformation/617992
Don't know if you can transfer that to a lattice.

Also: you don't have to multiply .matrix_world with anything. It gives you the absolute position (and loc/rot), no matter what parenting/constraints are influencing it.


Snap 3D Cursor to Grease Pencil Surface (Blender 2.8)

Selecting the "Stroke" option in the Stroke Placement dropdown will let your strokes stick to other strokes.

I needed to download the latest beta build for this option to be there, but it works like a charm :)


Using bmesh

The result gives you the face index. Can look directly at the mesh data, however I'm going to use bmesh since the linked geometry is worked out for us.

In this example I'm using scene raycast. It's much the same beast.

Cast the ray into scene from global (10, 10, 10) in the direction
(-1, -1, -1).  This will hit the default cube at the vertex at (1, 1, 1)
From the resultant face, get the face and how far it is from the
location of the hit. The hit is put into local object  space by
multiplying it by the inverted returned matrix world of the obect. Get the
distance from the hit to the face center.
For each edge in face, calculate the distance from edge middle to
hit.
Lastly for each vert the distance from vert coordinate to hit.
Order the above by distance from hit.
If the hit is closest to a vertex or an edge show the linked faces.

Script.

import bpy
import bmesh
from mathutils import Vector

context = bpy.context
vl = context.view_layer

scene = context.scene

ob = context.object
me = ob.data
bm = bmesh.new()

o = (10, 10, 10) # ray origin
d = (-1, -1, -1) # ray direction

hit, loc, norm, idx, obj, mw = scene.ray_cast(vl, o, d)

if hit:
    result = {}
    loc = mw.inverted() @ loc
    bm.from_mesh(me)
    bm.faces.ensure_lookup_table()
    f = bm.faces[idx]
    result[f] = (loc - f.calc_center_median()).length
    for e in f.edges:
        mp = (e.verts[1].co + e.verts[0].co) / 2
        result[e] = (loc - mp).length
    for v in f.verts:
        result[v] = (v.co - loc).length
    print("-" * 33)
    for e, d in sorted(result.items(), key=lambda e: e[1]):
        print(type(e).__name__, e.index, d)
        if hasattr(e, "link_faces"):
            print([f.index for f in e.link_faces])

Result on default cube.

---------------------------------
BMVert 4 1.7691638564653194e-06
[5, 2, 1]
BMEdge 9 0.9999988079071045
[5, 1]
BMEdge 2 0.9999990463261543
[5, 2]
BMFace 5 1.4142120450860174
BMVert 0 1.9999990463258834
[2, 0, 5]
BMVert 7 1.999999046325911
[5, 1, 4]
BMEdge 7 2.2360664847631893
[5, 4]
BMEdge 1 2.2360666180432514
[5, 0]
BMVert 3 2.828425523165797
[5, 0, 4]

Related

What is the space used by Scene.ray_cast()?

Strange object.ray_cast() behavior

Finding neighboring mesh faces


Is it possible to simulate Brownian motion in Blender?

You can use particles to control your object's vertices, and induce Brownian motion in these particles:

Download blendfile here

To achieve this, you need to make sure every vertex of your particle controlled object is assigned a particle. These are the settings I've used for the example above:

You also need to turn off gravity in the Scene tab in the tools panel:

Then, once you have a particle per vertex, you need to run this code to make sure the vertices coordinates are linked to the particle locations:

import bpy

def update_particles( scene ):
    ''' This function runs before every frame change, and it updates the cube's
        vertices' coordiantes with the location values of its particles
    '''

    cube = bpy.data.objects['Cube']
    for vert, particle in zip( cube.data.vertices, cube.particle_systems[0].particles ):
        vert.co = particle.location

# Add vertex --> particle function to frame change app handlers
bpy.app.handlers.frame_change_pre.append( update_particles )

This example isn't a direct solution for what you're aiming for, but rather a direction. To adapt it to your needs, you actually need to manipulate the lipid through some mesh skeleton (or you can rig it and control the pose bones' locations the same way I've manipulated the vertices). This would be easiest and most directly translatable if your lipids are actually simple wireframes with a Skin modifier (you'll need to make sure the Skin modifier is below the particle system modifier though).

Since your scene probably has a lot of molecules, it will likely be more feasible to write a script that automates the generation and setup of particle systems. You'll also need to include all these objects in the frame change handler function.

Not a trivial project, but not unattainable :)


How do I fill an area with faces lined up in a grid?

Delete all of the top faces.

Select the top loop edge ring.

Press CtrlF and select Grid Fill (or use the menu: Mesh->Faces->Grid Fill)

, playing with the settings until you find a result that you like:

NOTE:  For this to work you need a continuous loop with an Even number of vertices. An Odd number of vertices will report a "must select two edge loops" error.


So, finally i just applied subdivision surface, removed the shrinkwrap and got the result. Still don't understand the problem with smoothing vertices tab, but i have my retopologized guy already!///. Thanks for such a quick feedback! Love you Blender!

Yaaaaaay!


How to start imported Alembic animation at a specific frame

Related

looping alembic
reverse alembic

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

Check Override Frame.

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

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

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

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


You're currently telling Blender that there's transparency behind your image, but after that it is mixed with a Mix Shader that is a 50/50% mix between your wall background and your image. In order to put your image over the wall you need to plug the Alpha output of your image into the Factor socket of the Mix Shader, not into the Alpha socket of the Principled BSDF, so basically, if I simplify, it should look like that:


In Eevee, volumetrics are approximated by combining a number of 'slices' of the volume together. While being much more efficient than rendering the complete volume, the accuracy is very dependent on the number of 'slices' used and how those are spread through the view.
You are seeing artifacts resulting from those 'slices' being in a different position for each subsequent frame and while this wouldn't be noticeable in a still image, it becomes very apparant in the animation.
The solution to this is to increase the number of 'slices' present so that any gaps between them are smaller and therefore far less noticeable. There are a number of ways of achieving this :

Increase the number of Samples in your rendering (the 'Render' and 'Viewport' settings in the Sampling section of the render properties). More samples will result in more detail being rendered in your volume. More samples will slow down your rendering - but should also produce better results.
Increase the number of Samples in the 'Volumetrics' section of the render properties. Again, more samples will take longer to render but will improve the quality of the volumetrics.
Concentrate the volumetric samples in a smaller part of your scene by changing the Start and End settings in the Volumetrics section of the render properties. The 'Slices' of your volume are only calculated for a distance from Start to End from the point of view (the camera or the viewport). If you have 'Start' set very small and your volume is a fair distance from the camera then there is wasted space that will waste your samples on slices that do not have an volume of interest. Increase 'Start' to the distance where your volume starts. Similarly, if 'End' is way beyond where your volume finishes then it will waste 'slices' that will never contain volume. The default values are 0.1m and 100m respectively. If your volume starts at 20m from the camera and ends at 60m from the camera then changing Start and End to 20 and 60 will concentrate the volumetric samples over just that range.

By making the above changes the volume 'slices' will be more concentrated in your area of interest and you should have far less noticeable artifacts.


Select the mesh and go into edit mode (TAB to toggle).

Switch you selection mode to face (Ctrl+TAB >> F).

Select which face you desire to work on.

Set your view normal to that surface (Shift+Numpad 7).

Use Alt+Spacebar >> V to switch your manipulator so that it oriented to your view.

Select a vertex on that face and Shift+S >> U to set your cursor to the active selection.

Go back into Object Mode (TAB to toggle).

Ensure that the toolshelf at the left side of the screen is visible by ensuring that your mouse is hovering over the 3D view, then hit T.

Add a Text object by using Shift+A >> T.

Immediately look at the toolshelf toward the bottom half of the shelf, and check the Align to View checkbox.

Now scale, rotate and drag your text to where you want it in the views XY plane.

You can Then manipulate your text's extrusion, convert it to a mesh, and boolean difference it from your mesh like in this post.

Then just repeat this for every side.

You can see a quick .gif animation of this process at the following link


1st make the duplicates real with Shift+Ctrl+A or object menu/apply/make duplicates real.

then make them single user with U (or object menu/make single user) objects & Data (& materials if needed)

Now you have different objects with different mesh data you can edit.


OBJ (Wavefront) file itself only stores geometry data, it does not keep anything regarding materials or textures. So you can't import .obj file with texture or materials.You can try .fbx file.


How can I keep vertex color accurate on a voxel model thats been converted to a lower poly model?

The answer it seems is to bake your vertex colors to a texture after smart unwrapping and then select your UVs in the viewer, hit shift + s and snap selected to pixels.  it locks exactly to where your vertexes were.  this is probably because I was using exact increments.  you can then convert your model to a lower poly model (i used limited dissolve) and your UVs will be the same as your high poly model, and you will keep your vertex paint (now converted to a texture) precise.


Scene rendering from pivot point of an object

I had this issue too and I fixed it by duplicating the mesh the camera was attaching to and then deleting the original mesh while leaving the copy in place.


Material isn't showing in viewport or render

I think you are doing this in eevee and for eevee you need to add Light probes for the reflections of the surrounding things so just press shift + a > Light probes > reflection cubemap
add this on sphere and then go to indirect lighting menu in properties panel and bake the cubemap

and for more info on light probes just go to youtube and search for lightprobes and you will get tons of tutorials on it


Using an OSL script is the closest you can come to modifying cycles without modifying the cycles source code and building your own version. Using an OSL script we can create nodes that perform any calculations we may want to do. These nodes can be incorporated into a node tree the same as any built-in node that exists in blender. You can look at how existing nodes are implemented using OSL. The main consideration with OSL scripts is that there is no GPU rendering support.

An OSL script can be as simple as a math node with a numeric input that does a calculation and outputs a numeric value, or at the extreme an OSL script can be used to create a ray tracing engine that runs within cycles. François Gastaldo created an OSL script that re-creates the old 1986 juggler animation on the surface of an object, he later also created a full path tracing engine - these were made for educational purposes as François is a teacher but serve as good examples of not being limited by how complex an OSL script can be.

If you look at tables 6.1 and 6.2 on page 39 of the OSL specification you will see the data available from the render engine that can be used within an OSL script. Most of the data is read only, we can only alter data such as the location of the point that the ray has hit, the surface normal and the closure that describes the colour used to get the final image. This means we can't directly alter the ray as it passes through the scene or how it interacts with other objects but we can use an OSL script to distort the surface of an object, that should make it possible to connect the camera vector from a Texture Coordinates node to a vector input for your OSL script and use that to distort the surface normal so that it faces the camera.


Accessing a render in a remote GUI instance

After your single image render has completed, there should be an EXR file in your System Temp folder, even if Blender has not formally outputted a frame image. However this is only the case if you have enabled Save Buffers in the Render Performance panel beforehand.

Check your Blender preferences for where that folder is on your Linux system (default path is /tmp for linux). The folder may be hidden, so you may have to unhide it to see it, but there should be an EXR file there until a system reboot or the folder is cleared for some other reason.

Alternatively, if your Blender app is running in GUI mode, you could possibly Remote Desktop into your Linux machine, and just save the image out of Blender.

Failing those 2 solutions, you may be out of luck, unfortunately.


Render a scene twice but once it renders with an extra object

Ok i figured it out, in blender 2.79 they had something called render layers, in 2.8, and 2.9 they use view layers, to do this you will see ticks in the outliner, and unticking them will make them not be rendered, and in the top right there is a section called view layers, if you duplicate them with the same settings you can tick or untick each one and then composite them together


In v2.7 cannot repeat change to solid view-port shading default gray to shiny metalic option.

I think you are talking about the Matcap option for solid view mode :

In 3D view, hit N key to display the properties toolbar, then thick the Matcap option and choose a material.

Note that it only affects the 3D view in "solid view" mode, and won't be used for rendering.


This is a missing feature of the node API. There is a patch for this ready and waiting, but since it changes the way node sockets look i want to wait for green light from scripters before committing to trunk.

See bf-committers thread

UPDATE: This feature has been added in trunk now (r60661). Socket draw functions are responsible for drawing only labels if that is the desired behavior, otherwise inputs and outputs draw the same way. See the API changes wiki page.


How do I assign a shortcut to something if it isn't listed in User Preferences' shortcut list?

The Input panel in the User Preferences is for searching for shortcuts that already exist. As there isn't a shortcut for Select Pattern already, it won't appear in there.

To add a shortcut, go to the menu where Select Pattern is (Object Mode> Select> Select Pattern...), right-click and choose Add Shortcut. After entering a shortcut it will now be present in the User Preferences when you search for it.


Gradually flatten overlapping vertices on XY-Plane

You could select all vertices along the rightmost edge of the ocean, activate proportional editing with a sufficiently large radius and scale to zero in Z-direction.
(Will try to post screenshots later, if necessary!)
In case you want to keep the ocean modifier, you might be interested in using the lattice modifier
With the lattice vertices scaled to zero height at the right side, the ocean will gradually lose amplitude towards the right. Use the "linear" interpolation to get it totally flat on that side.


Why is it bad to Tonemap exterior scenes?

It's not.

Tonemapping is extremely common for exterior scenes, even outside the CG world. Before computers and exposure bracketing, photographers used graduated ND filters as a rudimentary way to tonemap the sky which is usually over-exposed compared to the rest of the landscape.

Tonemapping is an artistic choice, there are no rules for when you can and can't do it.


You can't get a 100 faces icosphere. At subdiv 2 you've got 80 faces, and at subdiv 3 you've got 320 faces.

What you can do is add a subdiv 3 icosphere, then add a Decimate modifier to it. Adjust the Ratio parameter until Face Count is 100. That wont be a nice dice however, cause some faces will be larger than others, and with different forms, so the odds of each face wont be equal.

This set include a D100, maybe you could use it as a base.


How can I easily animate cutaway views on multiple objects?

Modifiers
Solidify and boolean modifiers should work fine.
You can use CtrlL to copy modifiers from the active object to the selected objects:

Add the solidify and boolean modifiers to one object.

Select other objects you want to bisect, keeping the object with the modifiers active (last selected).

Press CtrlL> Modifiers

Rendering
By creating a node group like this:

By changing the bottom value input on the greater than node, you can adjust where the bisection takes place.
By default it will use the local coordinates of the object, but if you want to use global coordinates you can use a vector transform node, however 0,0,0 will still be at the object origin (see bottom example for using global origin):

To control this for multiple materials at once, add the node group to the end of the node tree:

Result:

If you want to use global coordinates with 0,0,0 at the world center, use the Position output of the geometry node instead:

This probably works better with multiple objects.


Here are 2 ways to do it:

Create a UV Sphere of 30 segments and 10 rings, keep only 1/10:

Mirror it:

Array it with an empty as Object Offset that you rotate 72°:

Cut the hole, squeeze on the Z axis, change the topology:

Or:

Create a 5 vertex cylinder, delete 4 of the faces, rebuild it with an Array modifier/Object Offset mode with an empty that you rotate 72° on the Z axis:

Subdivide it a bit, cut the hole:

Swell the shape with a Cast modifier:

From now on I guess you can continue in many ways (subdivide, sculpt...).


Cylinder Subdivision Surface Modifier Problem - Smooth Shading

To subdivide a cylinder with a Subsurf modifier, you'll need to add holding edges to where you want the edges to be sharp.  This can be achieved by using the bevel tool.

While in edit mode, Alt-select the edges that you would like to be sharp, then press Ctrl-B to set a bevel width.  I set the amount of Segments to '2' and a Profile of '1' so that if I need to remove my holding edges, my original edge will be where I originally had it before beveling.

Afterwards, you can add additional ring-cuts on the flat surfaces (Ctrl-R) to avoid any visible triangulation in the rendered result:


What's the point of mixing the same shader types?

They are not equivalent. Mixing two different roughnesses produces a subtly different distribution of angles at which light can be scattered:

Note the shaper highlights on the right hand example (mixed roughness).

To visualize what is going on, take this (very approximate) example:

The length of the arrows represents the amount of light that gets scattered in that direction.