【转载】Houdini 工具 —— 生成体积贴图

486 阅读1分钟

原文链接:Houdini 工具 —— 生成体积贴图 | 作者:白狸奴

正文

这是一篇没有什么好说的文章,来自于各方引用,我只是把他们拼起来让大家更快的知道如何完成这样的操作。

  • 在 Houdini 生成自定义的 3D Volume Texture
  • UE4 中 3D Volume Texture 生成距离场

一、生成 3D Volume Texture

在 Houdini 中使用自定义模型生成满意的云形态。

image.png

确保安装了 GameDevTool

image.png

建立节点 rop_volume_texture 节点设置好自己想要输出的图像大小,并打开 Preview 检查结果。

image.png

二、UE4 采样体积纹理

以下就是来自Ryan 的内容。使用这段代码在 custom 中即可 raymarch 我们输出的体积纹理。

float numFrames = XYFrames * XYFrames;
float accumdist = 0;

float3 localcamvec = normalize( mul( CamVec, GetPrimitiveData(Parameters.PrimitiveId).WorldToLocal));

float StepSize = 1 / MaxSteps;

for (int i = 0; i < MaxSteps; i++)
{
    float cursample = PseudoVolumeTexture(Tex, TexSampler, saturate(CurPos), XYFrames, numFrames).r;
    accumdist += cursample * StepSize;
    CurPos += -localcamvec * StepSize;
}

return accumdist;
  • 节点连接 image.png

这段代码在 4.22 后有效,主要的问题是 localcamvec 变量后面转换为 local 空间的操作这一步在 4.22 后可用。 4.22 之前请输入

float3 localcamvec = normalize( mul(Parameters.CameraVector, Primitive.WorldToLocal) );