gpt4 book ai didi

OpenCL – 将 `float4` 添加到 `float4` 数组什么都不做

转载 作者:行者123 更新时间:2023-12-02 01:23:39 26 4
gpt4 key购买 nike

我有一个包含 cl_float4 顶点的 OpenGL VBO,我正在尝试通过 OpenCL 更新 VBO(我将 VBO 内容渲染为 GL_POINTS)。我将表示 VBO 的 cl_mem 对象作为内核参数传递(缓冲区设置为 CL_MEM_READ_WRITE)。

很遗憾,我无法一次更新一个顶点的 float4 数据。

以下代码段不起作用(即渲染点不移动):

__kernel void update(__global float4* particle_positions)
{
int gid = get_global_id(0);

particle_positions[gid] += float4(0.1, 0.1, 0.1, 0.0);
}

以下代码段确实有效(即渲染点移动):

__kernel void update(__global float4* particle_positions)
{
int gid = get_global_id(0);

particle_positions[gid].x += 0.1;
particle_positions[gid].y += 0.1;
particle_positions[gid].z += 0.1;
}

最佳答案

需要像这样在括号中

(float4)(1,1,1,1)

拥有 float4 类型。或者你也可以使用其他类型

(float4)((float2)(1,1),(float2)(1,1))

或混合型

(float4)((float2)(1,1),1,1)

就像一个重载函数。

关于OpenCL – 将 `float4` 添加到 `float4` 数组什么都不做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38470725/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com