/ / É possível desenhar primitivos no OpenCL? - opengl, opencl

É possível desenhar primitivos no OpenCL? - opengl, opencl

Eu estou tentando usar um algoritmo de kernel paralelo, mas ele precisa chamar funções OpenGL [como desenhar uma linha] diretamente do kernel, isso é possível? Desenhar para um objeto de textura. thx para pistas

Respostas:

1 para resposta № 1

Não, na verdade não.

Primeiramente, os comandos de desenho OpenGL são emitidos no lado da CPU (glDrawArrays, por exemplo). Nos kernels OpenCL você está operando na GPU e não pode chamar esses métodos.

Além disso, no OpenCL você nem sequer tem acesso às partes de função fixa do pipeline de renderização da GPU, como a unidade de tesselação ou o rasterizador.

O que você pode fazer, é claro, é criar um buffer 2D no OpenCL, implementar a renderização de linhas por conta própria e pintar "pixels" lá, mas isso provavelmente não é o que você quer.

Existem também extensões para interoperabilidade OpenGL-OpenCL, um tutorial está aqui: https://software.intel.com/en-us/articles/opencl-and-opengl-interoperability-tutorial

Talvez se você nos disser o que você quer alcançar, podemos lhe dar melhores alternativas :)