forked from blender/blender
Add IBL support #29
@ -9,6 +9,7 @@
|
||||
#include <pxr/imaging/hd/light.h>
|
||||
#include <pxr/imaging/hd/renderDelegate.h>
|
||||
#include <pxr/imaging/hd/tokens.h>
|
||||
#include <pxr/imaging/hio/imageRegistry.h>
|
||||
#include <pxr/usd/usdLux/tokens.h>
|
||||
|
||||
#include "BKE_context.h"
|
||||
@ -97,19 +98,24 @@ void WorldData::init()
|
||||
NodeTexImage *tex = static_cast<NodeTexImage *>(color_input_node->storage);
|
||||
Image *image = (Image *)color_input_node->id;
|
||||
|
||||
char image_path[1024];
|
||||
Main *main = CTX_data_main(scene_delegate_->context);
|
||||
if (image) {
|
||||
Main *bmain = CTX_data_main(scene_delegate_->context);
|
||||
Scene *scene = scene_delegate_->scene;
|
||||
|
||||
if (!pxr::HioImageRegistry::GetInstance().IsSupportedImageFile(image->filepath)) {
|
||||
ReportList reports;
|
||||
ImageSaveOptions opts;
|
||||
opts.im_format.imtype = R_IMF_IMTYPE_PNG;
|
||||
|
||||
std::string image_path = cache_image(bmain, scene, image, &tex->iuser, &opts, &reports);
|
||||
if (!image_path.empty()) {
|
||||
strcpy(image_path,
|
||||
cache_image(main, scene_delegate_->scene, image, &tex->iuser, &opts, &reports)
|
||||
.c_str());
|
||||
if (image_path && !image_path[0]) {
|
||||
data_[pxr::HdLightTokens->textureFile] = pxr::SdfAssetPath(image_path, image_path);
|
||||
}
|
||||
}
|
||||
BKE_image_user_file_path_ex(main, &tex->iuser, image, image_path, false, true);
|
||||
data_[pxr::HdLightTokens->textureFile] = pxr::SdfAssetPath(image_path, image_path);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1535,6 +1535,7 @@ if((DEFINED LIBDIR) AND TARGETDIR_LIB)
|
||||
)
|
||||
install(DIRECTORY
|
||||
${LIBDIR}/usd/plugin/usd/usdShaders
|
||||
${LIBDIR}/usd/plugin/usd/hioOiio
|
||||
DESTINATION "./blender.shared/usd"
|
||||
)
|
||||
elseif(USD_PYTHON_SUPPORT)
|
||||
|
Loading…
Reference in New Issue
Block a user