text:
Imported OBJ file is missing parts of the model - malformed?
I want to import an OBJ model into Blender for rendering, but instead of the entire model, I only see three small submeshes of it:

The OBJ file itself is here: case-on.obj.zip
I used Apple's Model I/O framework to convert it from USDZ to OBJ. The original model is significantly more than just three small meshes. I've worked with the OBJ format before, but I can't find any obvious errors in the file itself. The USDZ model renders just fine in Preview.app, so I doubt it's faulty.
Apart from waiting for Apple to fix the converter, is there anything I can change in the file to make it work with Blender now?

I see the same in the Windows 3D Viewer so probably the file is wrong.

Yeah, that's sorta the premise of the question. The thing is that there's 24 MB of vertex data in the file, and that can't possibly just be the three meshes you see in the screenshot. Where did the rest go?


text:
Accidentally enabled wireframe display, can't disable it
I accidentally hit something on my keyboard and now I have these wireframe lines messing up my viewport.

Hitting Undo a bunch of times didn't fix the problem. How do I get these lines out of my viewport? I'm using Blender 2.81.

The Wireframe option can be deactivated in the Viewport Overlay settings.

That was it! Can't believe I didn't find it. Thank you!

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
Apply scale on all keyframes
I want to scale down an animated model and apply scale.
The problem is that when applying the scale to the armature, the keyframes remain unchanged, so their location/scale is incorrect.
Is there a way to apply scale on all keyframes?
Especially to correct their location.

