4 years agoMerge branch 'master' into blender2.8
Sybren A. Stüvel [Wed, 19 Apr 2017 13:07:54 +0000 (15:07 +0200)]
Merge branch 'master' into blender2.8

# Conflicts:
# source/blender/alembic/intern/
# source/blender/alembic/intern/abc_exporter.h

4 years agoComment out places which are using texture matrix mode for core profile
Sergey Sharybin [Wed, 19 Apr 2017 12:38:26 +0000 (14:38 +0200)]
Comment out places which are using texture matrix mode for core profile

There is only two places which are using texture matrix mode:

- Tiled tface support.
- Texture shading mode for texture mapping.

Both cases are subject for reconsideration: it is likely that we'll be getting
rid of tface, which means game properties like tiles needs to be revisited
anyway. As for texture shading it is using basic shader which is also not
supported by core profile anyway.

4 years agoAlembic import/export: added as_background_job option
Sybren A. Stüvel [Wed, 19 Apr 2017 12:40:57 +0000 (14:40 +0200)]
Alembic import/export: added as_background_job option

The ABC_export and ABC_import functions both take a as_background_job
parameter, and return a boolean.

When as_background_job=true, returns false immediately after scheduling
a background job. This was the old behaviour of this function, which makes
it very hard for scripts to do something with the data after the import
or export completes.

When as_background_job=false, performs the export synchronously, and
returns true when the export was ok, and false if there were any errors.
This allows further processing.

The Scene.alembic_export() function is deprecated, and will be removed from
Blender 2.8 in favour of calling the bpy.ops.wm.alembic_export() operator.
As such, it has been hard-coded to the old background job behaviour.

4 years agoUnittests: Layer render settings evaluation
Dalai Felinto [Wed, 19 Apr 2017 11:05:34 +0000 (13:05 +0200)]
Unittests: Layer render settings evaluation

More failing unittests to add to the existing ones.

4 years agoCleanup, indentation of preprocessor
Sergey Sharybin [Wed, 19 Apr 2017 12:33:34 +0000 (14:33 +0200)]
Cleanup, indentation of preprocessor

4 years agoUse model view matrix instead of texture matrix for texture brush overlay
Sergey Sharybin [Wed, 19 Apr 2017 12:13:53 +0000 (14:13 +0200)]
Use model view matrix instead of texture matrix for texture brush overlay

It is required for our new matrix stack to only have projection and model view
matrix modes. This commit ports paint cursor overlay to model view matrix.

4 years agoAlembic export: made hair/particle export optional.
Sybren A. Stüvel [Wed, 19 Apr 2017 11:03:52 +0000 (13:03 +0200)]
Alembic export: made hair/particle export optional.

The export is still slower than needed, as the particle systems themselves
aren't disabled during the export. It's only the writing to the Alembic
file that's skipped.

4 years agoFix wrong RNA update function declarations
Sergey Sharybin [Wed, 19 Apr 2017 10:22:25 +0000 (12:22 +0200)]
Fix wrong RNA update function declarations

This fixes lots of crashes, especially with painting/brush updates.

4 years agoAlembic export: converted some export params to actual bools
Sybren A. Stüvel [Wed, 19 Apr 2017 09:43:35 +0000 (11:43 +0200)]
Alembic export: converted some export params to actual bools

The variables were interpreted as booleans, and had a 1-bit width. I don't
see a reason to not just use the bool type instead.

4 years agoFix identation
Dalai Felinto [Wed, 19 Apr 2017 09:17:06 +0000 (11:17 +0200)]
Fix identation

4 years agoEdit Mode Engine: Fix shader compilation on AMD. Also fix Bweight display.
Clément Foucault [Wed, 19 Apr 2017 09:08:38 +0000 (11:08 +0200)]
Edit Mode Engine: Fix shader compilation on AMD. Also fix Bweight display.

4 years agoEevee: Fix black background
Clément Foucault [Tue, 18 Apr 2017 21:44:59 +0000 (23:44 +0200)]
Eevee: Fix black background

4 years agoFix 'API defined' ID properties still having 'remove' button in UI.
Bastien Montagne [Wed, 19 Apr 2017 07:51:36 +0000 (09:51 +0200)]
Fix 'API defined' ID properties still having 'remove' button in UI.

We could not edit them, but still could delete them, which makes no
sense, API-defined properties are similar to class members, removing
them from single instances is pure garbage. And it was broken anyway.

Found by @a.romanov while checking on T51198, thanks.

4 years agoCleanup: set-but-unused warning
Campbell Barton [Wed, 19 Apr 2017 05:57:37 +0000 (15:57 +1000)]
Cleanup: set-but-unused warning

4 years agoEevee: Remove last deprecated textureCubeLod
Clément Foucault [Tue, 18 Apr 2017 20:56:55 +0000 (22:56 +0200)]
Eevee: Remove last deprecated textureCubeLod

4 years agoEevee: fix core profile.
Clément Foucault [Tue, 18 Apr 2017 20:46:09 +0000 (22:46 +0200)]
Eevee: fix core profile.

4 years agoEevee: Re fix Compilation on MSVC
Clément Foucault [Tue, 18 Apr 2017 20:34:44 +0000 (22:34 +0200)]
Eevee: Re fix Compilation on MSVC

4 years agoEevee: fix compilation error with MSVC
Clément Foucault [Tue, 18 Apr 2017 20:02:46 +0000 (22:02 +0200)]
Eevee: fix compilation error with MSVC

4 years agoEevee: Optimize Spherical Harmonic computation time (17ms -> 1ms)
Clément Foucault [Tue, 18 Apr 2017 19:25:57 +0000 (21:25 +0200)]
Eevee: Optimize Spherical Harmonic computation time (17ms -> 1ms)

4 years agoEevee: Spherical Harmonic diffuse.
Clément Foucault [Tue, 18 Apr 2017 19:02:02 +0000 (21:02 +0200)]
Eevee: Spherical Harmonic diffuse.

For now it's done each frame and it's rather slow (16ms) but result will be cached soon.

4 years agoEevee: Fix crash on core profile.
Clément Foucault [Tue, 18 Apr 2017 17:13:18 +0000 (19:13 +0200)]
Eevee: Fix crash on core profile.

4 years agoDraw Manager: Fix uniforms array not been found.
Clément Foucault [Tue, 18 Apr 2017 17:12:28 +0000 (19:12 +0200)]
Draw Manager: Fix uniforms array not been found.

4 years agoGawain: fix building WITH_GL_PROFILE_CORE
Mike Erwin [Tue, 18 Apr 2017 18:51:42 +0000 (14:51 -0400)]
Gawain: fix building WITH_GL_PROFILE_CORE

I intially hard-coded this for compatibility profile. This commit makes the library respect the main CMake options so they match the rest of Blender.

