Age | Commit message (Collapse) | Author |
|
|
|
The Fade Objects and Fade Layers parameters had opposite meaning and this was not correct.
Now, both parameters work in the same direction.
|
|
This is the angular diameter as seen from earth, which is between 0.526° and
0.545° in reality. Sharing the size with other light types did not make much
sense and meant the unit was unclear.
Differential Revision: https://developer.blender.org/D4819
|
|
This is in order to have more flexibility and to have an explicit option
for final renders.
|
|
|
|
The old name was not clear and with new options the new name is more easy to understand.
|
|
Was causing by garbage collection free the surf_per_mat_tris array.
The cache validate did not take care of ensuring the array was alloc again.
|
|
texture2D() is no longer supported by modern opengl, use texture() instead.
|
|
|
|
This is not the most clean but this is what is needed to make
point_object_to_ndc equivalent to
point_object_to_world + point_world_to_ndc
|
|
This is not the most clean but this is what is needed to make
point_object_to_ndc equivalent to
point_object_to_world + point_world_to_ndc
|
|
|
|
New option to disable the follow drawing path. Before it had only a switch property, now there is a list of options.
Modes:
Path: Follows drawing stroke and rotate with object.
Object: Only follows object rotation.
None: Don't rotate.
|
|
|
|
With this patch, the size of GPUVertFormat goes from 1240 to 388.
|
|
|
|
|
|
|
|
This is a big change that cleanup a lot of confusing code.
- The instancing/batching data buffer distribution in draw_instance_data.c.
- The selection & drawing code in draw_manager_exec.c
- Prety much every non-meshes object drawing (object_mode.c).
Most of the changes are just renaming but there still a chance a typo might
have sneek through.
The Batching/Instancing Shading groups are replace by DRWCallBuffers. This
is cleaner and conceptually more in line with what a DRWShadingGroup should
be.
There is still some little confusion in draw_common.c where some function
takes shgroup as input and some don't.
|
|
- Use int instead of uint for safety and less conversions.
- Add free callback
- Add cleared alloc option
|
|
This simplify the rendering logic.
|
|
|
|
|
|
This is in order to have VAO handled by thoses batches instead of using a
common VAO. Even if the VAO has no importance in these case using a batch
will help when transitioning to Vulkan.
|
|
|
|
|
|
Goal is still to simplify the draw manager.
|
|
|
|
|
|
This removes the need to pass the Material* all over the place in the draw
manager. Cleanup comming right after.
|
|
|
|
Cycles lights now use strength and color properties of the light outside
of the shading nodes, just like Eevee. The shading nodes then act as a
multiplier on this, and become optional unless textures, fallof or other
effects are desired.
Backwards compatibility is not exact, as we can't be sure which renderer
the .blend was designed for or even if it was designed for a single one.
If the render engine in the active scene is set to Cycles, lights are
converted to ensure overall light strength remains the same, and removing
unnecessary shader node setups that only included a single emission node.
If the engine is set to Eevee, we increase strength to remove the automatic
100x multiplier that was there to match Cycles.
Differential Revision: https://developer.blender.org/D4588
|
|
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
|
|
PS: I hate my life
|
|
|
|
Apply same change done to fix the task T64373
|
|
Also fix T64373 Grid intensity increases in Ortographic when use Circle
Select in GPencil Edit mode
|
|
|
|
|
|
This removes ModelViewProjectionMatrix usage
|
|
This removes ModelViewProjectionMatrix usage
|
|
|
|
|
|
|
|
|
|
By default the texture is locked and only the box is aligned when Follow Drawing Path is enabled.
Before, when the Follow was disabled, the texture was always aligned to top and it was not affected by object rotation. Now, the texture always is rotated with object rotation.
|
|
The DrawManager assumed that the first render layer was the render layer
where GP needed to render on. In viewport this is always the case as we
only have a single view layer. When rendering this can be multiple when
multiple layers are rendered and composited in the compositor.
In stead of the assumption that the first render layer is the render
layer we need to draw on, we search for the render layer with the same
name as the viewlayer.
Reviewed By: fclem, brecht, antoniov
Maniphest Tasks: T63099
Differential Revision: https://developer.blender.org/D4818
|
|
In recent changes the viewport_quality setting was not working what
users expected. This change will separate the anti-aliasing method that
is being used.
We now have three settings:
* scene.display.render_aa: Will be used during `Render Image`.
* scene.display.viewport_aa: Will be used during `Viewport Render Image`.
* userpref.viewport_aa: Will be used in the 3d view.
The viewport_quality setting has been replaced by the viewport_aa
setting as it was the only thing in currently controlled.
Reviewed By: brecht
Maniphest Tasks: T64132
Differential Revision: https://developer.blender.org/D4828
|
|
Was missing NULL pointer check
|
|
D4813 by @Gvgeo
|