You can use the scale function in the Graph editor the same way as in the 3D viewer. make sure that all the objects with keyframes you want to adjust are loaded in the Graph editor and visible, then use A to select all, then S,X and the amount you want to scale by (i.e. S,X,-,5 or S,X,1,.,2,5, etc. and press Enter.

Scaling along X-axis will change the timing (speed) of the animation. If you want to change the VALUES, scale along the Y-axis.

This also scales rotations, which is not what you want.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Bad quality mesh, Narrow tris as result of Ctrl+t (exporting stl file)
I am trying to make a relatively simple 3D-model. resulted quad mesh is very good (fig). however, when I convert the quads to tris I would get this very narrow triangles which I do not want. the only reason that I change the quads to tris is that I need to export the .Stl file, and apparently .stl automatically change the mesh to triangles.
is there any way to avoid this narrow bad quality triangles?
I've tried to merge them with the adjacent faces, but then they are not triangles anymore, and when I import it as stl file the same narrow triform.

And the most important, .stl format structure, no wonder three vertices faces : https://en.wikipedia.org/wiki/STL_(file_format)

Yes, I have already removed double vertices

could you please explain what you mean?

I think you should change geometry a bit then. So instead of having Ngons around windows which might not be converted as expected deal with quads only like in example. Also does it occur if importing .stl back in Blender ?

Thanks, how can make sure that I only have quads and no Ngons? Yes it happens when I import it to blender again. but also when I import it to other meshing software I can see the problem.

thanks, I get your point. I also tried it with faces that I was sure that are quads. however, at corner of the window instead of having two triangles for each quad, I got 3, which one of the was very narrow at the corner.

"An STL file describes a raw unstructured triangulated surface by the unit normal and vertices (ordered by the right-hand rule) of the triangles using a three-dimensional Cartesian coordinate system."

So here is what I did and it worked for me.
After I got the original mesh (left figure on top), I use Remesh modifier with mode set to Smooth. This way I got a very high quality mesh with only quads. When I triangulated the high quality quad mesh none of them became narrow.
However, the size of the .stl file becomes very large. Therefore, I use Decimate modifier to lower the number of faces and keep checking the mesh quality with 3D printing add-on.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Particle Info Node and Blender Internal Render
What user errors are in the Blender Internal Render Nodes below?
RC 2.76 with Particle Info Node.

The render result is not what the user intended.

version 2.76 (sub 0), branch b'master', commit date b'2015-09-23' b'14:02', hash b'e24ea81', b''
build date: b'Thu 09/24/2015', b'09:51 AM'
platform: b'Windows'

Blendfile will probably help.

I can reproduce this, consider making a blend and submitting as a bug. An identical setup for Cycles does not have this problem.


text:
Particles and Random Numbers and Cycles Render
Goal.  Have access to a random number in range [0-1] per particle per frame in a Cycles Render Node.  Particle System is used.  Multiple particles per frame.
Question.  How can Blender drivers/other achieve that goal?
Current State. Partial Success.  Blender driver which is invoked once per frame.  Python Random random.uniform is used.  Input Value Node has the driver.  So the random number per frame is achieved, not per particle per frame.
To emphasize there are many particles per frame.  If there are 40 particles and 30 frames then
1200 = (30 * 40) random numbers should be generated.

Thank You.
version 2.74 (sub 0), branch b'master', commit date b'2015-03-31' b'13:39', hash b'000dfc0', b'Release'
build date: b'2015-03-31', b'15:46:51'
platform: b'Windows:32bit'

All particles share the same material, so they share the same random number. This is by design and will not work how you want it. You need to exploit something that is unique for each particle - like position or alive_time - and feed it into your script as a seed to generate unique random for each particle.

what would be 1200 random values be used for, knowing this might help give a better answer

@Jerryno is there a document which anyone can read which explains the [by design] you mentioned? Can you provide the link?   Also I am not quite sure we are understanding each other clearly at this point. So are you stating that  the value node will always be evaluated only once per frame?

@zeffi.  I want to change some color property randomly.  For example I may want to change the color of fraction of moving particles from blue to white for one frame. Such as tossing a fair coin. Of course there are visual approximations using modulo.  I was unpleasantly surprised that some [random] function is not offered in the math functions.  Perhaps I need to see the next version of Blender.

Yes I am stating that a Value node will have the exact same value for each object/particle this material is assigned to. The node is shared between all instances this one material is assigned to. Nodes that give different values in the same material per object/particle are for example Attribute, Geometry or Particle_Info,..

You can use the particle info node to achieve this:

Where 1000 is the total number of particles.
If your particles do not have a random distribution, then this doesn't work so well.
In that case, you could try mapping the index to a procedural texture, e.g. like this:

Thank You.  The isolated particle info index is most emphatically not a random number from the perspective of the question. Beautiful image.


text:
Distorted Cylinder to Regular Cylinder
How can the Blender User reshape a Distorted Cylinder to a Regular Cylinder in a minimum number of steps in situ, no adding or deleting of vertices?

Requirement. Move only the vertices currently selected in edit mode.

This is in the context of Shape Keys, therefore  deleting vertices and adding them back is not allowed since it would affect pre existing shape keys.  Assume the connectivity of the starting shape vertex selection in edit mode is topologically equivalent to a cylinder with out caps. The current selection consists only of edge loops in parallel connectivity. In other words the task is possible without adding or deleting any vertices or changing topology.  We just need to change position of vertices.

In the image above the left most yellow mesh is the starting point. The second yellow mesh in edit mode depicts the vertices or vertex group whose members may be moved.  That is a requirement.  Please note 1 or more vertices are NOT selected.
The blue mesh is the goal shape within a constant factor in XYZ dimensions of the edit mode selection, with standard edge loops in circle, other edges parallel to z-axis. In the result, one time user scaling in the XYZ global axis is acceptable. In the result, one time user rotation of (N*90) degrees is acceptable where is N is an integer.

In the image above we see a successful edit.  Cyan Shape show results according to the steps below.  Edit Mode and Object Mode.
Best candidate at the moment. Minimum of artistic maneuvers was one goal. Assume target cylinder in standard z-axis position.
Edit Mode Vertex Position Steps

Loop Tools Addon is enabled.
Edit Mode with valid selection.
Take note of current selection and with virtual/discussion/[vertex group] name BS0 .. Blender Selection 0.
Agree that each edge loop in BS0 has a virtual name EL0N. There are integer K > 1 edge loops. N is an integer whose range is [0,K].  EL0N is connected to EL0(N-1) if N > 0. EL00 is the edge loop whose target Z-coordinate is maximum.   EL0(K-1) is the edge loop whose target Z-coordinate is the minimum.
Agree EL00 is the top in target. EL0(K-1) is the bottom in target.
Select edge loop EL00 of BS0. Scale Z axis to zero.
Loop Tools Circle to achieve Regular Circle in XY Plane. Keystroke WLC.
New Selection of one edge loop virtual name EL01 adjacent to EL00. Scale Z-axis 0. Grab/Translate selection on Z-axis so EL01 is below EL00.  Loop Tools Circle.  These micro steps are to insure predictability in extreme cases with the next step.
[Vertex Slide] EL01 coincident to EL00. Accept the action. Move EL01
on Z-axis back to some reasonable position visually distinct from EL00.
Repeat the step above for all adjacent edge loops.
Explanation.  Each edge loop EL0(N) is corrected by EL0(N-1) in the XY coordinates for N in the range [1, K]
At this point we have a reasonably acceptable cylinder with potentially uneven distance between edge loops.
Select one edge ring spanning all edge loops of BS0.
Loop Tools Relax [Linear Parallel] ... Keystroke WLR.  Parallel edge loops are equally spaced.

In the image above unselected vertices are hidden for ease of explanation.
Can these steps be streamlined?
Perhaps a Script would be preferable to copy points from a fresh cylinder calculation.  Please correct my understanding of the problem in the comments in case I have under specified / over specified requirements.
Low priority Failure category in the context of some current goals

In cheery Winter Mesh colors left to right.

The 01 green mesh shows a Cast [Cylinder] modifier result.
The 02 red mesh shows a To Sphere result.
The 03 green mesh shows a Shrink Wrap Modifier to a cylinder result.
The 04 red mesh shows a Shrink Wrap Modifier to a sphere result.
Note the undesirable curved edge rings in some results.
Proportional Editing
Custom Normals under low priority consideration
[Data Transfer] under low priority consideration

Thanks.

The single answer below does not meet the requirements.

How was this cylinder created, the verts order(indicies ) could be used in a script ( knowing the diameter and nbr of verts in a circle ) to reshape it, check the default cylinder verts indicies

I somehow forgot all about this.

Details.  Add .. A rotation of 0-360 degrees about the Z-axis is acceptable.

For the reader, investigate BSE references to LoopTools. For sometime the [vertex slide] above is probably not necessary.  I probably did not use all the features of LoopTools at the time of writing.  I did not keep track of the history of LoopTools.  There are many references to LoopTools by myself and other at BSE.

I'd use a script.
import bpy

objects = bpy.data.objects

origin_obj = objects['Cylinder']
modified_obj = objects['Cylinder.001']  # select verts on this object

def revert_percentage(amount, origin_obj, modified_obj):

    bpy.ops.object.mode_set(mode='OBJECT')

    origin_verts = origin_obj.data.vertices
    for v in modified_obj.data.vertices:
        if v.select:
            idx = v.index
            # linear interpolation between original coordinate
            # and modified coordinate. the amount is passed during
            # the function call.
            v.co = v.co.lerp(origin_verts[idx].co, amount)

    bpy.ops.object.mode_set(mode='EDIT')

# between 0.0 and 1.0 of original. 1.0 is total reset of selected verts.
revert_percentage(1.0, origin_obj, modified_obj)

This assumes your modified object is in edit mode, like you said.

becomes this:

Please excuse the delay.  I am not quite sure if I had seen this proposed answer. Memories.

Join as Shapes
If the two object shares the same number of vertex and similar same edges & polygons list, you should be able to convert a "target shape object" to a Shape Key for an other object.
Obiuvsly "good" results are achievable only if they have matching topologies (e.g. a T shape will not easily became a I even even if the vertex count is the same), but your case seems one of them.

First of all you should create a "basis" shape key for wanted object, just for safety.
After that, pick the "target shape" object and then the other object.
In the drop down menu as shown in the picture above you can find the command that will add the selected object's active shapekey (the basis in this case) to the active object.

Raise the Shape Key influence factor in order to see the change of vertices coordinates.


text:
Driver Expression
What is the correct expression to see a driver expression [driver.expression] for a material node with a driver originating from a datablock?
Newer Edit

Graph Window showing driver. Console inspection.  Above.

Outliner window showing where the driver was added via the GUI.  Above.
In the image above the UI shows that Sphere.008 has driver visible in the graph window and Python Console.  I may have added the driver to this particular object or some other object which shares the same material.  That action was not keenly audited. Why does a driver appear for a particular object when the material is being shared?  This is really now a comprehension question about the [owner] of the driver.
Older Which has been addressed in the proposed answer below
Assume the following is valid Python and identifies what needs to be inspected
bpy.context.active_object.material_slots[0].material.node_tree.nodes["DataBlock"]
bpy.data.materials["Material400"].node_tree.nodes["DB400"]

Both lines above identify a valid object but fail to reach animation data.
Thanks.

You should ask new questions not change existing questions.

how did you add this driver ? can you access it from other objects ?

@Chebhou Yes it works on other objects.  It was added in the outliner data-block mode.  I did not invent this.  I will add another image from this question  ..  http://blender.stackexchange.com/questions/53154/animate-which-faces-a-material-is-assigned-to/53176#53176

The animation data seems to be stored on the node_tree level there you can access the drivers collection and check the data_path to be sure you are in the right one then read the driver.expression:
bpy.data.materials["Material400"].node_tree.animation_data.drivers[0].data_path
bpy.data.materials["Material400"].node_tree.animation_data.drivers[0].driver.expression

Please see above edit and question.  This is the answer.  I just appended another related question.

For your edited question, I can't be certain how you got the data path value that you show, but I expect you made a mistake in python or pasted the wrong thing into the console. I don't think you can achieve this through the GUI controls.
What you show in the graph editor isn't a material node driver, it is a custom property driver that has an odd data_path. Notice that a custom property is listed under Object->Drivers->property while a material node driver is listed under Object->Material->NodeTree->property so the value in your screenshot isn't attached to a material node socket, this is why you can find it in the objects animation data.

So your Sphere.008 has a custom property with a bad driver. You can create a custom property in python with
bpy.data.objects['Cube']['something'] = 0

You can give it a driver with
new_driver = bpy.data.objects['Cube'].driver_add('["something"]')

Then you can alter the data_path with
new_driver.data_path = 'material_slots["Material"].material.node_tree.nodes["DataBlock"].outputs["Value"].default_value'

or maybe it was something like
obj.animation_data.drivers[0].data_path = 'bad path'

And then you have a custom value with an odd data path. Notice that the original property name doesn't match the name listed after changing the data path.

The original property name may still exist as an object property or it may have been deleted, changing the data path has disconnected the driver from the original property.
The driver is controlling the node value specified in the data path, but as the object has the driver, not the material, the value node in the material isn't visually shown as having a driver.
If you had set the data path to something that doesn't resolve in python, then the property name would have a red underline showing the error.


text:
what to do with island type faces?
I have a model for 3D printing, to make the model I need to do Boolean operation, after the Boolean, I will have many of this island type faces (like the figure) that I need to get rid of them. the model is big, therefore, manually deleting them is not an option. can anyone suggest me a proper way to do this?

It looks like bad normals and some geometry errors in you model.
Have you tried the classic Select all > Remove Doubles > Recalculate Normals?
(A to select all > W > Remove Doubles then Ctrl + N)
You could then try to use the operator Select Non Manifold Shift + Ctrl + Alt + M to select said faces, although if they are attached to the rest of the model mesh, deleteing then will most likely create more problems for 3D printing, like wholes and discontinuities.
You could then use the Select Non Manifold operator again to detect new problems that might arise and try solve them one by one. Maybe remove doubles and recalculate normals again.

thank you, I have tried that, however, the problem is that as I try to fix the non-manifolds edges number of intersecting faces increases and vice versa.

Are you sure those are "islands"? I would try and use the smooth brush in sculpt mode. some times you have to deactivate front faces only. But if they are indeed "islands" then ultimately they're like doubles or overlapping faces, which could be a pain to get rid of.

I might have used a wrong word. they might be connected to the other parts, but definitely they are not desirable in the model. I tried the brush but did not help. besides, as I said there are too many of them to handle with brush.


text:
How does Mesh based collision shapes works in Rigid Body Simulation?
I kind of understand the difference between Convex Hull and Mesh shapes. But my question is how does the physics engine works for these two? In the case of the triangles how does the engine calculate the force of colliding objects? are the contact points being calculated for each node on the mesh?
I would greatly appreciate any explanation.


text:
Extrusion along a path-keep y-orientation of profile
I want to extrude a modified curve along a spiral path, which still works fine, but I want my profile oriented upright up to the end of the stairs. Right now it tilts - as expected because of the spiral form...I did not find an option when activating the profile...Thx for helps in advance!
TAffi TAsteless

from what I guess, just extrude the last point of the spiral with a point that goes a tiny bit in the direction you want the stairs to face. Is the spiral path a bezier or nurbs spline ?


text:
When a Driver is being evaluated are the final positions of objects finished evaluating?
When a Driver is being evaluated are the final positions of objects finished evaluating?
Does the Dependency Graph take into account references made in a Driver for a topological sort?
The Blender User wants to get the vector between two objects [A] and [B] after the final positions are determined for a frame. Are the object final location transformations calculated before the driver is evaluated.  Are there any arm twisting techniques to make this happen?
Are there any written references that address this topic?  Perhaps my searching is adequate
When I observe the difference vector in the UI, Blender seems to calc a new answer when I click Update Dependencies as opposed to a frame forward event.

I'm not entirely sure, a few quick tests with dependency cycles and drivers vs constraints suggests its complicated. I'd need to actually look at the code


text:
Can a Mesh Deform modifier be successfully used with a fluid simulation?

At the bind event of the Mesh Deform modifier there is no warning yet
When the frame is changed a warning is issued in the Mesh Deform modifier ... verts changed from 8888 to 8800 ... two different numbers
The goal is to change the shape of the fluid simulation.    The fluid is not in the general shape of a box.
This is a narrow ["Yes", "No"] question. A 1 to 4 sentence answer might be sufficient. Conciseness is appreciated. No images, new examples, or mention of other modifiers are necessary in a candidate answer.
There are other issues which may be posed in a separate question.

No - a fluid mesh cannot be used directly as the deformation object in a Mesh Deform modifier, nor can it be deformed by a Mesh Deform modifier.
The reason for this is that the Mesh Deform uses the change in the mesh of the 'Object' to affect the target mesh by reacting to the changing location of each individual vertex by 'binding' vertices together - by determining how much a vertex in the 'target' mesh would be affected by the position in the 'source' mesh and averaging those deformations over all vertices. For this to work there must be a fixed number of vertices in each mesh (the source and the target). In a fluid simulation, the mesh is not actually deforming from frame to frame but is being effectively re-built for each frame to represent the fluid in that frame. Since the fluid mesh is effectively rebuilt each frame it is not actually the same vertex that represents a particular part of the fluid throughout the animation - and this breaks the deformation.
That said, if your requirement was to deform an object within a fluid as that fluid moves, there is a solution by using another mesh to deform based on the fluid and use that as the Deform Modifier source.
First, create your fluid simulation :

Add another mesh with sufficient geometry to capture the motion of the fluid - eg, a subdivided Cube. Make sure you add enough subdivision to capture the required detail of the fluid (you'll probably want more detail than I've added in my example images - I purposefully didn't subdivide too far so as to be able to clearly show the mesh deforming). Add a Shrinkwrap modifier set to shrinkwrap to the fluid - the 'Project' mode of the shrinkwrap is useful here so that vertices can project up to the surface :

You should now have your "shrinkwrapped" mesh deforming to the fluid :

You can now use this as the source of deformation :

This can produce the following result :

The other alternative is if you want to deform the result of the fluid simulation base on another mesh (which is your actual requirement), and this cannot be done with the Mesh Deform modifier due to the changing vertices throughout the animation (due to how the mesh is completely rebuilt between frames).
However, this can be achieved with a Lattice Deform instead. A Lattice deformation is very similar to a Mesh Deform but is greatly simplified - instead of being based on the 'target' being within the 'source' mesh (and so the effect of each vertex is applied to each vertex in the target), it is the actual deformation of the whole lattice that affects the whole of the target mesh (regardless of whether it is within the source mesh or not). You could potentially also apply a Mesh Deform to your Lattice so that the mesh deform affects the lattice and the lattice affects your fluid simulation.
If you could update your question to include more specific examples of what you're trying to achieve I could include more specific details of how this could be applied to your case.


text:
Fluid Simulation Outflow behaves unexpectedly. What are possible remedies?

A fluid simulation has one or more fluid outflows.
One of the fluid outflows does change/delete the fluid, yet only at the boundaries/surface as depicted above. The expectation is any fluid should be deleted by volume. In the image above the expectation is the blue fluid on the upper portion should have been deleted.
The outflow has volume initialization.
Normals have been inspected and calculated to the outside.
The outflow boundary goes across the image left to right and is highlighted in orange.  The outflow is in the shape of the english letter C in 3D.
Outflow volumes have worked many times in the past for me.  Will Blender put messages in the console if it has problems?


text:
What fluid obstacle movements cause the majority of fluid to disappear?
This is a narrow question, so your narrow answer is appreciated.  At this point I do not want to include a picture.
A fluid simulation was working well enough in timespan A.
In timespan B an obstacle was placed and fluid behaved as expected for many frames.  Obstacle and Fluid interacted.
Then one of the following events occurred

Subtle movements of fluid obstacles. Including obstacles coming nearer to each other or farther from each other.  More inportant.
Cyclical fast  and abrupt movement  of the obstacle.  Less important.

These event seemed to coincide with the disappearance of say 99% of fluid.  So any comments may need to categorize moving obstacles or stationary obstacles.  These scenario descriptions are guesses. I am seeking confirmation.
I saw no large amount of fluid on the domain walls. Then the water inflow seemed to stop as well.
I have witnessed similar behaviour before with Blender Fluid Simulation
Have others witnessed this behaviour?  It would be my preference to hear from people with similar experiences.
A related question could be ... Are there certain classes of fluid simulation in Blender that are known to fail or be beyond the scope of Blender FS?
I sometimes use obstacles to hydro form the fluid.  Thus it is not my goal to [push into] water, according to a comment below, yet I may be doing so.  I am waiting for a comment clarification.

I've had problems where an obstacle pushes into a fluid - it's as if any fluid that ends up within the obstacle is simply 'lost' to the simulation. Can you share a Blend file that shows the problem?

Please clarify [pushes into]

I’ve had issues wherever an obstacle moves towards a fluid while in contact with that fluid - including where the fluid is contained within the obstacle. It’s as if the fluid can react to a stationary surface but if that surface moves to overlap the fluid the fluid is effectively destroyed.

I think this question https://blender.stackexchange.com/q/116872/29586 might be related - where the fluid disappears when the container moves - I believe it's as the fluid (slightly) overlaps with the container as the container moves towards the fluid that causes the issue.

The question above may be related IMHOIIHO in that Blender Fluid Simulation has undesirable behaviour.  Though I have not tried to accomplish what he attempted.

@RichSedman I am not sure I have seen,  or have the patience to see ... [fluid is contained within the obstacle].  How did the fluid get in the obstacle in the first place.  Low Resolution ... High Velocity?  In some simulations there could be 100 obstacles.

Please share a Blend file demonstrating the issue.


text:
How to return to default view in a file you got elsewhere
I have gotten several files from various sources on the net to learn from. When they load the UI is completely changed from what I am used to in the Default view when you first create a new blender scene.
I am looking at the file now and there is no default view selection anyway in it. Since I am very new to blender I like to use the default view that is standard with blender as it helps me find things I need.

Thanks in advance for the assistance.

Fine then I have not been able to do it with the answers here then you can delete this post and I will go else where. Sorry for taking up your time with my question


text:
Uneditable black faces in sculpt mode
Using Sculpt Mode, I accidentally pressed B and now some of the faces are black:

These faces are no longer editable. What have I done and how can I edit the faces again?
I tried checking my key bindings to find out what B does, but I am not able to find any information on this.

And for @Frithjof, try clearing the sculpt mask with Alt + M.

@TLousky That fixed it. Thank you very much.


text:
Blender window type icon only changes header
Simple question: When I change the window type using the window type icon at the upper left corner, the only thing that changes is the header. How do I actually change the window itself?
I am using Blender 2.75 on Windows 10.

Are you refering to what's the info header in default setup?.  To view that window you  need to drag down from the bottom of  the header when you see the up-down arrow icon.  The Info window displays operator calls and other info there, which is useful to scripters and the curious.

You probably just using wrong thing:

If you use top-left button to change window type it will only change the header, so you should use the one at the bottom left (marked in green)


text:
Is there a document describing the Cycles BRDF implementation in detail?
Where can I find a document describing the way Cycles BRDFs are implemented?
I am looking for details on the Specular D, G, F and diffuse.

I think this is off topic but I'm not quite sure. Hopefully someone else has a better idea of if it is or not. Anyway, if you haven't already, you should go the BlenderArtists and ask that, or go to #blendercoders on irc, where you're much more likely to get your question answered.

I'm voting to close this question as off-topic because this is asking for resources for programming, not a question about Blender it's self.

This question appears to be off-topic because it is about Blender C/C++ source code.
These questions are considered outside the scope of this StackExchange as defined in the help center. Development questions should be asked of the developers directly instead, see the contacting developers page of the blender wiki


text:
Rigging /My character is breaked/
My model normal. Rigging then break and distance.
How i fix?

Breaked and Distance and Location my part of model error.

I'm not sure what you mean by "break and distance". I guess you mean the bones are changing position? Maybe it's happening when you change from Object Mode to Pose Mode because you have posed your bones in Pose Mode, but in Edit Mode they are not posed. You can clear the pose and the bones will return to their original position.

I think @aky-her is right. Assign the hair mesh to the head bone (set the weight value to 1). Check out this related answer also: http://blender.stackexchange.com/questions/21480/how-to-fix-armature-distorting-my-mesh Nice model BTW :).

It looks like only the head is moving and hair object stay where it is. If this is the problem, you can easily fix it in weight paint mode by assigning all the hair vertices to the vertex group, which is controlled by your head bone.


text:
No Compatible GPUs found ... Blender 2.8 User Preferences
No Compatible GPUs found ...
Seen in Blender 2.8 User Preferences
System ... Cycles Render Devices ...

Version 2.78 recognizes the GPU.  I understand that 2.78 and 2.8 have different requirements.  Yet I would like to rule out other problems.
Is there any action I can take to correct this situation?
Is there any steps I can take to investigate this situation.  In the past I have rarely had to consider a situation like this with the GPU.
Windows 10 OS,
Nvidia 670M GPU Laptop. GeForce GTX 670M    Compute Capability 2.1
https://developer.nvidia.com/cuda-gpus#compute

System Info provided by Blender 2.8 as a text file.
Excerpt

Blender 2.80 (sub 75) System Information =
Blender:
version: 2.80 (sub 75), branch: master, commit date: 2019-07-29 14:47, hash: f6cb5f54494e, type:
build date: 2019-07-29, 09:44 AM
platform: Windows
OpenGL:
renderer:   'GeForce GTX 670M/PCIe/SSE2'
vendor:     'NVIDIA Corporation'
version:    '4.5.0 NVIDIA 382.05'

Some links that were not particularly helpful to me
https://www.blender.org/download/requirements/
https://code.blender.org/2019/04/supported-gpus-in-blender-2-80/
https://devtalk.blender.org/t/hardware-requirements-for-blender-2-8/3440

Sorry for the bad news, but @rjg is right. I had a similar issue and had to upgrade my GPU.

... I M

@JodySmith.  Would you like to comment on the choice between buying a different computer (not necessarily manufacturer new) and adding another  used graphic card to the waste management system?  I think we might be able to survive the open mouths regarding hardware discussion, because (low cost / use based software) which requires hardware purchases can cause .  I have replaced GPUs on desktops ... but not a laptop.

The requirements for GPU rendering are higher than the minimum requirements for running Blender.

Supported Graphics Cards
These requirements are for basic Blender operation, rendering using the GPU requires slightly different requirements.

The manual states that CUDA compute capability 3.0 or higher is required for GPU rendering. Graphics cards that do not meet that requirement will not be listed in the preferences.

NVIDIA CUDA is supported for GPU rendering with NVIDIA graphics cards. Blender supports graphics cards with compute capability 3.0 and higher. To make sure your GPU is supported, see the list of NVIDIA graphics cards with the compute capabilities and supported graphics cards.

The Nvidia website lists the GeForce GTX 670M with a compute capability of 2.1, which does not meet the requirements for GPU rendering.

What timing.  So immediate. We both listed the compute capability within minutes of each other I believe.  I will mark your response within 48 hours.  I do not want to hear such distasteful news, thus the slow hand.


text:
Blender 2.8 GPU Cycles Compatibility .. NVidia Quadro M1000M ... Windows 10
Recently Blender 2.8 ... Windows 10.
Cycles Rendering rejected a NVidia 670M Mobile Card in Laptop 01.  Probably based on NVidia Compute Capability.
Should I expect a NVidia Quadro M1000M to be Blender 2.8 compatible?. Laptop 02 which is not currently in my possession.
Two different laptops.
I have never owned a Quadro GPU.  Your general comments are welcome.  Does anyone have experience with this exact video card?

By coincidence, today I did a render using Blender 2.8 on a laptop with a Quadro M1000M card. No issues there, worked fine!
Quadro cards seem to be made for rendering and GFX design, so a good choice. A good read: https://www.engineering.com/DesignSoftware/DesignSoftwareArticles/ArticleID/18630/Whats-the-Difference-Between-GeForce-and-Quadro-Graphics-Cards.aspx.
Regarding the number of tiles, here are the answers:

Cycles only uses 1 tile per GPU (does not apply to CPU);
The number of tiles are dictated by available logical cores (or
threads);
Blender seems to use a maximum of 8 tiles;

So what brought me on the wrong track earlier: I thought I was seeing 4 tiles for the quadro and 4 for the CPU, but actually it was 1 tile for the quadro (as expected) and the remaining 7 tiles for the CPU (being a quadcore with hyperthreading = 8 logical cores (or threads) in total).
In retrospective to my desktop, where I also have a quad core CPU with hyperthreading (8 threads), but also 4 GPU's (2x 1070 TI's + 2x 970) = 8 tiles total.

It's relative to the answer, so I would hardly call this a question.


text:
Dynamic Paint Image Sequence
How can the Blender User produce more usable bandwidth when creating images sequences from Dynamic Paint?
As an example I may want to use a different color where wave data is active.

Histogram. Image above.

Accentuated/Mapped Data which is consistent with some scheme of thinking.  Not Random. Image above.
For example the surface type of Waves did not use much bandwidth.  Though I may have a separate question to set expectations.
Current Situation which is a Problem
File Formats

PNG - uses @1% of the potential color value

GIMP or Blender histogram

OpenEXR (EXR) - uses @3% of the potential color value.

GIMP will not open EXR.
XnViewMP histogram

The color value is a measurement of the brightness of a color.
Desired
I would like to use near 100% of the color value range.
Related Success
Images produced by Dynamic Paint with Wave and Paint information.
Histograms are needed to detect the color information.
Color differences are too subtle to detect with this Blender Users eye.
Color is remapped with the color ramp.
Blender Internal Render

The dynamic paint canvas has an initial value, this can be set to a chosen colour.

The dynamic paint brush can be set to paint a specific colour.

The difference between the two colour settings will be the range  that you get in your result, if one is set to black and the other white you will get the largest range that is possible.

Surface types Waves and Displace do not offer the Initial Color. Paint Does

@atomicbezierslinger yes I did overlook the wave part. I would say waves don't bake to image sequence and report that as a bug.

Something non random and perhaps meaningful is baked for wave in a limited range.  Original question edited.

please see above perhaps the comment targets are not working.

@atomicbezierslinger I found why I didn't see any colour change last night, I can get up to 0.03 variation in each colour channel. I say it is a bug, baking waves to image calculates within too small a range. It is baking a displacement map so it doesn't even have to stay within the 0-1 range when saving to exr.

Well if you have the power for an immediate change then so be it.  I have  a different question posted which ask about the utility of such data.  My recent experiences with Dynamic Paint leave me with too many doubts.

You can use OpenEXR instead PNG, it has 32-bit float per channel. Unused channels will be compressed

Small improvement.  Somewhat.  It might be too boring to explain or not enough testing.


text:
How do I make my character sit?
I have imported my character from makeHuman and wanted to animate it from the Standing position to the Sitting Position (Lap) Can anyone give me a detailed description? :( I've been trying but the problem is that when the animation plays, the feet moves up when I wanted it to take the feet as pivot and make the body kneel down to sitting. Please help :(

As you can see, the feet does not remain on floor.. Please help! :( I would be more than grateful.. :)

animate the root bone to move down while he is bending his legs


text:
light won't pass through the windows
So I am still very new to Blender, having only been working with it for about a week, but I am at the point where I am trying to get lighting set up for a Minecraft animation that I'm making for my channel but I can't get light to show up indoors. I can see through the windows but light won't pass through the windows nor will any lamps work that are placed inside. Can someone help me figure out how to fix this?

Can you add a screenshot?

I am using Blender Render

you may have to upload the .blend to PasteAll.org and paste the link here.  Then again, maybe someone will recognize the problem without seeing the setup. :)

That website won't let me upload my file @MarcClintDion

too big?  You can always make a duplicate of the file and delete most of the models and textures.  Only a small portion should be needed to diagnose the issue.

I tried t osolve this with a mix-material, using a RGB Mix node for the alpha values, depending on the texture of the glass.
But the shadow under the object stays filled, it seems to be non dependent on the mix materials alpha value. I'd like to know how to do this too, any ideas, someone?

If you are going to upload your .blend file the site standard is to use http://blend-exchange.giantcowfilms.com/ and edit the resulting link into your original question.

The calculation of transparent shadows is a little bit slow, so the casting of transparent shadows (behind your glass) is deactivated in the default settings. To get the shadows or better the light you have to activate Receive Transparent in the Shadow-Settings in the material tab for each Material, wich receive light through an object.
< activate Receive Transparent
see Shadows in the Blender Manual


text:
Couple of questions about rendering settings using python scripts
I am processing blender file using python script passed in -P cmd argument
I am new to blender so I am not familiar with all bpy
objects/properties. Can you help me with it?
1) How can I get current rendering tile and estimated time in cycles
rendering engine? I know there is render_stats handler, and I even
found function BlenderSession::get_progress in sources, but I am still
puzzled how can I get this info from python script.
2) How can I get list of cameras available?
3) How can I setup active camera for rendering?
4) How can I get/set number of samples when rendering?

