Clément Foucault
0c5b197447
Edit Mesh overlay: remove one extra buffer.
2017-03-03 13:51:59 +01:00
Clément Foucault
85945849a9
Edit Mode overlay: backwire "ghost wireframe" with variable intensity
2017-03-03 02:53:16 +01:00
Clément Foucault
bb8a172dfb
Draw Manager: Changed buffer uniform api.
...
Use a reference to where will the texture be instead of an index.
2017-03-03 02:53:16 +01:00
Mike Erwin
0c1c646118
clean up clay vertex shader
...
Clay engine only works on modern GL, so this shader doesn't need compatibility with legacy Mac GL.
2017-03-02 18:11:21 -05:00
Dalai Felinto
aa845eed1e
Remove tons of OBACT
...
There are now only referenced in:
* drawobject.c
* particle_edit.c
* space_image.c (a single case to be handled on workspace branch)
* rigidbody_constraint.c (to be handled in the following commit)
2017-03-02 17:09:24 +01:00
Clément Foucault
561d11c5e6
Edit Mesh overlay: pack normals with face centers.
...
Needed for face normals.
2017-03-02 15:03:40 +01:00
Clément Foucault
b463cd2ab8
Edit Mode overlay: Moved Shaders to draw modules and resolved some draw issue.
...
We don't want to clutter gpu_shader.c with engine specific code
Added face's center dot
Simplified loose vert shader
2017-03-02 01:08:32 +01:00
Clément Foucault
aa102283da
Edit Mode overlay: Added theme color via UBO.
2017-03-02 01:08:32 +01:00
Clément Foucault
043c90fdcd
Edit Mode overlay: fast navigate
2017-03-02 01:08:32 +01:00
Clément Foucault
26fc6c71c4
Edit Mode overlays: separate multiple shaders for loose edges and verts
2017-03-02 01:08:32 +01:00
Clément Foucault
7175838b61
Draw Manager: Fix ortho grid in front of overlays.
2017-02-28 15:15:34 +01:00
Mike Erwin
8a76049e84
rename built-in point shaders, SMOOTH --> AA
...
Updated shader names and code that uses them.
All of these shaders produce round points that are anti-aliased and blended against the background.
These were initially named SMOOTH because they replace glEnable(GL_POINT_SMOOTH). But SMOOTH in shader-land refers to vertex attribute interpolation (like glShadeModel(GL_SMOOTH)).
Using SMOOTH to mean two things is confusing, so we now use AA to mean "the point is anti-aliased".
2017-02-28 02:18:52 -05:00
Clément Foucault
6dabcdf69e
Clay Engine: Replace if() by assert()
2017-02-26 21:12:56 +01:00
Clément Foucault
712530eb93
Clay Engine: Edit mesh overlays
...
Based on the previous overlay shader from merwin.
This shader takes care of clipped vertex cases and do all edit mode face info in one pass (except face centers).
As the shading is done one the triangle itself the visual can't go beyond the surface of the mesh. That leads to half displayed edges on the outline of the mesh.
This problem can be fixed by a second pass.
This is work in progress.
2017-02-26 21:12:56 +01:00
Brecht Van Lommel
e9011100f7
Fix compiler warnings on macOS / clang / c++11.
2017-02-26 00:16:21 +01:00
Dalai Felinto
4c8d8da2e7
Silence warnings in draw_armature.c
...
Also add note about incomplete functions there
2017-02-24 10:10:24 +01:00
Clément Foucault
3d8f4fedd0
Clay Engine: fix format (3D instead of 2D)
2017-02-24 01:26:44 +01:00
Julian Eisel
9c106ff211
Cleanup: Style
2017-02-22 18:54:56 +01:00
Clément Foucault
cd0d335183
Clay Engine: Started Armature drawing
...
This should give the overall direction to whom wants to finish it.
- Renamed EDIT mode engine to EDIT_MESH mode engine
- Introduce EDIT_ARMATURE mode engine
- Started to port legacy drawarmature.c to draw_armature.c
2017-02-22 13:00:15 +01:00
Clément Foucault
48aeb0b640
Clay Engine: Renaming shader.
2017-02-22 12:50:03 +01:00
Clément Foucault
e05d3d5d9b
Clay Engine: Fix Memory Leak.
2017-02-22 12:19:10 +01:00
Clément Foucault
446625c561
Clay Engine: Use G.debug_value to test cache performance
...
Use debug 666 for cache without instance buffer caching.
Use debug 667 for cache with instance buffer caching.
2017-02-19 14:31:02 +01:00
Dalai Felinto
b30044d4af
Fix crash introduced in engine separation ( 50fb3ea3)
...
Basically DEG_OBJECT_ITER (or rather,
BKE_scene_layer_engine_settings_update) wasn't creating
Object->collection_settings data for invisible objects.
Now I'm removing those objects from the loop entirely. If we are to
bring them back we need to either create CollectionEngineSettings dat
from them or to skip them in DRW_mode_cache_populate.
2017-02-17 22:26:40 +01:00
Bastien Montagne
a54e461b84
Fix building without Clay engine.
2017-02-17 20:06:31 +01:00
Dalai Felinto
1ed20a692f
Follow up on mode engine code separation
...
The settings initialization belong within the engines
2017-02-17 17:54:04 +01:00
Clément Foucault
50fb3ea3de
Clay Engine: Separate mode drawing to different files/engines.
2017-02-17 17:30:15 +01:00
Clément Foucault
db2a05999a
Clay Engine: Fix Cursor too bold
2017-02-16 16:22:44 +01:00
Clément Foucault
3d63b9a88f
Clay Engine: Hidden wire
2017-02-16 14:00:55 +01:00
Clément Foucault
eeeb1aa658
Clay Engine: Wire and Backface cull collection settings.
2017-02-16 14:00:55 +01:00
Clément Foucault
f5ab4bc339
Clay Engine: Fix grid not showing.
2017-02-16 14:00:55 +01:00
Clément Foucault
883ef2c9ce
Clay Engine: New collection settings (not working yet)
2017-02-15 18:54:31 +01:00
Clément Foucault
f9e4d8e93a
Clay Engine: Replace Manual depth test by depth copy.
...
This avoid glitches due to float comparison precision.
2017-02-15 15:16:06 +01:00
Clément Foucault
310593def1
Clay Engine: Support vertex normals (smooth shading), no face normals yet.
2017-02-15 13:32:35 +01:00
Clément Foucault
b0c125bcd3
Clay Engine: draw Speaker
2017-02-15 12:28:26 +01:00
Clément Foucault
cd472bc7de
Clay Engine: Fix Grid depth write.
2017-02-15 12:28:26 +01:00
Clément Foucault
9f03718a5b
Clay Engine: drawaxis names drawn with shaders & instance
2017-02-15 12:28:26 +01:00
Clément Foucault
ee2a718763
Clay Engine: Fix empty drawing
2017-02-15 12:28:26 +01:00
Clément Foucault
e813ebab71
Clay Engine: new draw_view.c containing all dynamic drawing routines.
2017-02-15 12:28:26 +01:00
Dalai Felinto
1ff3d5bc9a
Layer Macros: create the instance as part of the macro
...
Instead of pre-initializing an instance prior to the macro, we do it as part of the macro itself now.
2017-02-14 18:21:46 +01:00
Dalai Felinto
8a92277a31
Layers: Per-Collection edit mode parsing
...
Note: we are now merging all the collection engines (mode and render), which eventually may get slow. But as stated before, this is to expose the functionality, while waiting for proper depsgraph integrated solution.
2017-02-13 00:25:30 +01:00
Clément Foucault
24703c97a1
GPU shaders / Clay engine : small renaming / cleanup
2017-02-11 21:15:46 +01:00
Clément Foucault
737d349dbc
Clay Engine: fix instancing (again)
2017-02-11 20:36:20 +01:00
Clément Foucault
e05800d23b
Clay Engine: converted Empties to the new instancing method
2017-02-11 20:36:20 +01:00
Clément Foucault
1abd2f279d
Clay Engine: Small instancing fixes
2017-02-11 20:36:20 +01:00
Clément Foucault
eb473143a8
Clay Engine: Convert Lamp to use new instancing feature.
2017-02-11 20:36:20 +01:00
Clément Foucault
08c1afb088
Clay Engine: Separate batch for Z straight line
2017-02-11 20:36:20 +01:00
Clément Foucault
fc0797142d
Clay Engine: Refactoring of the dynamic batches
...
Support more attribs for interesting instancing
2017-02-11 20:36:20 +01:00
Dalai Felinto
f20cc9e54c
Fix logic in CollectionEngineSetting update
...
Now Clay engine can show different materials per collection o/
2017-02-09 12:48:39 +01:00
Clément Foucault
08399aca62
Clay Engine : fix
2017-02-09 12:04:37 +01:00
Clément Foucault
6b372e3a22
Clay Engine: support for overrides (not working yet)
2017-02-09 11:25:51 +01:00