C++ 中的像素绘制库类似于 Java 中的字节缓冲区

编程


一个非常简单的问题是,我需要一个用于编写类似于 Java 中的 ByteBuffers 的原始像素的库(如果您熟悉的话),使用
一种图像对象,可以与我将演示的像素绘制方法(带有一些光线跟踪内容)一起使用。

我进行光线跟踪的方法是编写 rayOrgin、判别式,并在名为 PerPixel 的 int 类型函数中返回颜色,并使用名为“coord”的 2 浮点向量,然后通过嵌套的 for 循环将数据补充到图像数据。

它应该是这样的:

C++
for (int y = 0; y < IMAGE_WIDTH; y++)
{
  for (int y = 0; y < IMAGE_HEIGHT; y++)
  {
    Vector2f coord = { x / (float) IMAGE_WIDTH, y / (float) IMAGE_HEIGHT };
    imageData[x + y * IMAGE_WIDTH] = PerPixel(coord);
  }
}

int PerPixel(Vector2f coord)
{
  // RAYTRACING STUFF
  // ORDER CAN BE RGBA, ARGB, RGB and etc. just needs to have Red, Green and  Blue channels.
  if (discriminant >= 0)
     return 0xffff00ff;
  return 0xff000000;
}

我尝试过的:

我已经尝试过 SDL,但是当我正确创建图像时,当我进入光线跟踪部分时它就失败了。 我尝试过OpenGL
相反,但这一次当我尝试使用 VAO、VBO、TBO 等创建图像时,它给了我一个例外。

除了图像创建之外,我不需要任何大型教程,只需要一段类似于我之前展示的使用库的代码片段的代码片段(并且显然还给了我库的名称)。

解决方案1

コメント

タイトルとURLをコピーしました