影像输入投影
这是内核的一个示例,该内核使用图像输入投影到粒子系统上,根据粒子的位置为它们着色。假定图像位于XZ平面上,并且提供了两个旋钮以在该平面上设置图像的左上角和右下角。
|
产生的效果ColorWheel图像投影到带有velocity的0 |
|
产生的效果ColorWheel图像投影到带有velocity的0.05 |
图像投影内核的示例节点图
kernel ParticleImageProjectKernel : ImageComputationKernel<ePixelWise> { Image<eRead,eAccessRandom,eEdgeClamped> image_texture; Image<eReadWrite> p_position; Image<eReadWrite> p_color; param: float _amount; float _dt; float2 _imageTL; float2 _imageBR; local: float2 _imageSize; void define() { defineParam(_imageTL, "pa_imageTL", float2(0.0f)); defineParam(_imageBR, "pa_imageBR", float2(1.0f)); defineParam(_dt, "_dt", 1.0f); } void init() { _imageSize = float2(image_texture.bounds.width(), image_texture.bounds.height()); } void process() { float3 p = p_position(); float2 xz = float2(p.x, p.z); float2 uv = xz = (xz-_imageTL)/(_imageBR-_imageTL); float2 st = uv*_imageSize; float4 c = bilinear(image_texture, st.x, st.y); p_color() = float4(c.x, c.y, c.z, 1.0f); } }; |
抱歉,您没有找到此帮助
为什么这没有帮助? (检查所有适用)
感谢您抽出宝贵时间给我们反馈。