4 years agoOpenGL: don't require legacy extensions when using WITH_GL_PROFILE_CORE
Mike Erwin [Tue, 18 Apr 2017 18:44:57 +0000 (14:44 -0400)]
OpenGL: don't require legacy extensions when using WITH_GL_PROFILE_CORE

These checks guarantee we meet the minimum expected GL requirements listed in T49012.

4 years agoGawain: fix stupid APPLE_LEGACY mistake
Mike Erwin [Tue, 18 Apr 2017 16:43:50 +0000 (12:43 -0400)]
Gawain: fix stupid APPLE_LEGACY mistake

@dfelinto caught this while building on Linux

fixes a copy/paste mistake from b0351bd3bdaa16f7dec75fe90bcd66569564608a

4 years agoGawain: enable 10.10.10 vertex format for core profile (any platform)
Mike Erwin [Tue, 18 Apr 2017 16:08:59 +0000 (12:08 -0400)]
Gawain: enable 10.10.10 vertex format for core profile (any platform)

This is an OpenGL 3.3 feature, currently being used for surface normals. It's 1/3 the size of floating point triples and perfect for normals or colors.

See T49012 for why Windows can use this feature regardless of core vs compatibility.

4 years agoOpenGL: fix compatibility with Mac & Mesa
Mike Erwin [Tue, 18 Apr 2017 15:54:13 +0000 (11:54 -0400)]
OpenGL: fix compatibility with Mac & Mesa

This combines the Mesa fix (16e929e6ff1007d057d183b56bb7fc2d1f8aae53 by @brita_) with the Mac fix (89e23c743e601940fc051189ef01c537233d2043 by @merwin).

And uses the same fix for another call to glFramebufferTexture introduced in f1fb605ec9ffd69b82652f3702de8b7ada570fd8.

4 years agoGawain: define feature macros in a more compatible way
Mike Erwin [Tue, 18 Apr 2017 15:35:56 +0000 (11:35 -0400)]
Gawain: define feature macros in a more compatible way

Thanks to @sergey for proactively testing clang 4.0, which does not accept defined(FOO) as part of macro definitions.

4 years agoCleanup: replace num/ct/tot with 'len'
Campbell Barton [Tue, 18 Apr 2017 15:03:44 +0000 (01:03 +1000)]
Cleanup: replace num/ct/tot with 'len'

4 years agoAlembic import: little fix for D2634
Sybren A. Stüvel [Tue, 18 Apr 2017 15:00:21 +0000 (17:00 +0200)]
Alembic import: little fix for D2634

Now it doesn't crash any more when the Alembic curves object doesn't
have any user properties.

4 years agoMerge branch 'master' into blender2.8
Sybren A. Stüvel [Tue, 18 Apr 2017 14:47:25 +0000 (16:47 +0200)]
Merge branch 'master' into blender2.8

4 years agoFix text drawing with core profile
Sergey Sharybin [Tue, 18 Apr 2017 14:41:07 +0000 (16:41 +0200)]
Fix text drawing with core profile

The issue was going to the fact that GL_ALPHA was deprecated in core profile
and common solution online is to use GL_RED instead. That is what is done in
this commit.

4 years agoAlembic import/export: write curve resolution to user property
Sybren A. Stüvel [Tue, 18 Apr 2017 14:36:33 +0000 (16:36 +0200)]
Alembic import/export: write curve resolution to user property

Curve resolution isn't natively supported by Alembic, hence it is stored
in a user property "blender:resolution". I've looked at a Maya curves
example file, but that also didn't contain any information about curve

Differential Revision:

Reviewers: kevindietrich

4 years agoMerge remote-tracking branch 'origin/master' into blender2.8
Dalai Felinto [Tue, 18 Apr 2017 14:30:13 +0000 (16:30 +0200)]
Merge remote-tracking branch 'origin/master' into blender2.8

4 years agoRevert "Object Info node support for GLSL mode and the internal render"
Dalai Felinto [Tue, 18 Apr 2017 14:06:01 +0000 (16:06 +0200)]
Revert "Object Info node support for GLSL mode and the internal render"

This reverts commit 76425feed8644a8fe1c0e52ef3f77b95012ba44e.

** Note **
This was supposed to be a merge, but it was rebased.

4 years agoCleanup: missing headers
Campbell Barton [Tue, 18 Apr 2017 14:25:31 +0000 (00:25 +1000)]
Cleanup: missing headers

4 years agoCleanup: replace num/ct/tot with 'len'
Campbell Barton [Tue, 18 Apr 2017 14:10:32 +0000 (00:10 +1000)]
Cleanup: replace num/ct/tot with 'len'

4 years agoOpenGL: Update GPU_legacy_stubs.c
Dalai Felinto [Tue, 18 Apr 2017 13:27:26 +0000 (15:27 +0200)]
OpenGL: Update GPU_legacy_stubs.c

The list is now re-ordered too.
And we are no longer including the new tokens suggestions here (the ones
defined as USE_ in gl-deprecated.h)

4 years agoOpenGL: Comment out the old tokens from gl-deprecated
Dalai Felinto [Tue, 18 Apr 2017 14:00:19 +0000 (16:00 +0200)]
OpenGL: Comment out the old tokens from gl-deprecated

Those tokens are still valid. Although we should not being using them,
they should not prevent us from building with core profile.

In the future we can have a new flag WITH_GL_CORE_STRICT for those.
But only after we build with core profile by default

4 years agoBGL: Remove deprecated enums
Dalai Felinto [Tue, 18 Apr 2017 13:45:47 +0000 (15:45 +0200)]
BGL: Remove deprecated enums

Note: The enums that are deprecated and supported are still there

4 years agoEevee: Fix warning
Clément Foucault [Tue, 18 Apr 2017 13:22:54 +0000 (15:22 +0200)]
Eevee: Fix warning

4 years agoObject Info node support for GLSL mode and the internal render
Alexander Romanov [Fri, 14 Apr 2017 15:13:44 +0000 (18:13 +0300)]
Object Info node support for GLSL mode and the internal render

Object Info node can be useful to give some variation to a single material assigned to multiple instances. This patch adds support for Viewport and BI.


Example: {F499528}

Reviewers: merwin, brecht, dfelinto

Reviewed By: brecht

Subscribers: duarteframos, fclem, homyachetser, Evgeny_Rodygin, AlexKowel, yurikovelenov

Differential Revision:

4 years agoDraw Manager: T51218 Support edit-mesh hide
Campbell Barton [Tue, 18 Apr 2017 13:29:55 +0000 (23:29 +1000)]
Draw Manager: T51218 Support edit-mesh hide

4 years agoFix for new Ubuntu 17.04, which does not have libopenjpeg!
Bastien Montagne [Tue, 18 Apr 2017 13:13:59 +0000 (15:13 +0200)]
Fix for new Ubuntu 17.04, which does not have libopenjpeg!

