Matcap support in 3D Viewport.
authorTon Roosendaal <ton@blender.org>
Tue, 22 Jan 2013 11:18:41 +0000 (11:18 +0000)
committerTon Roosendaal <ton@blender.org>
Tue, 22 Jan 2013 11:18:41 +0000 (11:18 +0000)
commite11d22a6b751c750c40226cb027e7805adb7d4e4
treec7a7afd211db440cbcbd154f76379e7685cb03fe
parent1e3a2931ac0cfc9af790717bf19577e22ebda4f5
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.
41 files changed:
release/datafiles/matcaps/mc01.jpg [new file with mode: 0644]
release/datafiles/matcaps/mc02.jpg [new file with mode: 0644]
release/datafiles/matcaps/mc03.jpg [new file with mode: 0644]
release/datafiles/matcaps/mc04.jpg [new file with mode: 0644]
release/datafiles/matcaps/mc05.jpg [new file with mode: 0644]
release/datafiles/matcaps/mc06.jpg [new file with mode: 0644]
release/datafiles/matcaps/mc07.jpg [new file with mode: 0644]
release/datafiles/matcaps/mc08.jpg [new file with mode: 0644]
release/datafiles/matcaps/mc09.jpg [new file with mode: 0644]
release/datafiles/matcaps/mc10.jpg [new file with mode: 0644]
release/datafiles/matcaps/mc11.jpg [new file with mode: 0644]
release/datafiles/matcaps/mc12.jpg [new file with mode: 0644]
release/datafiles/matcaps/mc13.jpg [new file with mode: 0644]
release/datafiles/matcaps/mc14.jpg [new file with mode: 0644]
release/datafiles/matcaps/mc15.jpg [new file with mode: 0644]
release/datafiles/matcaps/mc16.jpg [new file with mode: 0644]
release/scripts/startup/bl_ui/space_view3d.py
source/blender/blenkernel/intern/icons.c
source/blender/blenloader/intern/readfile.c
source/blender/editors/datafiles/CMakeLists.txt
source/blender/editors/datafiles/SConscript
source/blender/editors/include/ED_datafiles.h
source/blender/editors/include/UI_icons.h
source/blender/editors/include/UI_interface.h
source/blender/editors/include/UI_interface_icons.h
source/blender/editors/interface/interface_icons.c
source/blender/editors/interface/interface_templates.c
source/blender/editors/space_view3d/drawobject.c
source/blender/editors/space_view3d/space_view3d.c
source/blender/gpu/GPU_extensions.h
source/blender/gpu/GPU_material.h
source/blender/gpu/intern/gpu_codegen.c
source/blender/gpu/intern/gpu_codegen.h
source/blender/gpu/intern/gpu_draw.c
source/blender/gpu/intern/gpu_extensions.c
source/blender/gpu/intern/gpu_material.c
source/blender/gpu/shaders/gpu_shader_material.glsl
source/blender/makesdna/DNA_ID.h
source/blender/makesdna/DNA_view3d_types.h
source/blender/makesrna/intern/rna_space.c
source/blender/makesrna/intern/rna_ui_api.c