Commit Graph

216 Commits

Author SHA1 Message Date
ba345bcbb6 Fix T41414, T41386.
There were a few issues to fix here:

* We did not really unpremultiply float image dabs prior to sending them
to the GPU. That made float and byte image result different in texture
painting and undoing could change the result.
* To make textures nicely composited over the mesh, I used decal mode in
OpenGL texture environment for the texture unit. This uses the texture's
alpha channel with a nice over operator.
* Texture creation used to override the alpha setting due to the display
restrictions. Not so anymore, people can now create transparent byte
images.

Also, made alpha zero default for new textures now, since it has such a
nice effect here.
2014-08-12 13:49:45 +02:00
Dalai Felinto
e0d4047136 Bake-API: Test for cyclic node connection
If the active image node contributes to the final material shader
(meaning it's either directly or indirectly connected to an Output Node)
the user will receive an alert about circular dependency.

Similar to what we do for Blender internal the baking will still happen,
but the user will receive the alert which should prevent the image
saving to happen if the result was not intentional.

Core function to check for node output written by Lukas Toenne.

Reviewers: lukastoenne, campbellbarton

Differential Revision: https://developer.blender.org/D673
2014-07-23 11:46:13 -03:00
f745564e4e GSOC 2013 paint
Yep, at last it's here!

There are a few minor issues remaining but development can go on in
master after discussion at blender institute.

For full list of features see:

http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.72/Painting

Thanks to Sergey and Campbell for the extensive review and to the
countless artists that have given their input and reported issues during
development.
2014-07-21 12:02:05 +02:00
a9bb96e659 Fix transparency issues in 3d viewport
The issue was introduced by 0f95149 and it only worked before
because default game material alpha blending was set to alpha.

Now it'll check whether material has transparency enabled and
will use alpha blending by default in this case.
2014-06-27 15:33:57 +06:00
bf462149a6 BLI_bitmap: rename macros
- BLI_BITMAP_SET -> BLI_BITMAP_ENABLE
- BLI_BITMAP_CLEAR -> BLI_BITMAP_DISABLE
- BLI_BITMAP_GET -> BLI_BITMAP_TEST
- BLI_BITMAP_MODIFY -> BLI_BITMAP_SET
2014-06-14 00:47:12 +10:00
477f35559c Code cleanup: reorder BKE_scene_use_new_shading_nodes checks last 2014-06-14 00:47:11 +10:00
4ca67869cc Code cleanup: remove unused includes
Opted to keep includes if they are used indirectly (even if removing is possible).
2014-05-01 04:47:51 +10:00
f1186cb113 Fix T39524: Backface culling is always on in Textured view in BI.
Special case I did not think about in own previous culling fix (rB0f95149a7849).
2014-03-31 20:05:09 +02:00
0f95149a78 Fix T39306: Backface culling in Multitexture always uses mat game settings
Trying to use mat game settings in 3DView makes sense - but only when we are using "Game Engine" as 'renderer'!

Note GLSL code completely ignores mat game settings currently, could be added too...
2014-03-21 10:11:54 +01:00
50309fcbe8 Vertex Paint: inverted line drawing, white lines were often hard to see 2014-03-20 11:44:48 +11:00
284a352120 Vertex Paint: use solid shading, shadeless in wire (like wpaint) 2014-03-20 11:35:31 +11:00
081a3412a9 Paint API: add BKE_paint_select_elem_test: to check on paint selection 2014-02-26 16:00:54 +11:00
5621e63d36 Code cleanup: duplicate headers 2014-02-14 10:55:38 +11:00
d900f5be55 Code cleanup: use bools where possible 2014-02-03 19:35:44 +11:00
90e7be4710 Fix T37727: z-offset problems with camera view 2013-12-09 21:20:08 +11:00
3264461598 move bmesh array lookup data and utility functions from editmesh into bmesh,
since enough bmesh operations can also take advantage of direct index lookups on verts/edges/faces.

developers note:
- EDBM_index_arrays_init/ensure/free -> BM_mesh_elem_table_ensure/init/free
- EDBM_vert/edge/face_at_index -> BM_vert/edge/face_at_index
- EDBM_uv_element_map_create/free -> BM_uv_element_map_create/free
- ED_uv_element_get -> BM_uv_element_get
2013-10-28 02:05:33 +00:00
abee8a8717 Fix #37109: missing cycles texture display in edit mode.
My previous fix for uninitialized texture coordinates was not working well,
and in fact there was a bigger issue with GLSL drawing and missing attributes
with immediate draw mode. Now it will explicitly pass zero rather than having
it use whatever value was set last.
2013-10-17 14:04:10 +00:00
ecf2eeef23 style cleanup 2013-10-16 04:08:20 +00:00
f7a3881175 3D view: textured draw mode now has a Shadeless option in the Shading panel,
to draw textures without shading. For Cycles this was not possible yet, and
for Blender Internal you had to move away all lights which was also not ideal.

(Caminandes feature request)
2013-10-15 15:56:00 +00:00
95812e1cfc Fix cycles textured draw mode problem with objects that have an image texture
but not UV coordinates, it would show a different color with the object selected
and deselected.
2013-10-14 19:37:12 +00:00
04ea8c0ee8 remove the pointer from BLI_bitmap's typedef,
hides that an arg passed is really an array which may be modified by other functions.
2013-07-22 23:20:48 +00:00
3daa153d74 code cleanup: use boolean for derived mesh face test function 2013-07-19 10:40:52 +00:00
3c4c2478b6 fix for own regression, face index ranges still need checking in some places. 2013-07-14 23:41:33 +00:00
6321f11f03 tweak to commit r57891, dont draw hidden faces/edges in editmode. 2013-07-01 01:25:21 +00:00
c729c5ab4b fix [#35911] Show weights not working with a weight edit modifier in edit mode 2013-07-01 00:42:44 +00:00
56f5951ed3 Fix #34837 Texture Painting using Face Selection Mask fails to show
texture if more than 1 texture is used

The problem here is that no flushing is done when the texface image
changes between rendered triangles. Added a compare function and
slightly modified the draw_tface_mapped__set_draw callback to compliant
with the new user data.
2013-06-26 10:14:30 +00:00
972c01ac0c remove NULL checks for return values from EDBM_***_at_index calls. 2013-06-20 07:00:57 +00:00
71d53203fa Code cleanup: fix confusing line of code with useless ||. 2013-05-14 10:20:58 +00:00
8576a275dc BGE: Fix for [#35320] "Crash When Adding Property without Setting Material" reported by Leon Cheung.
Adding an extra NULL check to draw_mesh_text() to avoid accessing a NULL material array.
2013-05-13 05:37:45 +00:00
cf96fdfc65 Optimize face-select drawing (weight/vertex paint mode face selection)
with bmesh theres no need for edge-hash lookups, replace EdgeHash with BLI_bitmap.
2013-05-12 08:42:24 +00:00
3430068654 Fix #34970: in glsl mode the vertex paint face mask is not visible
Added face selection code to GLSL draw. We do this for Cycles
already, shall behave expected now.

Checked by Ton, thanks!
2013-04-18 10:39:53 +00:00
6da961775f code cleanup: rename BKE_tessmesh -> BKE_editmesh, rename EditDerivedBMesh.tc -> em. ('tc' is odd name which isn't used elsewhere). 2013-04-13 20:31:52 +00:00
8655be437d code cleanup: use bool where values are true/false, for view3d and related functions. 2013-03-20 23:14:18 +00:00
ddddb7bab1 code cleanup: favor braces when blocks have mixed brace use. 2013-03-09 03:46:30 +00:00
b0c6f87e2d Fix #34290: backface culling option in 3d view was not interacting well with the
option in the material in texture draw mode, now it always overrides the material.
2013-02-18 15:08:23 +00:00
bfb319925d dont draw stippled lines without z-depth in vertex paint mode. (only weight paint). 2013-02-13 05:48:08 +00:00
61bb1a3b50 Matcap fix:
Setting Cycles as render engine skipped matcap drawing.
Logic for checking drawing types needed a shuffle.
2013-01-22 12:36:06 +00:00
7aa9401a08 Fix #33741,#33856: multi texture drawing problem with VBO's after a recent bugfix. 2013-01-15 10:47:44 +00:00
9611202f28 Fix #33753: Not selected surface objects don't update in view if shading is changed
In fact surfaces should be displaying the same way in textures and solid shading,
but they used to change a way they're displaying by draw_textured_end not resetting
light model properly, leaving two-sided shading for all further objects draw.
2013-01-05 08:24:22 +00:00
e4f65749f9 remove vertex selection check for weight paint mode so you can paint through the mesh.
also made the wire draw without depth masking when the depth check is off, similar to mesh editmode drawing, nice hint about whats going on.
2013-01-01 11:47:47 +00:00
cb70c5ba0f fix for bug where weight paint would draw hidden faces but not draw then with the backbuffer (depth selection). 2012-12-23 08:20:44 +00:00
1d9271cdd7 Fix #33599: VBO textured draw mode did not update correctly when an image filepath
was changed to an invalid one. Also fixed Object Color not being displayed correctly
with VBO's.

The way it has to clear the VBO buffers here is quite poor though and slow, we
really need textures and materials in the depsgraph to do this quicker.
2012-12-18 12:42:13 +00:00
9784f3d466 Fix #33292: cycles material draw mode selection not working on some cards, now
skip glsl for picking as was already done for other GLSL drawing.
2012-11-26 08:00:15 +00:00
5c6f6301b0 Image thread safe improvements
This commit makes BKE_image_acquire_ibuf referencing result, which means once
some area requested for image buffer, it'll be guaranteed this buffer wouldn't
be freed by image signal.

To de-reference buffer BKE_image_release_ibuf should now always be used.

To make referencing working correct we can not rely on result of
image_get_ibuf_threadsafe called outside from thread lock. This is so because
we need to guarantee getting image buffer from list of loaded buffers and it's
referencing happens atomic. Without lock here it is possible that between call
of image_get_ibuf_threadsafe and referencing the buffer IMA_SIGNAL_FREE would
be called. Image signal handling too is blocking now to prevent such a
situation.

Threads are locking by spinlock, which are faster than mutexes. There were some
slowdown reports in the past about render slowdown when using OSX on Xeon CPU.
It shouldn't happen with spin locks, but more tests on different hardware would
be really welcome. So far can not see speed regressions on own computers.

This commit also removes BKE_image_get_ibuf, because it was not so intuitive
when get_ibuf and acquire_ibuf should be used.

Thanks to Ton and Brecht for discussion/review :)
2012-11-15 15:59:58 +00:00
b32bf2c462 code cleanup: use min_/max_ math functions, add minmax_v2_v2v2. 2012-10-25 22:47:54 +00:00
ddc2dbc2a4 style cleanup 2012-10-22 08:15:51 +00:00
f3ece5a108 style cleanup: trailing tabs & expand some non prefix tabs into spaces. 2012-10-21 05:46:41 +00:00
67e2768570 quiet some -Wshadow warnings 2012-10-12 14:35:10 +00:00
1d7bf727ff Fix #32695: Can't disable color management for 3D view
Made it so viewport will disable color management if display device set to None.

This solves couple of regressions, mainly related on old BGE files and made
None display behave exactly as old color management disabled.
2012-10-01 11:14:02 +00:00
946c9580b5 fix buffer overrun when 5+ sided faces were used for text drawing. 2012-09-19 02:06:27 +00:00