4 years agoUse better workaround ofr getting scene layer for Derivedmesh's mask
Sergey Sharybin [Tue, 18 Apr 2017 12:55:31 +0000 (14:55 +0200)]
Use better workaround ofr getting scene layer for Derivedmesh's mask

This replaces access to the first scene layer (which was wrong) with a linear
lookup of scene layer by it's active index.

This seems to be a better temporary solution to have things working for until
we've got proper workspace, depsgraph and it's per-layer storage in place.

4 years agoRemove deprecated GL_LIGHTING chunk from manipulator draw code.
Bastien Montagne [Tue, 18 Apr 2017 12:57:09 +0000 (14:57 +0200)]
Remove deprecated GL_LIGHTING chunk from manipulator draw code.

This is new feature, will likely need own shader to get same result.
Just commented it as TODO, though, this is not high priority.

Part of T51164.

4 years agoFix T51187: Memory leak when exporting OpenEXR monochrome animation
Sergey Sharybin [Tue, 18 Apr 2017 12:27:52 +0000 (14:27 +0200)]
Fix T51187: Memory leak when exporting OpenEXR monochrome animation

4 years agoMerged master@e12c3110024dc4b62ffefa739288218b04e39f71 into blender2.8
Sybren A. Stüvel [Tue, 18 Apr 2017 12:18:06 +0000 (14:18 +0200)]
Merged master@e12c3110024dc4b62ffefa739288218b04e39f71 into blender2.8

This doesn't merge entire master into blender2.8, but at least solves
one conflict.

4 years agoGarwain: fix ShaderInterface buffer shrinking
Campbell Barton [Tue, 18 Apr 2017 12:04:00 +0000 (22:04 +1000)]
Garwain: fix ShaderInterface buffer shrinking

4 years agoAlembic unittest: pass unknown CLI arguments to unittest.main()
Sybren A. Stüvel [Tue, 18 Apr 2017 10:20:41 +0000 (12:20 +0200)]
Alembic unittest: pass unknown CLI arguments to unittest.main()

This allows specifying test names on the CLI, in order to run only one
of the tests.

4 years agoAlembic import: fall back to linear when variable order array is invalid.
Sybren A. Stüvel [Tue, 18 Apr 2017 10:19:39 +0000 (12:19 +0200)]
Alembic import: fall back to linear when variable order array is invalid.

This seems like more sane behaviour than to keep the orderu at the
invalid default value 0.

4 years agoAlembic export: fixed curve type and order.
Sybren A. Stüvel [Tue, 18 Apr 2017 10:17:07 +0000 (12:17 +0200)]
Alembic export: fixed curve type and order.

The order number written to Alembic is the same as we use in memory, so
the +1 wasn't needed, at least according to the reference Maya exporter
maya/AbcExport/MayaNurbsCurveWriter.cpp, function
MayaNurbsCurveWriter::write(), in the Alembic source code.

Furthermore, when writing an array of nurb orders, the curve type should
be set to kVariableOrder, otherwise the importer will ignore it.

4 years agoEevee: Introduction of world preconvolved envmap.
Clément Foucault [Tue, 18 Apr 2017 10:50:09 +0000 (12:50 +0200)]
Eevee: Introduction of world preconvolved envmap.

For now only compute GGX convolution. The GGX LUT used for the split sum approximation (UE4) is merged with the LTX mag LUT that uses the same parameters (theta and roughness)

4 years agoGPUFramebuffer: Allow to bind a specific texture mip to framebuffer.
Clément Foucault [Tue, 18 Apr 2017 09:28:11 +0000 (11:28 +0200)]
GPUFramebuffer: Allow to bind a specific texture mip to framebuffer.

4 years agoGPUTexture: Fix Cubemap upload
Clément Foucault [Tue, 18 Apr 2017 09:21:58 +0000 (11:21 +0200)]
GPUTexture: Fix Cubemap upload

4 years agoGPUTexture: Add Mipmap Control functions.
Clément Foucault [Tue, 18 Apr 2017 09:21:17 +0000 (11:21 +0200)]
GPUTexture: Add Mipmap Control functions.

4 years agoRemove 4.1 pseudo-deprecated calls from gl-deprecated
Dalai Felinto [Tue, 18 Apr 2017 10:09:29 +0000 (12:09 +0200)]
Remove 4.1 pseudo-deprecated calls from gl-deprecated

First: we settle on core profile 3.3, not 4.1. Second, GL_CURRENT_PROGRAM still exists in 4.1 and 4.2. But it is recommented to use GL_ACTIVE_PROGRAM instead.

Following the logic of gl-deprecated.h we should define it to USE_GL_ACTIVE_PROGRAM instead. That said, removing it for now.

4 years agoSquashed commit of the following:
Pascal Schoen [Tue, 18 Apr 2017 09:43:09 +0000 (11:43 +0200)]
Squashed commit of the following:

commit 90778901c9ea1e16d5907981e91bceba25ff207d
Merge: 76eebd9 3bf0026
Author: Schoen <>
Date:   Mon Apr 3 07:52:05 2017 +0200

    Merge branch 'master' into cycles_disney_brdf

commit 76eebd9379a5dad519ff01cf215fbe3db6de931e
Author: Schoen <>
Date:   Thu Mar 30 15:34:20 2017 +0200

    Updated copyright for the new files.

commit 013f4a152a3898946ba5c616141c6e44d928ccfd
Author: Schoen <>
Date:   Thu Mar 30 15:32:55 2017 +0200

    Switched from multiplication of base and subsurface color to blending
    between them using the subsurface parameter.

commit 482ec5d1f20ceabc9cbda4838d4ae37d1d673458
Author: Schoen <>
Date:   Mon Mar 13 15:47:12 2017 +0100

    Fixed a bug that caused an additional white diffuse closure call when using
    path tracing.

commit 26e906d162a6a8d67f2ebc8880993fcbab69559e
Merge: 0593b8c 223aff9
Author: Pascal Schoen <>
Date:   Mon Feb 6 11:32:31 2017 +0100

    Merge branch 'master' into cycles_disney_brdf

commit 0593b8c51bf7db0ed5ca92ed6f68d0d984dad0dd
Author: Pascal Schoen <>
Date:   Mon Feb 6 11:30:36 2017 +0100

    Fixed the broken GLSL shader and implemented the Disney BRDF in the
    real-time view port.

commit 8c7e11423be640dc44b1807912058480710e51f4
Author: Pascal Schoen <>
Date:   Fri Feb 3 14:24:05 2017 +0100

    Fix to comply strict compiler flags and some code cleanup

commit 17724e9d2dbffb1aaa61401224ecbf2349c1dac3
Merge: 379ba34 520afa2
Author: Pascal Schoen <>
Date:   Tue Jan 24 09:59:58 2017 +0100

    Merge branch 'master' into cycles_disney_brdf

