Thư viện để vẽ pixel trong C++ tương tự như bytebuffers trong java

lập trình


Một câu hỏi rất đơn giản là tôi cần một thư viện để ghi các pixel thô tương tự như ByteBuffers trong Java (nếu bạn quen với điều đó), sử dụng
một loại đối tượng hình ảnh, có thể được sử dụng với phương pháp vẽ pixel (với một số công cụ dò tia) mà tôi sẽ trình bày.

Cách tôi raytrace là viết rayOrgin, phân biệt đối xử và trả về màu trong hàm có tên PerPixel thuộc loại int với Vector 2 float có tên là “coord” rồi thay thế dữ liệu vào dữ liệu hình ảnh thông qua vòng lặp for lồng nhau.

Đây là những gì nó sẽ giống:

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;
}

Những gì tôi đã thử:

Tôi đã thử SDL tuy nhiên khi tôi tạo hình ảnh một cách chính xác, nó chỉ thất bại khi tôi chuyển sang phần dò tia. Tôi đã thử OpenGL
thay vào đó nhưng lần này nó cho tôi một ngoại lệ khi cố gắng tạo hình ảnh bằng VAO, VBO, TBO, v.v.

Ngoại trừ việc tạo hình ảnh, tôi không cần bất kỳ hướng dẫn lớn nào, chỉ cần một đoạn mã tương tự như đoạn mã mà tôi đã trình bày trước đó khi làm việc với một thư viện (và rõ ràng cũng cho tôi biết tên của thư viện).

Giải pháp 1

コメント

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