Hi, this site works best when asking one question at a time. I would recommend searching this site to see if each question exists and then post them as new questions if they don't.

To know how to access properties in python just hover the mouse over the property in the UI and read the tooltip
# render tiles
scene.render.tile_x,
scene.render.tile_y,

#camera's list
cam_list = [cam for cam in bpy.data.object if object.type == 'CAMERA']

#set camera
scene.camera = cam_list[0]
#or
scene.camera = bpy.context.object


text:
How to model the rounded outline of a column
I need a good way to model the rounded shape of a capital, just like in the picture.

My problem is, that it should be precise for architectural modeling.
I could use paths, but that would be really painful to do ;)
And Bevel is not precise enough I would say.
So what would be the best way to model a capital ?

Have you tried boolean modifiers and the knife tool?

I'm not sure there is a best way, but using a Curve and the Screw Tool allows you to edit the profile non destructively and get nice flowing curves by using the Bezier handles.
Tools needed.

Import image as background (or use Import Image as Plane addon.. if you want to get work done)
Curve Object, with origin placed on the point you want to rotate around.
Use the Screw modifier, to "Lathe" the Curve geometry.

The trick with Curve object is you can have straight and curved sections in one Curve object, and each curve section can have a different level of subdivision.

If you want straight section: select the two handles of the section you want straight and press V and choose Vector.