commit 379ba346b0acd1ea779365b940fcd01f5ba1165f
Author: Pascal Schoen <>
Date:   Tue Jan 24 09:28:56 2017 +0100

    Renamed the Disney BSDF to Principled BSDF.

commit f80dcb4f34f1dc41841ced5965787fc26ace22a2
Author: Pascal Schoen <>
Date:   Fri Dec 2 13:55:12 2016 +0100

    Removed reflection call when roughness is low because of artifacts.

commit 732db8a57f6d4e5d6f44bbad176c15fd55377f0a
Author: Pascal Schoen <>
Date:   Wed Nov 16 09:22:25 2016 +0100

    Indication if to use fresnel is now handled via the type of the BSDF.

commit 0103659f5e705b314cde98b0e4a01c14c55acd5e
Author: Pascal Schoen <>
Date:   Fri Nov 11 13:04:11 2016 +0100

    Fixed an error in the clearcoat where it appeared too bright for default
    light sources (like directional lights)

commit 0aa68f533529c9fd197a3ab0427f9e41a15456b9
Author: Pascal Schoen <>
Date:   Mon Nov 7 12:04:38 2016 +0100

    Resolved inconsistencies in using tabs and spaces

commit f5897a9494e352de274b99e7bee971336c0dc386
Author: Pascal Schoen <>
Date:   Mon Nov 7 08:13:41 2016 +0100

    Improved the clearcoat part by using GTR1 instead of GTR2

commit 3dfc240e61b3d4d0e7c476989792e4ada869ce91
Author: Pascal Schoen <>
Date:   Mon Oct 31 11:31:36 2016 +0100

    Use reflection BSDF for glossy reflections when roughness is 0.0 to
    reduce computational expense and some code cleanup

    Code cleanup includes:
    - Code style cleanup and removed unused code
    - Consolidated code in the bsdf_microfacet_multi_impl.h to reduce
      some computational expense

commit a2dd0c5fafdabe1573299170fb3be98a3e46d17a
Author: Pascal Schoen <>
Date:   Wed Oct 26 08:51:10 2016 +0200

    Fixed glossy reflections and refractions for low roughness values and
    cleaned up the code.

    For low roughness values, the reflections had some strange behavior.

commit 981737591231a1a5a1c85950950580b65d029505
Author: Pascal Schoen <>
Date:   Tue Oct 25 12:37:40 2016 +0200

    Removed default values in setup functions and added extra functions for
    GGX with fresnel.

commit bbc5d9d4527346a74155cf17be21fb02ee3e0779
Author: Pascal Schoen <>
Date:   Tue Oct 25 11:09:36 2016 +0200

    Switched from uniform to cosine hemisphere sampling for the diffuse and
    the sheen part.

commit d52d8f2813d64363713f11160a6c725d4cafbcfa
Author: Pascal Schoen <>
Date:   Mon Oct 24 16:17:13 2016 +0200

    Removed the color parameters from the diffuse and sheen shader and use
    them as closure weights instead.

commit 8f3d92738532ad867a0a3543c00393626ab8f6ec
Author: Pascal Schoen <>
Date:   Mon Oct 24 09:57:06 2016 +0200

    Fixed the issue with artifacts when using anisotropy without linking the
    tangent input to a tangent node.

commit d93f680db9acaaade0354b34857a3ccaf348557f
Author: Pascal Schoen <>
Date:   Mon Oct 24 09:14:51 2016 +0200

    Added subsurface radius parameter to control the per color channel
    effection radius of the subsurface scattering.

commit c708c3e53b323773fc852bdc239bc51e157dcaef
Author: Pascal Schoen <>
Date:   Mon Oct 24 08:14:10 2016 +0200

    Rearranged the inputs of the shader.

commit dfbfff9c389074d3e5c1f49dd38a95e9b317eb1f
Author: Pascal Schoen <>
Date:   Fri Oct 21 09:27:05 2016 +0200

    Put spaces in the parameter names of the shader node

commit e5a748ced17c8f59e5e73309096adeea3ba95e04
Author: Pascal Schoen <>
Date:   Fri Oct 21 08:51:20 2016 +0200

    Removed code that isn't in use anymore

commit 75992bebc128c8b44cab4f0d8855603787f57260
Author: Pascal Schoen <>
Date:   Fri Oct 21 08:50:07 2016 +0200

    Code style cleanup

commit 4dfcf455f7769752044e051b399fb6a5dfcd0e22
Merge: 243a0e3 2cd6a89
Author: Pascal Schoen <>
Date:   Thu Oct 20 10:41:50 2016 +0200

    Merge branch 'master' into cycles_disney_brdf

commit 243a0e3eb80ef82704d5ea2657384c3a4b9fb497
Author: Pascal Schoen <>
Date:   Thu Oct 20 10:01:45 2016 +0200

    Switching between OSL and SVM is more consistant now when using Disney

    There were some minor differences in the OSL implementation, e.g. the
    refraction roughness was missing.

commit 2a5ac509223c838285a00c4c12775567666e7154
Author: Pascal Schoen <>
Date:   Tue Sep 27 09:17:57 2016 +0200

    Fixed a bug that caused transparency to be always white when using OSL and
    selecting GGX as distribution of the Disney BSDF

commit e1fa8623915407cea942a07fd0a106b04e113c09
Merge: d0530a8 7f76f6f
Author: Pascal Schoen <>
Date:   Tue Sep 27 08:59:32 2016 +0200

    Merge branch 'master' into cycles_disney_brdf

commit d0530a8af0e076c0aca4c9a61b0a64cada45ac4d
Author: Pascal Schoen <>
Date:   Tue Sep 27 08:53:18 2016 +0200

    Cleanup the Disney BSDF implementation and removing unneeded files.

commit 3f4fc826bd9c1f47c694c0f6b2947daf5b524b1a
Author: Pascal Schoen <>
Date:   Tue Sep 27 08:36:07 2016 +0200

    Unified the OSL implementation of the Disney clearcoat as a simple
    microfacet shader like it was previously done in SVM

commit 4d3a0032ecea99031979f342bfd5f66ea5a8625a
Author: Pascal Schoen <>
Date:   Mon Sep 26 12:35:36 2016 +0200

    Enhanced performance for Disney materials without subsurface scattering

commit 3cd5eb56cf5c9006837f111c8866e4c6e1c2a6fd
Author: Pascal Schoen <>
Date:   Fri Sep 16 08:47:56 2016 +0200

    Fixed a bug in the Disney BSDF that caused specular reflections to be too
    bright and diffuse is now reacting to the roughness again

    - A normalization for the fresnel was missing which caused the specular
      reflections to become too bright for the single-scatter GGX
    - The roughness value for the diffuse BSSRDF part has always been
      overwritten and thus always 0
    - Also the performance for refractive materials with roughness=0.0 has
      been improved

