44

You can read this code.blender.org post describing the development goals for Eevee: https://code.blender.org/2017/03/eevee-roadmap/ In short, Eevee is meant to be a modern, high-quality viewport that will perform better than the current Blender viewport, and can better approximate the shaders for game engines or renderers such as Cycles. It will also be ...


8

Summary (Not official: based on own research) Two kinds of icon I think that "the monochromatic icons", the small ones used in menus etc, are not present as separate files in the compiled releases of Blender because they are compiled in the binary code. By the way, they are not necessarily monochromatic: this isn't "forced" in the code, it's just a design ...


3

2.80 is not finished yet. If you are afraid of something broken, you should not use experimental builds. There are broken things in them - that's a fact. So you should not do anything about 2.80, but you can if you want to and you can download it every day if you wish - you would get some updates daily because they are built pretty much every day(see the ...


3

If you select default, the transform will be the sRGB OETF as applied via OCIO. If you select any of the other view transforms such as Filmic, it's an entirely different dynamic range and transfer function. The discrepancies you are seeing may be a byproduct of the LUT approach, but I'm not sure. Converting a scene referred EXR to a display referred PNG ...


3

You can check out the versions Tags and commit hashes here: https://git.blender.org/gitweb/gitweb.cgi/blender.git/tags git clone git://git.blender.org/blender.git (and be patient as this is a monster repo!) cd blender git checkout v2.79 (or whatever version you need) You can also fetch only a specific tag from blenger.org however, not sure that will save ...


3

You say you have done some python scripting so you have already started. Look around here, can you provide an answer to any questions that have a python tag? Can you solve other answers with a script? Search blender's api reference to help make your answer. Read other python answers to learn something new. Stuck with something? ask a question and learn from ...


3

Great question! There are many ways to help developing Blender. The best way is to find things to improve first, like fixing bugs. That'll help getting familiar with the code and structure of Blender. The first place to start is the wiki page https://wiki.blender.org/index.php/Dev:Contents, mostly the "Getting Started" section. Also drop by on IRC, channel #...


3

As of today, not yet. You can do a simple query in the blender source repositories to verify: https://developer.blender.org/diffusion/ However, there has been some work to make it happen: https://github.com/walac/blender-wayland


2

Blender is under continuous development, with new features and bug fixes being added to the code as soon as they meet the criteria for ready. The codebase is the built nightly and the builds are available at https://builder.blender.org/download/. This allows users to preview and test what will be in the next release, but should be used with care, as these ...


2

Since Blender 2.79 this possible by using bpy.props.PointerProperty and its poll parameter. For example: # define the filter method def filter_on_custom_prop(self, object): return "MyCustomPropName" in object # define the property by using the bpy.props.PointerProperty and its poll function bpy.types.Object.my_object = bpy.props.PointerProperty( ...


2

Handlers are callback handlers that work on application level. Drivers work on data level. What does this mean? app.handlers also work without having any data to work with. For drivers you will always need to add the driver to existing data in blender. For example an attribute on your object. The app.driver_namespace contains some value modification ...


2

Moving map camera The code snippet does not move the camera at all. I guess it is supposed to setup the VideoTexture source of an object that shows the output of the map camera. You simply move the map camera as you like. I guess you break the parent-child relationship to the character to achieve what you are looking for. Finding the minimap camera The ...


2

You can use application handlers which can be executed before or after specific operations. For your case there is a load_post handler, kicking in after the blend file is loaded and even a load_pre handler kicking in before the file is loading. Simple add-on example using bpy.app.handlers.load_post handler: bl_info = { "name": "Load Handler", "...


2

I think calculations should not be 'caller dependent', because if so, you'll need to pass many additional arguments to every function called in the process. So one way to inform a calculation has failed is simply to raise an exception. Like so: import bpy def a_function(context): raise Exception( "An error occured in 'a_function'" ) class ...


2

Blender becomes laggy at 1000000000 and crashes at 10000000000 characters on my machine (64bit): my_int: IntProperty( name = "Int Value", description=1000000000*"A", default = 23, min = 10, max = 100 )


1

You can add a wiki URL ("wiki_url") to the bl_info of your add-on. This will result in a link to the documentation in the add-on preferences. Alternatively you can use bpy.ops.wm.url_open(url="") in your code to open the browser.


1

One simple way to accomplish this is to set up a PointerProperty on the scene to store these values: def register(): bpy.utils.register_class(MyClass) bpy.types.Scene.temp_props = PointerProperty(type=MyClass) Now you can reference the properties in your draw_buttons call with bpy.context.scene.temp_props: def draw_panel(): if active_object: ...


1

I agree with @lemon that the 'calculations should not be caller dependent'. Here is my take... (this could be refined further, but maybe, that would be an overkill for a script): import bpy, random class ErrorInfo: SUCCESS = 0 ERR_1 = 1 ERR_2 = 2 ERROR_LOOKUP = { ERR_1: ['Forbidden Odd', 'Unerlaubte ungerade Zahl'], ...


1

You can pass what you want and even self, this way it is easy determine where the call is coming from. Operator based on Templates > Python > Operator Simple: import bpy def main(operator, context): print (operator, context) operator.report({'INFO'}, 'Call is comming from: {}'.format(operator)) #return operator class SimpleOperator(bpy.types....


1

Blender has its own platform for donations. You can donate to Blender development fund or make a one time donation using the listed options that include PayPal and even several cryptocurrencies.


1

Check out Zipf's law (vsauce youtube video). So functionality is not linearly proportional to code complexity (software size). Usually 80% functionality takes 20% time to code, but solving all the edge cases, weird interactions, bugs, etc. takes the 80% of time and code. You can code a nice simple working example, but if you'd like to make it multithreaded,...


1

I finally found a correct solution using a better code semantic. The code should be done in 2 nested conditions; the main TAB event and the SHIFT event as in the following code: elif event.type == "TAB" and event.value == "PRESS": if event.shift: # ... (code for TAB + SHIFT) else: # ... (code for TAB) return {'RUNNING_MODAL'} ...


1

Instructions: 1) Read useful info on following websites: RNA, Property, DataApi. 2) On this websites blender guys give description how they are creating their gui. Description is not very easy to understand, but following sentences gave me an idea, what is wrong, when I try to convert button from short to int. More later about saving and loading, what ...


1

Ok, After some dumb research, I find ID property who hold basic property like name. Object *obj; printf("%s", obj.ID.name);


1

Since Blender 2.79 you can do the following. ############################### ## Portal plane ############################### def is_wowgroup_enabled(self, obj): return obj.WowWMOGroup.Enabled class WowPortalPlanePanel(bpy.types.Panel): bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "object" bl_label = "Wow Portal ...


1

I got it working. Leaving the answer here in case somebody else is looking for a way to develop a similar kind of custom "armature animation modifier" (if I can call it that). Again if anyone sees a better way, let me know! Basically, I dug a little deeper into why the armature_update_post Python callback (which I added to BKE_pose_where_is, as explained ...


Only top voted, non community-wiki answers of a minimum length are eligible