forked from bartvdbraak/blender
5078b9d2d0
This is a physically-based, easy-to-use shader for rendering hair and fur, with controls for melanin, roughness and randomization. Based on the paper "A Practical and Controllable Hair and Fur Model for Production Path Tracing". Implemented by Leonardo E. Segovia and Lukas Stockner, part of Google Summer of Code 2018.
131 lines
3.1 KiB
CMake
131 lines
3.1 KiB
CMake
|
|
# OSL node shaders
|
|
|
|
set(SRC_OSL
|
|
node_add_closure.osl
|
|
node_ambient_occlusion.osl
|
|
node_anisotropic_bsdf.osl
|
|
node_attribute.osl
|
|
node_background.osl
|
|
node_bevel.osl
|
|
node_brick_texture.osl
|
|
node_brightness.osl
|
|
node_bump.osl
|
|
node_camera.osl
|
|
node_checker_texture.osl
|
|
node_combine_rgb.osl
|
|
node_combine_hsv.osl
|
|
node_combine_xyz.osl
|
|
node_convert_from_color.osl
|
|
node_convert_from_float.osl
|
|
node_convert_from_int.osl
|
|
node_convert_from_normal.osl
|
|
node_convert_from_point.osl
|
|
node_convert_from_vector.osl
|
|
node_diffuse_bsdf.osl
|
|
node_displacement.osl
|
|
node_vector_displacement.osl
|
|
node_emission.osl
|
|
node_environment_texture.osl
|
|
node_fresnel.osl
|
|
node_gamma.osl
|
|
node_geometry.osl
|
|
node_glass_bsdf.osl
|
|
node_glossy_bsdf.osl
|
|
node_gradient_texture.osl
|
|
node_hair_info.osl
|
|
node_scatter_volume.osl
|
|
node_absorption_volume.osl
|
|
node_principled_volume.osl
|
|
node_holdout.osl
|
|
node_hsv.osl
|
|
node_ies_light.osl
|
|
node_image_texture.osl
|
|
node_invert.osl
|
|
node_layer_weight.osl
|
|
node_light_falloff.osl
|
|
node_light_path.osl
|
|
node_magic_texture.osl
|
|
node_mapping.osl
|
|
node_math.osl
|
|
node_mix.osl
|
|
node_mix_closure.osl
|
|
node_musgrave_texture.osl
|
|
node_noise_texture.osl
|
|
node_normal.osl
|
|
node_normal_map.osl
|
|
node_object_info.osl
|
|
node_output_displacement.osl
|
|
node_output_surface.osl
|
|
node_output_volume.osl
|
|
node_particle_info.osl
|
|
node_refraction_bsdf.osl
|
|
node_rgb_curves.osl
|
|
node_rgb_ramp.osl
|
|
node_separate_rgb.osl
|
|
node_separate_hsv.osl
|
|
node_separate_xyz.osl
|
|
node_set_normal.osl
|
|
node_sky_texture.osl
|
|
node_subsurface_scattering.osl
|
|
node_tangent.osl
|
|
node_texture_coordinate.osl
|
|
node_toon_bsdf.osl
|
|
node_translucent_bsdf.osl
|
|
node_transparent_bsdf.osl
|
|
node_value.osl
|
|
node_vector_curves.osl
|
|
node_vector_math.osl
|
|
node_vector_transform.osl
|
|
node_velvet_bsdf.osl
|
|
node_voronoi_texture.osl
|
|
node_voxel_texture.osl
|
|
node_wavelength.osl
|
|
node_blackbody.osl
|
|
node_wave_texture.osl
|
|
node_wireframe.osl
|
|
node_hair_bsdf.osl
|
|
node_principled_hair_bsdf.osl
|
|
node_uv_map.osl
|
|
node_principled_bsdf.osl
|
|
node_rgb_to_bw.osl
|
|
)
|
|
|
|
set(SRC_OSL_HEADERS
|
|
node_color.h
|
|
node_fresnel.h
|
|
node_ramp_util.h
|
|
node_texture.h
|
|
stdosl.h
|
|
oslutil.h
|
|
)
|
|
|
|
set(SRC_OSO
|
|
|
|
)
|
|
|
|
# TODO, add a module to compile OSL
|
|
foreach(_file ${SRC_OSL})
|
|
set(_OSL_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${_file})
|
|
set_source_files_properties(${_file} PROPERTIES HEADER_FILE_ONLY TRUE)
|
|
string(REPLACE ".osl" ".oso" _OSO_FILE ${_OSL_FILE})
|
|
string(REPLACE ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR} _OSO_FILE ${_OSO_FILE})
|
|
add_custom_command(
|
|
OUTPUT ${_OSO_FILE}
|
|
COMMAND ${OSL_COMPILER} -q -O2 -I"${CMAKE_CURRENT_SOURCE_DIR}" -o ${_OSO_FILE} ${_OSL_FILE}
|
|
DEPENDS ${_OSL_FILE} ${SRC_OSL_HEADERS} ${OSL_COMPILER})
|
|
list(APPEND SRC_OSO
|
|
${_OSO_FILE}
|
|
)
|
|
|
|
unset(_OSL_FILE)
|
|
unset(_OSO_FILE)
|
|
endforeach()
|
|
|
|
add_custom_target(cycles_osl_shaders ALL DEPENDS ${SRC_OSO} ${SRC_OSL_HEADERS} ${OSL_COMPILER} SOURCES ${SRC_OSL})
|
|
cycles_set_solution_folder(cycles_osl_shaders)
|
|
|
|
# CMAKE_CURRENT_SOURCE_DIR is already included in OSO paths
|
|
delayed_install("" "${SRC_OSO}" ${CYCLES_INSTALL_PATH}/shader)
|
|
delayed_install("${CMAKE_CURRENT_SOURCE_DIR}" "${SRC_OSL_HEADERS}" ${CYCLES_INSTALL_PATH}/shader)
|