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
2019-08-30GPU: Split gpu_shader_material into multiple files.OmarSquircleArt
This patch continue the efforts to split the `gpu_shader_material` file started in D5569. Dependency resolution is now recursive. Each shading node gets its own file. Additionally, some utility files are added to be shared between files, like `math_util`, `color_util`, and `hash`. Some files are always included because they may be used in the execution function, like `world_normals`. Some glsl functions appeared to be unused, so they were removed, like `output_node`, `bits_to_01`, and `exp_blender`. Other functions have been renamed to be more general and get used as utils, like `texco_norm` which became `vector_normalize`. A lot of the opengl tests fails, but those same tests also fail in master, so this is probably unrelated to this patch. Reviewers: brecht Differential Revision: https://developer.blender.org/D5616
2019-08-27Fix T68687 Eevee: Modulo node behaves unexpectedly/inconsistentlyClément Foucault
This was a regression.
2019-08-26GPU: add mechanism for splitting up big gpu_shader_material.glsl fileBrecht Van Lommel
Compiling this big file for every Eevee material is bad for performance, and now that we are adding more nodes it gets worse. This patch adds a simple mechanism to split up that file, and use only the parts used by shader nodes. When a function is used by GPU_link, we detect which GLSL file it came from and use it in GLSL code generation automatically. Dependencies between GLSL files are manually specified, and function names must be unique across all GLSL files. Most of the actual splitting up will be done in later commits. Differential Revision: https://developer.blender.org/D5569
2019-08-22Shading: Add object color to Object Info node.OmarSquircleArt
The object color property is added as an additional output in the Object Info node. Reviewers: brecht Differential Revision: https://developer.blender.org/D5554
2019-08-22Nodes: Support for socket shapes other than circleCharlie Jolly
Previously there was already "draw_shape" property, but it was doing nothing. This commit renames the property to "display_shape". Furthermore, different shapes like SQUARE and DIAMOND are supported now. Currently, the shapes are drawn using the shader that also draws keyframes. In the future we might want to separate this. The new shapes are not used anywhere yet, but they can be used by addon developers and will probably be useful when we want to support different kinds node systems later. For example, different shapes can be used to distinguish between data and control flow. Differential Revision: https://developer.blender.org/D2829
2019-08-21Cleanup: clang-formatCampbell Barton
2019-08-21Shading: Add Volume Info node.OmarSquircleArt
The Volume Info node provides the Color, Desnity, Flame, and Temperature of smoke domains. Reviewers: brecht Differential Revision: https://developer.blender.org/D5551
2019-08-21Shading: Add White Noise node.OmarSquircleArt
The White Noise node hashes the input and returns a random number in the range [0, 1]. The input can be a 1D, 2D, 3D, or a 4D vector. Reviewers: brecht, JacquesLucke Differential Revision: https://developer.blender.org/D5550
2019-08-21Shading: Add more operators to Vector Math node.OmarSquircleArt
Add Multiply, Divide, Project, Reflect, Distance, Length, Scale, Snap, Floor, Ceil, Modulo, Fraction, Absolute, Minimum, and Maximum operators to the Vector Math node. The Value output has been removed from operators whose output is a vector, and the other way around. All of those removals has been handled properly in versioning code. The patch doesn't include tests for the new operators. Tests will be added in a later patch. Reviewers: brecht, JacquesLucke Differential Revision: https://developer.blender.org/D5523
2019-08-18Shading: Refactor Math node and use dynamic inputs.OmarSquircleArt
- Implement dynamic inputs. The second input is now unavailable in single operand math operators. - Reimplemenet the clamp option using graph expansion for Cycles. - Clean up code and unify naming between Blender and Cycles. - Remove unused code. Reviewers: brecht Differential Revision: https://developer.blender.org/D5481
2019-08-14Mesh Batch Cache: Refactor + MultithreadClément Foucault
For clarity sake, the batch cache now uses exclusively per Loop attributes. While this is a bit of a waste of VRAM (for the few case where per vert attribs are enough) it reduces the complexity and amount of overall VBO to update in general situations. This patch also makes the VertexBuffers filling multithreaded. This make the update of dense meshes a bit faster. The main bottleneck is the IndexBuffers update which cannot be multithreaded efficiently (have to increment a counter and/or do a final sorting pass). We introduce the concept of "extract" functions/step. All extract functions are executed in one thread each and if possible, using multiple thread for looping over all elements. Reviewed By: brecht Differential Revision: http://developer.blender.org/D5424
2019-08-14Eevee: Fix background alpha regressionClément Foucault
2019-08-14Eevee: Add support for the holdout nodeClément Foucault
Support should be full when using Alpha Blend mode and partial if using any other blend mode (opaque / alpha clip / alpha hashed).
2019-08-14Eevee: Improve Transparent BSDF behaviorClément Foucault
Alpha blended Transparency is now using dual source blending making it fully compatible with cycles Transparent BSDF. Multiply and additive blend mode can be achieved using some nodes and are going to be removed.
2019-08-14Fix T68537 Eevee: Modulo node behaves unexpectedly/inconsistentlyClément Foucault
There was still some float imprecision when both input values are equal.
2019-08-13Shading: Add Clamp node to Cycles and EEVEE.OmarSquircleArt
This patch adds a new node that clamps a value between a maximum and a minimum values. Reviewers: brecht Differential Revision: https://developer.blender.org/D5476
2019-08-13Shading: Add Map Range node to Cycles and EEVEE.OmarSquircleArt
This patch adds a new Map Range node that linearly remaps an input value from a range to another. This node is similar to the compositor's Map Range node. Reviewers: brecht, JacquesLucke Differential Revision: https://developer.blender.org/D5471
2019-08-07Fix T67623 Eevee: Modulo node making unexpected/inconsistent behaviourClément Foucault
This was a precision error. Using a more robust approach
2019-07-303D View: Move selection API to a Selection engine.mano-wii
This commit moves the API of selecting faces, vertices and edges to a DRW manager engine. Reviewers: campbellbarton, fclem Subscribers: jbakker, brecht Differential Revision: https://developer.blender.org/D5090
2019-07-10Fix T57489 Eevee: Texture coordinate object reference not working for worldClément Foucault
2019-07-07Cleanup: rename gpencil chess -> checkerCampbell Barton
Match existing texture name.
2019-06-17Fix T57650 UVEdit: selection not visible if behind unselected UVsClément Foucault
Use depth buffer to order the uv edges correctly to always draw selected edges on top. We still use the double drawing workaround for points to keep the smooth antialiased display.
2019-06-07Fix T64625: Eevee image textures with alpha have dark edgesBrecht Van Lommel
Now texture storage of images is defined by the alpha mode of the image. The downside of this is that there can be artifacts near alpha edges where pixels with zero alpha bleed in. It also adds more code complexity since image textures are no longer all stored the same way. This changes allows us to keep using sRGB texture formats, which have edge darkening when stored with premultiplied alpha. Game engines seems to generally do the same thing, and we want to be compatible with them.
2019-06-06Fix T63729 Eevee: Bump does not follow normal directionClément Foucault
2019-06-05Fix T65298 Eevee: Principled BSDF doesn't use specular with metalsClément Foucault
This does add some more register pressure as it passes a new vec3 down the shading function. But for now we care more about accuracy than efficiency.
2019-06-04Fix T64214 Eevee: Issue with Emission node and Alpha blendingClément Foucault
Emission node was outputing alpha information but is was not supposed to. Match cycles reference.
2019-06-04Fix T65042 Eevee: Hair Info Tangent Normal not working correctlyClément Foucault
2019-06-03Cleanup: style, use braces in GPUCampbell Barton
2019-05-30Eevee: Fix volumetric shader if nodetree uses a bsdf nodeClément Foucault
2019-05-303D View: Support light probe data clippingCampbell Barton
2019-05-28Fix T64536 Eevee: Reflection texco no longer worksClément Foucault
2019-05-27Cleanup: DRW: Make clipped shader use UBO clip planesClément Foucault
2019-05-17Eevee / Workbench: Fix hair normalsClément Foucault
Hair normals were not behaving correctly. This corrects their looks and fix the node shader geometry that was showing the flat normal.
2019-05-14Eevee: Fix volumetric shaders compilation errorClément Foucault
2019-05-14Cleanup: DRW: Move ModelMatrix declaration to common_view_libClément Foucault
2019-05-14GPU: Move Material index to nodetree evaluationClément Foucault
This removes the need to pass the Material* all over the place in the draw manager. Cleanup comming right after.
2019-05-14GPU: Remove ModelViewMatrix and ModelViewMatrixInverse usageClément Foucault
2019-05-13Cycles/Eevee: add Emission and Alpha inputs to Principled BSDFBrecht Van Lommel
This makes it easier to set up materials with emission and transparency. Importers/exporters and add-ons are recommended to now use these rather than creating separate transparent BSDF and emission nodes.
2019-05-13Cycles/Eevee: unified and improved texture image color space handlingBrecht Van Lommel
Cycles now uses the color space on the image datablock, and uses OpenColorIO to convert to scene linear as needed. Byte images do not take extra memory, they are compressed in scene linear + sRGB transfer function which in common cases is a no-op. Eevee and workbench were changed to work similar. Float images are stored as scene linear. Byte images are compressed as scene linear + sRGB and stored in a GL_SRGB8_ALPHA8 texture. From the GLSL shader side this means they are read as scene linear, simplifying the code and taking advantage of hardware support. Further, OpenGL image textures are now all stored with premultiplied alpha. Eevee texture sampling looks a little different now because interpolation happens premultiplied and in scene linear space. Overlays and grease pencil work in sRGB space so those now have an extra conversion to sRGB after reading from image textures. This is not particularly elegant but as long as engines use different conventions, one or the other needs to do conversion. This change breaks compatibility for cases where multiple image texture nodes were using the same image with different color space node settings. However it gives more predictable behavior for baking and texture painting if save, load and image editing operations have a single color space to handle. Differential Revision: https://developer.blender.org/D4807
2019-05-10Cleanup: DRW: Renaming of glsl utility macrosClément Foucault
2019-05-09Fix T64363 Eevee: Texture coordinates node turns material color to pinkClément Foucault
Sorry for that :(
2019-05-09Cleanup: GPUShader: Remove unused edge fancy shaderClément Foucault
2019-05-09GPU: Refactor some shader for a bit more efficiencyClément Foucault
Remove matrices multiplication and use more correct codestyle for variables
2019-05-09Eevee: Fix Tangent vectors using NormalMatrix and make them world spaceClément Foucault
Making them world space by default remove a lot of legacy conversion from viewspace.
2019-05-08DRW: Remove WorldNormalMatrixClément Foucault
2019-05-08GPU: Remove GPU_INVERSE_NORMAL_MATRIXClément Foucault
The end goal for this is to lower the number of needed matrices. This also cleanup some uneeded transformation.
2019-05-04Fix T63789: Precision issues in glsl noise texturemano-wii
There is a significant precision loss when converting large float values to int.
2019-05-02Fix T63435 Incorrect fresnel and normals for hair strands on EEVEEClément Foucault
2019-04-30Fix T63393 Eevee: Specular Shader's Clear Coat does not functionClément Foucault
2019-04-26Eevee: Noise Texture: try to fix floating point accuracy issueClément Foucault
Cycles check for infinity and return 0.0 otherwise.