If you want a section curved select the handles for that section and V and choose Free then move them around.

To help see stuff, you might want to change the Normal size, else it just looks like random lines fanning out from your curve.

Adding sections of curve is easy, select the last Knot ( not handle ) and press extrude and drag away, just like with vertices.
On its side that Curve looks something like this, it was done fast only to give an impression. Take your time to include transitions and change the subdivision per segment if you can get away with reducing geometry.

Quick recap

no harm having multiple answers. you know I've left out a heap

You can also create the profile with vertices :

Then use "Screw Modifier" :

You can achieve this result with actual modelling as well, which is good if you want to have the capital and the pillar all one piece. The basic concept is the extruding and scaling of a circle:

To make the inset parts of the pillar, select the lower face loop (Alt+RMB in face select mode), and then Select > Checker Deselect. Now simply extrude and scale inwards.
This is fairly easy to edit as you can just Alt+RMB to select an edge loop, and then scale it again to change that edge loop's shape. You can also add another edge loop at any point using Ctrl+R+LMB (x2). You may also find it useful to be able to crease edges using Shift+E if you add a subdivision surface modifier.
Final Result

Following Reference Wire:

While this might be a harder/less efficient way to do this (depending on level of experience), it has the benefit of already being a mesh, and being able to incorporate the rest of the pillar in one piece. You can move the loops in extremely precise (to the fourth decimal place) increments using numerical inputs, the same for scaling. Also you will not get any weird topology artifacts from exporting like you would with a curve object.

authors: Александр Волынов


text:
How to pass individual values to each instance of the object generated with Geometry Nodes 3.0

Input object: Generated with GN.
Some value makes it higher.
Generated geometry of instanced Input objects:
Each of them should receive some value to create an individual shape.
For example, each point number (ID) should cause a different shape.

Edit:  The important thing is to realize your instances.
here is my previous answer-
"Generating variations in the instances with Capture Attribute
In order to pass a value through the node tree, you need to use a CaptureAttribute node.  It can capture a value based on your curve's position or other attributes.
Then, you can begin to change values in other nodes based on the values of captured attributes."
Revised Pictures after comments:

You don't use Capture Attribute at all in your node tree

It is in the node tree connected to a position node.

@Crantisz, I have upvoted your answer, and edited mine a little.  It was the right idea but my example is better now.

I see, but you just input rotation and scale, the object itself remains the same

Yes, in order to make a more decent variation, I would have to affect a second object with the captured attribute.

The concept of instancing is that you set a same object (object data) to different places. Sure, you can have different position rotation and scale, but the object will be the same. It is just how instances work. Imagine that you have several linked object created by Alt+D. They are edited at once, you cannot set a different mesh/curve/etc. data to them.
So in order to get different objects, you need to convert them into separate objects. This is exactly that Realize Instances node do.
After that, you can actually manipulate with data inside these objects. It may be a bit complicated.
To move spine position, you can use Set Position node, but you should enter different offset depending on spine ID and point ID. Spine ID you can easily get using ID node. But how to get point ID? To get it, I used Capture Attribute - which can grab a point ID before instancing, so that you will have 0 for the first vertex and 1 for the second. Using these 2 IDs, you can change the position of the second vertex in each spline:

Thank you. It works, but I don't understand why.
Two nodes ID look the same and have different data input, it is annoying.
Where can I find a good explanation (written, not Youtube) of data flow in GN 3.0?

@fomaamof I think this video has a pretty good explanation, even it is YouTube: https://www.youtube.com/watch?v=2qWnRRkV9Zk


text:
Wrong spline length with Animation Nodes
With Get Spline Length i get wrong measurments for curly spline.
How to get proper length?

Animation Nodes 2.0.4 Blender 2.79b

The Get Spline Length node approximates the length of the spline, as there is no efficient analytical solution to that. The node provides a resolution option in the Advanced Node Settings to control the precision of the approximation. Increasing that should allow a more accurate computation of the length:

One little question off topic: Do You have AN on Blender 2.8?

@fomaamof Yes, it is not fully functional yet, but it is usable. However, there are no pre-compiled binaries available online, so you will have to compile it yourself if you want.


text:
How to get UV for the generated grid in geometry nodes?
I make the surface defined by two curves. How to get UV output for this mesh?

Use capture attribute to get original positions:

Adding 0.5 makes coordinates range from 0 to 1, perfect for UV

Set output to new attribute in modifier:

Use attribute node to get this generated UV:

The Mesh Grid contains a default UV. You can use it by getting the 'uv_map' attribute.

You can also calculate the uv using the vertex index and X & Y count.  You can use this with any deformed grid.


text:
How to rotate bezier curve? (Geometry Nodes 3.x)
I am trying to rotate geometry (bezier segment) about the point (0,.5,0).
What happens with handles?
(Blender 3.2)