commit 7cb37d711938e5626651db21f20da50edd96abaf
Author: Pascal Schoen <>
Date:   Thu Sep 8 12:24:43 2016 +0200

    Added selection field to the Disney BSDF node for switching between
    "Multiscatter GGX" and "GGX"

    In the "GGX" mode there is an additional parameter for changing the
    refraction roughness for materials with smooth surfaces and rough interns
    (e.g. honey). With the "Multiscatter GGX" this effect can't be produced at
    the moment and so here will be no separation of the two roughness values.

commit cdd29d06bb86672ed0779eefb8eee95796b8f939
Merge: 02c315a b40d1c1
Author: Pascal Schoen <>
Date:   Tue Sep 6 15:59:05 2016 +0200

    Merge branch 'master' into cycles_disney_brdf

commit 02c315aeb0f0d7bb429d4396912e03dbb8a77340
Author: Pascal Schoen <>
Date:   Tue Sep 6 15:16:09 2016 +0200

    Implemented the OSL part of the Disney shader

commit 5f880293aeeacf269032824248b46d613691a36c
Merge: 630b80e b399a6d
Author: Pascal Schoen <>
Date:   Fri Sep 2 10:53:36 2016 +0200

    Merge branch 'master' into cycles_disney_brdf

commit 630b80e08b6acf83834bc95264af4ccdbbc5f82c
Author: Pascal Schoen <>
Date:   Fri Sep 2 10:52:13 2016 +0200

    Fresnel in the microfacet multiscatter implementation improved

commit 0d9f4d7acb2de65d1c98d425cea4bf364795c155
Author: Pascal Schoen <>
Date:   Fri Aug 26 11:11:05 2016 +0200

    Fixed refraction roughness problem (refractions were always 100% rough)
    and set IOR of clearcoat to 1.5

commit 9eed34c7d980e1b998df457c4f76021162c80f78
Merge: ef29aae ae475e3
Author: Pascal Schoen <>
Date:   Tue Aug 16 15:22:32 2016 +0200

    Merge branch 'master' into cycles_disney_brdf

commit ef29aaee1af8074e0228c480d962700e97ea5b36
Author: Pascal Schoen <>
Date:   Tue Aug 16 15:17:12 2016 +0200

    Implemented the fresnel in the multi-scatter GGX for the Disney BSDF

    - The specular/metallic part uses the multi-scatter GGX
    - The fresnel of the metallic part is controlled by the specular value
    - The color of the reflection part when using transparency can be
      controlled by the specularTint value

commit 88567af085ac94119b98c95246b6d6f63161bc01
Merge: cc267e5 285e082
Author: Pascal Schoen <>
Date:   Wed Aug 3 15:05:09 2016 +0200

    Merge branch 'master' into cycles_disney_brdf

commit cc267e52f20d036a66aeeff127ee1c856f7c651b
Author: Pascal Schoen <>
Date:   Wed Aug 3 15:00:25 2016 +0200

    Implemented the Disney clearcoat as a variation of the microfacet bsdf,
    removed the transparency roughness again and added an input for
    anisotropic rotations

commit 81f6c06b1f53180bf32a5c11ac1fa64e2b6abf52
Merge: ece5a08 7065022
Author: Pascal Schoen <>
Date:   Wed Aug 3 11:42:02 2016 +0200

    Merge branch 'master' into cycles_disney_brdf

commit ece5a08e0d6e51a83c223ea87346134216e5b34e
Author: Pascal Schoen <>
Date:   Tue Jul 26 16:29:21 2016 +0200

    Base color now applied again to the refraction of transparent Disney

commit e3aff6849e06853c56da7bd610210dcab70e6070
Author: Pascal Schoen <>
Date:   Tue Jul 26 16:05:19 2016 +0200

    Added subsurface color parameter to the Disney shader

commit b3ca6d8a2f4f866b323fc2df0a3beff577218c27
Author: Pascal Schoen <>
Date:   Tue Jul 26 12:30:25 2016 +0200

    Improvement of the SSS in the Disney shader

     * Now the bump normal is correctly used for the SSS.
     * SSS in Disney uses the Disney diffuse shader

commit d68729300ee557e90a8e7e4be6eb8ef98db80fe2
Author: Pascal Schoen <>
Date:   Tue Jul 26 12:23:13 2016 +0200

    Better calculation of the Disney diffuse part

    Now the values for NdotL und NdotV are clamped to 0.0f for a better look
    when using normal maps

commit cb6e500b12e7bce884d3db19ee138c975c215f2d
Author: Pascal Schoen <>
Date:   Mon Jul 25 16:26:42 2016 +0200

    Now one can disable specular reflactions again by setting specular and
    metallic to 0 (cracked this in the previous commit)

commit bfb9cb11b548103369de2a46ce18b4ddf661362c
Author: Pascal Schoen <>
Date:   Mon Jul 25 16:11:07 2016 +0200

    fixed the Disney SSS and cleaned the initialization of the Disney shaders

commit 642c0fdad12548c1a2ccbf595bae3a995d3022f7
Author: Pascal Schoen <>
Date:   Mon Jul 25 16:09:55 2016 +0200

    fixed an error that was caused by the missing LABEL_REFLECT in the Disney
    diffuse shader

commit c10b484dcad3412c34455736e9656cd38716bcb0
Author: Jens Verwiebe <>
Date:   Fri Jul 22 01:15:21 2016 +0200

    Rollback attempt to fix sss crashing, it prevented crash by disabling sss completely, thus useless

commit 462bba3f97fcc41834e0e20cc806a7958e5106f5
Author: Jens Verwiebe <>
Date:   Thu Jul 21 23:11:59 2016 +0200

    Add an undef for sc_next for safety

commit 32d348577d69be251aa04110c5f6156cd2645f48
Author: Jens Verwiebe <>
Date:   Thu Jul 21 00:15:48 2016 +0200

    Attempt to fix Disney SSS

commit dbad91ca6d46f5a4a6f2ba7ed4c811ffa723942f
Author: Pascal Schoen <>
Date:   Wed Jul 20 11:13:00 2016 +0200

    Added a roughness parameter for refractions (for scattering of the rays
    within an object)

    With this, one can create a translucent material with a smooth surface and
    with a milky look.

    The final refraction roughness has to be calculated using the surface
    roughness and the refraction roughness because those two are correlated
    for refractions. If a ray hits a rough surface of a translucent material,
    it is scattered while entering the surface. Then it is scattered further
    within the object. The calculation I'm using is the following:

    RefrRoughnessFinal = 1.0 - (1.0 - Roughness) * (1.0 - RefrRoughness)

commit 50ea5e3e34394a727e3cceb6203adb48834a9ab7
Author: Pascal Schoen <>
Date:   Tue Jun 7 10:24:50 2016 +0200

    Disney BSDF is now supporting CUDA

