Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-08-07Cleanup: use C++ style casts in various placesJacques Lucke
2020-08-07Cleanup: pass arrays const where possibleCampbell Barton
2020-08-07Cleanup: declare arrays arrays where possibleCampbell Barton
2020-08-07Cleanup: Nodes, Clang-Tidy else-after-return fixesSybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule in the `source/blender/nodes` module. No functional changes.
2020-08-07Code Style: use "#pragma once" in some newer headersJacques Lucke
Those were missing from the previous commit, because these headers only exist in the `master` and not in the `blender-v2.90-release` branch.
2020-08-07Merge branch 'blender-v2.90-release' into masterJacques Lucke
2020-08-07Code Style: use "#pragma once" in source directoryJacques Lucke
This replaces header include guards with `#pragma once`. A couple of include guards are not removed yet (e.g. `__RNA_TYPES_H__`), because they are used in other places. This patch has been generated by P1561 followed by `make format`. Differential Revision: https://developer.blender.org/D8466
2020-08-05Merge branch 'blender-v2.90-release'Alexander Gavrilov
2020-08-05Eevee: do not rely on the SOCK_HIDE_VALUE flag for node group sockets.Alexander Gavrilov
When disconnecting links for defaulted node group inputs, recurse into the nested node group nodes, instead of checking the socket flag. Otherwise the behavior is confusing and differs from Cycles. Differential Revision: https://developer.blender.org/D8455
2020-08-05Cleanup: remove some private fields that are currently unusedJacques Lucke
2020-08-04Merge branch 'blender-v2.90-release'Alexander Gavrilov
2020-08-04Node Groups: expose the SOCK_HIDE_VALUE flag for node group inputs.Alexander Gavrilov
This flag specifies that even when the socket is not connected, the node should not display the input field for the constant input value. This is useful for inputs like Normal, which have special handling for the missing input case and don't use a constant value. Currently there is no way to change this flag from Python, and through UI it can only be done by re-creating the socket. This patch exposes the flag through RNA and UI, makes sure it is properly updated when changed, and adds special handling to ensure that it is correctly set when creating a node group from a node set that includes reroute nodes. Differential Revision: https://developer.blender.org/D8395
2020-08-02Particles: new Age Reached Event, Kill Particle and Random Float nodeJacques Lucke
The hardcoded age limit is now gone. The behavior can be implemented with an Age Reached Event and Kill Particle node. Other utility nodes to handle age limits of particles can be added later. Adding an Age Limit attribute to particles on birth will be useful for some effects, e.g. when you want to control the color or size of a particle over its life time. The Random Float node takes a seed currently. Different nodes will produce different values even with the same seed. However, the same node will generate the same random number for the same seed every time. The "Hash" of a particle can be used as seed. Later, we'd want to have more modes in the node to make it more user friendly. Modes could be: Per Particle, Per Time, Per Particle Per Time, Per Node Instance, ... Also a Random Vector node will be useful, as it currently has to be build using three Random Float nodes.
2020-08-01Cleanup: use term init instead of initialize/initialiseCampbell Barton
The abbreviation 'init' is brief, unambiguous and already used in thousands of places, also initialize is often accidentally written with British spelling.
2020-07-30EEVEE: GLSL refactor/cleanupClément Foucault
- add the use of DRWShaderLibrary to EEVEE's glsl codebase to reduce code complexity and duplication. - split bsdf_common_lib.glsl into multiple sub library which are now shared with other engines. - the surface shader code is now more organised and have its own files. - change default world to use a material nodetree and make lookdev shader more clear. Reviewed By: jbakker Differential Revision: https://developer.blender.org/D8306
2020-07-30Cleanup: GPU: Remove GPU_draw.h and move fluid gpu function to DRWClément Foucault
2020-07-29GPU: Refactor gpu_texture_image to not use GL callsClément Foucault
This is also a bit of code cleanup, reorganisation. Tried to be DRYed but avoid too much code change to (hopefully) minimize breakage. - GPU: remove TEXTARGET_CUBE_MAP, this is no longer used in the codebase. - GPUTexture: Move compressed texture upload to gpu_texture.cc - GPUTexture: Add per texture Anisotropic filtering switch
2020-07-27Particles: support Clamp nodeJacques Lucke
2020-07-27Particles: initial support for events and actionsJacques Lucke
The following nodes work now (although things can still be improved of course): Particle Birth Event, Praticle Time Step Event, Set Particle Attribute and Execute Condition. Multiple Set Particle Attribute nodes can be chained using the "Execute" sockets. They will be executed from left to right.
2020-07-25Particles: initial Quick Particles operatorJacques Lucke
This operator automates the following steps: 1. Create a point cloud object. 2. Create a simulation data block. 3. Add a small particle simulation to the node tree. 4. Add a Simulation modifier to the point cloud object. 5. Reference the particle simulation from the modifier. You have to go back to frame 1 to start the simulation. The simulation is not yet cached and cannot be rendered. The bounding box of the point cloud object is enabled for now, because otherwise it is hard to select the object.
2020-07-24BLI: add MultiValueMapJacques Lucke
This is a convenience wrapper for `Map<Key, Vector<Value>>`. It does not provide any performance benefits (yet). I need this kind of map in a couple of places and before I was duplicating the lookup logic in many places.
2020-07-23Particles: spawn particles on mesh surfaceJacques Lucke
2020-07-23Simulation: add depsgraph relations for ids referenced by node treeJacques Lucke
I'll really have to refactor `ntreeUpdateTree` soon to avoid scanning all node trees multiple times.
2020-07-21Particles: initial object socket and emitter node supportJacques Lucke
Object sockets work now, but only the new Object Transforms and the Particle Mesh Emitter node use it. The emitter does not actually use the mesh surface yet. Instead, new particles are just emitted around the origin of the object. Internally, handles to object data blocks are passed around in the network, instead of raw object pointers. Using handles has a couple of benefits: * The caller of the function has control over which handles can be resolved and therefore limit access to specific data. The set of data blocks that is accessed by a node tree should be known statically. This is necessary for a proper integration with the dependency graph. * When the pointer to an object changes (e.g. after restarting Blender), all handles are still valid. * When an object is deleted, the handle is invalidated without causing crashes. * The handle is just an integer that can be stored per particle and can be cached easily. The mapping between handles and their corresponding data blocks is stored in the Simulation data block.
2020-07-20Cycles: adjust Sky texture intensity to follow physical unitsBrecht Van Lommel
The sky will appear brighter than before by default. To compensate for this, lower exposure in the Film panel. The default altitude was also changed from 90 to 15 degrees. Patch contributed by Marco with the help of Ryan Jones. Differential Revision: https://developer.blender.org/D8285
2020-07-20Refactor: Update integer type usageJacques Lucke
This updates the usage of integer types in code I wrote according to our new style guides. Major changes: * Use signed instead of unsigned integers in many places. * C++ containers in blenlib use `int64_t` for size and indices now (instead of `uint`). * Hash values for C++ containers are 64 bit wide now (instead of 32 bit). I do hope that I broke no builds, but it is quite likely that some compiler reports slightly different errors. Please let me know when there are any errors. If the fix is small, feel free to commit it yourself. I compiled successfully on linux with gcc and on windows.
2020-07-17Simulation: move initial simulation code from bf_blenkernel to bf_simulationJacques Lucke
I removed bf_blenkernel from `nodes/CMakeLists.txt` again (added it yesterday), because now this was causing me unresolved symbol errors... Without it, cmake seems to link the libraries bf_simulation, bf_blenkernel and bf_nodes in the right order. Not sure if that is just luck or if it is guaranteed. It was possible to fix the issue by using cmakes `LINK_INTERFACE_MULTIPLICITY`, but that is probably bad style.
2020-07-17BLI: add StringRefNull.c_str() methodJacques Lucke
This should be used whenever you rely on the fact, that the returned pointer points to the beginning of a null-terminated array.
2020-07-17Nodes: move some code from blenkernel directory to nodesJacques Lucke
This also introduces the `blender::nodes` namespace. Eventually, we want to move most/all of the node implementation files into this namespace. The reason for this file-move is that the code fits much better into the `nodes` directory than in the `blenkernel` directory.
2020-07-16Fix link error in bf_nodesJacques Lucke
I got undefined reference errors on the `NodeMFNetworkBuilder::get_default_fn` function under some circumstances. This symbol is definitely defined in bf_blenkernel. The error seemed a bit undeterministic and was probably caused by some incorrect link order. I don't get the error with this change.
2020-07-16Particles: support Separate/Combine RGB nodesJacques Lucke
2020-07-16Particles: simplify Combine XYZ nodeJacques Lucke
2020-07-16Particles: support Color Ramp nodeJacques Lucke
2020-07-16Particles: support Map Range nodeJacques Lucke
Only linear interpolation mode is supported for now.
2020-07-16Particles: implement more vector math operationsJacques Lucke
2020-07-16Particles: support for most math node operationsJacques Lucke
2020-07-13Clang Tidy: enable readability-non-const-parameter warningJacques Lucke
Clang Tidy reported a couple of false positives. I disabled those `NOLINTNEXTLINE`. Differential Revision: https://developer.blender.org/D8199
2020-07-13Cycles: Add control for sun intensity in Sky Texture and change altitude to kmLukas Stockner
Differential Revision: https://developer.blender.org/D8091
2020-07-13Cycles: Remove Vector input on Sky texture when using the included sunLukas Stockner
When using the sun, we need to sun sampling logic to avoid excessive sampling map resolution, but that logic assumes that the Vector input comes from the view direction. That is the case in the vast majority of cases anyways, so the easiest solution is to just remove the input for that case. Differential Revision: https://developer.blender.org/D8091
2020-07-11Nodes: support vector math node in simulation node treeJacques Lucke
2020-07-11Nodes: support math node in simulation node treeJacques Lucke
2020-07-11Nodes: support Value node in simulation node treeJacques Lucke
2020-07-11Nodes: move Math, Vector Math and Value shader nodes to c++ filesJacques Lucke
This required a little bit of refactoring, because we were using c-only syntax for the gpu shader names. All tests are still passing.
2020-07-09Sculpt: Make Sculpt Vertex Colors features experimentalPablo Dobarro
This disables all Sculpt Vertex Colors tools, operators, panels and rendering capabilities and puts them under the "Use Sculpt Vertex Colors" experimental option. Reviewed By: brecht Differential Revision: https://developer.blender.org/D8239
2020-07-09EEVEE: Implement the missing Sky textureSzymon Ulatowski
I'm not sure if the Sky was deliberately left out or was just waiting for a better moment, but so many I was disappointed that Sky in EEVEE is completely white. There are already 2 implementations (osl and gpu) so this is the third one. Looking at other cases it seems that we are not supposed to share sources between cycles and the rest? So the new util_sky_model files are just copies of what is already in cycles, except that the data file uses the RGB variant of the Hosek/Wilkie model, because we output RGB anyway (but can be easily changed to XYZ if desired - the results are nearly identical). I am not sure if it is okay to pass 3*9 float values as 3 mat4 uniforms (I wanted to use mat3 but it does not work). Also, should I cache the sky model data between renders if the parameters do not change? Reviewed By: fclem, brecht Differential Revision: https://developer.blender.org/D7108
2020-07-07Cleanup: fix typoJacques Lucke
2020-07-07Nodes: Generate multi-function network from node treeJacques Lucke
This adds new callbacks to `bNodeSocketType` and `bNodeType`. Those are used to generate a multi-function network from a node tree. Later, this network is evaluated on e.g. particle data. Reviewers: brecht Differential Revision: https://developer.blender.org/D8169
2020-07-01Cleanup: spellingCampbell Barton
2020-06-30Cleanup: add missing extern "C"Jacques Lucke
2020-06-29Nodes: rename node_socket.c to node_socket.ccJacques Lucke
I have to add some C++ code in callbacks for socket types for the new particle system.