59f238ba09
Mesh Auto-Smooth Split Normal Support
...
From D2906 with few changes
2017-10-31 15:15:14 -02:00
adfbf276a1
Cleanup: style, duplicate includes
2017-10-07 15:57:14 +11:00
2f19559258
Cleanup: naming for mesh dirty flags
...
- NOCHECK -> ALL
- ALL -> MAYBE_ALL
Where 'MAYBE_ALL' checks to see if the mesh has changed.
This is clearer that `BKE_MESH_BATCH_DIRTY_ALL` is dirty and
going to be updated without any guess-work.
2017-08-22 22:07:25 +10:00
4b6c482d69
DwM: use batch select for vertex paint mode
2017-08-17 07:13:02 +10:00
7c96f613e4
DwM: Use Batch's for drawing selection
...
Use mesh batch cache for mesh selection.
Note that we could create the batches and free immediately
so they don't take up memory.
This resolves a problem where selection was limited
to immediate-mode buffer size.
2017-08-17 06:34:02 +10:00
dbd300ab20
DwM: use gawain ownership flags for mesh drawing
2017-08-16 17:47:58 +10:00
76d0ab9750
Code cleanup: fix various compiler warnings.
2017-08-12 14:08:03 +02:00
b4988d01cb
DwM: Option to use final material over mode shading
...
Support using full material shading in sculpt & paint modes mode.
Access 'Full Shading' from the display panel when in paint modes.
2017-07-13 01:59:44 +10:00
0a57597aff
Temporary fix for crash related to VBO update on shader change
...
This frees the whole mesh batch cache, instead of only the required
parts, as freeing specific parts of a cache is currently causing
crashes.
2017-07-11 13:03:27 +02:00
45897f12f8
Fix T51931: VBO not updating when UVs are added to shader node tree
...
UVs need specific data in the VBO, which is not computed unless the
shaders assigned to the mesh actually use UVs. When adding UVs to the
shader, the VBOs were not being recomputed to include the required data.
This adds a DEG relation between the shader and the mesh, and recomputes
the required data if the shader changed.
Thanks Sergey, for all the DEG stuff...
2017-07-10 14:43:57 +02:00
0ef48ad504
One more fix for merged 'normal map tangents not working correctly when there are no UV maps.'
2017-07-04 16:25:49 +03:00
e1482841dd
Merge branch 'master' into blender2.8
2017-07-03 19:53:00 +03:00
Dalai Felinto
871325e26f
Fix T51963: Eevee: ASAN crash on copy_attrib_name
...
Bug introduced on f6bb3262f1
.
CustomData_get_named_layer returns a different result than
CustomData_get_named_layer_index.
2017-07-03 12:47:00 +02:00
1a6ae0c70e
DwM: Use GWN_vertbuf_raw_* access for shading data
...
Gives approx 14% speedup here.
2017-06-30 18:31:04 +10:00
34e4948682
Fix T51919: Tangents need UV's allocated
2017-06-30 17:48:18 +10:00
f39d06589e
Fix warnings in draw_cache_impl files
2017-06-29 15:46:00 +02:00
fd3589e4c9
DwM: optimize mesh batch conversion
...
- Replace GWN_vertbuf_attr_set with Gwn_VertBufRaw & GWN_vertbuf_raw_step
to avoid intermediate copy.
- Avoid extra conversion step with: float[3] -> short[3] -> Gwn_PackedNormal.
We can skip the short[3].
Gives approx 6% speedup here.
2017-06-29 20:11:16 +10:00
2343dcf0d2
Gawain: Use common prefix for packed normal
2017-06-29 18:54:23 +10:00
10c887762a
DwM: no need to calculate face normal
2017-06-29 15:52:08 +10:00
abd9d50faa
Cleanup: quiet negative shift warning
2017-06-29 15:34:50 +10:00
f6bb3262f1
DwM: add CD_AUTO_FROM_NAME for mesh conversion
2017-06-29 15:23:47 +10:00
4a061a87e6
DwM: mesh data now only creates data thats used
...
Read from the GPUMaterial to find custom-data layers used for drawing.
This resolves problem where having UV's would always calculate tangents
causing noticeable slow down compared to 2.7x.
2017-06-28 13:44:28 +10:00
fc3d0da2fd
DWM: Fix own error checking wrong layer type
...
Would calculate all tangents for every UV layer.
2017-06-28 11:39:05 +10:00
df70e3de63
DWM: separate tangents from UV conversion
...
Prepare for different number of UV/Tangent layers.
2017-06-28 09:55:40 +10:00
bafb904807
Fix T51559: Update draw cache when changing flat/smooth shading
...
This also renames some flags/variables to be more generic for updating
purposes. The call used here was previously only used for updating
paint data, but as it was reused here, flags and variables were renamed
to accomodate more clearly to the new usages.
2017-06-26 14:52:59 +02:00
b4d053efc7
Gawain API naming refactor
...
Use consistent prefix for gawain API names as well as
some abbreviations to avoid over-long names, see: D2678
2017-06-19 20:18:04 +10:00
f8ea2c92db
Suppress assert for meshes with no faces
2017-06-02 16:42:39 +10:00
a5783d08f9
Resolve assert in weight paint mode w/ no weights
2017-06-01 13:37:18 +10:00
390648b984
DwM: Show wire only mesh objects
2017-06-01 02:26:24 +10:00
214c42157a
Only calc split normals when auto-smooth is enabled
...
This matches cycles & derived-mesh
2017-05-25 02:31:39 +10:00
154ff1afde
Fix/Workaround T51561: Disable split normals
2017-05-25 01:40:15 +10:00
707340edd7
Cleanup: minor de-duplicate from last commit
2017-05-24 22:54:19 +10:00
429f6bee28
Fix T51561: Normal maps fail w/ quad + eevee
...
Generalize derived-mesh tangent calculation so
it can be used by Batch cache creation too.
2017-05-24 22:39:50 +10:00
3c92e6b8f0
Cleanup: bmesh var naming
2017-05-24 13:33:48 +10:00
c9d890585b
DwM: avoid indirect edit-mesh conversion
...
Storing edit-mesh data as indices for passing
only to get back edit-mesh data.
This also complicated checks for real edges in tessellation tris.
Simpler to pass data directly.
2017-05-24 13:27:11 +10:00
b2dc54ffe5
Stupid mistake in material access optimization
2017-05-23 21:52:18 +10:00
96f7b08aec
DwM: optimize material access
...
- Split BMesh/Mesh loops.
- Loop over faces instead of tris.
- Add out-of-bounds check for material index (rare but can happen).
2017-05-23 18:26:16 +10:00
611779ca96
Cleanup: use more generic naming
...
Can be used by any user that needs faces split by materials.
2017-05-23 17:48:05 +10:00
f21c235c6f
DwM: texture paint support & mask mode
...
Uses workaround so material slots are used when neither blender-internal
or cycles are enabled.
2017-05-23 17:40:48 +10:00
9efd3a3f63
Cleanup: move custom-data layers into a struct
...
Changed because the values co-exist with active layers
(Mesh.mloopuv, Mesh.mloopcol).
2017-05-22 17:25:31 +10:00
02cc4d8cec
Cleanup: line length
2017-05-22 16:25:27 +10:00
e98652b64f
Cleanup: minor edits
2017-05-22 16:21:44 +10:00
68d8618538
Gawain: promote 10_10_10 to first-class vertex format
...
This format is part of OpenGL 3.3, and one of the reasons for choosing 3.3 over 3.2.
Instead of checking #if USE_10_10_10 just use it wherever needed.
2017-05-21 15:59:34 -04:00
07dd208209
Cleanup: warnings
2017-05-21 09:39:31 +10:00
242a044bd1
GPUMaterial: Add support for tangent node.
2017-05-18 16:05:03 +02:00
c75cde31db
Re-use vertex position VBO in weight-paint mode
2017-05-18 14:53:43 +10:00
Dalai Felinto
60cd996c0a
Silence warnings in Mac (based on buildbot build report)
2017-05-17 18:13:10 +02:00
c104b7b0b3
DWM: reuse position VBO for vpaint select overlay
2017-05-17 19:21:16 +10:00
a769c4a3a0
Fix weight-painting out of facemask mode w/ hidden faces
...
Own error in recent commit
2017-05-17 19:08:09 +10:00
fabd55a5e9
DWM: hide hidden verts in weight-paint mode
2017-05-17 18:09:40 +10:00