OSL

1,SimpleColorShader:

shader gamma(color cin = color(0,0,0),output color Cout=color(0,0,0))
{
    Cout = cin;
}

Katana启动时候会自动编译:

Arnold里bin文件夹里有oslc编译osl文件。但是在centos的GLIB不是2.14,所以单独运行不行。 但是在Katana启动调用时候为何自动编译,猜测是Arnold bin文件夹里已经把GLIB2.14一些符号编译成静态库了。

如果需要手动编译osl.编译GLIBC2.14.

编译glibc2.14 放到/opt/glibc-2.14

cd build
../configure --prefix=/opt/glibc-2.14

make -j 56
make install
#如果编译错误:
cp /etc/ld.so.conf /opt/glibc-2.14/etc/

再创建个bash文件调用GLIBC2.14,然后执行oslc,起名为:run_oslc

#!/usr/bin/env bash

GLIB_LIB_PATH=/opt/glibc-2.14/lib
KTOA_ROOT=/opt/solidangle/KtoA-2.2.0.2-kat3.0-linux/
export LD_LIBRARY_PATH=${GLIB_LIB_PATH}:${LD_LIBRARY_PATH}
exec "${KTOA_ROOT}/bin/oslc" "$@"

则编译shader是:./run_oslc gamma.osl

Katana要加载osl shader 必须:export ARNOLD_PLUGIN_PATH=/mnt/Proj_Lighting/RD/katana3_plugin/Arnold/OSL_Shaders 要指定这个环境变量,

把shader放到这个里面,Katana会自动编译这些oslshader, 不用自己去手动编译

REF:

https://blog.csdn.net/clirus/article/details/62425498

https://answers.arnoldrenderer.com/questions/489/how-to-setup-osl-shader.html

猜你喜欢

转载自www.cnblogs.com/gearslogy/p/9759302.html
OSL