From 477ee3a9de7995b2b870d5462948cb80c4be5ec2 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 14 Aug 2017 12:27:10 +0200 Subject: [PATCH 1/2] Fix Cycles presets after recent removal of some settings. --- .../presets/cycles/integrator/direct_light.py | 2 -- .../integrator/full_global_illumination.py | 2 -- .../integrator/limited_global_illumination.py | 2 -- .../scripts/presets/cycles/sampling/final.py | 22 +++++++++---------- .../presets/cycles/sampling/preview.py | 22 +++++++++---------- 5 files changed, 20 insertions(+), 30 deletions(-) diff --git a/release/scripts/presets/cycles/integrator/direct_light.py b/release/scripts/presets/cycles/integrator/direct_light.py index 12b332cb431..701aa10d556 100644 --- a/release/scripts/presets/cycles/integrator/direct_light.py +++ b/release/scripts/presets/cycles/integrator/direct_light.py @@ -2,12 +2,10 @@ import bpy cycles = bpy.context.scene.cycles cycles.max_bounces = 8 -cycles.min_bounces = 8 cycles.caustics_reflective = False cycles.caustics_refractive = False cycles.diffuse_bounces = 0 cycles.glossy_bounces = 1 cycles.transmission_bounces = 2 cycles.volume_bounces = 0 -cycles.transparent_min_bounces = 8 cycles.transparent_max_bounces = 8 diff --git a/release/scripts/presets/cycles/integrator/full_global_illumination.py b/release/scripts/presets/cycles/integrator/full_global_illumination.py index 69fa6e735bd..a03c6c8bd64 100644 --- a/release/scripts/presets/cycles/integrator/full_global_illumination.py +++ b/release/scripts/presets/cycles/integrator/full_global_illumination.py @@ -2,12 +2,10 @@ import bpy cycles = bpy.context.scene.cycles cycles.max_bounces = 128 -cycles.min_bounces = 3 cycles.caustics_reflective = True cycles.caustics_refractive = True cycles.diffuse_bounces = 128 cycles.glossy_bounces = 128 cycles.transmission_bounces = 128 cycles.volume_bounces = 128 -cycles.transparent_min_bounces = 8 cycles.transparent_max_bounces = 128 diff --git a/release/scripts/presets/cycles/integrator/limited_global_illumination.py b/release/scripts/presets/cycles/integrator/limited_global_illumination.py index 22a8478d23b..d37bf46c705 100644 --- a/release/scripts/presets/cycles/integrator/limited_global_illumination.py +++ b/release/scripts/presets/cycles/integrator/limited_global_illumination.py @@ -2,12 +2,10 @@ import bpy cycles = bpy.context.scene.cycles cycles.max_bounces = 8 -cycles.min_bounces = 3 cycles.caustics_reflective = False cycles.caustics_refractive = False cycles.diffuse_bounces = 1 cycles.glossy_bounces = 4 cycles.transmission_bounces = 8 cycles.volume_bounces = 2 -cycles.transparent_min_bounces = 8 cycles.transparent_max_bounces = 8 diff --git a/release/scripts/presets/cycles/sampling/final.py b/release/scripts/presets/cycles/sampling/final.py index d03423b6c2e..f1222d927c1 100644 --- a/release/scripts/presets/cycles/sampling/final.py +++ b/release/scripts/presets/cycles/sampling/final.py @@ -1,20 +1,18 @@ import bpy cycles = bpy.context.scene.cycles -cycles.use_square_samples = True - # Path Trace -cycles.samples = 24 -cycles.preview_samples = 12 +cycles.samples = 512 +cycles.preview_samples = 128 # Branched Path Trace -cycles.aa_samples = 8 -cycles.preview_aa_samples = 4 +cycles.aa_samples = 128 +cycles.preview_aa_samples = 32 -cycles.diffuse_samples = 3 -cycles.glossy_samples = 2 -cycles.transmission_samples = 2 +cycles.diffuse_samples = 4 +cycles.glossy_samples = 4 +cycles.transmission_samples = 4 cycles.ao_samples = 1 -cycles.mesh_light_samples = 2 -cycles.subsurface_samples = 2 -cycles.volume_samples = 2 +cycles.mesh_light_samples = 4 +cycles.subsurface_samples = 4 +cycles.volume_samples = 4 diff --git a/release/scripts/presets/cycles/sampling/preview.py b/release/scripts/presets/cycles/sampling/preview.py index 5f071c7474d..c16449e2c8f 100644 --- a/release/scripts/presets/cycles/sampling/preview.py +++ b/release/scripts/presets/cycles/sampling/preview.py @@ -1,20 +1,18 @@ import bpy cycles = bpy.context.scene.cycles -cycles.use_square_samples = True - # Path Trace -cycles.samples = 12 -cycles.preview_samples = 6 +cycles.samples = 128 +cycles.preview_samples = 32 # Branched Path Trace -cycles.aa_samples = 4 -cycles.preview_aa_samples = 2 +cycles.aa_samples = 32 +cycles.preview_aa_samples = 4 -cycles.diffuse_samples = 3 -cycles.glossy_samples = 2 -cycles.transmission_samples = 2 +cycles.diffuse_samples = 4 +cycles.glossy_samples = 4 +cycles.transmission_samples = 4 cycles.ao_samples = 1 -cycles.mesh_light_samples = 2 -cycles.subsurface_samples = 2 -cycles.volume_samples = 2 +cycles.mesh_light_samples = 4 +cycles.subsurface_samples = 4 +cycles.volume_samples = 4 From 535e83687d3efc6431a47d259c94131029c1edf3 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Tue, 15 Aug 2017 15:47:48 +0200 Subject: [PATCH 2/2] macOS build: simplify python install for new 10.9 libraries. We stop using the .zip file and just have all files now in lib/darwin/python/lib, along with numpy, numpy headers and requests. This makes it consistent with Linux and simplifies code. For old libraries the .zip stays, code for that gets removed when we fully switch to new libraries. --- .../build_environment/cmake/harvest.cmake | 16 +-- .../build_environment/cmake/numpy.cmake | 4 +- .../build_environment/cmake/python.cmake | 8 +- .../build_environment/cmake/requests.cmake | 10 +- .../cmake/platform/platform_apple.cmake | 9 +- source/creator/CMakeLists.txt | 107 +++++++++++------- 6 files changed, 88 insertions(+), 66 deletions(-) diff --git a/build_files/build_environment/cmake/harvest.cmake b/build_files/build_environment/cmake/harvest.cmake index dfdfe50ab49..fbc9f8687f9 100644 --- a/build_files/build_environment/cmake/harvest.cmake +++ b/build_files/build_environment/cmake/harvest.cmake @@ -208,7 +208,9 @@ function(harvest from to) FILES_MATCHING PATTERN ${pattern} PATTERN "pkgconfig" EXCLUDE PATTERN "cmake" EXCLUDE - PATTERN "clang" EXCLUDE) + PATTERN "clang" EXCLUDE + PATTERN "__pycache__" EXCLUDE + PATTERN "tests" EXCLUDE) endif() endfunction() @@ -267,17 +269,7 @@ harvest(png/include png/include "*.h") harvest(png/lib png/lib "*.a") harvest(python/bin python/bin "python${PYTHON_SHORT_VERSION}m") harvest(python/include python/include "*h") -if(UNIX AND NOT APPLE) - harvest(python/lib/libpython${PYTHON_SHORT_VERSION}m.a python/lib/libpython${PYTHON_SHORT_VERSION}m.a) - harvest(python/lib/python${PYTHON_SHORT_VERSION} python/lib/python${PYTHON_SHORT_VERSION} "*") - harvest(requests python/lib/python${PYTHON_SHORT_VERSION}/site-packages/requests "*") - harvest(numpy python/lib/python${PYTHON_SHORT_VERSION}/site-packages/numpy "*") -else() - harvest(python/lib/libpython${PYTHON_SHORT_VERSION}m.a python/lib/python${PYTHON_SHORT_VERSION}/libpython${PYTHON_SHORT_VERSION}m.a) - harvest(python/release release "*") - harvest(requests release/site-packages/requests "*") - harvest(numpy release/site-packages/numpy "*") -endif() +harvest(python/lib python/lib "*") harvest(schroedinger/lib/libschroedinger-1.0.a ffmpeg/lib/libschroedinger.a) harvest(sdl/include/SDL2 sdl/include "*.h") harvest(sdl/lib sdl/lib "libSDL2.a") diff --git a/build_files/build_environment/cmake/numpy.cmake b/build_files/build_environment/cmake/numpy.cmake index ab196dc5eec..b1bf1691a28 100644 --- a/build_files/build_environment/cmake/numpy.cmake +++ b/build_files/build_environment/cmake/numpy.cmake @@ -37,9 +37,7 @@ if(WIN32) ${CMAKE_COMMAND} -E tar "cfvz" "${LIBDIR}/python35_numpy_${NUMPY_SHORT_VERSION}${NUMPY_ARCHIVE_POSTFIX}.tar.gz" "." ) else() - set(NUMPY_INSTALL - ${CMAKE_COMMAND} -E copy_directory "${BUILD_DIR}/numpy/src/external_numpy/build/lib.${PYTHON_ARCH2}-3.5/numpy/" "${LIBDIR}/numpy/" - ) + set(NUMPY_INSTALL echo .) endif() ExternalProject_Add(external_numpy diff --git a/build_files/build_environment/cmake/python.cmake b/build_files/build_environment/cmake/python.cmake index a24bbbb6aea..c1c7bf7001c 100644 --- a/build_files/build_environment/cmake/python.cmake +++ b/build_files/build_environment/cmake/python.cmake @@ -82,13 +82,7 @@ else() INSTALL_COMMAND ${PYTHON_CONFIGURE_ENV} && cd ${BUILD_DIR}/python/src/external_python/ && make install INSTALL_DIR ${LIBDIR}/python) - add_custom_command( - OUTPUT ${LIBDIR}/python/release/python_x86_64.zip - WORKING_DIRECTORY ${LIBDIR}/python - COMMAND mkdir -p release - COMMAND zip -r release/python_x86_64.zip lib/python${PYTHON_SHORT_VERSION} lib/pkgconfig --exclude *__pycache__*) - add_custom_target(Package_Python ALL DEPENDS external_python ${LIBDIR}/python/release/python_x86_64.zip) - add_custom_target(Make_Python_Environment ALL DEPENDS Package_Python) + add_custom_target(Make_Python_Environment ALL DEPENDS external_python) endif() if(MSVC) diff --git a/build_files/build_environment/cmake/requests.cmake b/build_files/build_environment/cmake/requests.cmake index 399bfe4009f..f5aa26b0615 100644 --- a/build_files/build_environment/cmake/requests.cmake +++ b/build_files/build_environment/cmake/requests.cmake @@ -17,6 +17,12 @@ # ***** END GPL LICENSE BLOCK ***** if(BUILD_MODE STREQUAL Release) + if(WIN32) + set(REQUESTS_INSTALL_DIR ${LIBDIR}/requests) + else() + set(REQUESTS_INSTALL_DIR ${LIBDIR}/python/lib/python${PYTHON_SHORT_VERSION}/site-packages/requests) + endif() + ExternalProject_Add(external_requests URL ${REQUESTS_URI} DOWNLOAD_DIR ${DOWNLOAD_DIR} @@ -24,6 +30,8 @@ if(BUILD_MODE STREQUAL Release) PREFIX ${BUILD_DIR}/requests CONFIGURE_COMMAND "" BUILD_COMMAND "" - INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/requests/src/external_requests/requests ${LIBDIR}/requests + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory ${BUILD_DIR}/requests/src/external_requests/requests ${REQUESTS_INSTALL_DIR} ) + + add_dependencies(external_requests Make_Python_Environment) endif(BUILD_MODE STREQUAL Release) diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake index 6105f2e04de..00c5772e11c 100644 --- a/build_files/cmake/platform/platform_apple.cmake +++ b/build_files/cmake/platform/platform_apple.cmake @@ -93,7 +93,11 @@ if(WITH_PYTHON) # normally cached but not since we include them with blender set(PYTHON_INCLUDE_DIR "${LIBDIR}/python/include/python${PYTHON_VERSION}m") set(PYTHON_EXECUTABLE "${LIBDIR}/python/bin/python${PYTHON_VERSION}m") - set(PYTHON_LIBRARY python${PYTHON_VERSION}m) + if(WITH_CXX11) + set(PYTHON_LIBRARY ${LIBDIR}/python/lib/libpython${PYTHON_VERSION}m.a) + else() + set(PYTHON_LIBRARY python${PYTHON_VERSION}m) + endif() set(PYTHON_LIBPATH "${LIBDIR}/python/lib/python${PYTHON_VERSION}") # set(PYTHON_LINKFLAGS "-u _PyMac_Error") # won't build with this enabled else() @@ -113,6 +117,9 @@ if(WITH_PYTHON) set(PYTHON_INCLUDE_DIRS "${PYTHON_INCLUDE_DIR}") set(PYTHON_LIBRARIES "${PYTHON_LIBRARY}") + # needed for Audaspace, numpy is installed into python site-packages + set(NUMPY_INCLUDE_DIRS "${PYTHON_LIBPATH}/site-packages/numpy/core/include") + if(NOT EXISTS "${PYTHON_EXECUTABLE}") message(FATAL_ERROR "Python executable missing: ${PYTHON_EXECUTABLE}") endif() diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 8f26e248424..98a5a6ce644 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -845,6 +845,13 @@ elseif(APPLE) PATTERN "__MACOSX" EXCLUDE PATTERN ".DS_Store" EXCLUDE PATTERN "config-${PYTHON_VERSION}m/*.a" EXCLUDE # static lib + PATTERN "lib2to3" EXCLUDE # ./lib2to3 + PATTERN "tkinter" EXCLUDE # ./tkinter + PATTERN "lib-dynload/_tkinter.*" EXCLUDE # ./lib-dynload/_tkinter.co + PATTERN "idlelib" EXCLUDE # ./idlelib + PATTERN "test" EXCLUDE # ./test + PATTERN "turtledemo" EXCLUDE # ./turtledemo + PATTERN "turtle.py" EXCLUDE # ./turtle.py ) endmacro() @@ -908,41 +915,49 @@ elseif(APPLE) # python if(WITH_PYTHON AND NOT WITH_PYTHON_MODULE AND NOT WITH_PYTHON_FRAMEWORK) - # the python zip is first extracted as part of the build process, - # and then later installed as part of make install. this is much - # quicker, and means we can easily exclude files on copy - # Not needed for PYTHON_MODULE or WEB_PLUGIN due uses Pyhon framework - # use a hash of the .zip path to handle switching between different - # lib directories without needing a clean build - string(SHA1 PYTHON_ZIP_HASH ${LIBDIR}/release/${PYTHON_ZIP}) - set(PYTHON_EXTRACT_DIR ${CMAKE_CURRENT_BINARY_DIR}/${PYTHON_ZIP_HASH}/python) + if(WITH_CXX11) + # Copy the python libs into the install directory + install_dir( + ${PYTHON_LIBPATH} + ${TARGETDIR_VER}/python/lib + ) + else() + # the python zip is first extracted as part of the build process, + # and then later installed as part of make install. this is much + # quicker, and means we can easily exclude files on copy + # Not needed for PYTHON_MODULE or WEB_PLUGIN due uses Pyhon framework + # use a hash of the .zip path to handle switching between different + # lib directories without needing a clean build + string(SHA1 PYTHON_ZIP_HASH ${LIBDIR}/release/${PYTHON_ZIP}) + set(PYTHON_EXTRACT_DIR ${CMAKE_CURRENT_BINARY_DIR}/${PYTHON_ZIP_HASH}/python) - add_custom_target( - extractpyzip - DEPENDS ${PYTHON_EXTRACT_DIR}) + add_custom_target( + extractpyzip + DEPENDS ${PYTHON_EXTRACT_DIR}) - set(PYTHON_ZIP "python_${CMAKE_OSX_ARCHITECTURES}.zip") + set(PYTHON_ZIP "python_${CMAKE_OSX_ARCHITECTURES}.zip") - add_custom_command( - OUTPUT ${PYTHON_EXTRACT_DIR} - COMMAND ${CMAKE_COMMAND} -E remove_directory "${PYTHON_EXTRACT_DIR}/" - COMMAND ${CMAKE_COMMAND} -E make_directory "${PYTHON_EXTRACT_DIR}/" - COMMAND ${CMAKE_COMMAND} -E chdir "${PYTHON_EXTRACT_DIR}/" - ${CMAKE_COMMAND} -E tar xzfv "${LIBDIR}/release/${PYTHON_ZIP}" - DEPENDS ${LIBDIR}/release/${PYTHON_ZIP}) + add_custom_command( + OUTPUT ${PYTHON_EXTRACT_DIR} + COMMAND ${CMAKE_COMMAND} -E remove_directory "${PYTHON_EXTRACT_DIR}/" + COMMAND ${CMAKE_COMMAND} -E make_directory "${PYTHON_EXTRACT_DIR}/" + COMMAND ${CMAKE_COMMAND} -E chdir "${PYTHON_EXTRACT_DIR}/" + ${CMAKE_COMMAND} -E tar xzfv "${LIBDIR}/release/${PYTHON_ZIP}" + DEPENDS ${LIBDIR}/release/${PYTHON_ZIP}) - add_dependencies(blender extractpyzip) + add_dependencies(blender extractpyzip) - # copy extracted python files - install_dir( - ${PYTHON_EXTRACT_DIR} - \${TARGETDIR_VER} - ) - # copy site-packages files - install_dir( - ${LIBDIR}/release/site-packages - \${TARGETDIR_VER}/python/lib/python${PYTHON_VERSION} - ) + # copy extracted python files + install_dir( + ${PYTHON_EXTRACT_DIR} + \${TARGETDIR_VER} + ) + # copy site-packages files + install_dir( + ${LIBDIR}/release/site-packages + \${TARGETDIR_VER}/python/lib/python${PYTHON_VERSION} + ) + endif() install(DIRECTORY ${LIBDIR}/python/bin DESTINATION ${TARGETDIR_VER}/python @@ -997,19 +1012,27 @@ elseif(APPLE) # python if(WITH_PYTHON AND NOT WITH_PYTHON_FRAMEWORK) - add_custom_command( - OUTPUT ${PYTHON_EXTRACT_DIR} - COMMAND ${CMAKE_COMMAND} -E remove_directory "${PYTHON_EXTRACT_DIR}/" - COMMAND ${CMAKE_COMMAND} -E make_directory "${PYTHON_EXTRACT_DIR}/" - COMMAND ${CMAKE_COMMAND} -E chdir "${PYTHON_EXTRACT_DIR}/" - ${CMAKE_COMMAND} -E tar xzfv "${LIBDIR}/release/${PYTHON_ZIP}" - DEPENDS ${LIBDIR}/release/${PYTHON_ZIP}) + if(WITH_CXX11) + # Copy the python libs into the install directory + install_dir( + ${PYTHON_LIBPATH} + ${PLAYER_TARGETDIR_VER}/python/lib + ) + else() + add_custom_command( + OUTPUT ${PYTHON_EXTRACT_DIR} + COMMAND ${CMAKE_COMMAND} -E remove_directory "${PYTHON_EXTRACT_DIR}/" + COMMAND ${CMAKE_COMMAND} -E make_directory "${PYTHON_EXTRACT_DIR}/" + COMMAND ${CMAKE_COMMAND} -E chdir "${PYTHON_EXTRACT_DIR}/" + ${CMAKE_COMMAND} -E tar xzfv "${LIBDIR}/release/${PYTHON_ZIP}" + DEPENDS ${LIBDIR}/release/${PYTHON_ZIP}) - # copy extracted python files - install_dir( - ${PYTHON_EXTRACT_DIR} - \${PLAYER_TARGETDIR_VER} - ) + # copy extracted python files + install_dir( + ${PYTHON_EXTRACT_DIR} + \${PLAYER_TARGETDIR_VER} + ) + endif() endif() endif()