commit 10974cc826a4bfa8fb3ef59177abf0b0dc441065
Author: Pascal Schoen <>
Date:   Tue May 31 11:18:07 2016 +0200

    Added parameters IOR and Transparency for refractions

    With this, the Disney BRDF/BSSRDF is extended by the BTDF part.

commit 218202c0905a4ec93ee19850360d1a39966d2c25
Author: Pascal Schoen <>
Date:   Mon May 30 15:08:18 2016 +0200

    Added an additional normal for the clearcoat

    With this normal one can simulate a thin layer of clearcoat by applying a
    smoother normal map than the original to this input

commit dd139ead7e04aa87a894ccf3732cfce711258ff1
Author: Pascal Schoen <>
Date:   Mon May 30 12:40:56 2016 +0200

    Switched to the improved subsurface scattering from Christensen and

commit 11160fa4e1c32230119d4506e7e9fd3da2ab37f2
Author: Pascal Schoen <>
Date:   Mon May 30 10:16:30 2016 +0200

    Added Disney Sheen shader as a preparation to get to a BSSRDF

commit cee4fe0cc94515ee60d4afa4d4e10c41003f1579
Merge: 4f955d0 6b5bab6
Author: Pascal Schoen <>
Date:   Mon May 30 09:08:09 2016 +0200

    Merge branch 'cycles_disney_brdf' of into cycles_disney_brdf


commit 4f955d052358206209454decf2c3539e6a21b42f
Author: Pascal Schoen <>
Date:   Tue May 24 16:38:23 2016 +0200

    SVM and OSL are both working for the simple version of the Disney BRDF

commit 1f5c41874b01ad297eb8a6bad9985296c6c0a6e1
Author: Pascal Schoen <>
Date:   Tue May 24 09:58:50 2016 +0200

    Disney node can be used without SVM and started to cleanup the OSL implementation

    There is still some wrong behavior for SVM for the Schlick Fresnel part at the
    specular and clearcoat

commit d4b814e9304ebb44cc7c291cd83f7b7cdebcd152
Author: Pascal Schoen <>
Date:   Wed May 18 10:22:29 2016 +0200

    Switched from a parameter struct for Disney parameters to ShaderClosure params

commit b86a1f5ba5019c7818153cb70b49f5f7a0bc52a0
Author: Pascal Schoen <>
Date:   Wed May 18 10:19:57 2016 +0200

    Added additional variables for storing parameters in the ShaderClosure struct

commit 585b88623695fa07dfca9c9909d6d9184c3519c8
Author: Pascal Schoen <>
Date:   Tue May 17 12:03:17 2016 +0200

    added output parameter to the DisneyBsdfNode

    That has been forgotten after removing the inheritance of BsdfNode

commit f91a28639884cbda7804715b910d64abba0718ef
Author: Pascal Schoen <>
Date:   Tue May 17 10:40:48 2016 +0200

    removed BsdfNode class inheritance for DisneyBsdfNode

    That's due to a naming difference. The Disney BSDF uses the name 'Base Color'
    while the BsdfNode had a 'Color' input. That caused a text message to be
    printed while rendering.

commit 30da91c9c51d8cbc6a7564c7aaa61c9efe2ab654
Author: Pascal Schoen <>
Date:   Wed May 4 16:08:10 2016 +0200

    disney implementation cleaned

commit 30d41da0f0352fad29375a395ffcb9cb7891eeb1
Author: Pascal Schoen <>
Date:   Wed May 4 13:23:07 2016 +0200

    added the disney brdf as a shader node

commit 1f099fce249cb35e949cc629f7cca2167fca881a
Author: Pascal Schoen <>
Date:   Tue May 3 16:54:49 2016 +0200

    added clearcoat implementation

commit 00a1378b98e435e9cdbfbac86eb974c19b2a8151
Author: Pascal Schoen <>
Date:   Fri Apr 29 22:56:49 2016 +0200

    disney diffuse und specular implemented

commit 6baa7a7eb787638661cddad0c4e7f78bd3a8fa5c
Author: Pascal Schoen <>
Date:   Mon Apr 18 15:21:32 2016 +0200

    disney diffuse is working correctly

commit d8fa169bf3caf71c40a124101b33dee6c510188e
Author: Pascal Schoen <>
Date:   Mon Apr 18 08:41:53 2016 +0200

    added vessel for disney diffuse shader

commit 6b5bab6cecde153122625cf8dc10e4209ed1eb0f
Author: Pascal Schoen <>
Date:   Wed May 18 10:22:29 2016 +0200

    Switched from a parameter struct for Disney parameters to ShaderClosure params

commit f6499c2676e074a36033627ffc7540107777630d
Author: Pascal Schoen <>
Date:   Wed May 18 10:19:57 2016 +0200

    Added additional variables for storing parameters in the ShaderClosure struct

commit 7100640b65c2ff5447a18c01fc4e93594b4f486a
Author: Pascal Schoen <>
Date:   Tue May 17 12:03:17 2016 +0200

    added output parameter to the DisneyBsdfNode

    That has been forgotten after removing the inheritance of BsdfNode

commit 419ee5441100a906b4b3fd8373cb768a71bfdfe6
Author: Pascal Schoen <>
Date:   Tue May 17 10:40:48 2016 +0200

    removed BsdfNode class inheritance for DisneyBsdfNode

    That's due to a naming difference. The Disney BSDF uses the name 'Base Color'
    while the BsdfNode had a 'Color' input. That caused a text message to be
    printed while rendering.

commit 6006f91e8730f78df5874f808690d3908db103ab
Author: Pascal Schoen <>
Date:   Wed May 4 16:08:10 2016 +0200

    disney implementation cleaned

commit 0ed08959141fc7c5f8c6e37c6552ecb9fcc5749c
Author: Pascal Schoen <>
Date:   Wed May 4 13:23:07 2016 +0200

    added the disney brdf as a shader node

commit 0630b742d71c658915575a4a71a325094a0fc313
Author: Pascal Schoen <>
Date:   Tue May 3 16:54:49 2016 +0200

    added clearcoat implementation

commit 9f3d39744b85619750c79c901f678b8c07fe0ee2
Author: Pascal Schoen <>
Date:   Fri Apr 29 22:56:49 2016 +0200

    disney diffuse und specular implemented

commit 9b262063767d6b05a617891c967d887d21bfb177
Author: Pascal Schoen <>
Date:   Mon Apr 18 15:21:32 2016 +0200

    disney diffuse is working correctly

commit 4711a3927dfcadaa1c36de0ba78fc304fac1dc8a
Author: Pascal Schoen <>
Date:   Mon Apr 18 08:41:53 2016 +0200

    added vessel for disney diffuse shader

Differential Revision:

4 years agoCycles: Cleanup, style
Sergey Sharybin [Tue, 18 Apr 2017 09:39:21 +0000 (11:39 +0200)]
Cycles: Cleanup, style

