[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53987] trunk/blender: Matcap support in 3D Viewport.
Ton Roosendaal
ton at blender.org
Tue Jan 22 12:18:42 CET 2013
Revision: 53987
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53987
Author: ton
Date: 2013-01-22 11:18:41 +0000 (Tue, 22 Jan 2013)
Log Message:
-----------
Matcap support in 3D Viewport.
Full log is here:
http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.66/Usability#Matcap_in_3D_viewport
Implementation notes:
- Matcaps are an extension of Solid draw mode, and don't show in other drawmodes.
(It's mostly intended to aid modeling/sculpt)
- By design, Matcaps are a UI feature, and only stored locally for the UI itself, and
won't affect rendering or materials.
- Currently a set of 16 (GPL licensed) Matcaps have been compiled into Blender.
It doesn't take memory or cpu time, until you use it.
- Brush Icons and Matcaps use same code now, and only get generated/allocated on
actually using it (instead of on startup).
- The current set might get new or different images still, based on user feedback.
- Matcap images are 512x512 pixels, so each image takes 1 Mb memory. Unused matcaps get
freed immediately. The Matcap icon previews (128x128 pixels) stay in memory.
- Loading own matcap image files will be added later. That needs design and code work
to get it stable and memory-friendly.
- The GLSL code uses the ID PreviewImage for matcaps. I tested it using the existing
Material previews, which has its limits... especially for textured previews the
normal-mapped matcap won't look good.
Modified Paths:
--------------
trunk/blender/release/scripts/startup/bl_ui/space_view3d.py
trunk/blender/source/blender/blenkernel/intern/icons.c
trunk/blender/source/blender/blenloader/intern/readfile.c
trunk/blender/source/blender/editors/datafiles/CMakeLists.txt
trunk/blender/source/blender/editors/datafiles/SConscript
trunk/blender/source/blender/editors/include/ED_datafiles.h
trunk/blender/source/blender/editors/include/UI_icons.h
trunk/blender/source/blender/editors/include/UI_interface.h
trunk/blender/source/blender/editors/include/UI_interface_icons.h
trunk/blender/source/blender/editors/interface/interface_icons.c
trunk/blender/source/blender/editors/interface/interface_templates.c
trunk/blender/source/blender/editors/space_view3d/drawobject.c
trunk/blender/source/blender/editors/space_view3d/space_view3d.c
trunk/blender/source/blender/gpu/GPU_extensions.h
trunk/blender/source/blender/gpu/GPU_material.h
trunk/blender/source/blender/gpu/intern/gpu_codegen.c
trunk/blender/source/blender/gpu/intern/gpu_codegen.h
trunk/blender/source/blender/gpu/intern/gpu_draw.c
trunk/blender/source/blender/gpu/intern/gpu_extensions.c
trunk/blender/source/blender/gpu/intern/gpu_material.c
trunk/blender/source/blender/gpu/shaders/gpu_shader_material.glsl
trunk/blender/source/blender/makesdna/DNA_ID.h
trunk/blender/source/blender/makesdna/DNA_view3d_types.h
trunk/blender/source/blender/makesrna/intern/rna_space.c
trunk/blender/source/blender/makesrna/intern/rna_ui_api.c
Added Paths:
-----------
trunk/blender/release/datafiles/matcaps/
trunk/blender/release/datafiles/matcaps/mc01.jpg
trunk/blender/release/datafiles/matcaps/mc02.jpg
trunk/blender/release/datafiles/matcaps/mc03.jpg
trunk/blender/release/datafiles/matcaps/mc04.jpg
trunk/blender/release/datafiles/matcaps/mc05.jpg
trunk/blender/release/datafiles/matcaps/mc06.jpg
trunk/blender/release/datafiles/matcaps/mc07.jpg
trunk/blender/release/datafiles/matcaps/mc08.jpg
trunk/blender/release/datafiles/matcaps/mc09.jpg
trunk/blender/release/datafiles/matcaps/mc10.jpg
trunk/blender/release/datafiles/matcaps/mc11.jpg
trunk/blender/release/datafiles/matcaps/mc12.jpg
trunk/blender/release/datafiles/matcaps/mc13.jpg
trunk/blender/release/datafiles/matcaps/mc14.jpg
trunk/blender/release/datafiles/matcaps/mc15.jpg
trunk/blender/release/datafiles/matcaps/mc16.jpg
Added: trunk/blender/release/datafiles/matcaps/mc01.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc01.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/blender/release/datafiles/matcaps/mc02.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc02.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/blender/release/datafiles/matcaps/mc03.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc03.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/blender/release/datafiles/matcaps/mc04.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc04.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/blender/release/datafiles/matcaps/mc05.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc05.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/blender/release/datafiles/matcaps/mc06.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc06.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/blender/release/datafiles/matcaps/mc07.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc07.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/blender/release/datafiles/matcaps/mc08.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc08.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/blender/release/datafiles/matcaps/mc09.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc09.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/blender/release/datafiles/matcaps/mc10.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc10.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/blender/release/datafiles/matcaps/mc11.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc11.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/blender/release/datafiles/matcaps/mc12.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc12.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/blender/release/datafiles/matcaps/mc13.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc13.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/blender/release/datafiles/matcaps/mc14.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc14.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/blender/release/datafiles/matcaps/mc15.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc15.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/blender/release/datafiles/matcaps/mc16.jpg
===================================================================
(Binary files differ)
Property changes on: trunk/blender/release/datafiles/matcaps/mc16.jpg
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/blender/release/scripts/startup/bl_ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_view3d.py 2013-01-22 10:51:57 UTC (rev 53986)
+++ trunk/blender/release/scripts/startup/bl_ui/space_view3d.py 2013-01-22 11:18:41 UTC (rev 53987)
@@ -2427,7 +2427,10 @@
col.label(text="Shading:")
col.prop(gs, "material_mode", text="")
col.prop(view, "show_textured_solid")
-
+ if view.viewport_shade == 'SOLID':
+ col.prop(view, "use_matcap")
+ if view.use_matcap:
+ col.template_icon_view(view, "matcap_icon")
col.prop(view, "show_backface_culling")
layout.separator()
Modified: trunk/blender/source/blender/blenkernel/intern/icons.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/icons.c 2013-01-22 10:51:57 UTC (rev 53986)
+++ trunk/blender/source/blender/blenkernel/intern/icons.c 2013-01-22 11:18:41 UTC (rev 53987)
@@ -51,6 +51,8 @@
#include "BLO_sys_types.h" // for intptr_t support
+#include "GPU_extensions.h"
+
/* GLOBALS */
static GHash *gIcons = NULL;
@@ -138,7 +140,10 @@
MEM_freeN(prv->rect[i]);
prv->rect[i] = NULL;
}
+ if (prv->gputexture[i])
+ GPU_texture_free(prv->gputexture[i]);
}
+
MEM_freeN(prv);
}
}
@@ -165,6 +170,7 @@
else {
prv_img->rect[i] = NULL;
}
+ prv_img->gputexture[i] = NULL;
}
}
return prv_img;
Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c 2013-01-22 10:51:57 UTC (rev 53986)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c 2013-01-22 11:18:41 UTC (rev 53987)
@@ -1850,8 +1850,8 @@
if (prv->rect[i]) {
prv->rect[i] = newdataadr(fd, prv->rect[i]);
}
+ prv->gputexture[i] = NULL;
}
-// prv->gputexture[0] = prv->gputexture[1] = NULL;
}
return prv;
@@ -5998,6 +5998,7 @@
v3d->afterdraw_xray.first = v3d->afterdraw_xray.last = NULL;
v3d->afterdraw_xraytransp.first = v3d->afterdraw_xraytransp.last = NULL;
v3d->properties_storage = NULL;
+ v3d->defmaterial = NULL;
/* render can be quite heavy, set to wire on load */
if (v3d->drawtype == OB_RENDER)
Modified: trunk/blender/source/blender/editors/datafiles/CMakeLists.txt
===================================================================
--- trunk/blender/source/blender/editors/datafiles/CMakeLists.txt 2013-01-22 10:51:57 UTC (rev 53986)
+++ trunk/blender/source/blender/editors/datafiles/CMakeLists.txt 2013-01-22 11:18:41 UTC (rev 53987)
@@ -81,6 +81,25 @@
data_to_c_simple(../../../../release/datafiles/brushicons/thumb.png SRC)
data_to_c_simple(../../../../release/datafiles/brushicons/twist.png SRC)
data_to_c_simple(../../../../release/datafiles/brushicons/vertexdraw.png SRC)
+
+ # matcap
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc01.jpg SRC)
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc02.jpg SRC)
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc03.jpg SRC)
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc04.jpg SRC)
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc05.jpg SRC)
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc06.jpg SRC)
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc07.jpg SRC)
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc08.jpg SRC)
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc09.jpg SRC)
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc10.jpg SRC)
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc11.jpg SRC)
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc12.jpg SRC)
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc13.jpg SRC)
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc14.jpg SRC)
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc15.jpg SRC)
+ data_to_c_simple(../../../../release/datafiles/matcaps/mc16.jpg SRC)
+
endif()
data_to_c_simple(../../../../release/datafiles/startup.blend SRC)
Modified: trunk/blender/source/blender/editors/datafiles/SConscript
===================================================================
--- trunk/blender/source/blender/editors/datafiles/SConscript 2013-01-22 10:51:57 UTC (rev 53986)
+++ trunk/blender/source/blender/editors/datafiles/SConscript 2013-01-22 11:18:41 UTC (rev 53987)
@@ -77,6 +77,24 @@
os.path.join(env['DATA_SOURCES'], "thumb.png.c"),
os.path.join(env['DATA_SOURCES'], "twist.png.c"),
os.path.join(env['DATA_SOURCES'], "vertexdraw.png.c"),
+
+ os.path.join(env['DATA_SOURCES'], "mc01.jpg.c"),
+ os.path.join(env['DATA_SOURCES'], "mc02.jpg.c"),
+ os.path.join(env['DATA_SOURCES'], "mc03.jpg.c"),
+ os.path.join(env['DATA_SOURCES'], "mc04.jpg.c"),
+ os.path.join(env['DATA_SOURCES'], "mc05.jpg.c"),
+ os.path.join(env['DATA_SOURCES'], "mc06.jpg.c"),
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list