将阴影转换为金属(立方体贴图?)

问题描述 投票:0回答:1

[我正在尝试重写this着色器,但遇到了问题:

float backColor = dot (texture (iChannel0, direction).rgb, channel);

我会怎么做?在this教程之后,我应该能够在这里传递我的立方体纹理,但是我无法将头放在这个任务上。现在没有这条线,随着时间的推移,我会得到一些随机的颜色,所以我认为那是我所缺少的部分。我正在将SceneKit与SCNProgram一起使用。

scenekit metal
1个回答
0
投票

假设您已经移植了着色器的相关部分,加载了一个立方体贴图,并将其绑定为着色器参数,则金属着色语言代码的等效行很简单:

float backColor = dot(texCube.sample(cubeSampler, direction).rgb, channel);

其中texCube的类型为texturecube<float, access::sample>cubeSampler的类型类似

constexpr sampler cubeSampler(coord::normalized, filter::linear, mip_filter::linear)
© www.soinside.com 2019 - 2024. All rights reserved.