4 years agoDepsgraph: Use proper scene to get frame from for pose constraints evaluaiton
Sergey Sharybin [Tue, 18 Apr 2017 09:31:45 +0000 (11:31 +0200)]
Depsgraph: Use proper scene to get frame from for pose constraints evaluaiton

Spotted by Luca, thanks!

4 years agoCycles: Remove meaningless volume shaders
Sergey Sharybin [Tue, 21 Mar 2017 16:18:25 +0000 (17:18 +0100)]
Cycles: Remove meaningless volume shaders

This is possible to use surface-only nodes and connect them to volume output.
If there was something connected to surface output those extra connections
will not change anything visually but will force volume features to be included
into feature-adaptive kernels.

In fact, this exact reason seems to be causing slowdown of Barcelone file
comparing AMD OpenCL to NVidia CUDA.

Currently only supported by the final F12 renders because of the current design
of what gets optimized out when and how feature-adaptive kernel accesses
list of required features.

Reviewers: dingto, nirved, maiself, lukasstockner97, brecht

Reviewed By: brecht

Subscribers: bliblubli

Differential Revision:

4 years agoFix strict compiler compilation
Sergey Sharybin [Tue, 18 Apr 2017 07:41:15 +0000 (09:41 +0200)]
Fix strict compiler compilation

4 years agoGawain: fix missing NULL check
Campbell Barton [Tue, 18 Apr 2017 05:02:06 +0000 (15:02 +1000)]
Gawain: fix missing NULL check

Also shadowed variable warning

4 years agoFix UI: double separator in Movie Clip Editor's view menu
Aaron Carlisle [Tue, 18 Apr 2017 03:54:19 +0000 (23:54 -0400)]
Fix UI: double separator in Movie Clip Editor's view menu

4 years agoFix brush menu broken before adding uv and texture data
Aaron Carlisle [Tue, 18 Apr 2017 03:42:17 +0000 (23:42 -0400)]
Fix brush menu broken before adding uv and texture data

To reproduce: 1) go to texture paint mode 2) go into the brush menu

Pointed out by @lijenstina on IRC also fix is authored by him.

4 years agoFix T51150: user_remap on itself changes users to 0.
Bastien Montagne [Mon, 17 Apr 2017 20:33:07 +0000 (22:33 +0200)]
Fix T51150: user_remap on itself changes users to 0.

Remapping to itself is nonsense here (was triggering an assert in
BKE_library code actually), just make it a bail out early in RNA
callback in that case.

4 years agoOpenGL: Fix crash on start with Mesa drivers
Ines Almeida [Mon, 17 Apr 2017 20:31:56 +0000 (22:31 +0200)]
OpenGL: Fix crash on start with Mesa drivers

glFramebufferTexture() is only available from OGL 3.2, it is also not part of the ARB_framebuffer_object extension.
I don't know if there is a better way to check for mesa drivers or if using the 2D version will have issues with f2f16a256, but so far I had no problems

4 years agoFix T51176: Cache file location can be blank and prevent fluid simulation from readin...
Bastien Montagne [Mon, 17 Apr 2017 15:26:18 +0000 (17:26 +0200)]
Fix T51176: Cache file location can be blank and prevent fluid simulation from reading baked data