Why don't you just use transform?

If you want to do it manually, you should know several things.
First, you should know that than you move Beizer points, handles moves with them keeping its relative position.

So to make it work, you should at first rotate Beizer handles around its points:

Second, that you should know, is that you move one handle and handle type is not free, second handle will move accordingly. So you have to move only one handle.
Final setup:

@StoatPaws I've updated the answer

Thank You very much. Everything is clear for me now.


text:
How to manipulate individual points of instanced curves?
I have a series of instanced curves. I need to place each end of them in an individual position.
Please help.

What do you mean  by "place each end of them in an individual position"? Do you want to scale them so that they touch the second curve, or move the last point on the second curve?

Place the last point of each curve on the second curve (or anywhere else one by one)

Ok, I've already answered.

You cannot "manipulate individual points of instanced curves" Instances must contain the same data inside each instance. To do that you want you have to convert instances in a bunch of curves. Realize instances can do that.

Now, you can set a position of each point in the curves using set position node. (without Realize instances, you set position of instance instead). You can limit the points by using End point selection, which can select only the last points in the curves. To get positions I recommend using Transfer attribute In index mode, divide index by 2 because there are 2 points in each curve.


text:
Scene is being rendered instead of animation?
I created an animation in blender, exported it as a series of png files, used the blender video editor to merge them as frames in a clip, and continued to add sounds, transitions, etc. to complete the scene.
When I attempted to export the final product to a video file, all of the frames were re-rendered, but instead of the correct color view they rendered as greyscale scene view (essentially not even rendering anything). All of the images were overwritten instantly, and the previous hours spent rendering were wasted.
Now, I'm trying my hardest to re-render the entire scene, but every time I try to render the animation (or even just a still image), it keeps rendering the greyscale image scene as opposed to the actual product. How can I fix this? Also, once this is fixed, what is the proper way to render the final video?

Have you added Scene clip in the Video Sequence Editor before rendering movie for the first time ? Also I'd add that before starting to render frames to still images which may take much time it's a good idea to render them in a different folder other than one by defalut. Thus rendered data will be saved.

Disabling sequencer solved my issue. Thanks for the help.

Go to Node-Editor change it to COMPOSITING and press Shift+A for adding an IMPORT --> Movie Clip. Connect Image from Movie Clip with Image Composite.

Doesn't appear to have worked, it's still rendering the greyscale scene

Have you connected the two points as the image shows? You also have to delete the connection between Render-Layers and the Composite. I'm sorry I didn't write it in my answer.


text:
Blender on Mac 10.6 text not showing up
So the text on Blender on 10.6 isn't showing up, pretty much at all.
I'm setting up Blender for a friend and I don't use Mac so I have no idea how to fix it and I couldn't find any fix while Googling.

Do you mean the text of UI? Or a text object in your scene?

Yes, I was wondering the same. Do your mean the user interface text strings or a text object in the 3D scene? Are you using an integrated Intel graphics card? In either case that sounds like a bug and should probably reported to the bug tracker instead.

Sorry, things got a bit busy.
I mean everything, some text is shown. But only parts of it.
It's an old Mac so I'm sure it's the integrated Intel graphics, but I'll double check when I get a chance.
I'll report it as a bug just in case it actually is a bug.


text:
The fonts on the interface are too small, how can I make them bigger?
I just downloaded Blender to my Surface Pro 4 tablet, but I cannot read the menu bars, the fonts are too small. How can I make the menu fonts bigger?

Related http://blender.stackexchange.com/a/44046/15543

Open Blender's User preferences by going to File > User Preferences or pressing Ctrl + Alt + U and under the System tab the first option under General > DPI should do what you want.
Just increase the DPI to the desired value or to match your display


text:
How to project a 3D Bone POSE Matrix to 2D (XZ) Plane?
I have a Posebone Matrix which I want to project to the Front (XZ) View.
Currently the bone axis can direct anywhere because they can have a custom bone roll which can direct the axis anywhere. I want to make this roll independent and somehow project it on the Front plane.
I tried this function, but it doesn't seem to give me proper results.

Basically it doesn't matter how the final 2 axis are called. It is important to always have the same axis as result. Because the bone roll can mess this up.

Since nobody else posted an answer yet, i had a try which might help you.

Note
This works only with the following options enabled

Inherit Rotation
Inherit Scale

Also drivers/constraints don't work.

import bpy
from mathutils import Vector, Matrix

obj = bpy.data.objects['Armature']
pb  = obj.pose.bones['Bone.001']

# constant
VEC_Y = Vector((0.0, 1.0, 0.0))

# components
loc, rot, scale = pb.matrix.decompose()

# projection
y_world = rot * VEC_Y
y_proj = y_world.copy()
y_proj.y = 0.0
factor = y_proj.magnitude
y_proj.normalize()

x_proj = VEC_Y.copy()
z_proj = x_proj.cross(y_proj)

# new world matrix
mat_rot_new = Matrix((x_proj, y_proj, z_proj))
mat_rot_new.transpose()

mat_scale = Matrix.Identity(3)
for i in range(3):
    # uncomment to uniformly scale the bone
    # to match the length of the projected bone
    mat_scale[i][i] = scale[i] # * factor

mat_world_new = mat_rot_new * mat_scale
mat_world_new.resize_4x4()
mat_world_new.translation = loc.copy()

# new local matrix
mat_world_old_inv = pb.matrix.inverted()
mat_basis_new = pb.matrix_basis * mat_world_old_inv * mat_world_new
# pb.matrix_basis = mat_basis_new

def get_mat_offset(pose_bone):
    """ calculate the (local) rest matrix of the bone """
    bone = pose_bone.bone
    mat_offset = bone.matrix.to_4x4()
    mat_offset.translation = bone.head.copy()
    mat_offset.translation.y += bone.parent.length
    return mat_offset

# ================================ Debug =====================================
# visualize source and target transformation with an empty for easy testing

def get_empty(name):
    empty = bpy.data.objects.get(name)
    if empty is None:
        empty = bpy.data.objects.new(name, None)
        empty.show_x_ray = True
        empty.empty_draw_type = "ARROWS"
        bpy.context.scene.objects.link(empty)
    return empty

mat_parent = pb.parent.matrix
mat_offset = get_mat_offset(pb)

get_empty("Source").matrix_world = mat_parent * mat_offset * pb.matrix_basis
get_empty("Target").matrix_world = mat_parent * mat_offset * mat_basis_new

for child in pb.children:
    # adjust the children bones so their world matrix remains unchanged
    mat_offset = get_mat_offset(child)
    mat_offset_inv = mat_offset.inverted()
    mat_basis_new_inv = mat_basis_new.inverted()

    mat_basis_child = (mat_offset_inv *
                       mat_basis_new_inv *
                       pb.matrix_basis *
                       mat_offset *
                       child.matrix_basis)

    if child.bone.use_connect == True:
        mat_basis_child.translation = 0.0, 0.0, 0.0

    get_empty("PB_" + child.name).matrix_world = mat_world_new * mat_offset * mat_basis_child

# =============================================================================


text:
Custom Properties in space_data or region3d
is it possible to create custom properties in context.space_data or context.space_data.region3d?
I created a property in bpy.types.SpaceView3D.my_prop but couldn't access it via bpy.context.space_data.my_prop.
Is there a way to do that?

See this answer for a listing of classes which support custom properties.
Neither Space nor RegionView3D derive from ID and are not treated special and can not have custom properties.
Screen does inherit and might be a candidate. You might identify an area by its index or its hash.
The former should work with loading/saving the screen from/to the *.blend file.
The latter might persist during changes to the screen layout at runtime.


text:
How to get all available entries of an EnumProperty?
As the questions already states? How do we get a list of all possible/available entries of an EnumProperty?

Enums are something Blender defines, which doesn't have a Python equivalent.
Therefor you need to use the RNA API. (See API docs)
Here is a function which returns possible values for an enum:
import bpy

def enum_members_from_type(rna_type, prop_str):
    prop = rna_type.bl_rna.properties[prop_str]
    return [e.identifier for e in prop.enum_items]

def enum_members_from_instance(rna_item, prop_str):
    return enum_members_from_type(type(rna_item), prop_str)

# Test the functions above:
enum = enum_members_from_instance(bpy.context.object, "rotation_mode")
print(enum)
# ['QUATERNION', 'XYZ', 'XZY', 'YXZ', 'YZX', 'ZXY', 'ZYX', 'AXIS_ANGLE']


text:
Objects with Emission shader emit light but appear gray, not bright
This happens even if I create a new mesh with a new material. All item with emission appear like that large plane above the building. Emission power is 60.
If I create e new scene, however, everything works fine.
Blender version: 2.76 - Cycles Render

What is material setup for emission plane ? Isn't it set up to emit light but seem like diffuse ?

Excuse me for the delay. Apparently the problem was fixed setting the "clamp" value do zero and using "indirect clamp" instead (under Render > Sampling)

It may be necessary to set Clamp Indirect to higher values too, see related question. If this worked for you consider writing an answer with some details on how you solved that.


text:
Cycles: Material full transparency, but still seeing parts of object
I'm trying to fade out an object by using a transparency BSDF. With Transparency set to 0 it looks like:

When turning the transparency up to 100% to get the structure opaque I get this result:

I have no idea where those dark areas are coming from. The mesh I'm using has been imported from an obj file and was originaly created with a CAD software. I have tried to recalculate surfaces and removed all doubles, but I'm still getting those dark areas.
As I want to use it in an animation I think I could turn up transparency and just before it should go 100% transparent I'd set a keyframe on Restrict Rendering in Object Explorer, but I think it still might look a bit "harsh".
Does anyone has an idea, what could be wrong?
Thank you!

Under your Material Panel >> Settings >> Surface... Is your Transparent Shadows option checked?

Yes it is checked. Sorry, forgot to mention that.

There is a mix shader with an unconected socket, could that be causing so sort of trouble, vene though the next mix node is ignoring it?

Gandalf3 is right. His question "Black artifacts when looking through many transparent objects?", is about the same problem. Thanks for the help and sorry for the duplicate.


text:
How to manage the smoke appearance in blender
How we can change the option of the smoke modifire to create the smoke that want, for example I need a matches fire so how I can alter the options to provide such fire. So it have fire look like at bottom low Alpha blue and the n at midden dark orange so how i can develop such a fire. I mean, according to which factor we can simulate all kind of smoke and fire. Please suggest me some tips some tutorial maybe some books.

