Blender Git Loki
Git Commits -> Revision e6bf29e
Revision e6bf29e by Sergey Sharybin (opensubdiv-modifier) July 17, 2014, 14:34 (GMT) |
OpenSubdiv: Initial glue to the GPU_material routines For now this only tested on matcaps, the rest of GLSL display is considered unworkable. This implements ability to define geometry shader for the GPU material which later is to be used for texture coordinates generation. For now GOU materials are split depending on thether they're used for OpenSubdiv mesh display or for "regular" mesh display. In the future it'll be possible to get rid of such a split, but that'd require a bit of changes in how this stuff is used all over the place. better to do it after the viewport refactor project. And we're now officially only supporting GPU-side tessellation only for rather modern GPU, supporting older ones becomeng more and more difficult. If GPU does not support recent GLSL shading then Blender will fallback to CPU-side grids evaluation, but it will still happen using OpenSubdiv. So in the future (once we'll support uniform subdivisions in evlauator API) there'll be no differences between old and new GPU visualization. For those who're using older GPU added new compute type in user preferences which is called NONE. This means CPU-side tessellation will be used. |
Commit Details:
Full Hash: e6bf29e699fff6de5dbbc1f48b681f9d37deb4f3
Parent Commit: 4b0c2de
Lines Changed: +348, -58
1 Added Path:
/source/blender/gpu/shaders/gpu_shader_geometry.glsl (+80, -0) (View)
21 Modified Paths:
/intern/opensubdiv/gpu_shader_opensubd_display.glsl (+2, -2) (Diff)
/intern/opensubdiv/opensubdiv_capi.cc (+11, -0) (Diff)
/intern/opensubdiv/opensubdiv_capi.h (+3, -2) (Diff)
/intern/opensubdiv/opensubdiv_gpu_capi.cc (+30, -8) (Diff)
/source/blender/blenkernel/intern/CCGSubSurf.c (+2, -2) (Diff)
/source/blender/blenkernel/intern/CCGSubSurf.h (+4, -1) (Diff)
/source/blender/blenkernel/intern/subsurf_ccg.c (+11, -5) (Diff)
/source/blender/gpu/CMakeLists.txt (+4, -0) (Diff)
/source/blender/gpu/GPU_extensions.h (+1, -1) (Diff)
/source/blender/gpu/GPU_material.h (+2, -2) (Diff)
/source/blender/gpu/intern/gpu_codegen.c (+14, -3) (Diff)
/source/blender/gpu/intern/gpu_codegen.h (+2, -1) (Diff)
/source/blender/gpu/intern/gpu_draw.c (+16, -6) (Diff)
/source/blender/gpu/intern/gpu_extensions.c (+102, -6) (Diff)
/source/blender/gpu/intern/gpu_material.c (+26, -11) (Diff)
/source/blender/gpu/intern/gpu_simple_shader.c (+1, -0) (Diff)
/source/blender/gpu/SConscript (+3, -0) (Diff)
/source/blender/gpu/shaders/gpu_shader_material.glsl (+5, -0) (Diff)
/source/blender/gpu/shaders/gpu_shader_vertex.glsl (+19, -2) (Diff)
/source/blender/makesdna/DNA_userdef_types.h (+7, -6) (Diff)
/source/blender/makesrna/intern/rna_userdef.c (+3, -0) (Diff)
/intern/opensubdiv/opensubdiv_capi.cc (+11, -0) (Diff)
/intern/opensubdiv/opensubdiv_capi.h (+3, -2) (Diff)
/intern/opensubdiv/opensubdiv_gpu_capi.cc (+30, -8) (Diff)
/source/blender/blenkernel/intern/CCGSubSurf.c (+2, -2) (Diff)
/source/blender/blenkernel/intern/CCGSubSurf.h (+4, -1) (Diff)
/source/blender/blenkernel/intern/subsurf_ccg.c (+11, -5) (Diff)
/source/blender/gpu/CMakeLists.txt (+4, -0) (Diff)
/source/blender/gpu/GPU_extensions.h (+1, -1) (Diff)
/source/blender/gpu/GPU_material.h (+2, -2) (Diff)
/source/blender/gpu/intern/gpu_codegen.c (+14, -3) (Diff)
/source/blender/gpu/intern/gpu_codegen.h (+2, -1) (Diff)
/source/blender/gpu/intern/gpu_draw.c (+16, -6) (Diff)
/source/blender/gpu/intern/gpu_extensions.c (+102, -6) (Diff)
/source/blender/gpu/intern/gpu_material.c (+26, -11) (Diff)
/source/blender/gpu/intern/gpu_simple_shader.c (+1, -0) (Diff)
/source/blender/gpu/SConscript (+3, -0) (Diff)
/source/blender/gpu/shaders/gpu_shader_material.glsl (+5, -0) (Diff)
/source/blender/gpu/shaders/gpu_shader_vertex.glsl (+19, -2) (Diff)
/source/blender/makesdna/DNA_userdef_types.h (+7, -6) (Diff)
/source/blender/makesrna/intern/rna_userdef.c (+3, -0) (Diff)