Sanitize a bit how cache path is handled by fluidsim (there is much more
to be done here though :( ), and forbid empty path (we reset to default
path relative to current .blend file in case it's empty).

If people really, really want to use current OS-wise directory, they can at
least use '.' as path. ;)

4 years agoBLI: make BLI_make_existing_file() return true on success, and false on failure...
Bastien Montagne [Mon, 17 Apr 2017 10:04:38 +0000 (12:04 +0200)]
BLI: make BLI_make_existing_file() return true on success, and false on failure...

4 years agoFluidsim cleanup: get rid of magic numbers!
Bastien Montagne [Mon, 17 Apr 2017 09:55:02 +0000 (11:55 +0200)]
Fluidsim cleanup: get rid of magic numbers!

4 years agoFix build error on Windows introduced in D2425
Alexander Romanov [Mon, 17 Apr 2017 10:41:05 +0000 (13:41 +0300)]
Fix build error on Windows introduced in D2425

4 years agoGawain: fix for last commit
Mike Erwin [Mon, 17 Apr 2017 08:01:46 +0000 (04:01 -0400)]
Gawain: fix for last commit

Follow-up to 3bc6b831d82724578fc8150d863b54f334db2bf4

Initial code was getting the number of ShaderInterfaces that could fit between two pointers (which makes no sense). I really meant number of bytes.

Surprised it worked on Mac, glad I tested on Windows before bed  :D

4 years agoGawain: shrink ShaderInterface name buffer
Mike Erwin [Mon, 17 Apr 2017 05:45:21 +0000 (01:45 -0400)]
Gawain: shrink ShaderInterface name buffer

ShaderInterface stores names of custom uniforms and all attributes in an internal buffer, but it doesn't know how large to make this buffer until all inputs are scanned.

This commit shrinks the buffer to the exact size needed.

4 years agoGawain: look up uniforms by name quicker
Mike Erwin [Mon, 17 Apr 2017 05:19:28 +0000 (01:19 -0400)]
Gawain: look up uniforms by name quicker

ShaderInterface_uniform searches custom uniforms first, then builtin uniforms if needed.

This reduces the amount of string matching since you're almost certainly looking for one of those custom uniforms. Otherwise you would've called ShaderInterface_**builtin**_uniform.

4 years agoObject.raycast: more minor improvements ...
Germano Cavalcante [Sun, 16 Apr 2017 21:50:06 +0000 (18:50 -0300)]
Object.raycast: more minor improvements ...
- if it is to check a bool, let it be local;
- removes gotos;

4 years agoOpenGL: tweak GPU_texture_create_nD
Mike Erwin [Sun, 16 Apr 2017 19:11:38 +0000 (15:11 -0400)]
OpenGL: tweak GPU_texture_create_nD

- test for 2D textures first since it's the most common case
- declare variables close to where they're used
- fix compiler warning for proxy (uninitialized use)
- safe return if n != 1, 2, 3 (should never happen)
- white space

Mike Erwin [Sun, 16 Apr 2017 19:04:07 +0000 (15:04 -0400)]

The fragment shader expects a normal, but the vertex shader was not providing one.

Fix: added a new vertex shader that has normals + smooth color interpolation.

I also split gpu_shader_3D_vert in two:
- one with just position
- one with position + normal

For each of the builtin shaders, we should be able to look at the GLSL and tell exactly what it's doing. Using #defines and #ifdefs for rendering options makes the shaders hard to read and easy to break.

4 years agofix mistake from last commit
Mike Erwin [Sun, 16 Apr 2017 17:57:16 +0000 (13:57 -0400)]
fix mistake from last commit

I didn't build this BGE-related code before pushing. My bad!

fix for af61b5eb0c1bef93e8df1434b174944e2b40445d

4 years agocleanup use of immUniformColor
Mike Erwin [Sun, 16 Apr 2017 17:44:34 +0000 (13:44 -0400)]
cleanup use of immUniformColor

- use best function for the job
- don't specify alpha if 100%
- 'f' for floating point literals

4 years agoGawain: add immUniformColor3ubvAlpha
Mike Erwin [Sun, 16 Apr 2017 17:33:21 +0000 (13:33 -0400)]
Gawain: add immUniformColor3ubvAlpha

Convenience function for specifying colors with separate RGB and alpha. Alpha ranges from 0 to 255.

4 years agouse immUniformColor instead of immUniform("color"
Mike Erwin [Sun, 16 Apr 2017 16:25:42 +0000 (12:25 -0400)]
use immUniformColor instead of immUniform("color"

The specialized color functions are better in every way:
- faster lookup (don't have to match "color" string)
- flexible inputs (RGB with separate alpha)
- automatic alpha = 1.0 if not specified

Sort of related to T49043

4 years agoFix T49617: Grease Pencil Stroke Placement regression
Antonio Vazquez [Sun, 16 Apr 2017 15:52:39 +0000 (17:52 +0200)]
Fix T49617: Grease Pencil Stroke Placement regression

When moved the options to toolsetting, this part was missing. The problem was not the pointer as suggested in D2629.

Thanks Arvīds Kokins for his help fixing this bug

4 years agoGawain: move AttribBinding funcs to private interface
Mike Erwin [Sun, 16 Apr 2017 15:21:45 +0000 (11:21 -0400)]
Gawain: move AttribBinding funcs to private interface

Other parts of Gawain uses these internally, but they're not part of the public API.

Part of T51219

4 years agoGawain: fix compiler warnings
Mike Erwin [Sun, 16 Apr 2017 15:08:26 +0000 (11:08 -0400)]
Gawain: fix compiler warnings

vertex_format.c implements both public and private functions, so needs to include the private header.

Follow-up to 7c57ca5109793c54f34adfd396c41b1be163d61f

4 years agoGawain: fix compilation on MSVC 2013
Mike Erwin [Sun, 16 Apr 2017 15:00:59 +0000 (11:00 -0400)]
Gawain: fix compilation on MSVC 2013

attrib_binding.c uses NULL, so include stddef.
Also swapped stdlib for stddef in vertex_format.c, since it only needs NULL.

Not sure why MSVC 2017 and clang/Mac work without this...

Thanks to @youle for reporting!

4 years agoOpenGL: minor cleanup & TODO
Mike Erwin [Sat, 15 Apr 2017 23:43:56 +0000 (19:43 -0400)]
OpenGL: minor cleanup & TODO

Just clearing out some old git stashes.

No point getting old GL light model to work on old Intel GPUs (both are obsolete for 2.8)

4 years agoGawain: look up builtin uniforms by enum, not by name
Mike Erwin [Sat, 15 Apr 2017 23:19:00 +0000 (19:19 -0400)]
Gawain: look up builtin uniforms by enum, not by name

This speeds up color and transformation matrix lookups at draw time (used by almost all shaders).

4 years agoGawain: use ShaderInterface to manage vertex attribs
Mike Erwin [Sat, 15 Apr 2017 22:06:54 +0000 (18:06 -0400)]
Gawain: use ShaderInterface to manage vertex attribs

This eliminates tons of glGetAttribLocation calls from the drawing loop. Vast majority of code can keep making the same function calls. They're just faster now!

4 years agoGawain: remove 2D matrix uniforms from ShaderInterface
Mike Erwin [Sat, 15 Apr 2017 21:07:29 +0000 (17:07 -0400)]
Gawain: remove 2D matrix uniforms from ShaderInterface

- remove 2D-specific variants of BuiltinUniform enum
- rename remaining builtins to exclude "_3D" since they can be used by 2D or 3D shaders

Follow up to D2626

4 years agoGawain: fix header comments
Mike Erwin [Sat, 15 Apr 2017 19:42:58 +0000 (15:42 -0400)]
Gawain: fix header comments

Missed this when splitting VertexBuffer from Batch -- they used to live in the same file.

4 years agoGawain: move some VertexFormat funcs to private interface
Mike Erwin [Sat, 15 Apr 2017 17:10:14 +0000 (13:10 -0400)]
Gawain: move some VertexFormat funcs to private interface

Other parts of Gawain uses these internally, but they're not part of the public API.

Part of T51219

4 years agoGawain: rename AttribBinding clear for consistency
Mike Erwin [Sat, 15 Apr 2017 17:06:43 +0000 (13:06 -0400)]
Gawain: rename AttribBinding clear for consistency

AttribBinding is only used internally by Gawain.

Part of T51219

4 years agoFix missing manipulator update after undo
Julian Eisel [Sat, 15 Apr 2017 13:58:49 +0000 (15:58 +0200)]
Fix missing manipulator update after undo

Steps to recreate the error were:
* Enter edit mode
* Change Vertex positions
* Undo -> Manipulator position isn't updated

4 years agoCleanup: lattice drawing had mesh include & names
Campbell Barton [Sat, 15 Apr 2017 07:52:42 +0000 (17:52 +1000)]
Cleanup: lattice drawing had mesh include & names

4 years agoCleanup: GPU header guards
Campbell Barton [Sat, 15 Apr 2017 07:51:08 +0000 (17:51 +1000)]
Cleanup: GPU header guards

4 years agoGPU matrix: add back type checks
Campbell Barton [Sat, 15 Apr 2017 07:43:48 +0000 (17:43 +1000)]
GPU matrix: add back type checks

Without this gpuGet functions would cast everything
(no type or size checks and override const variables).

4 years agoRemove redundant declaration
Campbell Barton [Sat, 15 Apr 2017 07:17:09 +0000 (17:17 +1000)]
Remove redundant declaration

4 years agoFix T51149: Joining curves allows 2D curves in 3D
Campbell Barton [Sat, 15 Apr 2017 06:50:12 +0000 (16:50 +1000)]
Fix T51149: Joining curves allows 2D curves in 3D

4 years agoObject.raycast: error in previous commit
Germano Cavalcante [Sat, 15 Apr 2017 05:31:33 +0000 (02:31 -0300)]
Object.raycast: error in previous commit

This is taking longer than I expected.

4 years agoGPU Matrix API: clean up after 2D-3D unification
Mike Erwin [Sat, 15 Apr 2017 05:29:25 +0000 (01:29 -0400)]
GPU Matrix API: clean up after 2D-3D unification

See GPU_matrix.h & gpu_matrix.c for the important changes. Other files are mostly just updated to use the latest API.

- remove unused functions, defines, enums, comments
- remove "3D" from function names
- init to Identity transform (otherwise empty stack)
- gpuMatrixReset lets outside code return to initial state

Part of T49450
Follow up to D2626 and 49fc9cff3b90