The smoke "appearance" is controlled by options of the objects responsible for smoke - smoke flow and smoke domain. Options differ and control different things, and everything depends on what do you want. As your question is stated now it's too broad.

Well you can watch a tutorial (like this: https://www.youtube.com/watch?v=u-zK7Bu8cAI) in youtube.I think it also covers what you are asking.

LInk only answers are discourage as if the link goes down then so does this answer. Please include some of the steps within the answer body itself.


text:
Can a displacement texture be unwrapped independent from the image texture?
Say I have a wall with 16 equal faces. 4*4
i have unwrapped this and has an image texture.
Now if I want a lot of displacement detail on just 1 face of the wall (damage)
I would like it to be much bigger than the others.
how do I do it without having to scale up the whole disp.map?

You need to make two UV maps, use one for displacement and one for the image texture. To do this, go into the mesh properties add hit plus under UV maps:

Now you can edit and update this UV map separatel, be sure to set it for the displace modifier:

Note: when you edit a UV map, you will always be working on the selected one, which is the one highlighted in blue in the UV maps panel. If you need to switch, simply select another one. Also make sure the camera icon is highlighted, as it is by default.


text:
How can I make the shadows more defined?
I have this project where some of the shadows are failing to show up (ex. the shadows that should be cast by the bars on the window).
How do I go about making the shadows appear?
External lighting setup:

How to upload an image to a post?

And so what would you suggest as far as scaling it? The scene has the light placed where I need it, and if I change the size of the light source the intensity will change.

Will that then obscure the first light source?

Thank you for your help. I was unaware of that when a friend had directed me here and I was anxious to ask my questions. I'll go ahead and remove the bits about the UV editing.


text:
Incorporating stills into a video
I am incorporating still into a video using the VSE. When I put an image into the video and preview it the images is way deformed to fit into the output of the video settings. Is there a way to ask Blender to automatically fit the image into the video to match the output of say 1080 or 720? The stills I am using are of various sizes.
Thank you

There is an addon for blender available at https://github.com/mutantbob/blender-letterbox which can be used to quickly add and configure the necessary Effect Strip.
After you have installed this addon from the .py file (instructions) you can either use the Spacebar menu to invoke the letterbox operator, or find it in the Strip menu of the VSE panel.

Transform Effect Strip
In the Blender VSE use the Transform Effect Strip.
The effect strip will be conceptually linked to the original as a pair.
It change change size and location of the image.

If the images are all the same size you can duplicate [Shift D] the pair you created above, drag to new position, and then change the source image, with the button [Change Data Files] indicated.

Atomic, can you show step by step screen captures. I got to the part of adding transform strip, but now I do not understand how to modify the transform to do what I need it to.


text:
UV/Image Editor - renders both cameras... depending. Is this normal behaviour?
While trying to figure out why my glass texture was not right I discovered an unexpected behaviour. Ref image:

I have two cameras in the scene - 1 active and 1 other.
Depending on where my cursor/pointer is when I hit the render key (F12) I get different results, which are:
A. Cursor over top window = render result as image above. Active camera.
B. Cursor over either bottom window = render image from inactive camera....
Is this normal behaviour and therefore I'm missing something about the UV/Image Editor window that I should be looking into?
Blender 2.76
Note (edit): when I first entered the UV/Image Editor window, the other camera was the active one....

This happens if you lock a camera to a viewport.
To lock a camera to a specific viewport, go to the specific 3D viewport's header and deselect the camera lock button on the right side of the layer buttons. Then press N, go to "View - Local Camera" and select a different camera.
To deactivate the view-specific camera, just enable the camera lock and the Render will show the view from the active camera again.

If this answer solves your problem, please vote and mark it as "accepted"

After playing with this, I see that when creating another window/viewport, the new window adopts the Use scene's active camera... lock status.  If the window camera lock is unlocked then the new window will also be unlocked. Blender seems to default with a locked window. I don't recall unlocking any of the windows... but it's possible I clicked the icon during my newbie struggles.  Thanks @metaphor_set, that's potentially very useful. Accepted :-)


