سؤال

أحاول إنشاء مكعب مطلي بالكروم في وفرة / OpenGL وأنا لست متأكدا من كيفية القيام بذلك بالضبط.

بحثت عن "طاولة مواد" في كتاب مدرسي أظهر "كروم" بأنه: المحيط: (0.25، 0.25، 0.25)، منتشر: (0.4، 0.4، 0.4)، وبرك: (0.774597،0.774597،0.774597).

سؤالي هو، كيف يمكنني إنشاء مكعب بسيط وتطبيق هذه المواد / الملمس إليه في وفرة / OpenGL؟

هل يمكنني استخدام "glutsolidcube ()"؟ إذا كان الأمر كذلك، كيف يمكنني ذلك ثم قم بتطبيق نسيج الكروم عليه؟

هل يمكن لأي تخول / OpenGL الناس يشيرونني في الاتجاه الصحيح؟

هل كانت مفيدة؟

المحلول

يجب أن يكون هذا بسيطا مثل الاتصال glMaterialfv() قبل glutSolidCube().

لم أفعل OpenGL منذ المدرسة، لكن إليك بعض رمز حلقة العرض من مشروع قديم استخدم مجالا يجب أن يحصلك على المسار الصحيح:

_Ambient[CHROME][0] = 0.25f;
_Ambient[CHROME][1] = 0.25f;
_Ambient[CHROME][2] = 0.25f;
_Ambient[CHROME][3] = 1.0f;
_Diffuse[CHROME][0] = 0.4f;
_Diffuse[CHROME][1] = 0.4f;
_Diffuse[CHROME][2] = 0.4f;
_Diffuse[CHROME][3] = 1.0f;
_Specular[CHROME][0] = 0.774597f;
_Specular[CHROME][1] = 0.774597f;
_Specular[CHROME][2] = 0.774597f;
_Specular[CHROME][3] = 1.0f;
_Shininess[CHROME] = 76.8f;


void Display()
{
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

  glPushMatrix();
    glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, _Ambient[CHROME]);
    glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, _Diffuse[CHROME]);
    glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, _Specular[CHROME]);
    glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, _Shininess[CHROME]);
    // Translations...
    glutSolidSphere(_Radius, _Slices, _Stacks);
  glPopMatrix();

  glFlush();

  glutSwapBuffers();
}

نصائح أخرى

هل نظرت إلى رسم خرائط البيئة؟ تريد أن تعكس الكائن الخاص بك الضوء من الكائنات الأخرى في البيئة، لذلك يمكنك تطبيق نسيج أساسيا يشبه البيئة وإنشاء إحداثيات نسيجية بناء على طبيعي. هذا سوف يعطي السطح مظهرا متطابقا. يمكنك الحصول على OpenGL إنشاء إحداثيات نسيج تلقائيا لكل قمة استنادا إليها glTexGen.

Nehe Tutorial 23. يغطي هذا مع رسم الخرائط المجال. يمكنك أيضا إنشاء إحداثيات الملمس الخاصة بك لكل قمة الرأس أو لكل بكسل باستخدام GLSL. هنا البرنامج التعليمي على ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top