将 PNG 序列转换为 VDB 并在 Houdini 中保留所有颜色
Converting a PNG Sequence to a VDB and keeping all colors in Houdini
我通过 .png 序列设置了这个音量调节设置 运行,并从颜色渐变到密度值的位置生成音量。
int f = 15;
int count = 0 + int(@P.z * f);
string num = sprintf('%02d', count);
string folder = chs('folder');
string file = chs('file');
string path = folder + file + num + '.png';
vector uvw = v@P;
vector color = colormap(path, uvw);
@density = color.x;
是否可以对漫反射颜色做同样的事情?我读过 @Cd
表达式,但当我尝试时它什么也没做。
所以Houdini在矢量属性和体积方面有点棘手。重要的是要了解 Houdini 实际上没有矢量类型的体积,只有浮动。但是,如果您创建三个 volumes/VDBs 并使用像 name.x/r/u, name.y/g/v, name.z/b/w 这样的命名约定,那么像 volume wrangle 这样的节点会将它们视为一个单一的为方便起见,矢量值。
您需要创建三个不同的 volumes/VDBs 名称:Cd.r、Cd.g、Cd.b,然后根据需要为它们分配颜色值。您还需要一个密度体积。把它想象成 RGBA 图像,Cd.rgb 是颜色值,密度是 alpha。
拥有这些体积后,您可以在体积可视化节点中使用通配符将 Cd 映射到颜色。
这是一个快速示例图表:
这是创建的卷:
在 Volume Visualize 节点中,您需要将“密度场”设置为密度,将“扩散场”设置为 Cd.*,并保留其他所有默认值:
然后您应该会看到可视化的 Cd 体积颜色值:
我也用 VDB 对此进行了测试,工作方式完全相同。
PS:如果您只是创建“2D”体积(即只有 1 个体素的厚度),您可以使用 COP2 网络节点的输出并将其方法设置为体积,然后加载您的使用 COP2 网络内的 COP 节点的图像。
我通过 .png 序列设置了这个音量调节设置 运行,并从颜色渐变到密度值的位置生成音量。
int f = 15;
int count = 0 + int(@P.z * f);
string num = sprintf('%02d', count);
string folder = chs('folder');
string file = chs('file');
string path = folder + file + num + '.png';
vector uvw = v@P;
vector color = colormap(path, uvw);
@density = color.x;
是否可以对漫反射颜色做同样的事情?我读过 @Cd
表达式,但当我尝试时它什么也没做。
所以Houdini在矢量属性和体积方面有点棘手。重要的是要了解 Houdini 实际上没有矢量类型的体积,只有浮动。但是,如果您创建三个 volumes/VDBs 并使用像 name.x/r/u, name.y/g/v, name.z/b/w 这样的命名约定,那么像 volume wrangle 这样的节点会将它们视为一个单一的为方便起见,矢量值。
您需要创建三个不同的 volumes/VDBs 名称:Cd.r、Cd.g、Cd.b,然后根据需要为它们分配颜色值。您还需要一个密度体积。把它想象成 RGBA 图像,Cd.rgb 是颜色值,密度是 alpha。
拥有这些体积后,您可以在体积可视化节点中使用通配符将 Cd 映射到颜色。
这是一个快速示例图表:
这是创建的卷:
在 Volume Visualize 节点中,您需要将“密度场”设置为密度,将“扩散场”设置为 Cd.*,并保留其他所有默认值:
然后您应该会看到可视化的 Cd 体积颜色值:
我也用 VDB 对此进行了测试,工作方式完全相同。
PS:如果您只是创建“2D”体积(即只有 1 个体素的厚度),您可以使用 COP2 网络节点的输出并将其方法设置为体积,然后加载您的使用 COP2 网络内的 COP 节点的图像。