text:
Why are procedural textures defaulting to pink?
I've searched throughout this forum and see that the reason textures are in pink is because "the link to the texture file is missing". I understand the whole external file linking workflow from other work I do.
What I don't understand is that I've not imported any textures which could have been lost. I'm using Blender (2.76) right out-of-the-box (and yes, I'm a complete noob), building from a blank start-up cube (no appends).
There appear to me to be default "textures" listed under 'type' such as 'clouds' and 'voronoi'. I've managed to apply a clouds 'type' with no additional external texture file to create a crude, but sufficient-for-now, wood effect.
What are the items listed under 'type'? Are they textures or some 'other thing' and if so, what is the 'other thing' (So I know what to look-up in the index of the noob guides I'm using)?
Thank you.

Ah! Thank you. You've clarified a lot, strangely. I now know what to study.

Apologies. I don't know what you mean by 'edit your question'. [Frantically looks for a 'mark as answered' button.]

Thank you, though the question is answered as far as I'm concerned: "the texture is pink because it's not mapped properly".I'm such a noob, I don't think it would be a good idea to extend the question to mapping. I need to go study rather than take anyone's time up with it here. I'm not even clear, yet, when it's a 'material' and when it's a 'texture'.

The whole point of blender.stackexchange is for newbies, ask and learn.

Change the default color of the procedural texture as shown in the image.
Property panel > Texture tab > Influence Section.

There are many types of texture in the list. Most of them are
classified as procedural. Procedural is just a way of saying "code generated
textures" ... instead of the regular images made from a bunch of pixel (RGB)
information.
The power in procedural map is that it can be applied in many ways
(as a mask or as a texture), mixed with other procedural textures to
form new ones... and this is just two of the many benefits.
The image / Environment map type texture is the only two types that isn't consider procedural.

Thank you Hawkenfox. When I asked if the textures in the list were some 'other thing', I was wondering if they were some sort of alpha channel (mask). Interesting to find they can be used either way.


text:
Render subsection of frame
I'm hoping to be able to render frames of an animation where I render slices that are set to different points in the animation. This effect could easily be achieved in after effects but the render time in Blender would be drastically more so ideally I'd like to cut it down. (Have lots of slices and cameras to merge into single images)
Is there a way to have the animation at frame 1 render the top 50% (or any number of pixels) then move the animate to frame 50 and complete the bottom 50% of image. This would become frame 1 of the rendered footage.
Same then start the next frame this time with frame 2 in the top 50% and frame 51 in the bottom 50%. And so on until we have the completed animation with bottom half offset by 50 frames.
Any advice would be appreciated so much.

would the render border feature not be ideal for this? you can set the x_min, x_max, y_min, y_max of the area you want to render.

@zeffi - that is the better answer, a short script to set border min/max, frame start/end and filepath then render, rinse and repeat and composite together.

@zeffi / @ sambler this worked a treat. Thank you! I have another question about setting the render border in pixels. Is this possible? I have some 1px strips and sometimes the math doesn't add up perfect and it tries to render 0px which causes it to crash. Currently have: min_x = i/1440 max_x = (i+1)/1440 for a 1440x900 pixel image

Blender shouldn't crash, but if it does and you can reproduce it then that should be reported to the bug tracker. My only advice is to do a form of sanity check before setting the min / max values. Setting the render border in pixels directly would be a nice API feature..

Blender will only render the scene as it exists in one specific frame, meaning you can't change frames half way through a render. While you can use the compositor to crop half of the image out, the entire image will be rendered before the crop happens so no time will be saved.
The only way I can think to reduce the render time is to cut the horizontal resolution in half. That would also mean moving the camera to compensate for the altered resolution, two cameras could be parented to stay in the same relative position so that both renders match up. Camera one can then be used to render frames 1-50 and camera two for 51-100. The two "half" images can then be composited together to get the final result.


text:
How do I export a single pose to FBX?
I have a model (Rinky from Big Buck Bunny) that I want to export to FBX for use in Unity. I only need a static model, no walk cycles or anything. I have posed the model and saved the pose in the pose library (there is only one pose in the library). But when I export to FBX, I get the rest pose.
How can I get my custom pose rather than the rest pose when exporting to FBX?
Suggested tags: fbx, pose

related? http://blender.stackexchange.com/questions/28475/how-to-save-pose

One rough way could be to apply the pose as rest pose (CTRLA) and then export. Then undo if you wish to revert to the original rest pose.

I had the same issue today (although for MonoGame instead of Unity) and the trick with applying the pose as rest pose didn't work.
Instead you can go into the model mesh and apply the Armature modifier.
If the Mesh is the same in Object-Mode as in Edit-Mode you can export the mesh as a FBX file.


text:
How can I get ImageRender to take a photo from a camera and save it to a file?
I would like to create a Python script that is called when I press some key while running in the Blender Game Engine, which takes a photo from a specific camera, and then saves this photo to a file (preferrably in PNG format).
The code I tried so far always gives me "None" as image. I guess that the image is calculated only in the next frame, but I also tried to retrieve the resulting image in the next frame, and there was also None in the image.
http://pastebin.ca/3184737


text:
Can .obj files be fractured properly?
When I import an .obj file and fracture it, it doesn't fracture the object into random pieces like a cube would be fractured. Am I missing a step? Or can .obj's not be fractured like a cube?

Complex objects fracture differently. Most likely it is not because of being a .OBJ. If it is formed with Tris, that could be an important factor.

Try running a tris to quads on your mesh before fracturing, Alt J. Also an example of the mesh (image etc) you are trying to break would help in giving you a better answer/alternative.

Even non obj. Files  can be very difficult to fracture. Try cleaning it up by following this tutorial:  https://youtu.be/iAsV_Lh8CSQ

Thank you for your suggestions! I ran a tris to quads and got the same result. I did however figure out how to fracture this same .obj in Cinema4D. Here is a screen shot of the helmet .obj I am working with: https://www.dropbox.com/s/ellh5grkgc53647/Helmet%20mesh.png?dl=0


text:
Rendering through python code
import bpy
def makeMaterial(name, diffuse, specular, alpha):
  mat=bpy.data.materials.new(name)
  mat.diffuse_color = diffuse
  mat.diffuse_shader = 'LAMBERT'
  mat.diffuse_intensity = 1.0
  mat.specular_color = specular
  mat.specular_shader = 'COOKTORR'
  mat.specular_intensity = 0.5
  mat.alpha = alpha
  mat.ambient = 1
return mat

def setMaterial(ob, mat):
  me = ob.data
  me.materials.append(mat)

def run(origin):
  red = makeMaterial('Red', (1,0,0), (1,1,1), 1)
  blue = makeMaterial( 'Blue', (0,0,1), (0.5,0.5,0), 0.5)
  bpy.ops.mesh.primitive_plane_add(location = origin)
  setMaterial(bpy.context.object,red)
  bpy.ops.mesh.primitive_uv_sphere_add(location = origin)
  bpy.ops.transform.translate(value = (1,0,0))
  setMaterial(bpy.context.object,blue);
  ****bpy.ops.render.render()**// This code doesn't seem to execute**

if __name__=="__main__":
  run((0,0,0))

The above code when executed doesn't give me the render output. I have no idea why. I'm running the latest blender version. Any help would be welcome.

Try getting rid of the semicolon at the end of the setMaterial line. Looks like you've been coding too much c++ :) Make sure you get rid of the asterisks also.

do you mean it does render but doesn't change one of the views to show the result ?

The makeMaterial function's return statement isn't indented correctly. The semicolon is syntactically allowed, but it's used to place multiple statements on a single line. 2 space indentation makes it less obvious where your indentation is incorrect, standard Python practice is 4 spaces.
This works:

import bpy
def makeMaterial(name, diffuse, specular, alpha):
  mat=bpy.data.materials.new(name)
  mat.diffuse_color = diffuse
  mat.diffuse_shader = 'LAMBERT'
  mat.diffuse_intensity = 1.0
  mat.specular_color = specular
  mat.specular_shader = 'COOKTORR'
  mat.specular_intensity = 0.5
  mat.alpha = alpha
  mat.ambient = 1
  return mat

def setMaterial(ob, mat):
  me = ob.data
  me.materials.append(mat)

def run(origin):
  red = makeMaterial('Red', (1,0,0), (1,1,1), 1)
  blue = makeMaterial( 'Blue', (0,0,1), (0.5,0.5,0), 0.5)
  bpy.ops.mesh.primitive_plane_add(location = origin)
  setMaterial(bpy.context.object, red)
  bpy.ops.mesh.primitive_uv_sphere_add(location = origin)
  bpy.ops.transform.translate(value = (1,0,0))
  setMaterial(bpy.context.object, blue);
  bpy.ops.render.render()

if __name__=="__main__":
  run((0,0,0))

Setting a material is a little bit easier too:
obj.active_material = bpy.data.materials['Blue']

this also works, reusing the makeMaterial function:
def run(origin):
    red = makeMaterial('Red', (1,0,0), (1,1,1), 1)
    blue = makeMaterial( 'Blue', (0,0,1), (0.5,0.5,0), 0.5)
    bpy.ops.mesh.primitive_plane_add(location = origin)
    bpy.context.object.active_material = red
    bpy.ops.mesh.primitive_uv_sphere_add(location = origin)
    bpy.ops.transform.translate(value = (1,0,0))
    bpy.context.object.active_material = blue
    bpy.ops.render.render()

if __name__=="__main__":
    run((0,0,0))

You won't see the objects or material changes until the render has completed.
Changing the render call to bpy.ops.render.render('INVOKE_DEFAULT'), will switch the current TextEditor window to a UV editor, and show the render progress. When we press the UI button for render.render() it does a few more things behind the scene, like pick where to display the render based on the setting in render.display_mode.
Which amounts to something like this:
def find_largest_3dview_and_switch():
    collected_areas = []
    for window in bpy.context.window_manager.windows:
        for area in window.screen.areas:
            if area.type == 'VIEW_3D':
                size = area.height * area.width
                collected_areas.append([size, area])

    # no 3dview found? use texeditor.
    if len(collected_areas) == 0:
        bpy.ops.render.render('INVOKE_DEFAULT')
        return

    # else use largest 3dview.
    for area in sorted(collected_areas, reverse=True):
        area[1].type = 'IMAGE_EDITOR'
        bpy.ops.render.render('INVOKE_AREA')
        return

Instead of calling the naked bpy.ops.render.render() you could call something like find_largest_3dview_and_switch() and let that decide how to call the render function. It would switch any available 3dview (or largest) to an 'IMAGE_EDITOR' and show the render progress.

well i did use 4 indent spaces. Its just that i pasted them here that way. Either way that isn't the problem. The problem is why it doesn't show the render output.


text:
Replace ivygen leaf cards with custom leaves
is there anyway to replace the leaf cards that ivygen generates with custom modeled and textured leaves (a group) but keeping the original orientations of the leaf cards from ivygen?

Most often you don't want to do that: think about the amount of polygons that would be. (You could kinda get away with it if you work with Ivygen at a small scale. Good luck with doing it with a tree in the Sapling add-on...)
The smart way as long as the camera is far enough to get away with it is to alpha map the leaves. (I believe they are UV unwrapped by default, I could be mistaken.) This reduces the poly but gives you a greater amount of detail.
If you want an example of this technique out in the wild, have a look at this piece from blenderartists: http://blenderartists.org/forum/showthread.php?382855-Fairytale-Village
If the camera is too close for a pure alpha map, you may want to use dupliobject (and specifically duplifaces) to give it some depth. These approaches can be mixed: the exact outline of the leaf can be done using alpha maps to save on polygons. For duplifaces, see here: You could use dupliobjects. See here: http://wiki.blender.org/index.php/Doc:2.4/Manual/Modeling/Objects/Duplication/DupliFaces

the problem with using the default leaf cards is that they are flat and so don't look realistic. I've even watched kent tramell's tutorial on varying the color of leaves, that's not the problem. I don't mind a bit of lag in the viewport and blender can handle high polycounts these days very well. so to achieve just that bit more realism i would like to replace the ivygen leaves with the ones i've modeled.

You could use dupliobjects. See here: http://wiki.blender.org/index.php/Doc:2.4/Manual/Modeling/Objects/Duplication/DupliFaces

That worked, thanks :) It was easier than I thought it would be.

Could you mark this as solved?

If it was dupli objects that solved the problem, this shouldn't be marked as solved. The answer it's self misunderstands the problem. btw, I hear that it takes longer to calculate the alpha of all the leaves then it does to just render a leaf with several poly's and no alpha.

@TARDISMaker I don't have too solid evidence about it, but my point was that the 3D view would turn into syrup. I will try to make the dupli approach visible in the answer.

@TARDISMaker I found using alpha maps slows down render time compared to using non-alpha modeled leaves, even with the transparency depth trick. that was another reason why I wanted this approach. but the problem ivygen has then is that all the leaves face the same direction it seems. it just looks unrealistic. there should be an option to give the leaves some random rotation


text:
How to draw a PostGIS Polygon with holes into Blender using Python
i would like to draw polygons in Blender.
The vertices positions are given as a text in PostGIS format.
Example :
POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))

I already came up with a script working pretty well for any polygon without holes.
However i also need to draw some polygons with holes.
Example (the second polygon defines the hole) :
POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(1 1, 1 2, 2 2, 2 1, 1 1))

Here is the python script so far to draw any sequence of polygons without holes :
import io
import csv
import bmesh
data="""
0;2;POLYGON((0 0,30 0,30 30,0 30,0 0))
0;2;POLYGON((4 4,26 4,26 26,4 26,4 4))
"""

f = io.StringIO(data)
csv_f = csv.reader(f, delimiter=';')

i = 0
for row in csv_f:
    i+=1
    if (len(row)>2):
        verts = eval('['+row[2].replace(',','),(').replace(' ',',')[8:-1]+']')
        bm = bmesh.new()
        for v in verts:
            bm.verts.new((v[0], v[1], float(row[0])))
        bm.faces.new(bm.verts)
        bm.normal_update()
        me = bpy.data.meshes.new(row[0])
        bm.to_mesh(me)
        ob = bpy.data.objects.new(row[0], me)
        bpy.context.scene.objects.link(ob)
bpy.context.scene.update()

Executing this script into Blender will create two squares, one inside the other :

My question is : how to remove the inner square from the big square (and resulting into a hole)
I tried to Add a Boolean modifier on the big square, applied to the inner square object, but i get a "Cannot execute boolean operation".

Is there any other way doing this from Blender and that can be scripted into Python ?

Boolean modifier doesn't work on 2d geometry, hence that error - luckily you don't need to rely on the boolean modifier to achieve the desired result.  See the answer below

Polygons can't have holes without a pathway between the hole and the perimeter. ( see: BMesh polygons with holes )
It is perhaps more convenient to use a 2D Curve. They can represent a face with holes easily using a Spline type called 'POLY'. For Example:

Then later Convert to a Polygon based Mesh and let Blender take care of how it arranges the tessellation.
here a script you could use:
import bpy

# weight
w = 1

def MakeFilledPolyLine(objname, curvename, cLists):
    curvedata = bpy.data.curves.new(name=curvename, type='CURVE')
    curvedata.dimensions = '2D'

    odata = bpy.data.objects.new(objname, curvedata)
    odata.location = (0,0,0) # object origin
    bpy.context.scene.objects.link(odata)

    for cList in cLists:
        polyline = curvedata.splines.new('POLY')
        polyline.points.add(len(cList)-1)
        for num in range(len(cList)):
            polyline.points[num].co = cList[num][0], cList[num][1], 0, w

        polyline.order_u = len(polyline.points)-1
        polyline.use_endpoint_u = True
        polyline.use_cyclic_u = True

# using the cyclic switch auto closes the loops, notice i've
# dropped the last coordinates.
vectors = [
    [[0,0], [10,0], [10,10], [0,10]],
    [[1,1], [1,2], [2,2], [2,1]]
]
MakeFilledPolyLine("NameOfMyCurveObject", "NameOfMyCurve", vectors)

The upside of this is it would handle polygons with no holes, or with any number of holes using the same code.

If you've come this far, I expect it will be a trivial matter to convert the strings of that PostGIS file into the appropriately formatted nested lists for the MakeFilledPolyLine function.

