مكتبات لرسم البكسل في لغة C++ مشابهة لمكتبات Bytebuffers في Java

برمجة


سؤال بسيط للغاية هو أنني بحاجة إلى مكتبة لكتابة وحدات البكسل الأولية المشابهة لـ ByteBuffers في Java (إذا كنت معتادًا على ذلك)، باستخدام
نوع من كائنات الصور، يمكن استخدامه مع طريقة الرسم بالبكسل (مع بعض عناصر تتبع الأشعة) التي سأوضحها.

الطريقة التي أستخدم بها raytrace هي كتابة rayOrgin، والتمييز، وإرجاع اللون في وظيفة تسمى PerPixel من النوع int مع ناقل عائم ثنائي يسمى “coord” ثم إضافة البيانات إلى بيانات الصورة عبر حلقة for متداخلة.

هذا هو ما ينبغي أن تبدو:

سي ++
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
بدلاً من ذلك ولكن هذه المرة أعطاني استثناءً عندما حاولت إنشاء صورة باستخدام VAOs وVBOs وTBOs وما إلى ذلك.

باستثناء إنشاء الصور، لا أحتاج إلى أي برنامج تعليمي كبير، فقط مقتطف كود لشيء مشابه لمقتطف الكود الذي عرضته سابقًا أثناء العمل مع مكتبة (ومن الواضح أيضًا أن أعطني اسم المكتبة).

الحل 1

ألق نظرة على بعض الروابط على ضبط البكسل gdi – بحث جوجل[^] و ضبط بكسل Directx – بحث جوجل[^].

コメント

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