Thank you so much zeffii for your awsome illustrated answer. This is exacly what i as aiming at. I definitely needs to practice more to get used with those concepts. Your script will be a very nice starting point for this. Now i can parse my PostGIS export and feed your function with it. Next I will probably turn the curve object into a mesh object and extrude it on the z axis. This is so geat :)

Simply use bmesh.ops.triangle_fill to accomplish your task:
bmesh.ops.triangle_fill(bm, use_beauty=True, use_dissolve=False, edges=outer_and_inner_edges)

Here outer_and_inner_edges is the list of BMesh edges (both outer and inner) that constitute your polygon with holes.
The operator will create a bunch of triangles that cover the polygon in question.

i think this should be the accepted answer.


text:
Search enum list
Is there a way to add search functionality to EnumProperty in my add-on, similar to material search?
Or maybe there is another property with search functionality that I could use?

http://blender.stackexchange.com/a/8814/5113

@Chebhou Thanks, but template_list is not what I am looking for, it's too big and has a different and more complicated purpose than a simple dropdown list.

As of Blender 2.79+ you can use a PointerProperty:

Demo based on @batFINGERs answer to Object selection box with eyedropper
import bpy
from bpy.props import PointerProperty

class TEST_PT_layout_panel(bpy.types.Panel):
    bl_label = "Prop Panels"
    bl_category = "Test Panel"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "scene"

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

        col = layout.column()
        col.prop_search(scene, "prop_obj", context.scene, "objects")
        #or
        col.prop(scene, "prop_obj")
        col.prop(scene, "prop_mat")

def register():
    bpy.types.Scene.prop_obj = PointerProperty(type=bpy.types.Object)
    bpy.types.Scene.prop_mat = PointerProperty(type=bpy.types.Material)
    bpy.utils.register_class(TEST_PT_layout_panel)

def unregister():
    bpy.utils.unregister_class(TEST_PT_layout_panel)
    del bpy.types.Scene.prop_obj
    del bpy.types.Scene.prop_mat

if __name__ == "__main__":
    register()
    bpy.ops.wm.call_panel(name="TEST_PT_layout_panel")

Alternatively you can use a Search Popup. The following operator example lists all objects in the scene and returns the selected object name:

Blender 2.8+
bl_info = {
    "name": "Search Popup",
    "version": (0, 0, 1),
    "blender": (2, 80, 0),
    "category": "Development"
}

import bpy

from bpy.props import EnumProperty
from bpy.types import Operator

# ------------------------------------------------------------------------
#   Operator
# ------------------------------------------------------------------------

def my_callback(scene, context):
    objs = ([o.name for o in bpy.context.scene.objects])
    return [(y.upper(), y, "", x) for x, y in enumerate(objs)]

class MYCAT_OT_searchPopup(Operator):
    """Tooltip"""
    bl_idname = "object.search_popup"
    bl_label = "Search Popup"
    bl_property = "my_enum"

    my_enum: EnumProperty(name="Objects", description="", items=my_callback)

    def execute(self, context):
        self.report({'INFO'}, "You've selected: %s" % self.my_enum)
        return {'FINISHED'}

    def invoke(self, context, event):
        wm = context.window_manager
        wm.invoke_search_popup(self)
        return {'FINISHED'}

# ------------------------------------------------------------------------
#   Register
# ------------------------------------------------------------------------

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

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

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.object.search_popup('INVOKE_DEFAULT')

Blender 2.7x
bl_info = {
    "name": "Search Popup",
    "version": (0, 0, 1),
    "blender": (2, 75, 0),
    "category": "Test"
}

import bpy

from bpy.props import (EnumProperty,
                       PointerProperty,
                       )
from bpy.types import (Operator,
                       AddonPreferences,
                       PropertyGroup,
                       )

# ------------------------------------------------------------------------
#    store properties in the active scene
# ------------------------------------------------------------------------

def my_callback(scene, context):
    objs = ([o.name for o in bpy.context.scene.objects])
    return [(y.upper(), y, "", x) for x, y in enumerate(objs)]

class MySettings(PropertyGroup):

    objs = EnumProperty(
        name="Objects",
        description="",
        items=my_callback
        )

# ------------------------------------------------------------------------
#    operator
# ------------------------------------------------------------------------

class MyOperator(Operator):
    """Tooltip"""
    bl_idname = "object.search_popup"
    bl_label = "Search Popup"
    bl_property = "my_enum"

    my_enum = MySettings.objs

    def execute(self, context):
        self.report({'INFO'}, "You've selected: %s" % self.my_enum)
        return {'FINISHED'}

    def invoke(self, context, event):
        wm = context.window_manager
        wm.invoke_search_popup(self)
        return {'FINISHED'}

# ------------------------------------------------------------------------
# register and unregister functions
# ------------------------------------------------------------------------

def register():
    bpy.utils.register_module(__name__)
    bpy.types.Scene.my_tool = PointerProperty(type=MySettings)

def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.Scene.my_tool

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.object.search_popup('INVOKE_DEFAULT')

Related:

What ui would work for choosing from a long, long list?
Create an interface which is similar to the material list box

Sure, here is the add-on.

@MikhailRachinskiy Looking great :) Thanks for sharing!

I'm new to python. Question is it also possible to list scene collections like the objects and materials in the example? Working in Blender 3.6.x

Yeah, it should work the same way @ChristophWerner

One can use bpy.types.UILayout.template_ID to get this UI element, but it works only with datablocks, enums won't work with it.

just out of curiosity did you look into the py script that calls such a template?

@ClaasKuhnen Sure, just press RMB on "Add new material" button and select "Edit Source" from drop down menu.

U missunderstood me me. As far as I know the templates point to other Py files where they define the layout for just UI elements. Maybe in those py files is the answer to your question.

@ClaasKuhnen As far as I know all UI elements written in C, just to check I looked in Blender's /scripts/modules folder and discovered nothing that might describe UI elements.

I am sorry - just thought this might be an option.


text:
Evaluated mesh data from edit mode
Is there a way to get evaluated mesh from within edit mode without using to_mesh?
depsgraph.id_eval_get(obj).data works only from object mode.

Currently to_mesh is the only way of getting evaluated mesh from within edit mode.


text:
Viewport widgets with draw handler
Is it possible to create viewport widgets with draw handler?
I have an operator which produces simple mesh geometry, I use operator redo properties panel to edit the result as shown in animation below:

But I want to draw on-screen property widgets in the viewport, like so:

Would this kind of functionality be possible using modal operator and draw handler?
Also is it possible to create 3D widgets similar way?

These addons can draw some additional UI in the viewport, though they are not interactive I think. Maybe exploring their source code will help you attain what you need https://blenderartists.org/forum/showthread.php?407260-AddOn-NP-Point-Copy

@DuarteFarrajotaRamos thanks, I already looked into various add-ons, and the only add-on that might hold the answer is Motion Trails, but it's 2k lines of badly structured code, I doubt I can make sense of it.

Somewhat Related in that it uses bgl to overdraw 3d views when mousing over the simple rectangular "button".  However it is my belief that bgl is going to be dropped from 2.8.

@batFINGER thatnks! This is is actually what I was looking for! I already made code that creates working slider, and this code add's region detection to it.


text:
Proper GPUOffScreen projection matrix from viewport
How to get proper GPUOffScreen projection matrix from viewport?
API docs have example only for camera.
I tried using view_matrix and perspective_matrix, but that does not seem to work.
gpu.matrix.load_matrix(region_3d.view_matrix.inverted())
gpu.matrix.load_projection_matrix(region_3d.perspective_matrix)

Here is full script, it supposed to display silhouettes for all objects in the scene:
import bpy
import gpu
from gpu_extras.batch import batch_for_shader
from gpu_extras.presets import draw_texture_2d

def get_regions():
    for window in bpy.context.window_manager.windows:
        for area in window.screen.areas:
            if area.type == "VIEW_3D":
                r3d = area.spaces[0].region_3d
                for r in area.regions:
                    if r.type == "WINDOW":
                        return r, r3d

region, region_3d = get_regions()
offscreen = gpu.types.GPUOffScreen(region.width, region.height)

with offscreen.bind():
    fb = gpu.state.active_framebuffer_get()
    fb.clear(color=(0.0, 0.0, 0.0, 0.0))

    with gpu.matrix.push_pop():
        gpu.matrix.load_matrix(region_3d.view_matrix.inverted())
        gpu.matrix.load_projection_matrix(region_3d.perspective_matrix)

        for ob in bpy.context.scene.objects:
            me = ob.to_mesh()
            me.transform(ob.matrix_world)
            me.calc_loop_triangles()

            points = [v.co for v in me.vertices]
            indices = [tri.vertices for tri in me.loop_triangles]

            shader = gpu.shader.from_builtin("UNIFORM_COLOR")
            shader.bind()
            shader.uniform_float("color", (1.0, 0.2, 0.2, 1.0))
            batch = batch_for_shader(shader, "TRIS", {"pos": points}, indices=indices)
            batch.draw(shader)

            ob.to_mesh_clear()

def draw(self, context):
    gpu.state.blend_set("ALPHA")
    draw_texture_2d(offscreen.texture_color, (0, 0), region.width, region.height)
    gpu.state.blend_set("NONE")

bpy.types.SpaceView3D.draw_handler_add(draw, (None, None), "WINDOW", "POST_PIXEL")

You need to replace:
with gpu.matrix.push_pop():
    gpu.matrix.load_matrix(region_3d.view_matrix.inverted())
    gpu.matrix.load_projection_matrix(region_3d.perspective_matrix)

with:
with gpu.matrix.push_pop():
    gpu.matrix.load_matrix(region_3d.view_matrix)
    gpu.matrix.load_projection_matrix(region_3d.window_matrix)

Relevant section in the docs:

Current perspective matrix (window_matrix * view_matrix)

So you accidently did $W \cdot V \cdot V^{-1} = P \cdot V^{-1}$
but you just want $W \cdot V = P$
This perspective is already "through the window".
You can convince yourself with trying:
with gpu.matrix.push_pop():
    #gpu.matrix.load_matrix(region_3d.view_matrix.inverted())
    gpu.matrix.load_projection_matrix(region_3d.perspective_matrix)

which works as well. But the view matrix should potentionally not be merged on the projection stack to avoid other problems.